TOMEE-2330 fix issue with incorrect base URL for generated persistence units
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/68004b36 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/68004b36 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/68004b36 Branch: refs/heads/tomee-7.0.x Commit: 68004b36d8140a822d69230362add911868683ba Parents: 9946dfe Author: Jonathan Gallimore <[email protected]> Authored: Mon Dec 10 14:16:43 2018 +0000 Committer: Otavio Santana <[email protected]> Committed: Mon Dec 17 08:58:51 2018 -0200 ---------------------------------------------------------------------- .../arquillian/tests/cmp/CmpMappingTest.java | 58 ++++++++++++++++++++ .../arquillian/tests/cmp/CmpServlet.java | 30 ++++++++++ .../apache/openejb/config/CmpJpaConversion.java | 4 +- 3 files changed, 90 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/68004b36/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpMappingTest.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpMappingTest.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpMappingTest.java new file mode 100644 index 0000000..4c8cf41 --- /dev/null +++ b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpMappingTest.java @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.arquillian.tests.cmp; + +import org.apache.ziplock.IO; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.container.test.api.RunAsClient; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.arquillian.test.api.ArquillianResource; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.net.URL; + +/** + * @version $Rev$ $Date$ + */ +@RunWith(Arquillian.class) +public class CmpMappingTest { + + @ArquillianResource + private URL url; + + @Deployment(testable = false) + public static WebArchive createDeployment() { + WebArchive archive = ShrinkWrap.create(WebArchive.class, CmpMappingTest.class.getSimpleName() + ".war") + .addClasses(CmpServlet.class, MyCmpBean.class, MyLocalHome.class, MyLocalObject.class, MyRemoteHome.class, MyRemoteObject.class) + .addAsWebInfResource(new ClassLoaderAsset("org/apache/openejb/arquillian/tests/cmp/openejb-cmp-orm.xml"), "openejb-cmp-orm.xml") + .addAsWebInfResource(new ClassLoaderAsset("org/apache/openejb/arquillian/tests/cmp/ejb-jar.xml"), "ejb-jar.xml"); + + System.out.println(archive.toString(true)); + return archive; + } + + @Test + @RunAsClient + public void checkCmpJpaEntityORMMappings() throws Exception { + final String output = IO.readString(new URL(url.toExternalForm())); + System.out.println(output); + } +} http://git-wip-us.apache.org/repos/asf/tomee/blob/68004b36/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpServlet.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpServlet.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpServlet.java new file mode 100644 index 0000000..c843a9c --- /dev/null +++ b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/cmp/CmpServlet.java @@ -0,0 +1,30 @@ +package org.apache.openejb.arquillian.tests.cmp; + +import org.apache.openejb.assembler.classic.AppInfo; +import org.apache.openejb.assembler.classic.Assembler; +import org.apache.openejb.loader.SystemInstance; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Collection; + +@WebServlet(name="Cmp", urlPatterns = "/*") +public class CmpServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + + final Assembler assembler = SystemInstance.get().getComponent(Assembler.class); + final Collection<AppInfo> deployedApplications = assembler.getDeployedApplications(); + + for (final AppInfo deployedApplication : deployedApplications) { + if ("CmpMappingTest".equals(deployedApplication.appId)) { + final String cmpMappingsXml = deployedApplication.cmpMappingsXml; + resp.getWriter().write(cmpMappingsXml == null ? "null" : cmpMappingsXml); + } + } + } +} http://git-wip-us.apache.org/repos/asf/tomee/blob/68004b36/container/openejb-core/src/main/java/org/apache/openejb/config/CmpJpaConversion.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/CmpJpaConversion.java b/container/openejb-core/src/main/java/org/apache/openejb/config/CmpJpaConversion.java index ffe065a..b45de3e 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/CmpJpaConversion.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/CmpJpaConversion.java @@ -266,10 +266,10 @@ public class CmpJpaConversion implements DynamicDeployer { private String getPersistenceModuleId(final AppModule appModule) { if (appModule.getModuleId() != null) { - return appModule.getModuleId(); + return appModule.getJarLocation(); } for (final EjbModule ejbModule : appModule.getEjbModules()) { - return ejbModule.getModuleId(); + return ejbModule.getJarLocation(); } throw new IllegalStateException("Comp must be in an ejb module, this one has none: " + appModule); }
