суббота, июля 5

AspectJ и Java8

Блин, стоило добавить в код Stream-синтаксис из Java8 и чуточку Lambda-кода, как AspectJ свалился в SOE при компиляции :(


---- AspectJ Properties ---
AspectJ Compiler 1.8.0 built on Thursday Apr 17, 2014 at 20:04:16 GMT
---- Dump Properties ---
Dump file: ajcore.20140705.182145.679.txt
Dump reason: java.lang.StackOverflowError
Dump on exception: true
Dump at exit condition: abort
---- Exception Information ---
java.lang.StackOverflowError
at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:851)
at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
... ещё несколько десятков строчек подобной выше

вторник, июля 1

"Лишние" зависимости SLF4J

При запуске тестов в лог выходит нечто подобное:

Configuring TestNG with: TestNG652Configurator
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/.../.m2/repository/org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/.../.m2/repository/org/slf4j/slf4j-jdk14/1.7.5/slf4j-jdk14-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/.../.m2/repository/ch/qos/logback/logback-classic/0.9.9/logback-classic-0.9.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See [url]http://www.slf4j.org/codes.html#multiple_bindings[/url] for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


В этом случае, согласно документации, нужно просто найти и исключить "лишние" зависимости.

У меня ими оказались org.slf4j:slf4j-jdk14 и ch.qos.logback:logback-classic - у обеих библиотек была зависимость уровня runtime.
Удалил так: http://pastebin.com/uDeUnp7m