<div dir="ltr">Because scanning in WildFly requires VFS hooks that Jipijapa provided in its scanner specializations.<br></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jun 3, 2015 at 11:10 AM Sanne Grinovero &lt;<a href="mailto:sanne@hibernate.org">sanne@hibernate.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 3 June 2015 at 16:55, Scott Marlow &lt;<a href="mailto:smarlow@redhat.com" target="_blank">smarlow@redhat.com</a>&gt; wrote:<br>
&gt; Hi Sanne,<br>
&gt;<br>
&gt; I was able to reproduce one of the below errors that occur when packaging<br>
&gt; Hibernate ORM jars with the application <a href="http://pastie.org/10221793" target="_blank">http://pastie.org/10221793</a>.  This is<br>
&gt; with the &quot;jboss.as.jpa.providerModule&quot; property set to value &quot;application&quot;.<br>
&gt;<br>
&gt; Test is pushed to [1] and is based on a test that I added for the [2] pull<br>
&gt; request.  Once [2] is merged to WildFly master, it should be easy to fix the<br>
&gt; bug.  The only change that I needed to [2], was to remove the provider from<br>
&gt; the persistence.xml.<br>
&gt;<br>
&gt; For the first approach below, we should probably allow the<br>
&gt; &quot;jboss.as.jpa.adapterClass&quot; to specify the<br>
&gt; &quot;org.jboss.as.jpa.processor.PersistenceProviderAdaptorLoader.noopAdaptor&quot;<br>
&gt; (by name or via a special value).<br>
<br>
Right, being able to &quot;force&quot; usage of the no-op Adaptor like I did<br>
with my Byteman rule would give us a lot of nice flexibility.<br>
<br>
BTW once I did that, I noticed that the scanning of entities broke.<br>
Apparently entity scanning for Hibernate requires the Scanner which<br>
you would provide with the adaptor; would you know why?<br>
I&#39;m wondering because it seems related to an Hibernate OGM issue: in<br>
that case we don&#39;t disable the adapter but still auto-detection of<br>
entities doesn&#39;t work.<br>
<br>
Thanks!<br>
Sanne<br>
<br>
&gt;<br>
&gt; Scott<br>
&gt;<br>
&gt; [1] <a href="https://github.com/scottmarlow/wildfly/tree/test_orm41_bundled" target="_blank">https://github.com/scottmarlow/wildfly/tree/test_orm41_bundled</a><br>
&gt;<br>
&gt; [2] <a href="https://github.com/wildfly/wildfly/pull/7509" target="_blank">https://github.com/wildfly/wildfly/pull/7509</a><br>
&gt;<br>
&gt;<br>
&gt; On 06/02/2015 08:15 PM, Sanne Grinovero wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Scott,<br>
&gt;&gt; finally got back on this upgrade. You were right, the problem is that<br>
&gt;&gt; JipiJapa figures out that I&#39;m using Hibernate - even though I&#39;m not<br>
&gt;&gt; hard coding the provider name, as in that case it will just default to<br>
&gt;&gt; Hibernate anyway - and because of that it&#39;s adding both the JPA<br>
&gt;&gt; adaptors for Hibernate 4 and the wrong version of the Hibernate<br>
&gt;&gt; dependencies as well.<br>
&gt;&gt;<br>
&gt;&gt; This is the temporary solution I&#39;m going to use:<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/hibernate/hibernate-search/commit/d2b05ef7511815d6c0a0779734b95a69cdcbf56d" target="_blank">https://github.com/hibernate/hibernate-search/commit/d2b05ef7511815d6c0a0779734b95a69cdcbf56d</a><br>
&gt;&gt;<br>
&gt;&gt; Thanks for all pointers!<br>
&gt;&gt; Sanne<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 1 June 2015 at 16:08, Scott Marlow &lt;<a href="mailto:smarlow@redhat.com" target="_blank">smarlow@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I suspect that this is a bug in WildFly that we need to track down.  I&#39;m<br>
&gt;&gt;&gt; guessing that the condition is that we are trying to use a custom<br>
&gt;&gt;&gt; Hibernate<br>
&gt;&gt;&gt; module when there is an existing Hibernate module that matches the<br>
&gt;&gt;&gt; Persistence provider name.  Or something like that.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 05/21/2015 07:30 AM, Sanne Grinovero wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi all,<br>
&gt;&gt;&gt;&gt; I&#39;m attempting to deploy some integration tests on WildFly 9.0.0.CR1<br>
&gt;&gt;&gt;&gt; to use a preview of Hibernate ORM version 5.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It seems the JPA deployer isn&#39;t allowing me to run such experiments:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; # First experiment - providerModule set to custom module<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; In my first attempt, I create a custom set of jboss modules which<br>
&gt;&gt;&gt;&gt; include the snapshot builds of ORM 5, add them to my standalone WF9<br>
&gt;&gt;&gt;&gt; instance and set the persistence.xml property:<br>
&gt;&gt;&gt;&gt;    jboss.as.jpa.providerModule = my-custom-module-name<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; and then get:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Caused by: java.util.ServiceConfigurationError:<br>
&gt;&gt;&gt;&gt; org.hibernate.integrator.spi.Integrator: Provider<br>
&gt;&gt;&gt;&gt; org.hibernate.envers.boot.internal.EnversIntegrator not a subtype<br>
&gt;&gt;&gt;&gt; at java.util.ServiceLoader.fail(ServiceLoader.java:231)<br>
&gt;&gt;&gt;&gt; [rt.jar:1.7.0_51]<br>
&gt;&gt;&gt;&gt; at java.util.ServiceLoader.access$300(ServiceLoader.java:181)<br>
&gt;&gt;&gt;&gt; [rt.jar:1.7.0_51]<br>
&gt;&gt;&gt;&gt; at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:369)<br>
&gt;&gt;&gt;&gt; [rt.jar:1.7.0_51]<br>
&gt;&gt;&gt;&gt; at java.util.ServiceLoader$1.next(ServiceLoader.java:445)<br>
&gt;&gt;&gt;&gt; [rt.jar:1.7.0_51]<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:341)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.integrator.internal.IntegratorServiceImpl.&lt;init&gt;(IntegratorServiceImpl.java:57)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:247)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildBootstrapServiceRegistry(EntityManagerFactoryBuilderImpl.java:520)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.&lt;init&gt;(EntityManagerFactoryBuilderImpl.java:208)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.&lt;init&gt;(EntityManagerFactoryBuilderImpl.java:188)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:45)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:57)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.hibernate4.TwoPhaseBootstrapImpl.&lt;init&gt;(TwoPhaseBootstrapImpl.java:38)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.hibernate4.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:173)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:243)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.access$800(PhaseOnePersistenceUnitServiceImpl.java:60)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:118)<br>
&gt;&gt;&gt;&gt; ... 7 more<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Clearly it looks like I&#39;m being served classes from the bundled<br>
&gt;&gt;&gt;&gt; Hibernate 4.x implementation - on top of those from the module I&#39;m<br>
&gt;&gt;&gt;&gt; requesting. This isn&#39;t what the deployer should be doing, right?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; # Second experiment - use the &quot;application provided&quot;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; In this case I hope to hint the JPA  deployer to not add the default<br>
&gt;&gt;&gt;&gt; implementor but look for a JPA implementation within my deployment,<br>
&gt;&gt;&gt;&gt; but still package my custom Hibernate build as a module.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;    - use the same custom module containing Hibernate ORM 5 (a preview<br>
&gt;&gt;&gt;&gt; snapshot)<br>
&gt;&gt;&gt;&gt;    - Add a &quot;Dependency:&quot; section to the manifest to import (and export)<br>
&gt;&gt;&gt;&gt; my custom module<br>
&gt;&gt;&gt;&gt;    - set the &quot;jboss.as.jpa.providerModule&quot; property to value<br>
&gt;&gt;&gt;&gt; &quot;application&quot;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; This gets me:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Caused by:<br>
&gt;&gt;&gt;&gt; org.jboss.as.server.deployment.DeploymentUnitProcessingException:<br>
&gt;&gt;&gt;&gt; WFLYJPA0027: Persistence provider module load error application (class<br>
&gt;&gt;&gt;&gt; org.hibernate.jpa.HibernatePersistenceProvider)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.lookupProvider(PersistenceUnitServiceHandler.java:985)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.addPuService(PersistenceUnitServiceHandler.java:267)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.handleWarDeployment(PersistenceUnitServiceHandler.java:200)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.deploy(PersistenceUnitServiceHandler.java:131)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.processor.PersistenceBeginInstallProcessor.deploy(PersistenceBeginInstallProcessor.java:52)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156)<br>
&gt;&gt;&gt;&gt; [wildfly-server-1.0.0.CR1.jar:1.0.0.CR1]<br>
&gt;&gt;&gt;&gt; ... 5 more<br>
&gt;&gt;&gt;&gt; Caused by: org.jboss.modules.ModuleNotFoundException: application:main<br>
&gt;&gt;&gt;&gt; at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:236)<br>
&gt;&gt;&gt;&gt; [jboss-modules.jar:1.4.3.Final]<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.persistenceprovider.PersistenceProviderLoader.loadProviderModuleByName(PersistenceProviderLoader.java:65)<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.lookupProvider(PersistenceUnitServiceHandler.java:978)<br>
&gt;&gt;&gt;&gt; ... 10 more<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Remarks:<br>
&gt;&gt;&gt;&gt;    - it&#39;s attempting to load the &quot;application:main&quot; module?! that&#39;s not<br>
&gt;&gt;&gt;&gt; what I&#39;d expect from reading [1]<br>
&gt;&gt;&gt;&gt;    - the provider should be available to the deployment classpath, so<br>
&gt;&gt;&gt;&gt; I&#39;m not sure why it&#39;s not finding the Provider? (I&#39;m even exporting<br>
&gt;&gt;&gt;&gt; it, although I&#39;m not sure if that was required).<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Any suggestions to get this running please?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Also I wonder if some of these should warrant opening a JIRA, but I&#39;m<br>
&gt;&gt;&gt;&gt; not sure how far I misunderstood the intentions of these JPA deployer<br>
&gt;&gt;&gt;&gt; properties.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt;&gt; Sanne<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; [1] -<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="https://docs.jboss.org/author/display/WFLY9/JPA+Reference+Guide#JPAReferenceGuide-Persistenceunitproperties" target="_blank">https://docs.jboss.org/author/display/WFLY9/JPA+Reference+Guide#JPAReferenceGuide-Persistenceunitproperties</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;<br>
_______________________________________________<br>
wildfly-dev mailing list<br>
<a href="mailto:wildfly-dev@lists.jboss.org" target="_blank">wildfly-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/wildfly-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/wildfly-dev</a><br>
</blockquote></div>