diff --git a/pom.xml b/pom.xml index cd368885b9b9d68c375844cfc09e636932b9a9cb..8db30b6e406f47441a3f45e26b3905bb1f4336c0 100644 --- a/pom.xml +++ b/pom.xml @@ -172,11 +172,6 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - <version>3.2.5</version> - </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> @@ -254,10 +249,6 @@ <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> </dependency> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> @@ -324,6 +315,31 @@ </resources> <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>aspectj-maven-plugin</artifactId> + <version>1.10</version> + <configuration> + <complianceLevel>1.8</complianceLevel> + <source>1.8</source> + <target>1.8</target> + <aspectLibraries> + <aspectLibrary> + <groupId>org.springframework</groupId> + <artifactId>spring-aspects</artifactId> + </aspectLibrary> + </aspectLibraries> + <showWeaveInfo>true</showWeaveInfo> + </configuration> + <executions> + <execution> + <goals> + <goal>compile</goal> + <goal>test-compile</goal> + </goals> + </execution> + </executions> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> diff --git a/src/main/java/de/thm/arsnova/aop/RangeAspect.java b/src/main/java/de/thm/arsnova/aop/RangeAspect.java index 161199ef57c71091b5a2d396566d9372361380d2..705b7529d44fd94f9082500236d10078210a671a 100644 --- a/src/main/java/de/thm/arsnova/aop/RangeAspect.java +++ b/src/main/java/de/thm/arsnova/aop/RangeAspect.java @@ -26,8 +26,7 @@ import org.aspectj.lang.annotation.Aspect; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Profile; -import org.springframework.stereotype.Component; +import org.springframework.beans.factory.annotation.Configurable; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -40,9 +39,8 @@ import java.util.regex.Pattern; * the response. It only applies to methods of {@link PaginationController}s annotated with * {@link de.thm.arsnova.web.Pagination} which return a {@link List}. */ -@Component @Aspect -@Profile("!test") +@Configurable public class RangeAspect { @Autowired diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java index ba1d58dba6edb1df16c3380944fbd7c79acdf7a2..e08c83d8806f8baa8af9f45ba0a7cff4f5107586 100644 --- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java +++ b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java @@ -23,14 +23,14 @@ import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Configurable; /** * Assigns a session to the {@link de.thm.arsnova.services.UserSessionService} whenever a user joins a * session. */ @Aspect -@Service +@Configurable public class UserSessionAspect { @Autowired diff --git a/src/main/java/de/thm/arsnova/config/AppConfig.java b/src/main/java/de/thm/arsnova/config/AppConfig.java index e3e2ce6007e11c0d991d3d7faa06fbecb8efafe7..00b5d0c0fa9f4b4af754a1eea92ad47c7242e49e 100644 --- a/src/main/java/de/thm/arsnova/config/AppConfig.java +++ b/src/main/java/de/thm/arsnova/config/AppConfig.java @@ -34,12 +34,13 @@ import org.springframework.beans.factory.config.PropertiesFactoryBean; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.concurrent.ConcurrentMapCacheManager; +import org.springframework.context.annotation.AdviceMode; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.Profile; import org.springframework.context.annotation.PropertySource; +import org.springframework.context.annotation.aspectj.EnableSpringConfigured; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.env.Environment; import org.springframework.core.io.ClassPathResource; @@ -81,10 +82,10 @@ import java.util.List; "de.thm.arsnova.services", "de.thm.arsnova.web"}) @Configuration -@EnableAspectJAutoProxy(exposeProxy = true) @EnableAsync -@EnableCaching +@EnableCaching(mode = AdviceMode.ASPECTJ) @EnableScheduling +@EnableSpringConfigured @EnableWebMvc @PropertySource( value = {"classpath:arsnova.properties.example", "file:/etc/arsnova/arsnova.properties"}, diff --git a/src/main/resources/META-INF/aop.xml b/src/main/resources/META-INF/aop.xml new file mode 100644 index 0000000000000000000000000000000000000000..6681890d4b954ff74c1b496d1e21c49f65c1472c --- /dev/null +++ b/src/main/resources/META-INF/aop.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<aspectj> + <weaver options="-verbose -showWeaveInfo"> + <!-- only weave classes in our application-specific packages --> + <include within="de.thm.arsnova..*"/> + </weaver> + + <aspects> + <aspect name="de.thm.arsnova.aop.RangeAspect"/> + <aspect name="de.thm.arsnova.aop.UserSessionAspect"/> + </aspects> +</aspectj>