From d217eb531ec29228c4415048f48e4af2096b2952 Mon Sep 17 00:00:00 2001 From: hieplq Date: Sat, 4 Nov 2023 19:09:27 +0700 Subject: [PATCH] IDEMPIERE-5903 support multiple webservice project (#2084) * IDEMPIERE-5903:support multi webservice project (issue 1:There is an endpoint already running on/rest) https://stackoverflow.com/a/49553239/4037367 * IDEMPIERE-5903:support multi webservice project (reuse resource) * IDEMPIERE-5903:support multi webservice project (fix comment review) --- .../idempiere-server.bat | 1 + .../idempiere-server.sh | 1 + org.adempiere.server-feature/server.product | 2 +- .../server.product.functionaltest.launch | 1 + .../server.product.launch | 3 +- org.idempiere.javadoc/build.properties | 1 + org.idempiere.p2/server.product | 18 ++--- org.idempiere.test/idempiere.unit.test.launch | 1 + .../idempiere.unit.test.parallel.launch | 3 +- org.idempiere.webservices-feature/feature.xml | 7 ++ .../.classpath | 11 +++ org.idempiere.webservices.resources/.project | 34 ++++++++++ .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.m2e.core.prefs | 4 ++ .../.settings/org.eclipse.pde.core.prefs | 4 ++ .../META-INF/MANIFEST.MF | 25 +++++++ .../META-INF/cxf/cxf-servlet.xml | 0 .../build.properties | 4 ++ org.idempiere.webservices.resources/pom.xml | 13 ++++ .../resources/ContextLoaderListener.java | 68 +++++++++++++++++++ .../src/schemas/configuration/cxf-beans.xsd | 0 .../src/schemas/configuration/extension.xsd | 0 .../configuration/parameterized-types.xsd | 0 .../src/schemas/configuration/security.xsd | 0 .../src/schemas/jaxrs-common.xsd | 0 .../src/schemas/jaxrs.xsd | 0 .../src/schemas/jaxws.xsd | 0 .../META-INF/MANIFEST.MF | 3 +- .../trekglobal/ws/ContextLoaderListener.java | 32 --------- .../webservices/xml}/rest-context.xml | 0 .../idempiere/webservices/xml}/services.xml | 0 org.idempiere.webservices/WEB-INF/web.xml | 7 +- pom.xml | 1 + 33 files changed, 197 insertions(+), 49 deletions(-) create mode 100644 org.idempiere.webservices.resources/.classpath create mode 100644 org.idempiere.webservices.resources/.project create mode 100644 org.idempiere.webservices.resources/.settings/org.eclipse.core.resources.prefs create mode 100644 org.idempiere.webservices.resources/.settings/org.eclipse.m2e.core.prefs create mode 100644 org.idempiere.webservices.resources/.settings/org.eclipse.pde.core.prefs create mode 100644 org.idempiere.webservices.resources/META-INF/MANIFEST.MF rename {org.idempiere.webservices => org.idempiere.webservices.resources}/META-INF/cxf/cxf-servlet.xml (100%) create mode 100644 org.idempiere.webservices.resources/build.properties create mode 100644 org.idempiere.webservices.resources/pom.xml create mode 100644 org.idempiere.webservices.resources/src/org/idempiere/webservices/resources/ContextLoaderListener.java rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/configuration/cxf-beans.xsd (100%) rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/configuration/extension.xsd (100%) rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/configuration/parameterized-types.xsd (100%) rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/configuration/security.xsd (100%) rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/jaxrs-common.xsd (100%) rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/jaxrs.xsd (100%) rename {org.idempiere.webservices/WEB-INF => org.idempiere.webservices.resources}/src/schemas/jaxws.xsd (100%) delete mode 100644 org.idempiere.webservices/WEB-INF/src/com/trekglobal/ws/ContextLoaderListener.java rename org.idempiere.webservices/{META-INF/cxf => WEB-INF/src/org/idempiere/webservices/xml}/rest-context.xml (100%) rename org.idempiere.webservices/{META-INF/cxf => WEB-INF/src/org/idempiere/webservices/xml}/services.xml (100%) diff --git a/org.adempiere.server-feature/idempiere-server.bat b/org.adempiere.server-feature/idempiere-server.bat index 74a3ac6466..a6242264ff 100644 --- a/org.adempiere.server-feature/idempiere-server.bat +++ b/org.adempiere.server-feature/idempiere-server.bat @@ -25,6 +25,7 @@ FOR %%c in (plugins\org.eclipse.equinox.launcher_1.*.jar) DO set JARFILE=%%c @Set VMOPTS=%VMOPTS% -Djetty.home=jettyhome @Set VMOPTS=%VMOPTS% -Djetty.base=jettyhome @Set VMOPTS=%VMOPTS% -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml,etc/jetty-http-forwarded.xml +@Set VMOPTS=%VMOPTS% -Dorg.apache.cxf.osgi.http.transport.disable=true @Set VMOPTS=%VMOPTS% -Dosgi.console=localhost:12612 @Set VMOPTS=%VMOPTS% -Dmail.mime.encodefilename=true @Set VMOPTS=%VMOPTS% -Dmail.mime.decodefilename=true diff --git a/org.adempiere.server-feature/idempiere-server.sh b/org.adempiere.server-feature/idempiere-server.sh index 5db874879f..d3b56a3d76 100644 --- a/org.adempiere.server-feature/idempiere-server.sh +++ b/org.adempiere.server-feature/idempiere-server.sh @@ -31,6 +31,7 @@ VMOPTS="-Dorg.osgi.framework.bootdelegation=sun.security.ssl -Djetty.home=$BASE/jettyhome -Djetty.base=$BASE/jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml,etc/jetty-http-forwarded.xml +-Dorg.apache.cxf.osgi.http.transport.disable=true -Dosgi.console=$HOST:$TELNET_PORT -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true diff --git a/org.adempiere.server-feature/server.product b/org.adempiere.server-feature/server.product index 399d63e535..53e325379e 100644 --- a/org.adempiere.server-feature/server.product +++ b/org.adempiere.server-feature/server.product @@ -9,7 +9,7 @@ -console - --add-modules=java.se --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.sql.rowset/com.sun.rowset=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -Declipse.product=org.adempiere.server.product -Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -Dorg.osgi.framework.bootdelegation=sun.security.ssl -Dosgi.compatibility.bootdelegation=true -Djetty.home=jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml,etc/jetty-http-forwarded.xml -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true -Dmail.mime.encodeparameters=true -Dmail.mime.decodeparameters=true -Dhazelcast.config=hazelcast.xml + --add-modules=java.se --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.sql.rowset/com.sun.rowset=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -Declipse.product=org.adempiere.server.product -Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -Dorg.osgi.framework.bootdelegation=sun.security.ssl -Dosgi.compatibility.bootdelegation=true -Djetty.home=jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml,etc/jetty-http-forwarded.xml -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true -Dmail.mime.encodeparameters=true -Dmail.mime.decodeparameters=true -Dhazelcast.config=hazelcast.xml -Dorg.apache.cxf.osgi.http.transport.disable=true -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts diff --git a/org.adempiere.server-feature/server.product.functionaltest.launch b/org.adempiere.server-feature/server.product.functionaltest.launch index a52a9600ca..cf72d561b5 100644 --- a/org.adempiere.server-feature/server.product.functionaltest.launch +++ b/org.adempiere.server-feature/server.product.functionaltest.launch @@ -441,6 +441,7 @@ + diff --git a/org.adempiere.server-feature/server.product.launch b/org.adempiere.server-feature/server.product.launch index e64e4fa5fa..3e8abce8a1 100644 --- a/org.adempiere.server-feature/server.product.launch +++ b/org.adempiere.server-feature/server.product.launch @@ -53,7 +53,7 @@ - + @@ -441,6 +441,7 @@ + diff --git a/org.idempiere.javadoc/build.properties b/org.idempiere.javadoc/build.properties index bef6692cd6..ca3ad901f4 100644 --- a/org.idempiere.javadoc/build.properties +++ b/org.idempiere.javadoc/build.properties @@ -24,6 +24,7 @@ jars.extra.classpath = platform:/plugin/org.adempiere.base/,\ platform:/plugin/org.idempiere.felix.webconsole/,\ platform:/plugin/org.idempiere.hazelcast.service/,\ platform:/plugin/org.idempiere.webservices/,\ + platform:/plugin/org.idempiere.webservices.resources/,\ platform:/plugin/org.idempiere.zk.extra/,\ platform:/plugin/org.idempiere.keikai,\ platform:/plugin/org.idempiere.printformat.editor,\ diff --git a/org.idempiere.p2/server.product b/org.idempiere.p2/server.product index 399d63e535..3540ad5e52 100644 --- a/org.idempiere.p2/server.product +++ b/org.idempiere.p2/server.product @@ -1,7 +1,7 @@ - + @@ -9,7 +9,7 @@ -console - --add-modules=java.se --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.sql.rowset/com.sun.rowset=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -Declipse.product=org.adempiere.server.product -Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -Dorg.osgi.framework.bootdelegation=sun.security.ssl -Dosgi.compatibility.bootdelegation=true -Djetty.home=jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml,etc/jetty-http-forwarded.xml -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true -Dmail.mime.encodeparameters=true -Dmail.mime.decodeparameters=true -Dhazelcast.config=hazelcast.xml + --add-modules=java.se --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.sql.rowset/com.sun.rowset=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -Declipse.product=org.adempiere.server.product -Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -Dorg.osgi.framework.bootdelegation=sun.security.ssl -Dosgi.compatibility.bootdelegation=true -Djetty.home=jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml,etc/jetty-http-forwarded.xml -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true -Dmail.mime.encodeparameters=true -Dmail.mime.decodeparameters=true -Dhazelcast.config=hazelcast.xml -Dorg.apache.cxf.osgi.http.transport.disable=true -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts @@ -61,15 +61,15 @@ - - - - - - - + + + + + + + diff --git a/org.idempiere.test/idempiere.unit.test.launch b/org.idempiere.test/idempiere.unit.test.launch index 4b661bca8f..f5deb51a37 100644 --- a/org.idempiere.test/idempiere.unit.test.launch +++ b/org.idempiere.test/idempiere.unit.test.launch @@ -419,6 +419,7 @@ + diff --git a/org.idempiere.test/idempiere.unit.test.parallel.launch b/org.idempiere.test/idempiere.unit.test.parallel.launch index 1b06f3fce0..383bce992d 100644 --- a/org.idempiere.test/idempiere.unit.test.parallel.launch +++ b/org.idempiere.test/idempiere.unit.test.parallel.launch @@ -255,7 +255,7 @@ - + @@ -419,6 +419,7 @@ + diff --git a/org.idempiere.webservices-feature/feature.xml b/org.idempiere.webservices-feature/feature.xml index 2cad2700e0..66048b6d7e 100644 --- a/org.idempiere.webservices-feature/feature.xml +++ b/org.idempiere.webservices-feature/feature.xml @@ -346,4 +346,11 @@ version="0.0.0" unpack="false"/> + + diff --git a/org.idempiere.webservices.resources/.classpath b/org.idempiere.webservices.resources/.classpath new file mode 100644 index 0000000000..fe1a205326 --- /dev/null +++ b/org.idempiere.webservices.resources/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/org.idempiere.webservices.resources/.project b/org.idempiere.webservices.resources/.project new file mode 100644 index 0000000000..0ea259e624 --- /dev/null +++ b/org.idempiere.webservices.resources/.project @@ -0,0 +1,34 @@ + + + org.idempiere.webservices.resources + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.idempiere.webservices.resources/.settings/org.eclipse.core.resources.prefs b/org.idempiere.webservices.resources/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..99f26c0203 --- /dev/null +++ b/org.idempiere.webservices.resources/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/org.idempiere.webservices.resources/.settings/org.eclipse.m2e.core.prefs b/org.idempiere.webservices.resources/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000..f897a7f1cb --- /dev/null +++ b/org.idempiere.webservices.resources/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/org.idempiere.webservices.resources/.settings/org.eclipse.pde.core.prefs b/org.idempiere.webservices.resources/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 0000000000..e8ff8be0ba --- /dev/null +++ b/org.idempiere.webservices.resources/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +pluginProject.equinox=false +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/org.idempiere.webservices.resources/META-INF/MANIFEST.MF b/org.idempiere.webservices.resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..231c71bb28 --- /dev/null +++ b/org.idempiere.webservices.resources/META-INF/MANIFEST.MF @@ -0,0 +1,25 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Web Services Helper Resource Lookup +Bundle-SymbolicName: org.idempiere.webservices.resources;singleton:=true +Bundle-Version: 11.0.0.qualifier +Export-Package: META-INF.cxf, + org.idempiere.webservices.resources, + schemas, + schemas.configuration +Import-Package: javax.servlet;version="4.0.0", + org.compiere.util, + org.eclipse.jetty.osgi.boot;version="10.0.9", + org.eclipse.jetty.server.handler;version="10.0.9", + org.eclipse.jetty.servlet;version="10.0.9", + org.eclipse.jetty.util;version="10.0.9", + org.eclipse.jetty.webapp;version="10.0.9", + org.osgi.framework;version="1.10.0", + org.osgi.framework.wiring;version="1.2.0", + org.springframework.web.context;version="5.2.22.RELEASE" +Bundle-Vendor: Idempiere +Automatic-Module-Name: org.idempiere.webservices.resources +Bundle-ActivationPolicy: lazy +Bundle-ClassPath: . +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=17))" diff --git a/org.idempiere.webservices/META-INF/cxf/cxf-servlet.xml b/org.idempiere.webservices.resources/META-INF/cxf/cxf-servlet.xml similarity index 100% rename from org.idempiere.webservices/META-INF/cxf/cxf-servlet.xml rename to org.idempiere.webservices.resources/META-INF/cxf/cxf-servlet.xml diff --git a/org.idempiere.webservices.resources/build.properties b/org.idempiere.webservices.resources/build.properties new file mode 100644 index 0000000000..56d7765555 --- /dev/null +++ b/org.idempiere.webservices.resources/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/org.idempiere.webservices.resources/pom.xml b/org.idempiere.webservices.resources/pom.xml new file mode 100644 index 0000000000..a1b4a9d860 --- /dev/null +++ b/org.idempiere.webservices.resources/pom.xml @@ -0,0 +1,13 @@ + + 4.0.0 + org.idempiere.webservices.resources + + org.idempiere + org.idempiere.parent + ${revision} + ../org.idempiere.parent/pom.xml + + eclipse-plugin + Web Services Helper Resource Lookup + Bundle to provide resources for cfx and spring" + \ No newline at end of file diff --git a/org.idempiere.webservices.resources/src/org/idempiere/webservices/resources/ContextLoaderListener.java b/org.idempiere.webservices.resources/src/org/idempiere/webservices/resources/ContextLoaderListener.java new file mode 100644 index 0000000000..3f6ba71729 --- /dev/null +++ b/org.idempiere.webservices.resources/src/org/idempiere/webservices/resources/ContextLoaderListener.java @@ -0,0 +1,68 @@ +/****************************************************************************** + * Copyright (C) 2012 Trek Global * + * Product: iDempiere ERP & CRM Smart Business Solution * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + *****************************************************************************/ +package org.idempiere.webservices.resources; +import javax.servlet.ServletContextEvent; + +import org.compiere.util.CLogger; +import org.eclipse.jetty.osgi.boot.OSGiWebappConstants; +import org.eclipse.jetty.server.handler.ContextHandler; +import org.osgi.framework.BundleContext; +import org.osgi.framework.wiring.BundleWiring; + +/** + * @author hengsin + * + * + */ +public class ContextLoaderListener extends + org.springframework.web.context.ContextLoaderListener { + + private static final CLogger log = CLogger.getCLogger(ContextLoaderListener.class); + /** + * + */ + public ContextLoaderListener() { + } + + @Override + public void contextInitialized(ServletContextEvent event) { + Object bundleContextObj = null; + if (event.getSource() != null && event.getSource() instanceof ContextHandler.StaticContext) { + ContextHandler.StaticContext staticContext = (ContextHandler.StaticContext)event.getSource(); + bundleContextObj = staticContext.getAttribute(OSGiWebappConstants.OSGI_BUNDLECONTEXT); + } + + // get ClassLoader of web app is loading + ClassLoader webappBundleCl = null; + if (bundleContextObj != null && bundleContextObj instanceof BundleContext) { + BundleContext webappBundleContext = (BundleContext)bundleContextObj; + webappBundleCl = webappBundleContext.getBundle().adapt(BundleWiring.class).getClassLoader(); + } + + // set ClassLoader to load schema also + if (webappBundleCl != null) { + ClassLoader currentCl = Thread.currentThread().getContextClassLoader(); + try { + Thread.currentThread().setContextClassLoader(webappBundleCl); + super.contextInitialized(event); + } finally { + Thread.currentThread().setContextClassLoader(currentCl); + } + }else { + log.warning("can't findout ClassLoader for web service:" + event.getServletContext().getContextPath()); + } + + } + +} diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/configuration/cxf-beans.xsd b/org.idempiere.webservices.resources/src/schemas/configuration/cxf-beans.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/configuration/cxf-beans.xsd rename to org.idempiere.webservices.resources/src/schemas/configuration/cxf-beans.xsd diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/configuration/extension.xsd b/org.idempiere.webservices.resources/src/schemas/configuration/extension.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/configuration/extension.xsd rename to org.idempiere.webservices.resources/src/schemas/configuration/extension.xsd diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/configuration/parameterized-types.xsd b/org.idempiere.webservices.resources/src/schemas/configuration/parameterized-types.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/configuration/parameterized-types.xsd rename to org.idempiere.webservices.resources/src/schemas/configuration/parameterized-types.xsd diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/configuration/security.xsd b/org.idempiere.webservices.resources/src/schemas/configuration/security.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/configuration/security.xsd rename to org.idempiere.webservices.resources/src/schemas/configuration/security.xsd diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/jaxrs-common.xsd b/org.idempiere.webservices.resources/src/schemas/jaxrs-common.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/jaxrs-common.xsd rename to org.idempiere.webservices.resources/src/schemas/jaxrs-common.xsd diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/jaxrs.xsd b/org.idempiere.webservices.resources/src/schemas/jaxrs.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/jaxrs.xsd rename to org.idempiere.webservices.resources/src/schemas/jaxrs.xsd diff --git a/org.idempiere.webservices/WEB-INF/src/schemas/jaxws.xsd b/org.idempiere.webservices.resources/src/schemas/jaxws.xsd similarity index 100% rename from org.idempiere.webservices/WEB-INF/src/schemas/jaxws.xsd rename to org.idempiere.webservices.resources/src/schemas/jaxws.xsd diff --git a/org.idempiere.webservices/META-INF/MANIFEST.MF b/org.idempiere.webservices/META-INF/MANIFEST.MF index b1ef93743d..57390530e5 100644 --- a/org.idempiere.webservices/META-INF/MANIFEST.MF +++ b/org.idempiere.webservices/META-INF/MANIFEST.MF @@ -108,7 +108,8 @@ Require-Bundle: org.adempiere.base;bundle-version="0.0.0", wrapped.org.springframework.spring-web;bundle-version="5.2.15", org.codehaus.jettison.jettison;bundle-version="1.4.1", org.eclipse.osgi, - jakarta.annotation-api;bundle-version="1.3.5" + jakarta.annotation-api;bundle-version="1.3.5", + org.idempiere.webservices.resources;bundle-version="11.0.0" Bundle-ClassPath: ., lib/idempiere-xmlbeans.jar Export-Package: org.idempiere.webservices.model, diff --git a/org.idempiere.webservices/WEB-INF/src/com/trekglobal/ws/ContextLoaderListener.java b/org.idempiere.webservices/WEB-INF/src/com/trekglobal/ws/ContextLoaderListener.java deleted file mode 100644 index b053d1f71d..0000000000 --- a/org.idempiere.webservices/WEB-INF/src/com/trekglobal/ws/ContextLoaderListener.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * - */ -package com.trekglobal.ws; - -import javax.servlet.ServletContextEvent; - -/** - * @author hengsin - * - */ -public class ContextLoaderListener extends - org.springframework.web.context.ContextLoaderListener { - - /** - * - */ - public ContextLoaderListener() { - } - - @Override - public void contextInitialized(ServletContextEvent event) { - ClassLoader cl = Thread.currentThread().getContextClassLoader(); - try { - Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); - super.contextInitialized(event); - } finally { - Thread.currentThread().setContextClassLoader(cl); - } - } - -} diff --git a/org.idempiere.webservices/META-INF/cxf/rest-context.xml b/org.idempiere.webservices/WEB-INF/src/org/idempiere/webservices/xml/rest-context.xml similarity index 100% rename from org.idempiere.webservices/META-INF/cxf/rest-context.xml rename to org.idempiere.webservices/WEB-INF/src/org/idempiere/webservices/xml/rest-context.xml diff --git a/org.idempiere.webservices/META-INF/cxf/services.xml b/org.idempiere.webservices/WEB-INF/src/org/idempiere/webservices/xml/services.xml similarity index 100% rename from org.idempiere.webservices/META-INF/cxf/services.xml rename to org.idempiere.webservices/WEB-INF/src/org/idempiere/webservices/xml/services.xml diff --git a/org.idempiere.webservices/WEB-INF/web.xml b/org.idempiere.webservices/WEB-INF/web.xml index f90b602498..c6c8dc0755 100644 --- a/org.idempiere.webservices/WEB-INF/web.xml +++ b/org.idempiere.webservices/WEB-INF/web.xml @@ -6,14 +6,13 @@ contextConfigLocation - classpath:/META-INF/cxf/services.xml - classpath:/META-INF/cxf/rest-context.xml + classpath:/org/idempiere/webservices/xml/services.xml + classpath:/org/idempiere/webservices/xml/rest-context.xml - - com.trekglobal.ws.ContextLoaderListener + org.idempiere.webservices.resources.ContextLoaderListener diff --git a/pom.xml b/pom.xml index 9dcbcf11dd..2613ac5d84 100644 --- a/pom.xml +++ b/pom.xml @@ -34,6 +34,7 @@ org.idempiere.felix.webconsole org.idempiere.hazelcast.service org.idempiere.webservices + org.idempiere.webservices.resources org.idempiere.webservices-feature org.idempiere.zk.extra org.idempiere.keikai