There's tapestry-hibernate-core which only depends on tapestry-ioc.
tapestry-hibernate builds on top of this with web specific services

https://mvnrepository.com/artifact/org.apache.tapestry/tapestry-hibernate-core/5.4.3

On 9 May 2017 03:54, "Thomas Mayer" <thomas.ma...@student.kit.edu> wrote:

> Hello Thiago,
>
> thanks for your answer.
>
> The idea was to only use tapestry-ioc which is supposed to be usable as
> an isolated component with no dependency to tapestry-core.
>
> tapestry-hibernate, however, depends on tapestry-core, according to
> https://mvnrepository.com/artifact/org.apache.tapestry/
> tapestry-hibernate/5.4.3
> That's not necessarily a no-go for general usage, but "taints" my
> original concept.
>
> For my use case it would be perfectly fine to only use one Hibernate
> session throughout the project (no threading, etc.). The project itself
> does some batch processing (no web context, etc.).
>
> Should I ever need multiple Sessions, that's where @ServiceId could step
> in (still single threaded).
>
> Still, all of these considerations don't deal whith the original
> question why creating this Session service is failing so hard. At least
> good to know that my code should run in general. Thanks for that.
>
> Now, where is the missing part? Is it Tapestry-Ioc related or Hibernate
> related?
>
> If the code should run, but fails, then, maybe there is a bug/limitation
> somewhere which might be worth to get fixed.
>
> Best regards
> Thomas
>
> Am 09.05.2017 um 00:57 schrieb Thiago H. de Paula Figueiredo:
> > Hello!
> >
> > Why don't you just use tapestry-hibernate to let it deal with creating
> and
> > handling Hibernate sessions?
> > https://tapestry.apache.org/using-tapestry-with-hibernate.html
> >
> > Also, I believe your code may not be incorrect, but it's not good. Unless
> > you want only one Hibernate session for the whole application and you
> never
> > have threads in parallel using it, your code will be fail hard. Hibernate
> > sessions are not thread-safe and Tapestry-IoC services are singletons by
> > default. Your code doesn't tell T-IoC the service is per-thread.
> >
> > Also, why are you using @ServiceId? Tapestry-IoC services are usually
> > defined by their type, not by their id, and service ids are generally
> only
> > used when you have more than one service with the same type.
> >
> >
> > On Mon, May 8, 2017 at 2:56 AM, Thomas Mayer <
> thomas.ma...@student.kit.edu>
> > wrote:
> >
> >> Hi, this report/question is for
> >>
> >> tapestry-ioc 5.4.3
> >> hibernate-core 5.2.10.Final
> >> openjdk version "1.8.0_121"
> >> OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.
> >> 16.04.2-b13)
> >> OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
> >>
> >> I'm trying to have a ServiceId for a hibernate Session:
> >>
> >> @ServiceId("HibernateSession")
> >> public static Session buildHibernateSession(
> >>     ObjectLocator objectLocator
> >> ) {
> >>     return new Configuration()
> >>         .configure("hibernate.cfg.xml")
> >>         .buildSessionFactory()
> >>         .openSession();
> >> }
> >>
> >> As soon as the HibernateSession is invoked by Tapestry-IOC, I get an
> >> error:  java.lang.ClassFormatError: Duplicate method name&signature in
> >> class file $Session_350f95bde0b5
> >>
> >> Please note thate I can serve the SessionFactory perfectly fine with
> >> Tapestry-IoC (just by omitting the "openSession()").
> >>
> >> Is there something wrong in the code above?
> >> Can someone reproduce it?
> >> Is this a bug in Tapestry-IoC?
> >> Is this a bug/limitation in Hibernate?
> >>
> >>
> >>
> >> 2017-05-08 07:31:02 DEBUG HibernateSession:261 - Creating proxy for
> >> service HibernateSession
> >> Exception in thread "main" java.lang.ClassFormatError: Duplicate method
> >> name&signature in class file $Session_350f95bde0b5
> >>         at java.lang.ClassLoader.defineClass1(Native Method)
> >>         at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
> >>         at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
> >>         at
> >> org.apache.tapestry5.internal.plastic.PlasticClassLoader.
> >> defineClassWithBytecode(PlasticClassLoader.java:52)
> >>         at
> >> org.apache.tapestry5.internal.plastic.PlasticClassPool.
> >> realize(PlasticClassPool.java:160)
> >>         at
> >> org.apache.tapestry5.internal.plastic.PlasticClassPool.
> >> realizeTransformedClass(PlasticClassPool.java:139)
> >>         at
> >> org.apache.tapestry5.internal.plastic.PlasticClassImpl.
> createInstantiator(
> >> PlasticClassImpl.java:648)
> >>         at
> >> org.apache.tapestry5.plastic.PlasticManager.createProxy(
> >> PlasticManager.java:253)
> >>         at
> >> org.apache.tapestry5.ioc.internal.services.PlasticProxyFactoryImpl.
> >> createProxy(PlasticProxyFactoryImpl.java:68)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl.createProxyInstance(
> >> ModuleImpl.java:484)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl.
> createProxy(ModuleImpl.java:
> >> 478)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl.access$
> >> 900(ModuleImpl.java:40)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(
> ModuleImpl.java:322)
> >>         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.ModuleImpl.create(
> >> ModuleImpl.java:344)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl.access$
> >> 100(ModuleImpl.java:40)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(
> ModuleImpl.java:198)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(
> >> ConcurrentBarrier.java:139)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(
> ModuleImpl.java:215)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(
> >> ConcurrentBarrier.java:83)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl.
> findOrCreate(ModuleImpl.java:
> >> 221)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ModuleImpl.
> getService(ModuleImpl.java:
> >> 112)
> >>         at
> >> org.apache.tapestry5.ioc.internal.RegistryImpl.
> >> getService(RegistryImpl.java:497)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.
> >> getService(ObjectLocatorImpl.java:43)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.InternalUtils$
> >> 22.run(InternalUtils.java:1429)
> >>         at
> >> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.
> >> run(OperationTrackerImpl.java:56)
> >>         at
> >> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(
> >> PerThreadOperationTracker.java:60)
> >>         at
> >> org.apache.tapestry5.ioc.internal.RegistryImpl.run(
> RegistryImpl.java:1254)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.InternalUtils.
> >> extendPlanForInjectedFields(InternalUtils.java:1419)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.InternalUtils.
> >> access$200(InternalUtils.java:50)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.InternalUtils$
> >> 20.invoke(InternalUtils.java:1380)
> >>         at
> >> org.apache.tapestry5.ioc.internal.util.InternalUtils$
> >> 20.invoke(InternalUtils.java:1366)
> >>         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.util.InternalUtils.
> >> createConstructorConstructionPlan(InternalUtils.java:1363)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(
> >> ConstructorServiceCreator.java:52)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.
> createObject(
> >> ConstructorServiceCreator.java:62)
> >>         at
> >> org.apache.tapestry5.ioc.internal.ReloadableServiceImplementatio
> >> nObjectCreator.createInstance(ReloadableServiceImplementatio
> >> nObjectCreator.java:54)
> >>         at
> >> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreato
> >> r$1.invoke(AbstractReloadableObjectCreator.java:136)
> >>         at
> >> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.
> >> invoke(OperationTrackerImpl.java:82)
> >> 2017-05-08 07:31:02 ERROR Registry:208 - Duplicate method name&signature
> >> in class file $Session_350f95bde0b5
> >>         at
> >> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(
> >> PerThreadOperationTracker.java:72)
> >> 2017-05-08 07:31:02 ERROR Registry:209 - Operations trace:
> >>         at
> >> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(
> >> RegistryImpl.java:1260)
> >> 2017-05-08 07:31:02 ERROR Registry:218 - [ 1] Reloading class
> >> dbla.dbla.controller.TraceImportController.
> >> 2017-05-08 07:31:02 ERROR Registry:218 - [ 2] Creating plan to
> >> instantiate dbla.dbla.controller.TraceImportController via public
> >> dbla.dbla.controller.TraceImportController()
> >> 2017-05-08 07:31:02 ERROR Registry:218 - [ 3] Calculating possible
> >> injection value for field
> >> dbla.dbla.controller.TraceImportController.hibernateSession
> >> (org.hibernate.Session)
> >> 2017-05-08 07:31:02 ERROR Registry:218 - [ 4] Creating proxy for service
> >> HibernateSession
> >>         at
> >> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreato
> >> r.createInstance(AbstractReloadableObjectCreator.java:129)
> >>         at
> >> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreato
> >> r.createObject(AbstractReloadableObjectCreator.java:121)
> >>         at $ControllerInterface_350f95bde0af.delegate(Unknown Source)
> >>         at $ControllerInterface_350f95bde0af.execute(Unknown Source)
> >>         at $ControllerInterface_350f95bde0ad.execute(Unknown Source)
> >>         at dbla.dbla.DbLogAnonymizer.main(DbLogAnonymizer.java:19)
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>
> >>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to