Ah yes, I had forgotten about that one. That will affect any logger
interface which extends BasicLogger.
One possible (albeit crappy) workaround might be to use
maven-shade-plugin to pull that class into the project and rewrite the
generated references to it. That's probably a huge pain though.
Another workaround is to use Logger for debug and trace messages and
have your logger interfaces not extend BasicLogger. Also not ideal, but
maybe somewhat easier.
Maybe before the final release I can work out a way to have a
compatibility option in the logger generator which inlines that class...
would that be a reasonable workaround?
On 11/07/2011 01:45 PM, Sanne Grinovero wrote:
I thought this was an expected limitation, since the Logger
implementations generated by the latest tools depend on the new logger
classes.
We're having a Shrinkwrap+Arquillian test in Hibernate Search itself
which creates a test app containing it's own latest build and deploys
it to a test-managed AS7 instance on version 7.0.2.Final.
If I build Hibernate Search using
<jbossLoggingVersion>3.1.0.Beta3</jbossLoggingVersion>
<jbossLoggingProcessorVersion>1.0.0.CR3</jbossLoggingProcessorVersion>
then the generated logger implementation will extend
org.jboss.logging.DelegatingBasicLogger, which is not found as
7.0.2.Final doesn't have such a class.
To reproduce, checkout :
github
https://github.com/Sanne/hibernate-search
branch: HSEARCH-965
Maven module : hibernate-search-integrationtest
testname: MemberRegistrationIT
Error:
19:37:07,415 ERROR [org.jboss.msc.service.fail] (MSC service thread
1-2) MSC00001: Failed to start service
jboss.persistenceunit."MemberRegistrationIT.war#primary":
org.jboss.msc.service.StartException in service
jboss.persistenceunit."MemberRegistrationIT.war#primary": Failed to
start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]
Caused by: java.util.ServiceConfigurationError:
org.hibernate.integrator.spi.Integrator: Provider
org.hibernate.search.hcore.impl.HibernateSearchIntegrator could not be
instantiated: java.lang.LinkageError: Failed to link
org/hibernate/search/util/logging/impl/Log_$logger (Module
"deployment.MemberRegistrationIT.war:main" from Service Module Loader)
at org.hibernate.integrator.internal.ServiceLoader.fail(ServiceLoader.java:99)
at org.hibernate.integrator.internal.ServiceLoader.<init>(ServiceLoader.java:71)
at org.hibernate.integrator.internal.ServiceLoader.load(ServiceLoader.java:191)
at
org.hibernate.integrator.internal.IntegratorServiceImpl.getIntegrators(IntegratorServiceImpl.java:61)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:293)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1722)
at
org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:884)
at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at
org.jboss.as.jpa.service.PersistenceUnitService.createContainerEntityManagerFactory(PersistenceUnitService.java:143)
at
org.jboss.as.jpa.service.PersistenceUnitService.start(PersistenceUnitService.java:77)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
... 3 more
Caused by: java.lang.LinkageError: Failed to link
org/hibernate/search/util/logging/impl/Log_$logger (Module
"deployment.MemberRegistrationIT.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:401)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76)
at org.jboss.modules.Module.loadModuleClass(Module.java:590)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
at java.lang.Class.forName0(Native Method) [:1.6.0_27]
at java.lang.Class.forName(Class.java:247) [:1.6.0_27]
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2249)
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2215)
at org.hibernate.search.util.logging.impl.LoggerFactory.make(LoggerFactory.java:37)
at
org.hibernate.search.hcore.impl.HibernateSearchIntegrator.<clinit>(HibernateSearchIntegrator.java:48)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) [:1.6.0_27]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[:1.6.0_27]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
[:1.6.0_27]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [:1.6.0_27]
at java.lang.Class.newInstance0(Class.java:355) [:1.6.0_27]
at java.lang.Class.newInstance(Class.java:308) [:1.6.0_27]
at org.hibernate.integrator.internal.ServiceLoader.<init>(ServiceLoader.java:67)
... 15 more
Caused by: java.lang.NoClassDefFoundError:
org/jboss/logging/DelegatingBasicLogger
at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_27]
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [:1.6.0_27]
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [:1.6.0_27]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
[:1.6.0_27]
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397)
... 36 more
Caused by: java.lang.ClassNotFoundException:
org.jboss.logging.DelegatingBasicLogger from [Module
"deployment.MemberRegistrationIT.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
... 41 more
On 7 November 2011 19:27, David M. Lloyd<david.lloyd(a)redhat.com> wrote:
> The first issue I will make sure is resolved before releasing.
>
> The second issue should not be true - the primary differences between 3.0
> and 3.1 are in annotations, which have been changed in 3.1 to have CLASS
> retention - but if you find there is a compatibility problem please let me
> know ASAP.
>
> On 11/07/2011 01:25 PM, Sanne Grinovero wrote:
>>
>> There are two problems:
>> * JBLOGGING-74 - opened last week, is not a blocker but has some
>> consequences on performance
>> * second is that if we go with 3.1 it will not work on all releases
>> of AS7 having 3.0.x.; Which means for all the people waiting for
>> Hibernate 4.0.0.Final won't have a nice AS to play with when it's
>> released.
>>
>> Sanne
>>
>>
>> On 7 November 2011 16:33, Emmanuel Bernard<emmanuel(a)hibernate.org>
wrote:
>>>
>>> Yep, we have it running against 3.1.0.Beta3 which is the latest release
>>> published.
>>>
>>> On 7 nov. 2011, at 17:27, David M. Lloyd wrote:
>>>
>>>> I can look into it tonight. Have you tested with the latest 3.1.0
>>>> release to verify there are no problems?
>>>>
>>>> On 11/07/2011 09:51 AM, Steve Ebersole wrote:
>>>>>
>>>>> Specifically, is there anyway to get org.jboss.logging:jboss-logging
to
>>>>> Final/GA in the next few days? The generator/processor is irrelevant
as
>>>>> far as we are concerned for a Hibernate release.
>>>>>
>>>>> On Mon 07 Nov 2011 09:47:08 AM CST, Steve Ebersole wrote:
>>>>>>
>>>>>> Which really sucks since 4.0 Final is slated for 2 days.
>>>>>>
>>>>>> Ugh.
>>>>>>
>>>>>> On Fri 04 Nov 2011 10:59:24 AM CDT, Emmanuel Bernard wrote:
>>>>>>>
>>>>>>> Do you know when JBoss Logging 3.1.0.GA will hit the road. I
can't
>>>>>>> really release Hibernate Commons Annotations nor Core etc
until we
>>>>>>> have the final version. I mean we could but we might have to
redo it.
>>>>>>>
>>>>>>> Emmanuel
>>>>>>>
>>>>>>> On 4 nov. 2011, at 16:05, David M. Lloyd wrote:
>>>>>>>
>>>>>>>> Yeah let's target 3.1.0.GA for everything. The final
1.0.0.GA
>>>>>>>> release
>>>>>>>> of the i18n logging tool will require 3.1.0.GA.
>>>>>>>>
>>>>>>>> On 11/04/2011 09:42 AM, Scott Marlow wrote:
>>>>>>>>>
>>>>>>>>> Currently, in AS7, the AS7
"org.jboss.logging" module is used by
>>>>>>>>> the
>>>>>>>>> Hibernate (Core) module. The
"org.jboss.logging" module happens to
>>>>>>>>> be
>>>>>>>>> "3.1.0.Beta3". I think that Hibernate
(4.0.x) Core needs to stay in
>>>>>>>>> sync with the AS7 version of JBoss Logging.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
https://github.com/jbossas/jboss-as/blob/master/build/src/main/resources/...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I think that AS7 needs to stay in sync with what
integrated
>>>>>>>>> projects are
>>>>>>>>> using (using the 3.1.0.* versions of JBoss logging
for AS 7.1).
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 11/04/2011 07:30 AM, Emmanuel Bernard wrote:
>>>>>>>>>>
>>>>>>>>>> JBoss AS 7.1 is targeted to use JBoss Logging
3.0.1 AFAIK.
>>>>>>>>>> Hibernate Core 4.0 right now is using JBoss
Logging 3.1.0.Beta3
>>>>>>>>>>
>>>>>>>>>> // logging
>>>>>>>>>> logging:
'org.jboss.logging:jboss-logging:3.1.0.Beta3',
>>>>>>>>>> logging_generator:
>>>>>>>>>>
'org.jboss.logging:jboss-logging-generator:1.0.0.CR3',
>>>>>>>>>> logging_processor:
>>>>>>>>>>
'org.jboss.logging:jboss-logging-processor:1.0.0.CR3',
>>>>>>>>>>
>>>>>>>>>> So which one we should go to? Once we have
decided, I will align
>>>>>>>>>> Search, OGM and Commons Annotations.
>>>>>>>>>>
>>>>>>>>>> Emmanuel
>>>>>>>>>> _______________________________________________
>>>>>>>>>> hibernate-dev mailing list
>>>>>>>>>> hibernate-dev(a)lists.jboss.org
>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> - DML
>>>>>>>> _______________________________________________
>>>>>>>> jboss-as7-dev mailing list
>>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> hibernate-dev mailing list
>>>>>>> hibernate-dev(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> - DML
>>>
>>>
>>> _______________________________________________
>>> jboss-as7-dev mailing list
>>> jboss-as7-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>
>
>
> --
> - DML
>