Hi Kalle, hi all!

I migrated to Hibernate 4.2.8 and everything works fine.

Nevertheless I want to open a discussion about the current persistence layer integration of T5.4, if I am allowed to. I do not believe an UI Framework should force users to upgrade a persistence layer to a particular version. I just want to mention that financial institutions in general do not allow access to public maven repos at all (yes, I was caught in trap like this more than once) which makes upgrades really painful as simply not all library versions exist. And we should keep in mind, that a reuse of the entire Hibernate part for backend processing is not unusual, so changes may/will affect other projects, too.

Definitely I see the problem that Hibernate makes incompatible changes even in minor version, which is a different topic, but we have to adress it somehow to decouple Tapestry from external dependencies. To me it looks like we need multiple tapestry-hibernate modules like:
- tapestry-hibernate-3,
- tapestry-hibernate-4.0-4.2.8
- tapestry-hibernate-4.3-4xwhatever
- tapestry-hibernate-5.x
to get rid of a particular version and allow users making a choice fitting their environment.


Imho we should treat plain Java dependency management similar to JavaScript dependencies and avoid tight coupling of particular dependencies at all. Please correct me if I am wrong.


Thanks for helping

Jens




Am 12/01/16 um 06:23 schrieb Kalle Korhonen:
You could try backing out the tapestry-hibernate and
tapestry-hibernate-core libs to a T5.4 version before beta-17 (see
http://markmail.org/message/yeqlybz6hivwwcxk#query:+page:1+mid:ahfcfibfff2t6ueu+state:results).
They were not available via Maven central and the staging repos are not
available anymore so you'd have to build from the tag yourself. No
guarantee that it'd work but there were fairly few changes (I know because
I did the update originally).

The 4.x Hibernate update was committed to the main branch over three
years(!) ago, so if I were you, I'd just bite the bullet and update to
Hibernate 4.x. I know, it always sucks upgrade several libs at once.

Kalle

On Mon, Jan 11, 2016 at 4:47 PM, Jens Breitenstein <mailingl...@j-b-s.de>
wrote:

Hi Thiago, thanks for your answer!



After some "more" dependency exclusions, the following (hibernate related)
libs are left:

  * org.apache.tapestry:tapestry-hibernate:5.4.0
  * org.apache.tapestry:tapestry-hibernate-core:5.4.0

and

  * org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final
  * org.hibernate:hibernate-commons-annotations:3.2.0.Final
  * org.hibernate:hibernate-core:3.6.10.Final
  * org.hibernate:hibernate-validator:3.1.0.GA

But the error still exists.

org.apache.tapestry5.ioc.internal.OperationException: Error invoking
method public static org.apache.tapestry5.hibernate.HibernateSessionManager
org.apache.tapestry5.hibernate.modules.HibernateCoreModule.buildHibernateSessionManager(org.apache.tapestry5.hibernate.HibernateSessionSource,org.apache.tapestry5.ioc.services.PerthreadManager):
org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;
     at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:186)
     at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:90)
     at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)
     at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1260)
     at
org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:61)
     at
org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:61)
     at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:47)
     at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)
     at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)
     at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1260)
     at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:51)
     at
org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$DefaultObjectCreator.createObject(PerthreadManagerImpl.java:275)
     at $HibernateSessionManager_142885567b0747b9.delegate(Unknown Source)
     at $HibernateSessionManager_142885567b0747b9.getSession(Unknown Source)
     at $HibernateSessionManager_142885567b0746e9.getSession(Unknown Source)
     at $Session_142885567b0747b8.readProperty(Unknown Source)
     at $Session_142885567b0747b8.createCriteria(Unknown Source)
     at $Session_142885567b074696.createCriteria(Unknown Source)
....
Caused by: java.lang.RuntimeException: Error invoking method public static
org.apache.tapestry5.hibernate.HibernateSessionManager
org.apache.tapestry5.hibernate.modules.HibernateCoreModule.buildHibernateSessionManager(org.apache.tapestry5.hibernate.HibernateSessionSource,org.apache.tapestry5.ioc.services.PerthreadManager):
org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;
     at
org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:63)
     at
org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:43)
     at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)
     ... 116 more
Caused by: java.lang.NoSuchMethodError:
org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;
     at
