From da38704be34fd8e199a1a762867c4dcc5572c929 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 29 Nov 2019 17:13:51 +0800 Subject: [PATCH] IDEMPIERE-4120 Refactor org.adempiere.eclipse.equinox.http.servlet --- .../model.generator.launch | 4 +- .../packinfolder.app.launch | 4 +- .../sign.database.build.launch | 4 +- .../synchronize-terminology.app.launch | 4 +- .../translation.app.launch | 4 +- .../META-INF/MANIFEST.MF | 5 +- .../equinox/http/servlet}/Activator.java | 2 +- .../equinox/http/servlet}/BridgeFilter.java | 178 ++++---- .../equinox/http/servlet}/BridgeServlet.java | 7 +- .../http/servlet}/DefaultHttpContext.java | 2 +- .../equinox/http/servlet/FilterChainImpl.java | 55 +++ .../http/servlet}/FilterConfigImpl.java | 2 +- .../http/servlet}/FilterRegistration.java | 27 +- .../http/servlet}/HttpServiceImpl.java | 2 +- .../http/servlet}/HttpServiceProxy.java | 2 +- .../servlet}/HttpServiceProxyFactory.java | 2 +- .../servlet}/HttpServletRequestAdaptor.java | 2 +- .../http/servlet}/HttpSessionAdaptor.java | 2 +- .../equinox/http/servlet}/ProxyContext.java | 2 +- .../equinox/http/servlet}/ProxyServlet.java | 2 +- .../equinox/http/servlet}/Registration.java | 2 +- .../servlet}/RequestDispatcherAdaptor.java | 2 +- .../http/servlet}/ResourceServlet.java | 2 +- .../http/servlet}/ServletConfigImpl.java | 2 +- .../http/servlet}/ServletContextAdaptor.java | 2 +- .../http/servlet}/ServletRegistration.java | 2 +- .../http/servlet/ExtendedHttpService.java | 55 --- .../http/servlet/HttpServiceServlet.java | 25 -- .../servlet/internal/FilterChainImpl.java | 30 -- .../servlet/internal/HttpServiceFactory.java | 36 -- .../.classpath | 11 - .../.project | 34 -- .../org.eclipse.core.resources.prefs | 2 - .../.settings/org.eclipse.jdt.core.prefs | 3 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../.settings/org.eclipse.pde.core.prefs | 4 - .../META-INF/MANIFEST.MF | 20 - .../about.html | 28 -- .../build.properties | 6 - .../plugin.properties | 4 - .../pom.xml | 12 - .../servletbridge/internal/Activator.java | 24 -- .../.classpath | 11 - .../.project | 40 -- .../.settings/.jsdtscope | 16 - .../org.eclipse.core.resources.prefs | 2 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../.settings/org.eclipse.pde.core.prefs | 4 - ...rg.eclipse.wst.jsdt.ui.superType.container | 1 - .../org.eclipse.wst.jsdt.ui.superType.name | 1 - .../META-INF/MANIFEST.MF | 18 - .../about.html | 28 -- .../build.properties | 6 - .../plugin.properties | 4 - .../pom.xml | 12 - .../CloseableURLClassLoader.java | 391 ------------------ org.adempiere.extend/SamplePluginTest.launch | 7 +- org.adempiere.sdk-feature/idempiere.psf | 4 - org.adempiere.server-feature/feature.xml | 13 +- .../server.product.functionaltest.launch | 4 +- .../server.product.launch | 4 +- .../feature.xml | 23 +- org.adempiere.ui.swing/META-INF/MANIFEST.MF | 3 - .../META-INF/MANIFEST.MF | 3 + .../OSGI-INF/securityprovider.xml | 2 +- .../WEB-INF/web.xml | 17 +- org.idempiere.javadoc/build.properties | 3 - pom.xml | 2 - 69 files changed, 250 insertions(+), 1003 deletions(-) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/Activator.java (98%) rename {org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge => org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet}/BridgeFilter.java (95%) rename {org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge => org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet}/BridgeServlet.java (97%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/DefaultHttpContext.java (96%) create mode 100644 org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterChainImpl.java rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/FilterConfigImpl.java (97%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/FilterRegistration.java (67%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/HttpServiceImpl.java (98%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/HttpServiceProxy.java (99%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/HttpServiceProxyFactory.java (98%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/HttpServletRequestAdaptor.java (99%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/HttpSessionAdaptor.java (97%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/ProxyContext.java (98%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/ProxyServlet.java (99%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/Registration.java (96%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/RequestDispatcherAdaptor.java (96%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/ResourceServlet.java (99%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/ServletConfigImpl.java (97%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/ServletContextAdaptor.java (99%) rename org.adempiere.eclipse.equinox.http.servlet/src/org/{eclipse/equinox/http/servlet/internal => adempiere/eclipse/equinox/http/servlet}/ServletRegistration.java (98%) delete mode 100644 org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/ExtendedHttpService.java delete mode 100644 org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/HttpServiceServlet.java delete mode 100644 org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterChainImpl.java delete mode 100644 org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceFactory.java delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/.classpath delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/.project delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.core.resources.prefs delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.jdt.core.prefs delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.m2e.core.prefs delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.pde.core.prefs delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/META-INF/MANIFEST.MF delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/about.html delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/build.properties delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/plugin.properties delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/pom.xml delete mode 100644 org.adempiere.eclipse.equinox.http.servletbridge/src/org/eclipse/equinox/http/servletbridge/internal/Activator.java delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.classpath delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.project delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/.jsdtscope delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.core.resources.prefs delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.jdt.core.prefs delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.m2e.core.prefs delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.pde.core.prefs delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.container delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.name delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/META-INF/MANIFEST.MF delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/about.html delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/build.properties delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/plugin.properties delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/pom.xml delete mode 100644 org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/CloseableURLClassLoader.java diff --git a/org.adempiere.base-feature/model.generator.launch b/org.adempiere.base-feature/model.generator.launch index e6838a2b28..1d33e18650 100644 --- a/org.adempiere.base-feature/model.generator.launch +++ b/org.adempiere.base-feature/model.generator.launch @@ -27,8 +27,8 @@ - - + + diff --git a/org.adempiere.base-feature/packinfolder.app.launch b/org.adempiere.base-feature/packinfolder.app.launch index d2edb0562b..17bde83d31 100644 --- a/org.adempiere.base-feature/packinfolder.app.launch +++ b/org.adempiere.base-feature/packinfolder.app.launch @@ -27,8 +27,8 @@ - - + + diff --git a/org.adempiere.base-feature/sign.database.build.launch b/org.adempiere.base-feature/sign.database.build.launch index b51d6c63ee..f538b15e3f 100644 --- a/org.adempiere.base-feature/sign.database.build.launch +++ b/org.adempiere.base-feature/sign.database.build.launch @@ -27,8 +27,8 @@ - - + + diff --git a/org.adempiere.base-feature/synchronize-terminology.app.launch b/org.adempiere.base-feature/synchronize-terminology.app.launch index cb7b16e30a..898f027a54 100644 --- a/org.adempiere.base-feature/synchronize-terminology.app.launch +++ b/org.adempiere.base-feature/synchronize-terminology.app.launch @@ -27,8 +27,8 @@ - - + + diff --git a/org.adempiere.base-feature/translation.app.launch b/org.adempiere.base-feature/translation.app.launch index 94581fd6b1..d460f914cc 100644 --- a/org.adempiere.base-feature/translation.app.launch +++ b/org.adempiere.base-feature/translation.app.launch @@ -27,8 +27,8 @@ - - + + diff --git a/org.adempiere.eclipse.equinox.http.servlet/META-INF/MANIFEST.MF b/org.adempiere.eclipse.equinox.http.servlet/META-INF/MANIFEST.MF index 9dc153ea7e..931b38d761 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/META-INF/MANIFEST.MF +++ b/org.adempiere.eclipse.equinox.http.servlet/META-INF/MANIFEST.MF @@ -7,8 +7,8 @@ Eclipse-LazyStart: true Eclipse-SourceReferences: scm:cvs:pserver:dev.eclipse.org:/cvsroot/rt: org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.servl et;tag=v20100503 -Bundle-Activator: org.eclipse.equinox.http.servlet.internal.Activator -Export-Package: org.eclipse.equinox.http.servlet;version="1.1.0" +Bundle-Activator: org.adempiere.eclipse.equinox.http.servlet.Activator +Export-Package: org.adempiere.eclipse.equinox.http.servlet Bundle-Version: 7.1.0.qualifier Bundle-ActivationPolicy: lazy Bundle-Vendor: %providerName @@ -18,6 +18,7 @@ Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are Import-Package: javax.servlet;version="2.3", javax.servlet.descriptor;version="3.0.0", javax.servlet.http;version="2.3", + org.eclipse.equinox.http.servlet;version="1.2.0", org.osgi.framework;version="1.3.0", org.osgi.service.http;version="1.2.0" Bundle-ManifestVersion: 2 diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/Activator.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/Activator.java similarity index 98% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/Activator.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/Activator.java index bb51de7b5b..c56b9b3b01 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/Activator.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/Activator.java @@ -10,7 +10,7 @@ * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.*; import org.eclipse.equinox.http.servlet.ExtendedHttpService; diff --git a/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/BridgeFilter.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/BridgeFilter.java similarity index 95% rename from org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/BridgeFilter.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/BridgeFilter.java index 084bfa0b47..34db269486 100644 --- a/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/BridgeFilter.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/BridgeFilter.java @@ -1,89 +1,89 @@ -/******************************************************************************* - * Copyright (c) 2010 Angelo Zerr and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Angelo Zerr - give the capability to use resources (JSP, HTML, Servlet...) - * from the Bridge webapp with HTTP Filter. - *******************************************************************************/ -package org.eclipse.equinox.servletbridge; - -import java.io.IOException; -import java.util.Enumeration; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * - * {@link BridgeServlet} which implements HTTP {@link Filter} to declare "BridgeServlet" as an HTTP Filter (see >=2.3 Servlet spec): - * - *
- *   
- *     equinoxbridgeservlet
- *     org.eclipse.equinox.servletbridge.BridgeFilter
- *   
- *   ...
- *	
-		equinoxbridgeservlet
-		/*
-	
- *  
- * - */ -public class BridgeFilter extends BridgeServlet implements Filter { - - private static final long serialVersionUID = 1309373924501049438L; - - private ServletConfigAdaptor servletConfig; - - public void init(FilterConfig filterConfig) throws ServletException { - this.servletConfig = new ServletConfigAdaptor(filterConfig); - super.init(); - } - - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - HttpServletRequest req = (HttpServletRequest) request; - HttpServletResponse resp = (HttpServletResponse) response; - // Call process class with FilterChain. - super.process(req, resp, chain); - } - - public ServletConfig getServletConfig() { - return servletConfig; - } - - /** - * - * Class which adapt {@link FilterConfig} to a {@link ServletConfig}. - * - */ - private static class ServletConfigAdaptor implements ServletConfig { - - private FilterConfig filterConfig; - - public ServletConfigAdaptor(FilterConfig filterConfig) { - this.filterConfig = filterConfig; - } - - public String getInitParameter(String arg0) { - return filterConfig.getInitParameter(arg0); - } - - public Enumeration getInitParameterNames() { - return filterConfig.getInitParameterNames(); - } - - public ServletContext getServletContext() { - return filterConfig.getServletContext(); - } - - public String getServletName() { - return filterConfig.getFilterName(); - } - - } -} +/******************************************************************************* + * Copyright (c) 2010 Angelo Zerr and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Angelo Zerr - give the capability to use resources (JSP, HTML, Servlet...) + * from the Bridge webapp with HTTP Filter. + *******************************************************************************/ +package org.adempiere.eclipse.equinox.http.servlet; + +import java.io.IOException; +import java.util.Enumeration; +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * {@link BridgeServlet} which implements HTTP {@link Filter} to declare "BridgeServlet" as an HTTP Filter (see >=2.3 Servlet spec): + * + *
+ *   
+ *     equinoxbridgeservlet
+ *     org.eclipse.equinox.servletbridge.BridgeFilter
+ *   
+ *   ...
+ *	
+		equinoxbridgeservlet
+		/*
+	
+ *  
+ * + */ +public class BridgeFilter extends BridgeServlet implements Filter { + + private static final long serialVersionUID = 1309373924501049438L; + + private ServletConfigAdaptor servletConfig; + + public void init(FilterConfig filterConfig) throws ServletException { + this.servletConfig = new ServletConfigAdaptor(filterConfig); + super.init(); + } + + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest) request; + HttpServletResponse resp = (HttpServletResponse) response; + // Call process class with FilterChain. + super.process(req, resp, chain); + } + + public ServletConfig getServletConfig() { + return servletConfig; + } + + /** + * + * Class which adapt {@link FilterConfig} to a {@link ServletConfig}. + * + */ + private static class ServletConfigAdaptor implements ServletConfig { + + private FilterConfig filterConfig; + + public ServletConfigAdaptor(FilterConfig filterConfig) { + this.filterConfig = filterConfig; + } + + public String getInitParameter(String arg0) { + return filterConfig.getInitParameter(arg0); + } + + public Enumeration getInitParameterNames() { + return filterConfig.getInitParameterNames(); + } + + public ServletContext getServletContext() { + return filterConfig.getServletContext(); + } + + public String getServletName() { + return filterConfig.getFilterName(); + } + + } +} diff --git a/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/BridgeServlet.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/BridgeServlet.java similarity index 97% rename from org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/BridgeServlet.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/BridgeServlet.java index 61388768f1..b5f1590d57 100644 --- a/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/BridgeServlet.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/BridgeServlet.java @@ -11,15 +11,14 @@ * Angelo Zerr - give the capability to use resources (JSP, HTML, Servlet...) * from the Bridge webapp with HTTP Filter. *******************************************************************************/ -package org.eclipse.equinox.servletbridge; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.IOException; import javax.servlet.*; import javax.servlet.http.*; -import org.eclipse.equinox.http.servlet.HttpServiceServlet; - /** + * Adapted from org.eclipse.equinox.servletbridge.BridgeServlet * The BridgeServlet provides a means to bridge the servlet and OSGi * runtimes. This class has 3 main responsibilities: * 1) Control the lifecycle of the associated FrameworkLauncher in line with its own lifecycle @@ -129,7 +128,7 @@ public class BridgeServlet extends HttpServlet { } private void initDelegate() throws ServletException { - delegate = new HttpServiceServlet(); + delegate = new ProxyServlet(); delegate.init(getServletConfig()); delegateIsFilter = (delegate instanceof Filter); } diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/DefaultHttpContext.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/DefaultHttpContext.java similarity index 96% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/DefaultHttpContext.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/DefaultHttpContext.java index b4d43fc5ab..850564088d 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/DefaultHttpContext.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/DefaultHttpContext.java @@ -10,7 +10,7 @@ * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.IOException; import java.net.URL; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterChainImpl.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterChainImpl.java new file mode 100644 index 0000000000..a14c0d602b --- /dev/null +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterChainImpl.java @@ -0,0 +1,55 @@ +/********************************************************************** +* This file is part of iDempiere ERP Open Source * +* http://www.idempiere.org * +* * +* Copyright (C) Contributors * +* * +* This program is free software; you can redistribute it and/or * +* modify it under the terms of the GNU General Public License * +* as published by the Free Software Foundation; either version 2 * +* of the License, or (at your option) any later version. * +* * +* 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., 51 Franklin Street, Fifth Floor, Boston, * +* MA 02110-1301, USA. * +* * +* Contributors: * +* - Trek Global Corporation * +* - Heng Sin Low * +**********************************************************************/ +package org.adempiere.eclipse.equinox.http.servlet; + +import java.io.IOException; +import java.util.List; +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class FilterChainImpl implements FilterChain { + + private List matchingFilterRegistrations; + private ServletRegistration registration; + private int filterIndex = 0; + private int filterCount; + + public FilterChainImpl(List matchingFilterRegistrations, ServletRegistration registration) { + this.matchingFilterRegistrations = matchingFilterRegistrations; + this.registration = registration; + this.filterCount = matchingFilterRegistrations.size(); + } + + public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { + if (filterIndex < filterCount) { + FilterRegistration filterRegistration = (FilterRegistration) matchingFilterRegistrations.get(filterIndex++); + filterRegistration.doFilter((HttpServletRequest) request, (HttpServletResponse) response, this); + return; + } + registration.service((HttpServletRequest) request, (HttpServletResponse) response); + } +} diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterConfigImpl.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterConfigImpl.java similarity index 97% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterConfigImpl.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterConfigImpl.java index 82440e47b9..c1fc3673b7 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterConfigImpl.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterConfigImpl.java @@ -8,7 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.*; import javax.servlet.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterRegistration.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterRegistration.java similarity index 67% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterRegistration.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterRegistration.java index 348c9e0668..fcb4961c1c 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterRegistration.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/FilterRegistration.java @@ -1,4 +1,29 @@ -package org.eclipse.equinox.http.servlet.internal; +/********************************************************************** +* This file is part of iDempiere ERP Open Source * +* http://www.idempiere.org * +* * +* Copyright (C) Contributors * +* * +* This program is free software; you can redistribute it and/or * +* modify it under the terms of the GNU General Public License * +* as published by the Free Software Foundation; either version 2 * +* of the License, or (at your option) any later version. * +* * +* 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., 51 Franklin Street, Fifth Floor, Boston, * +* MA 02110-1301, USA. * +* * +* Contributors: * +* - Trek Global Corporation * +* - Heng Sin Low * +**********************************************************************/ +package org.adempiere.eclipse.equinox.http.servlet; import java.io.IOException; import javax.servlet.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceImpl.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceImpl.java similarity index 98% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceImpl.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceImpl.java index a1b21c4e96..163cbaadc1 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceImpl.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceImpl.java @@ -10,7 +10,7 @@ * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.*; import javax.servlet.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceProxy.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceProxy.java similarity index 99% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceProxy.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceProxy.java index f156fdead9..ff1be6c0cb 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceProxy.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceProxy.java @@ -11,7 +11,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.ArrayList; import java.util.Dictionary; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceProxyFactory.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceProxyFactory.java similarity index 98% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceProxyFactory.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceProxyFactory.java index 937dd9d112..8eb94b9494 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceProxyFactory.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServiceProxyFactory.java @@ -11,7 +11,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.ArrayList; import java.util.HashMap; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServletRequestAdaptor.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServletRequestAdaptor.java similarity index 99% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServletRequestAdaptor.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServletRequestAdaptor.java index 761ff36b5f..c424df5adc 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServletRequestAdaptor.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpServletRequestAdaptor.java @@ -11,7 +11,7 @@ * Angelo Zerr - give the capability to use resources (JSP, HTML, Servlet...) * from the Bridge webapp with HTTP Filter. *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import javax.servlet.*; import javax.servlet.http.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpSessionAdaptor.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpSessionAdaptor.java similarity index 97% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpSessionAdaptor.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpSessionAdaptor.java index bdf59905d4..85169bf043 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpSessionAdaptor.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/HttpSessionAdaptor.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.Enumeration; import javax.servlet.Servlet; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ProxyContext.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ProxyContext.java similarity index 98% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ProxyContext.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ProxyContext.java index 5fd5b6b4c4..a5af14fa86 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ProxyContext.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ProxyContext.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.File; import java.util.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ProxyServlet.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ProxyServlet.java similarity index 99% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ProxyServlet.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ProxyServlet.java index 9b5bc22eff..0e52f9c64d 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ProxyServlet.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ProxyServlet.java @@ -11,7 +11,7 @@ * Angelo Zerr - give the capability to use resources (JSP, HTML, Servlet...) * from the Bridge webapp with HTTP Filter. *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.IOException; import java.security.AccessController; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/Registration.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/Registration.java similarity index 96% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/Registration.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/Registration.java index 155346aee6..232b5f2d90 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/Registration.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/Registration.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; public abstract class Registration { diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/RequestDispatcherAdaptor.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/RequestDispatcherAdaptor.java similarity index 96% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/RequestDispatcherAdaptor.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/RequestDispatcherAdaptor.java index 4e48e403a8..406f263fc5 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/RequestDispatcherAdaptor.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/RequestDispatcherAdaptor.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.IOException; import javax.servlet.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ResourceServlet.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ResourceServlet.java similarity index 99% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ResourceServlet.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ResourceServlet.java index bfcb3a8d99..eb6bc494aa 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ResourceServlet.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ResourceServlet.java @@ -11,7 +11,7 @@ * Angelo Zerr - give the capability to use resources (JSP, HTML, Servlet...) * from the Bridge webapp with HTTP Filter. *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.*; import java.net.URL; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletConfigImpl.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletConfigImpl.java similarity index 97% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletConfigImpl.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletConfigImpl.java index 1738c944db..0b43e29518 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletConfigImpl.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletConfigImpl.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.util.*; import javax.servlet.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletContextAdaptor.java similarity index 99% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletContextAdaptor.java index edec8e377d..c7cdda0cbd 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletContextAdaptor.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.*; import java.lang.reflect.Method; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletRegistration.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletRegistration.java similarity index 98% rename from org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletRegistration.java rename to org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletRegistration.java index 84cf5da32c..751fff94ba 100644 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/ServletRegistration.java +++ b/org.adempiere.eclipse.equinox.http.servlet/src/org/adempiere/eclipse/equinox/http/servlet/ServletRegistration.java @@ -9,7 +9,7 @@ * Cognos Incorporated - initial API and implementation * IBM Corporation - bug fixes and enhancements *******************************************************************************/ -package org.eclipse.equinox.http.servlet.internal; +package org.adempiere.eclipse.equinox.http.servlet; import java.io.IOException; import javax.servlet.*; diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/ExtendedHttpService.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/ExtendedHttpService.java deleted file mode 100644 index f8df39c460..0000000000 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/ExtendedHttpService.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.eclipse.equinox.http.servlet; - -import java.util.Dictionary; -import javax.servlet.Filter; -import javax.servlet.ServletException; -import org.osgi.service.http.*; - -/** - * @since 1.1 - */ -public interface ExtendedHttpService extends HttpService { - /** - * @param alias name in the URI namespace at which the filter is registered - * @param filter the filter object to register - * @param initparams initialization arguments for the filter or - * null if there are none. This argument is used by the - * filter's FilterConfig object. - * @param context the HttpContext object for the registered - * filter, or null if a default HttpContext is - * to be created and used. - * @throws javax.servlet.ServletException if the filter's init - * method throws an exception, or the given filter object has - * already been registered at a different alias. - * @throws java.lang.IllegalArgumentException if any of the arguments are - * invalid - */ - public void registerFilter(String alias, Filter filter, Dictionary initparams, HttpContext context) throws ServletException, NamespaceException; - - /** - * Unregisters a previous filter registration done by the - * registerFilter method. - * - *

- * After this call, the registered filter will no - * longer be available. The Http Service must call the destroy - * method of the filter before returning. - *

- * If the bundle which performed the registration is stopped or otherwise - * "unget"s the Http Service without calling {@link #unregisterFilter} then the Http - * Service must automatically unregister the filter registration. However, the - * destroy method of the filter will not be called in this case since - * the bundle may be stopped. - * {@link #unregisterFilter} must be explicitly called to cause the - * destroy method of the filter to be called. This can be done - * in the BundleActivator.stop method of the - * bundle registering the filter. - * - * @param filter the filter object to unregister - * @throws java.lang.IllegalArgumentException if there is no registration - * for the filter or the calling bundle was not the bundle which - * registered the filter. - */ - public void unregisterFilter(Filter filter); - -} diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/HttpServiceServlet.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/HttpServiceServlet.java deleted file mode 100644 index a511ae9c6d..0000000000 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/HttpServiceServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Cognos Incorporated, IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Cognos Incorporated - initial API and implementation - * IBM Corporation - bug fixes and enhancements - *******************************************************************************/ -package org.eclipse.equinox.http.servlet; - -import org.eclipse.equinox.http.servlet.internal.ProxyServlet; - -/** - * The HttpServiceServlet is the "public" side of a Servlet that when registered (and init() called) in a servlet container - * will in-turn register and provide an OSGi Http Service implementation. - * This class is not meant for extending or even using directly and is purely meant for registering - * in a servlet container. - * @noextend This class is not intended to be subclassed by clients. - */ -public class HttpServiceServlet extends ProxyServlet { - private static final long serialVersionUID = -3647550992964861187L; -} diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterChainImpl.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterChainImpl.java deleted file mode 100644 index ae94c5f1f3..0000000000 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/FilterChainImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.eclipse.equinox.http.servlet.internal; - -import java.io.IOException; -import java.util.List; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -public class FilterChainImpl implements FilterChain { - - private List matchingFilterRegistrations; - private ServletRegistration registration; - private int filterIndex = 0; - private int filterCount; - - public FilterChainImpl(List matchingFilterRegistrations, ServletRegistration registration) { - this.matchingFilterRegistrations = matchingFilterRegistrations; - this.registration = registration; - this.filterCount = matchingFilterRegistrations.size(); - } - - public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { - if (filterIndex < filterCount) { - FilterRegistration filterRegistration = (FilterRegistration) matchingFilterRegistrations.get(filterIndex++); - filterRegistration.doFilter((HttpServletRequest) request, (HttpServletResponse) response, this); - return; - } - registration.service((HttpServletRequest) request, (HttpServletResponse) response); - } -} diff --git a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceFactory.java b/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceFactory.java deleted file mode 100644 index 4c6ed3b034..0000000000 --- a/org.adempiere.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceFactory.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 Cognos Incorporated, IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Cognos Incorporated - initial API and implementation - * IBM Corporation - bug fixes and enhancements - *******************************************************************************/ - -package org.eclipse.equinox.http.servlet.internal; - -import org.osgi.framework.*; -import org.osgi.service.http.HttpService; - -// Factory to create http services. This is because the service needs to be customized for each bundle in order to implement the default resource lookups. -public class HttpServiceFactory implements ServiceFactory { - - private ProxyServlet proxy; - - public HttpServiceFactory(ProxyServlet proxy) { - this.proxy = proxy; - } - - public HttpService getService(Bundle bundle, ServiceRegistration registration) { - return new HttpServiceImpl(bundle, proxy); - } - - public void ungetService(Bundle bundle, ServiceRegistration registration, HttpService service) { - ((HttpServiceImpl) service).shutdown(); - - } - -} diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/.classpath b/org.adempiere.eclipse.equinox.http.servletbridge/.classpath deleted file mode 100644 index 423c974870..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/.classpath +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/.project b/org.adempiere.eclipse.equinox.http.servletbridge/.project deleted file mode 100644 index ddc1960c6e..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - org.adempiere.eclipse.equinox.http.servletbridge - - - - - - 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.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.core.resources.prefs b/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.jdt.core.prefs b/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 6783713ef0..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.release=enabled diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.m2e.core.prefs b/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1cb..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.pde.core.prefs b/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.pde.core.prefs deleted file mode 100644 index 7c19d8aff0..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/.settings/org.eclipse.pde.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 24 14:43:16 MYT 2010 -eclipse.preferences.version=1 -pluginProject.extensions=false -resolve.requirebundle=false diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/META-INF/MANIFEST.MF b/org.adempiere.eclipse.equinox.http.servletbridge/META-INF/MANIFEST.MF deleted file mode 100644 index 40abdde3f3..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/META-INF/MANIFEST.MF +++ /dev/null @@ -1,20 +0,0 @@ -Manifest-Version: 1.0 -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-11 -Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=11))" -Bundle-Name: %bundleName -Bundle-SymbolicName: org.adempiere.eclipse.equinox.http.servletbridge;singleton:=true -Eclipse-SourceReferences: scm:cvs:pserver:dev.eclipse.org:/cvsroot/rt: - org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.http.serv - letbridge;tag=v20100503 -Bundle-Activator: org.eclipse.equinox.http.servletbridge.internal.Acti - vator -Bundle-Version: 7.1.0.qualifier -Import-Package: javax.servlet;version="2.3",javax.servlet.http;version - ="2.3",org.eclipse.equinox.http.servlet;version="1.0.0",org.eclipse.e - quinox.servletbridge;version="1.0.0",org.osgi.framework;version="1.3. - 0",org.osgi.service.http;version="1.2.0" -Bundle-ManifestVersion: 2 -Bundle-ClassPath: . -Automatic-Module-Name: org.adempiere.eclipse.equinox.http.servletbridge diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/about.html b/org.adempiere.eclipse.equinox.http.servletbridge/about.html deleted file mode 100644 index d7e1cdf1e2..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/about.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - -About - - -

About This Content

- -

January 30, 2007

-

License

- -

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at http://www.eclipse.org/legal/epl-v10.html. -For purposes of the EPL, "Program" will mean the Content.

- -

If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") and different terms and conditions may -apply to your use of any object code in the Content. Check the Redistributor's license that was -provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise -indicated below, the terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at http://www.eclipse.org.

- - - \ No newline at end of file diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/build.properties b/org.adempiere.eclipse.equinox.http.servletbridge/build.properties deleted file mode 100644 index 140c228807..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/build.properties +++ /dev/null @@ -1,6 +0,0 @@ -bin.includes = META-INF/,\ - plugin.properties,\ - . -javacErrors.. = -assertIdentifier,-enumIdentifier -output.. = target/classes/ -source.. = src/ diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/plugin.properties b/org.adempiere.eclipse.equinox.http.servletbridge/plugin.properties deleted file mode 100644 index f2626ac746..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/plugin.properties +++ /dev/null @@ -1,4 +0,0 @@ -##Source Bundle Localization -#Thu Jun 24 08:29:00 EDT 2010 -bundleName=Servletbridge Http Service Source -providerName=Eclipse.org - Equinox diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/pom.xml b/org.adempiere.eclipse.equinox.http.servletbridge/pom.xml deleted file mode 100644 index e4b544e8c0..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/pom.xml +++ /dev/null @@ -1,12 +0,0 @@ - - 4.0.0 - - org.idempiere - org.idempiere.parent - 7.1.0-SNAPSHOT - ../org.idempiere.parent/pom.xml - - org.adempiere.eclipse.equinox.http.servletbridge - eclipse-plugin - \ No newline at end of file diff --git a/org.adempiere.eclipse.equinox.http.servletbridge/src/org/eclipse/equinox/http/servletbridge/internal/Activator.java b/org.adempiere.eclipse.equinox.http.servletbridge/src/org/eclipse/equinox/http/servletbridge/internal/Activator.java deleted file mode 100644 index 1173751801..0000000000 --- a/org.adempiere.eclipse.equinox.http.servletbridge/src/org/eclipse/equinox/http/servletbridge/internal/Activator.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 Cognos Incorporated, IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Cognos Incorporated - initial API and implementation - * IBM Corporation - bug fixes and enhancements - *******************************************************************************/ -package org.eclipse.equinox.http.servletbridge.internal; - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; - -public class Activator implements BundleActivator { - - public void start(BundleContext context) throws Exception { - } - - public void stop(BundleContext context) throws Exception { - } -} diff --git a/org.adempiere.eclipse.equinox.servletbridge/.classpath b/org.adempiere.eclipse.equinox.servletbridge/.classpath deleted file mode 100644 index 423c974870..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.classpath +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/org.adempiere.eclipse.equinox.servletbridge/.project b/org.adempiere.eclipse.equinox.servletbridge/.project deleted file mode 100644 index b4f0f2d7e0..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.project +++ /dev/null @@ -1,40 +0,0 @@ - - - org.adempiere.eclipse.equinox.servletbridge - - - - - - org.eclipse.wst.validation.validationbuilder - - - - - 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 - org.eclipse.wst.jsdt.core.jsNature - - diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/.jsdtscope b/org.adempiere.eclipse.equinox.servletbridge/.settings/.jsdtscope deleted file mode 100644 index d799103564..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/.jsdtscope +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.core.resources.prefs b/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.jdt.core.prefs b/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index b5eacefd65..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.release=enabled diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.m2e.core.prefs b/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1cb..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.pde.core.prefs b/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.pde.core.prefs deleted file mode 100644 index 26dd37f080..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.pde.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Fri Dec 24 14:44:01 MYT 2010 -eclipse.preferences.version=1 -pluginProject.extensions=false -resolve.requirebundle=false diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.container b/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.container deleted file mode 100644 index 3bd5d0a480..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.container +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.name b/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.name deleted file mode 100644 index 05bd71b6ec..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/.settings/org.eclipse.wst.jsdt.ui.superType.name +++ /dev/null @@ -1 +0,0 @@ -Window \ No newline at end of file diff --git a/org.adempiere.eclipse.equinox.servletbridge/META-INF/MANIFEST.MF b/org.adempiere.eclipse.equinox.servletbridge/META-INF/MANIFEST.MF deleted file mode 100644 index 6414c3d4d0..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Manifest-Version: 1.0 -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-11 -Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=11))" -Bundle-Name: %bundleName -Bundle-SymbolicName: org.adempiere.eclipse.equinox.servletbridge;singleton:=true -Eclipse-SourceReferences: scm:cvs:pserver:dev.eclipse.org:/cvsroot/rt: - org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.servletbr - idge;tag=v20100503 -Bundle-Version: 7.1.0.qualifier -Export-Package: org.eclipse.equinox.servletbridge;version="1.1.0" -Import-Package: javax.servlet;version="2.3.0", - javax.servlet.http;version="2.3.0", - org.eclipse.equinox.http.servlet;version="1.1.0" -Bundle-ManifestVersion: 2 -Bundle-ClassPath: . -Automatic-Module-Name: org.adempiere.eclipse.equinox.servletbridge diff --git a/org.adempiere.eclipse.equinox.servletbridge/about.html b/org.adempiere.eclipse.equinox.servletbridge/about.html deleted file mode 100644 index d7e1cdf1e2..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/about.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - -About - - -

About This Content

- -

January 30, 2007

-

License

- -

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at http://www.eclipse.org/legal/epl-v10.html. -For purposes of the EPL, "Program" will mean the Content.

- -

If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") and different terms and conditions may -apply to your use of any object code in the Content. Check the Redistributor's license that was -provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise -indicated below, the terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at http://www.eclipse.org.

- - - \ No newline at end of file diff --git a/org.adempiere.eclipse.equinox.servletbridge/build.properties b/org.adempiere.eclipse.equinox.servletbridge/build.properties deleted file mode 100644 index 140c228807..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/build.properties +++ /dev/null @@ -1,6 +0,0 @@ -bin.includes = META-INF/,\ - plugin.properties,\ - . -javacErrors.. = -assertIdentifier,-enumIdentifier -output.. = target/classes/ -source.. = src/ diff --git a/org.adempiere.eclipse.equinox.servletbridge/plugin.properties b/org.adempiere.eclipse.equinox.servletbridge/plugin.properties deleted file mode 100644 index 8390460842..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/plugin.properties +++ /dev/null @@ -1,4 +0,0 @@ -##Source Bundle Localization -#Thu Jun 24 08:29:00 EDT 2010 -bundleName=Servletbridge Source -providerName=Eclipse.org - Equinox diff --git a/org.adempiere.eclipse.equinox.servletbridge/pom.xml b/org.adempiere.eclipse.equinox.servletbridge/pom.xml deleted file mode 100644 index 7b7a156c81..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/pom.xml +++ /dev/null @@ -1,12 +0,0 @@ - - 4.0.0 - - org.idempiere - org.idempiere.parent - 7.1.0-SNAPSHOT - ../org.idempiere.parent/pom.xml - - org.adempiere.eclipse.equinox.servletbridge - eclipse-plugin - \ No newline at end of file diff --git a/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/CloseableURLClassLoader.java b/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/CloseableURLClassLoader.java deleted file mode 100644 index 7562e98664..0000000000 --- a/org.adempiere.eclipse.equinox.servletbridge/src/org/eclipse/equinox/servletbridge/CloseableURLClassLoader.java +++ /dev/null @@ -1,391 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -/** - * The java.net.URLClassLoader class allows one to load resources from arbitrary URLs and in particular is optimized to handle - * "jar" URLs. Unfortunately for jar files this optimization ends up holding the file open which ultimately prevents the file from - * being deleted or update until the VM is shutdown. - * - * The CloseableURLClassLoader is meant to replace the URLClassLoader and provides an additional method to allow one to "close" any - * resources left open. In the current version the CloseableURLClassLoader will only ensure the closing of jar file resources. The - * jar handling behavior in this class will also provides a construct to allow one to turn off jar file verification in performance - * sensitive situations where the verification us not necessary. - * - * also see https://bugs.eclipse.org/bugs/show_bug.cgi?id=190279 - */ - -package org.eclipse.equinox.servletbridge; - -import java.io.*; -import java.net.*; -import java.security.*; -import java.util.*; -import java.util.jar.*; -import java.util.jar.Attributes.Name; - -public class CloseableURLClassLoader extends URLClassLoader { - static final String DOT_CLASS = ".class"; //$NON-NLS-1$ - static final String BANG_SLASH = "!/"; //$NON-NLS-1$ - static final String JAR = "jar"; //$NON-NLS-1$ - - // @GuardedBy("loaders") - final ArrayList loaders = new ArrayList(); // package private to avoid synthetic access. - // @GuardedBy("loaders") - private final ArrayList loaderURLs = new ArrayList(); // note: protected by loaders - // @GuardedBy("loaders") - boolean closed = false; // note: protected by loaders, package private to avoid synthetic access. - - private final AccessControlContext context; - private final boolean verifyJars; - - private static class CloseableJarURLConnection extends JarURLConnection { - private final JarFile jarFile; - // @GuardedBy("this") - private JarEntry entry; - - public CloseableJarURLConnection(URL url, JarFile jarFile) throws MalformedURLException { - super(url); - this.jarFile = jarFile; - } - - public void connect() throws IOException { - internalGetEntry(); - } - - private synchronized JarEntry internalGetEntry() throws IOException { - if (entry != null) - return entry; - entry = jarFile.getJarEntry(getEntryName()); - if (entry == null) - throw new FileNotFoundException(getEntryName()); - return entry; - } - - public InputStream getInputStream() throws IOException { - return jarFile.getInputStream(internalGetEntry()); - } - - /** - * @throws IOException - * Documented to avoid warning - */ - public JarFile getJarFile() throws IOException { - return jarFile; - } - - public JarEntry getJarEntry() throws IOException { - return internalGetEntry(); - } - } - - private static class CloseableJarURLStreamHandler extends URLStreamHandler { - private final JarFile jarFile; - - public CloseableJarURLStreamHandler(JarFile jarFile) { - this.jarFile = jarFile; - } - - protected URLConnection openConnection(URL u) throws IOException { - return new CloseableJarURLConnection(u, jarFile); - } - - protected void parseURL(URL u, String spec, int start, int limit) { - setURL(u, JAR, null, 0, null, null, spec.substring(start, limit), null, null); - } - } - - private static class CloseableJarFileLoader { - private final JarFile jarFile; - private final Manifest manifest; - private final CloseableJarURLStreamHandler jarURLStreamHandler; - private final String jarFileURLPrefixString; - - public CloseableJarFileLoader(File file, boolean verify) throws IOException { - this.jarFile = new JarFile(file, verify); - this.manifest = jarFile.getManifest(); - this.jarURLStreamHandler = new CloseableJarURLStreamHandler(jarFile); - this.jarFileURLPrefixString = file.toURI().toURL().toString() + BANG_SLASH; - } - - public URL getURL(String name) { - if (jarFile.getEntry(name) != null) - try { - return new URL(JAR, null, -1, jarFileURLPrefixString + name, jarURLStreamHandler); - } catch (MalformedURLException e) { - // ignore - } - return null; - } - - public Manifest getManifest() { - return manifest; - } - - public void close() { - try { - jarFile.close(); - } catch (IOException e) { - // ignore - } - } - } - - /** - * @param urls the array of URLs to use for loading resources - * @see URLClassLoader - */ - public CloseableURLClassLoader(URL[] urls) { - this(urls, ClassLoader.getSystemClassLoader(), true); - } - - /** - * @param urls the URLs from which to load classes and resources - * @param parent the parent class loader used for delegation - * @see URLClassLoader - */ - public CloseableURLClassLoader(URL[] urls, ClassLoader parent) { - this(excludeFileJarURLS(urls), parent, true); - } - - /** - * @param urls the URLs from which to load classes and resources - * @param parent the parent class loader used for delegation - * @param verifyJars flag to determine if jar file verification should be performed - * @see URLClassLoader - */ - public CloseableURLClassLoader(URL[] urls, ClassLoader parent, boolean verifyJars) { - super(excludeFileJarURLS(urls), parent); - this.context = AccessController.getContext(); - this.verifyJars = verifyJars; - for (int i = 0; i < urls.length; i++) { - if (isFileJarURL(urls[i])) { - loaderURLs.add(urls[i]); - safeAddLoader(urls[i]); - } - } - } - - // @GuardedBy("loaders") - private void safeAddLoader(URL url) { - String path = url.getPath(); - File file = new File(path); - if (file.exists()) { - try { - loaders.add(new CloseableJarFileLoader(file, verifyJars)); - } catch (IOException e) { - // ignore - } - } - } - - private static URL[] excludeFileJarURLS(URL[] urls) { - ArrayList urlList = new ArrayList(); - for (int i = 0; i < urls.length; i++) { - if (!isFileJarURL(urls[i])) - urlList.add(urls[i]); - } - return (URL[]) urlList.toArray(new URL[urlList.size()]); - } - - private static boolean isFileJarURL(URL url) { - if (!url.getProtocol().equals("file")) //$NON-NLS-1$ - return false; - - String path = url.getPath(); - if (path != null && path.endsWith("/")) //$NON-NLS-1$ - return false; - - return true; - } - - /* (non-Javadoc) - * @see java.net.URLClassLoader#findClass(java.lang.String) - */ - protected Class findClass(final String name) throws ClassNotFoundException { - try { - Class clazz = (Class) AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws ClassNotFoundException { - String resourcePath = name.replace('.', '/') + DOT_CLASS; - CloseableJarFileLoader loader = null; - URL resourceURL = null; - synchronized (loaders) { - if (closed) - return null; - for (Iterator iterator = loaders.iterator(); iterator.hasNext();) { - loader = iterator.next(); - resourceURL = loader.getURL(resourcePath); - if (resourceURL != null) - break; - } - } - if (resourceURL != null) { - try { - return defineClass(name, resourceURL, loader.getManifest()); - } catch (IOException e) { - throw new ClassNotFoundException(name, e); - } - } - return null; - } - }, context); - if (clazz != null) - return clazz; - } catch (PrivilegedActionException e) { - throw (ClassNotFoundException) e.getException(); - } - return super.findClass(name); - } - - // package private to avoid synthetic access. - Class defineClass(String name, URL resourceURL, Manifest manifest) throws IOException { - JarURLConnection connection = (JarURLConnection) resourceURL.openConnection(); - int lastDot = name.lastIndexOf('.'); - if (lastDot != -1) { - String packageName = name.substring(0, lastDot + 1); - Package pkg = getPackage(packageName); - if (pkg != null) { - checkForSealedPackage(pkg, packageName, manifest, connection.getJarFileURL()); - } else { - definePackage(packageName, manifest, connection.getJarFileURL()); - } - } - JarEntry entry = connection.getJarEntry(); - byte[] bytes = new byte[(int) entry.getSize()]; - DataInputStream is = null; - try { - is = new DataInputStream(connection.getInputStream()); - is.readFully(bytes, 0, bytes.length); - CodeSource cs = new CodeSource(connection.getJarFileURL(), entry.getCertificates()); - return defineClass(name, bytes, 0, bytes.length, cs); - } finally { - if (is != null) - try { - is.close(); - } catch (IOException e) { - // ignore - } - } - } - - private void checkForSealedPackage(Package pkg, String packageName, Manifest manifest, URL jarFileURL) { - if (pkg.isSealed() && !pkg.isSealed(jarFileURL)) - throw new SecurityException("The package '" + packageName + "' was previously loaded and is already sealed."); //$NON-NLS-1$ //$NON-NLS-2$ - - String entryPath = packageName.replace('.', '/') + "/"; //$NON-NLS-1$ - Attributes entryAttributes = manifest.getAttributes(entryPath); - String sealed = null; - if (entryAttributes != null) - sealed = entryAttributes.getValue(Name.SEALED); - - if (sealed == null) { - Attributes mainAttributes = manifest.getMainAttributes(); - if (mainAttributes != null) - sealed = mainAttributes.getValue(Name.SEALED); - } - if (Boolean.valueOf(sealed).booleanValue()) - throw new SecurityException("The package '" + packageName + "' was previously loaded unsealed. Cannot seal package."); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /* (non-Javadoc) - * @see java.net.URLClassLoader#findResource(java.lang.String) - */ - public URL findResource(final String name) { - URL url = (URL) AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - synchronized (loaders) { - if (closed) - return null; - for (Iterator iterator = loaders.iterator(); iterator.hasNext();) { - CloseableJarFileLoader loader = iterator.next(); - URL resourceURL = loader.getURL(name); - if (resourceURL != null) - return resourceURL; - } - } - return null; - } - }, context); - if (url != null) - return url; - return super.findResource(name); - } - - /* (non-Javadoc) - * @see java.net.URLClassLoader#findResources(java.lang.String) - */ - public Enumeration findResources(final String name) throws IOException { - final List resources = new ArrayList(); - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - synchronized (loaders) { - if (closed) - return null; - for (Iterator iterator = loaders.iterator(); iterator.hasNext();) { - CloseableJarFileLoader loader = iterator.next(); - URL resourceURL = loader.getURL(name); - if (resourceURL != null) - resources.add(resourceURL); - } - } - return null; - } - }, context); - Enumeration e = super.findResources(name); - while (e.hasMoreElements()) - resources.add(e.nextElement()); - - return Collections.enumeration(resources); - } - - /** - * The "close" method is called when the class loader is no longer needed and we should close any open resources. - * In particular this method will close the jar files associated with this class loader. - */ - public void close() { - synchronized (loaders) { - if (closed) - return; - for (Iterator iterator = loaders.iterator(); iterator.hasNext();) { - CloseableJarFileLoader loader = iterator.next(); - loader.close(); - } - closed = true; - } - } - - /* (non-Javadoc) - * @see java.net.URLClassLoader#addURL(java.net.URL) - */ - protected void addURL(URL url) { - synchronized (loaders) { - if (isFileJarURL(url)) { - if (closed) - throw new IllegalStateException("Cannot add url. CloseableURLClassLoader is closed."); //$NON-NLS-1$ - loaderURLs.add(url); - safeAddLoader(url); - return; - } - } - super.addURL(url); - } - - /* (non-Javadoc) - * @see java.net.URLClassLoader#getURLs() - */ - public URL[] getURLs() { - List result = new ArrayList(); - synchronized (loaders) { - result.addAll(loaderURLs); - } - result.addAll(Arrays.asList(super.getURLs())); - return (URL[]) result.toArray(new URL[result.size()]); - } -} diff --git a/org.adempiere.extend/SamplePluginTest.launch b/org.adempiere.extend/SamplePluginTest.launch index e95e4a2f30..e4ee9e6fe2 100644 --- a/org.adempiere.extend/SamplePluginTest.launch +++ b/org.adempiere.extend/SamplePluginTest.launch @@ -3,7 +3,7 @@ - + @@ -12,7 +12,6 @@ - @@ -34,8 +33,8 @@ - - + + diff --git a/org.adempiere.sdk-feature/idempiere.psf b/org.adempiere.sdk-feature/idempiere.psf index f2a6d7cd54..e789d1773f 100644 --- a/org.adempiere.sdk-feature/idempiere.psf +++ b/org.adempiere.sdk-feature/idempiere.psf @@ -7,8 +7,6 @@ - - @@ -67,7 +65,6 @@ - @@ -82,7 +79,6 @@ - diff --git a/org.adempiere.server-feature/feature.xml b/org.adempiere.server-feature/feature.xml index 803a32f784..22daf07761 100644 --- a/org.adempiere.server-feature/feature.xml +++ b/org.adempiere.server-feature/feature.xml @@ -123,16 +123,23 @@ install-size="0" version="0.0.0" unpack="false"/> - + + + - - + + diff --git a/org.adempiere.server-feature/server.product.launch b/org.adempiere.server-feature/server.product.launch index 6192c157bb..c257c7a181 100644 --- a/org.adempiere.server-feature/server.product.launch +++ b/org.adempiere.server-feature/server.product.launch @@ -27,8 +27,8 @@ - - + + diff --git a/org.adempiere.target.platform-feature/feature.xml b/org.adempiere.target.platform-feature/feature.xml index 836767cd35..c08410b281 100644 --- a/org.adempiere.target.platform-feature/feature.xml +++ b/org.adempiere.target.platform-feature/feature.xml @@ -72,12 +72,33 @@ unpack="false"/> + + + + + + - + diff --git a/org.idempiere.felix.webconsole/WEB-INF/web.xml b/org.idempiere.felix.webconsole/WEB-INF/web.xml index 780230413a..3441f9d0ab 100644 --- a/org.idempiere.felix.webconsole/WEB-INF/web.xml +++ b/org.idempiere.felix.webconsole/WEB-INF/web.xml @@ -1,13 +1,13 @@ - + Web Console equinoxBridgeFilter - org.eclipse.equinox.servletbridge.BridgeFilter + org.adempiere.eclipse.equinox.http.servlet.BridgeFilter HttpContext.ClassName org.apache.felix.webconsole.internal.servlet.OsgiManagerHttpContext @@ -17,13 +17,6 @@ equinoxBridgeFilter /* - - - equinoxBridgeFilter - *.jsp - 30 diff --git a/org.idempiere.javadoc/build.properties b/org.idempiere.javadoc/build.properties index fbdc0e9337..4727bcdb66 100644 --- a/org.idempiere.javadoc/build.properties +++ b/org.idempiere.javadoc/build.properties @@ -4,9 +4,6 @@ bin.includes = META-INF/,\ jars.extra.classpath = platform:/plugin/org.adempiere.base/,\ platform:/plugin/org.adempiere.base.callout/,\ platform:/plugin/org.adempiere.base.process/,\ - platform:/plugin/org.adempiere.eclipse.equinox.http.servlet/,\ - platform:/plugin/org.adempiere.eclipse.equinox.http.servletbridge/,\ - platform:/plugin/org.adempiere.eclipse.equinox.servletbridge/,\ platform:/plugin/org.adempiere.extend/,\ platform:/plugin/org.adempiere.install/,\ platform:/plugin/org.adempiere.payment.processor/,\ diff --git a/pom.xml b/pom.xml index 5c675e57cd..52008a3a6c 100644 --- a/pom.xml +++ b/pom.xml @@ -18,8 +18,6 @@ org.adempiere.extend org.adempiere.payment.processor org.adempiere.eclipse.equinox.http.servlet - org.adempiere.eclipse.equinox.http.servletbridge - org.adempiere.eclipse.equinox.servletbridge org.adempiere.install org.adempiere.pipo org.adempiere.pipo.handlers