org.apache.tapestry5.internal.hibernate.HibernateSessionSourceImpl.create(HibernateSessionSourceImpl.java:71)
     at $HibernateSessionSource_142885567b0746b3.create(Unknown Source)
     at
org.apache.tapestry5.internal.hibernate.HibernateSessionManagerImpl.<init>(HibernateSessionManagerImpl.java:31)
     at
org.apache.tapestry5.hibernate.modules.HibernateCoreModule.buildHibernateSessionManager(HibernateCoreModule.java:96)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at
org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:52)


Surprisingly, the database structure is correctly read, so SchemaValidator
and TableMetaData had no issues at all on startup...







Forcing Tapestry to use 5.3.8 just for Hibernate related libs results in:

Caused by: java.lang.RuntimeException: Failure loading Tapestry IoC module
class org.apache.tapestry5.hibernate.HibernateCoreModule: Error invoking
service binder method
org.apache.tapestry5.hibernate.HibernateCoreModule.bind(ServiceBinder) (at
HibernateCoreModule.java:45): org/apache/tapestry5/ioc/MethodAdvice
     at
org.apache.tapestry5.ioc.RegistryBuilder.add(RegistryBuilder.java:164)
     at
org.apache.tapestry5.ioc.IOCUtilities.addModulesInList(IOCUtilities.java:132)
     at
org.apache.tapestry5.ioc.IOCUtilities.addModulesInManifest(IOCUtilities.java:105)
     ... 49 more
Caused by: java.lang.RuntimeException: Error invoking service binder
method
org.apache.tapestry5.hibernate.HibernateCoreModule.bind(ServiceBinder) (at
HibernateCoreModule.java:45): org/apache/tapestry5/ioc/MethodAdvice
     at
org.apache.tapestry5.ioc.internal.DefaultModuleDefImpl.bind(DefaultModuleDefImpl.java:624)
     at
org.apache.tapestry5.ioc.internal.DefaultModuleDefImpl.<init>(DefaultModuleDefImpl.java:148)
     at
org.apache.tapestry5.ioc.RegistryBuilder.add(RegistryBuilder.java:123)
     at
org.apache.tapestry5.ioc.RegistryBuilder.add(RegistryBuilder.java:161)
     ... 51 more
Caused by: java.lang.NoClassDefFoundError:
org/apache/tapestry5/ioc/MethodAdvice
     at java.lang.Class.getDeclaredConstructors0(Native Method)
     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585)
     at java.lang.Class.getConstructors(Class.java:1522)
     at
org.apache.tapestry5.ioc.internal.util.InternalUtils.findAutobuildConstructor(InternalUtils.java:562)
     at
org.apache.tapestry5.ioc.internal.ServiceBinderImpl.createStandardConstructorBasedObjectCreatorSource(ServiceBinderImpl.java:146)
     at
org.apache.tapestry5.ioc.internal.ServiceBinderImpl.createObjectCreatorSourceFromImplementationClass(ServiceBinderImpl.java:129)
     at
org.apache.tapestry5.ioc.internal.ServiceBinderImpl.flush(ServiceBinderImpl.java:96)
     at
org.apache.tapestry5.ioc.internal.ServiceBinderImpl.bind(ServiceBinderImpl.java:250)
     at
org.apache.tapestry5.hibernate.HibernateCoreModule.bind(HibernateCoreModule.java:47)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at
org.apache.tapestry5.ioc.internal.DefaultModuleDefImpl.bind(DefaultModuleDefImpl.java:599)
     ... 54 more
Caused by: java.lang.ClassNotFoundException:
org.apache.tapestry5.ioc.MethodAdvice
     at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1293)
     at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1145)
     ... 68 more


Any other idea?

Jens





Am 11.01.16 um 17:08 schrieb Thiago H de Paula Figueiredo:

On Mon, 11 Jan 2016 14:06:15 -0200, Jens Breitenstein <
mailingl...@j-b-s.de> wrote:

Hi All,
Hi!

I am migrating an application from T5.3.8 to T5.4. In the past the
application was based one Hibernate 3x but T5.4 seems to make use of
Hibernate 4 explicitly (correct me if I am wrong). So currently I am facing
the following exception:

I'd try forcing the tapestry-hibernate version to 5.3.8 and leaving
everything else at 5.4.0 and see whether it works.




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to