IDEMPIERE-4120 Refactor org.adempiere.eclipse.equinox.http.servlet
This commit is contained in:
parent
78c266f772
commit
da38704be3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -7,8 +7,8 @@ Eclipse-LazyStart: true
|
||||||
Eclipse-SourceReferences: scm:cvs:pserver:dev.eclipse.org:/cvsroot/rt:
|
Eclipse-SourceReferences: scm:cvs:pserver:dev.eclipse.org:/cvsroot/rt:
|
||||||
org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.servl
|
org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.servl
|
||||||
et;tag=v20100503
|
et;tag=v20100503
|
||||||
Bundle-Activator: org.eclipse.equinox.http.servlet.internal.Activator
|
Bundle-Activator: org.adempiere.eclipse.equinox.http.servlet.Activator
|
||||||
Export-Package: org.eclipse.equinox.http.servlet;version="1.1.0"
|
Export-Package: org.adempiere.eclipse.equinox.http.servlet
|
||||||
Bundle-Version: 7.1.0.qualifier
|
Bundle-Version: 7.1.0.qualifier
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
|
@ -18,6 +18,7 @@ Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are
|
||||||
Import-Package: javax.servlet;version="2.3",
|
Import-Package: javax.servlet;version="2.3",
|
||||||
javax.servlet.descriptor;version="3.0.0",
|
javax.servlet.descriptor;version="3.0.0",
|
||||||
javax.servlet.http;version="2.3",
|
javax.servlet.http;version="2.3",
|
||||||
|
org.eclipse.equinox.http.servlet;version="1.2.0",
|
||||||
org.osgi.framework;version="1.3.0",
|
org.osgi.framework;version="1.3.0",
|
||||||
org.osgi.service.http;version="1.2.0"
|
org.osgi.service.http;version="1.2.0"
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* IBM Corporation - bug fixes and enhancements
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.equinox.http.servlet.internal;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import org.eclipse.equinox.http.servlet.ExtendedHttpService;
|
import org.eclipse.equinox.http.servlet.ExtendedHttpService;
|
|
@ -9,7 +9,7 @@
|
||||||
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
||||||
* from the Bridge webapp with HTTP Filter.
|
* from the Bridge webapp with HTTP Filter.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.equinox.servletbridge;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
|
@ -11,15 +11,14 @@
|
||||||
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
||||||
* from the Bridge webapp with HTTP Filter.
|
* from the Bridge webapp with HTTP Filter.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.equinox.servletbridge;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
||||||
import javax.servlet.http.*;
|
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
|
* The BridgeServlet provides a means to bridge the servlet and OSGi
|
||||||
* runtimes. This class has 3 main responsibilities:
|
* runtimes. This class has 3 main responsibilities:
|
||||||
* 1) Control the lifecycle of the associated FrameworkLauncher in line with its own lifecycle
|
* 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 {
|
private void initDelegate() throws ServletException {
|
||||||
delegate = new HttpServiceServlet();
|
delegate = new ProxyServlet();
|
||||||
delegate.init(getServletConfig());
|
delegate.init(getServletConfig());
|
||||||
delegateIsFilter = (delegate instanceof Filter);
|
delegateIsFilter = (delegate instanceof Filter);
|
||||||
}
|
}
|
|
@ -10,7 +10,7 @@
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* 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.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
|
@ -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<FilterRegistration> matchingFilterRegistrations;
|
||||||
|
private ServletRegistration registration;
|
||||||
|
private int filterIndex = 0;
|
||||||
|
private int filterCount;
|
||||||
|
|
||||||
|
public FilterChainImpl(List<FilterRegistration> 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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* IBM Corporation - initial API and implementation
|
* IBM Corporation - initial API and implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.equinox.http.servlet.internal;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
|
@ -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 java.io.IOException;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
|
@ -10,7 +10,7 @@
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* IBM Corporation - bug fixes and enhancements
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.equinox.http.servlet.internal;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
|
@ -11,7 +11,7 @@
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
* 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.ArrayList;
|
||||||
import java.util.Dictionary;
|
import java.util.Dictionary;
|
|
@ -11,7 +11,7 @@
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
* 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.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
|
@ -11,7 +11,7 @@
|
||||||
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
||||||
* from the Bridge webapp with HTTP Filter.
|
* 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.*;
|
||||||
import javax.servlet.http.*;
|
import javax.servlet.http.*;
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* 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 java.util.Enumeration;
|
||||||
import javax.servlet.Servlet;
|
import javax.servlet.Servlet;
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* 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.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
|
@ -11,7 +11,7 @@
|
||||||
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
||||||
* from the Bridge webapp with HTTP Filter.
|
* 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.io.IOException;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* IBM Corporation - bug fixes and enhancements
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.equinox.http.servlet.internal;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
public abstract class Registration {
|
public abstract class Registration {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* 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.io.IOException;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
|
@ -11,7 +11,7 @@
|
||||||
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
* Angelo Zerr <angelo.zerr@gmail.com> - give the capability to use resources (JSP, HTML, Servlet...)
|
||||||
* from the Bridge webapp with HTTP Filter.
|
* 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.io.*;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* IBM Corporation - bug fixes and enhancements
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.equinox.http.servlet.internal;
|
package org.adempiere.eclipse.equinox.http.servlet;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* 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.io.*;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
|
@ -9,7 +9,7 @@
|
||||||
* Cognos Incorporated - initial API and implementation
|
* Cognos Incorporated - initial API and implementation
|
||||||
* IBM Corporation - bug fixes and enhancements
|
* 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.io.IOException;
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
|
@ -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
|
|
||||||
* <code>null</code> if there are none. This argument is used by the
|
|
||||||
* filter's <code>FilterConfig</code> object.
|
|
||||||
* @param context the <code>HttpContext</code> object for the registered
|
|
||||||
* filter, or <code>null</code> if a default <code>HttpContext</code> is
|
|
||||||
* to be created and used.
|
|
||||||
* @throws javax.servlet.ServletException if the filter's <code>init</code>
|
|
||||||
* 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<String, String> initparams, HttpContext context) throws ServletException, NamespaceException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregisters a previous filter registration done by the
|
|
||||||
* <code>registerFilter</code> method.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* After this call, the registered filter will no
|
|
||||||
* longer be available. The Http Service must call the <code>destroy</code>
|
|
||||||
* method of the filter before returning.
|
|
||||||
* <p>
|
|
||||||
* 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
|
|
||||||
* <code>destroy</code> 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
|
|
||||||
* <code>destroy</code> method of the filter to be called. This can be done
|
|
||||||
* in the <code>BundleActivator.stop</code> 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);
|
|
||||||
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -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<FilterRegistration> matchingFilterRegistrations;
|
|
||||||
private ServletRegistration registration;
|
|
||||||
private int filterIndex = 0;
|
|
||||||
private int filterCount;
|
|
||||||
|
|
||||||
public FilterChainImpl(List<FilterRegistration> 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);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<HttpService> {
|
|
||||||
|
|
||||||
private ProxyServlet proxy;
|
|
||||||
|
|
||||||
public HttpServiceFactory(ProxyServlet proxy) {
|
|
||||||
this.proxy = proxy;
|
|
||||||
}
|
|
||||||
|
|
||||||
public HttpService getService(Bundle bundle, ServiceRegistration<HttpService> registration) {
|
|
||||||
return new HttpServiceImpl(bundle, proxy);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ungetService(Bundle bundle, ServiceRegistration<HttpService> registration, HttpService service) {
|
|
||||||
((HttpServiceImpl) service).shutdown();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<classpath>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="module" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
|
||||||
<classpathentry kind="src" path="src/"/>
|
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
|
||||||
</classpath>
|
|
|
@ -1,34 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>org.adempiere.eclipse.equinox.http.servletbridge</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
|
||||||
<nature>org.eclipse.pde.PluginNature</nature>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
|
@ -1,2 +0,0 @@
|
||||||
eclipse.preferences.version=1
|
|
||||||
encoding/<project>=UTF-8
|
|
|
@ -1,3 +0,0 @@
|
||||||
eclipse.preferences.version=1
|
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
|
||||||
org.eclipse.jdt.core.compiler.release=enabled
|
|
|
@ -1,4 +0,0 @@
|
||||||
activeProfiles=
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
resolveWorkspaceProjects=true
|
|
||||||
version=1
|
|
|
@ -1,4 +0,0 @@
|
||||||
#Fri Dec 24 14:43:16 MYT 2010
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
pluginProject.extensions=false
|
|
||||||
resolve.requirebundle=false
|
|
|
@ -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
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
|
|
||||||
<title>About</title>
|
|
||||||
</head>
|
|
||||||
<body lang="EN-US">
|
|
||||||
<h2>About This Content</h2>
|
|
||||||
|
|
||||||
<p>January 30, 2007</p>
|
|
||||||
<h3>License</h3>
|
|
||||||
|
|
||||||
<p>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 <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
|
|
||||||
For purposes of the EPL, "Program" will mean the Content.</p>
|
|
||||||
|
|
||||||
<p>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 <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,6 +0,0 @@
|
||||||
bin.includes = META-INF/,\
|
|
||||||
plugin.properties,\
|
|
||||||
.
|
|
||||||
javacErrors.. = -assertIdentifier,-enumIdentifier
|
|
||||||
output.. = target/classes/
|
|
||||||
source.. = src/
|
|
|
@ -1,4 +0,0 @@
|
||||||
##Source Bundle Localization
|
|
||||||
#Thu Jun 24 08:29:00 EDT 2010
|
|
||||||
bundleName=Servletbridge Http Service Source
|
|
||||||
providerName=Eclipse.org - Equinox
|
|
|
@ -1,12 +0,0 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
|
||||||
<groupId>org.idempiere</groupId>
|
|
||||||
<artifactId>org.idempiere.parent</artifactId>
|
|
||||||
<version>7.1.0-SNAPSHOT</version>
|
|
||||||
<relativePath>../org.idempiere.parent/pom.xml</relativePath>
|
|
||||||
</parent>
|
|
||||||
<artifactId>org.adempiere.eclipse.equinox.http.servletbridge</artifactId>
|
|
||||||
<packaging>eclipse-plugin</packaging>
|
|
||||||
</project>
|
|
|
@ -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 {
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<classpath>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="module" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
|
||||||
<classpathentry kind="src" path="src/"/>
|
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
|
||||||
</classpath>
|
|
|
@ -1,40 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>org.adempiere.eclipse.equinox.servletbridge</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
|
||||||
<nature>org.eclipse.pde.PluginNature</nature>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<classpath>
|
|
||||||
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="provider" value="org.eclipse.wst.jsdt.web.core.internal.project.ModuleSourcePathProvider"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="hide" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="output" path=""/>
|
|
||||||
</classpath>
|
|
|
@ -1,2 +0,0 @@
|
||||||
eclipse.preferences.version=1
|
|
||||||
encoding/<project>=UTF-8
|
|
|
@ -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
|
|
|
@ -1,4 +0,0 @@
|
||||||
activeProfiles=
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
resolveWorkspaceProjects=true
|
|
||||||
version=1
|
|
|
@ -1,4 +0,0 @@
|
||||||
#Fri Dec 24 14:44:01 MYT 2010
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
pluginProject.extensions=false
|
|
||||||
resolve.requirebundle=false
|
|
|
@ -1 +0,0 @@
|
||||||
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
|
@ -1 +0,0 @@
|
||||||
Window
|
|
|
@ -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
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
|
|
||||||
<title>About</title>
|
|
||||||
</head>
|
|
||||||
<body lang="EN-US">
|
|
||||||
<h2>About This Content</h2>
|
|
||||||
|
|
||||||
<p>January 30, 2007</p>
|
|
||||||
<h3>License</h3>
|
|
||||||
|
|
||||||
<p>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 <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
|
|
||||||
For purposes of the EPL, "Program" will mean the Content.</p>
|
|
||||||
|
|
||||||
<p>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 <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,6 +0,0 @@
|
||||||
bin.includes = META-INF/,\
|
|
||||||
plugin.properties,\
|
|
||||||
.
|
|
||||||
javacErrors.. = -assertIdentifier,-enumIdentifier
|
|
||||||
output.. = target/classes/
|
|
||||||
source.. = src/
|
|
|
@ -1,4 +0,0 @@
|
||||||
##Source Bundle Localization
|
|
||||||
#Thu Jun 24 08:29:00 EDT 2010
|
|
||||||
bundleName=Servletbridge Source
|
|
||||||
providerName=Eclipse.org - Equinox
|
|
|
@ -1,12 +0,0 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
|
||||||
<groupId>org.idempiere</groupId>
|
|
||||||
<artifactId>org.idempiere.parent</artifactId>
|
|
||||||
<version>7.1.0-SNAPSHOT</version>
|
|
||||||
<relativePath>../org.idempiere.parent/pom.xml</relativePath>
|
|
||||||
</parent>
|
|
||||||
<artifactId>org.adempiere.eclipse.equinox.servletbridge</artifactId>
|
|
||||||
<packaging>eclipse-plugin</packaging>
|
|
||||||
</project>
|
|
|
@ -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<CloseableJarFileLoader> loaders = new ArrayList<CloseableJarFileLoader>(); // package private to avoid synthetic access.
|
|
||||||
// @GuardedBy("loaders")
|
|
||||||
private final ArrayList<URL> loaderURLs = new ArrayList<URL>(); // 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<URL> urlList = new ArrayList<URL>();
|
|
||||||
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<Object>() {
|
|
||||||
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<CloseableJarFileLoader> 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<Object>() {
|
|
||||||
public Object run() {
|
|
||||||
synchronized (loaders) {
|
|
||||||
if (closed)
|
|
||||||
return null;
|
|
||||||
for (Iterator<CloseableJarFileLoader> 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<URL> findResources(final String name) throws IOException {
|
|
||||||
final List<URL> resources = new ArrayList<URL>();
|
|
||||||
AccessController.doPrivileged(new PrivilegedAction<Object>() {
|
|
||||||
public Object run() {
|
|
||||||
synchronized (loaders) {
|
|
||||||
if (closed)
|
|
||||||
return null;
|
|
||||||
for (Iterator<CloseableJarFileLoader> iterator = loaders.iterator(); iterator.hasNext();) {
|
|
||||||
CloseableJarFileLoader loader = iterator.next();
|
|
||||||
URL resourceURL = loader.getURL(name);
|
|
||||||
if (resourceURL != null)
|
|
||||||
resources.add(resourceURL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}, context);
|
|
||||||
Enumeration<URL> 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<CloseableJarFileLoader> 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<URL> result = new ArrayList<URL>();
|
|
||||||
synchronized (loaders) {
|
|
||||||
result.addAll(loaderURLs);
|
|
||||||
}
|
|
||||||
result.addAll(Arrays.asList(super.getURLs()));
|
|
||||||
return (URL[]) result.toArray(new URL[result.size()]);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,7 +3,7 @@
|
||||||
<booleanAttribute key="append.args" value="true"/>
|
<booleanAttribute key="append.args" value="true"/>
|
||||||
<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
|
<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
|
||||||
<booleanAttribute key="askclear" value="false"/>
|
<booleanAttribute key="askclear" value="false"/>
|
||||||
<booleanAttribute key="automaticAdd" value="true"/>
|
<booleanAttribute key="automaticAdd" value="false"/>
|
||||||
<booleanAttribute key="automaticValidate" value="true"/>
|
<booleanAttribute key="automaticValidate" value="true"/>
|
||||||
<stringAttribute key="bootstrap" value=""/>
|
<stringAttribute key="bootstrap" value=""/>
|
||||||
<stringAttribute key="checked" value="[NONE]"/>
|
<stringAttribute key="checked" value="[NONE]"/>
|
||||||
|
@ -12,7 +12,6 @@
|
||||||
<booleanAttribute key="clearwslog" value="false"/>
|
<booleanAttribute key="clearwslog" value="false"/>
|
||||||
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
|
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
|
||||||
<booleanAttribute key="default" value="false"/>
|
<booleanAttribute key="default" value="false"/>
|
||||||
<stringAttribute key="deselected_workspace_plugins" value="org.adempiere.base.callout,org.adempiere.base.process,org.adempiere.eclipse.equinox.http.servlet,org.adempiere.eclipse.equinox.http.servletbridge,org.adempiere.eclipse.equinox.servletbridge,org.adempiere.payment.processor,org.adempiere.pipo,org.adempiere.pipo.handlers,org.adempiere.plugin.utils,org.adempiere.replication,org.adempiere.replication.server,org.adempiere.report.jasper,org.adempiere.report.jasper.library,org.adempiere.report.jasper.swing,org.adempiere.report.jasper.webapp,org.adempiere.server,org.adempiere.ui,org.adempiere.ui.swing,org.adempiere.ui.zk,org.adempiere.webstore,org.adempiere.webstore.resource,org.adempiere.webstore.servlet,org.compiere.db.oracle.provider,org.idempiere.felix.webconsole,org.idempiere.fitnesse.fixture,org.idempiere.fitnesse.server,org.idempiere.fitrecorder,org.idempiere.hazelcast.service,org.idempiere.javadoc,org.idempiere.ui.zk.selenium,org.idempiere.webservices,org.idempiere.zk.extra"/>
|
|
||||||
<booleanAttribute key="includeOptional" value="false"/>
|
<booleanAttribute key="includeOptional" value="false"/>
|
||||||
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
|
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
@ -34,8 +33,8 @@
|
||||||
<stringAttribute key="pde.version" value="3.3"/>
|
<stringAttribute key="pde.version" value="3.3"/>
|
||||||
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
|
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
|
||||||
<booleanAttribute key="run_in_ui_thread" value="true"/>
|
<booleanAttribute key="run_in_ui_thread" value="true"/>
|
||||||
<stringAttribute key="selected_target_plugins" value="bcprov@default:default,com.diffplug.osgi.extension.sun.misc@default:false,com.google.zxing.core@default:default,com.ibm.icu*63.1.0.v20181030-1705@default:default,com.itextpdf@default:default,com.jaspersoft.studio.bundles.barbecue@default:default,com.sun.activation.jakarta.activation@default:default,com.sun.mail.smtp@default:default,groovy-ant@default:false,groovy-cli-commons@default:false,groovy-cli-picocli@default:false,groovy-console@default:false,groovy-datetime@default:false,groovy-docgenerator@default:false,groovy-groovydoc@default:false,groovy-groovysh@default:false,groovy-jmx@default:false,groovy-json@default:false,groovy-jsr223@default:false,groovy-macro@default:false,groovy-nio@default:false,groovy-servlet@default:false,groovy-sql@default:false,groovy-swing@default:false,groovy-xml@default:false,groovy@default:default,jakarta.mail.api@default:default,jakarta.xml.bind-api@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.jms@default:default,javax.servlet@default:default,javax.transaction@default:false,net.sf.supercsv.super-csv@default:default,org.apache.activemq.activemq-core@default:default,org.apache.activemq.kahadb@default:default,org.apache.ant*1.10.5.v20180808-0324@default:default,org.apache.batik.constants*1.10.0.v20180703-1553@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n*1.10.0.v20180703-1553@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.collections@default:default,org.apache.commons.io*2.6.0@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.net@default:default,org.apache.felix.scr@1:true,org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec@default:default,org.apache.poi.poi-ooxml@default:default,org.apache.poi.poi@default:default,org.apache.servicemix.bundles.cglib.source,org.apache.xmlgraphics*2.2.0.v20180809-1640@default:default,org.bouncycastle.bcprov*1.60.0.v20181107-1520@default:default,org.cryptacular@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.optional.junit@default:false,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jetty.osgi.alpn.fragment@default:false,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.osgi*3.13.200.v20181130-2106@-1:true,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.pde.ds.lib@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.hamcrest.core@default:default,org.jfree.chart-osgi@default:default,org.jfree.jcommon-osgi@default:default,org.junit@default:default,org.krysalis.barcode4j@default:default,org.passay@default:default,org.restlet*2.4.1@default:default,org.slf4j.apis.jcl@default:default,org.slf4j.jcl@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg.patch@default:false,org.w3c.dom.svg@default:default,slf4j.api@default:default,slf4j.jcl@default:false,slf4j.jdk14@default:false"/>
|
<stringAttribute key="selected_target_plugins" value="bcprov@default:default,com.diffplug.osgi.extension.sun.misc@default:false,com.google.zxing.core@default:default,com.ibm.icu@default:default,com.itextpdf@default:default,com.jaspersoft.studio.bundles.barbecue@default:default,com.sun.activation.jakarta.activation@default:default,com.sun.mail.smtp@default:default,groovy-console@default:false,groovy-datetime@default:false,groovy-json@default:false,groovy-jsr223@default:false,groovy-nio@default:false,groovy-swing@default:false,groovy-xml@default:false,groovy@default:default,jakarta.mail.api@default:default,jakarta.xml.bind-api@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.jms@default:default,javax.transaction@default:false,net.sf.supercsv.super-csv@default:default,org.apache.activemq.activemq-core@default:default,org.apache.activemq.kahadb@default:default,org.apache.ant@default:default,org.apache.batik.constants@default:default,org.apache.batik.css@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util@default:default,org.apache.commons.collections@default:default,org.apache.commons.io@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.scr@1:true,org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec@default:default,org.apache.poi.poi-ooxml@default:default,org.apache.poi.poi@default:default,org.apache.servicemix.bundles.cglib@default:default,org.apache.xmlgraphics@default:default,org.cryptacular@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.jetty.osgi-servlet-api@default:default,org.eclipse.jetty.osgi.alpn.fragment@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jfree.chart-osgi@default:default,org.jfree.jcommon-osgi@default:default,org.junit@default:default,org.krysalis.barcode4j@default:default,org.passay@default:default,org.restlet@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default,slf4j.api@default:default,slf4j.jcl@default:false"/>
|
||||||
<stringAttribute key="selected_workspace_plugins" value="org.adempiere.base@default:default,org.adempiere.extend@default:false,org.adempiere.install@default:default,org.apache.ecs@default:default,org.compiere.db.postgresql.provider@default:default"/>
|
<stringAttribute key="selected_workspace_plugins" value="org.adempiere.base@default:default,org.adempiere.extend@default:false,org.adempiere.install@default:default,org.apache.ecs@default:default,org.compiere.db.postgresql.provider@default:default,org.idempiere.hazelcast.service.config@default:false,org.idempiere.hazelcast.service@default:default"/>
|
||||||
<booleanAttribute key="show_selected_only" value="false"/>
|
<booleanAttribute key="show_selected_only" value="false"/>
|
||||||
<booleanAttribute key="tracing" value="false"/>
|
<booleanAttribute key="tracing" value="false"/>
|
||||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.base.process|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.base.process"/>
|
<project reference="MercurialEclipseProjectSet|org.adempiere.base.process|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.base.process"/>
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.bundles.external-feature|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.bundles.external-feature"/>
|
<project reference="MercurialEclipseProjectSet|org.adempiere.bundles.external-feature|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.bundles.external-feature"/>
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.eclipse.equinox.http.servlet|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.eclipse.equinox.http.servlet"/>
|
<project reference="MercurialEclipseProjectSet|org.adempiere.eclipse.equinox.http.servlet|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.eclipse.equinox.http.servlet"/>
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.eclipse.equinox.http.servletbridge|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.eclipse.equinox.http.servletbridge"/>
|
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.eclipse.equinox.servletbridge|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.eclipse.equinox.servletbridge"/>
|
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.extend|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.extend"/>
|
<project reference="MercurialEclipseProjectSet|org.adempiere.extend|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.extend"/>
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.install|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.install"/>
|
<project reference="MercurialEclipseProjectSet|org.adempiere.install|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.install"/>
|
||||||
<project reference="MercurialEclipseProjectSet|org.adempiere.payment.processor|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.payment.processor"/>
|
<project reference="MercurialEclipseProjectSet|org.adempiere.payment.processor|/mnt/data/dev/project/working-project/maventycho/idempiere|org.adempiere.payment.processor"/>
|
||||||
|
@ -67,7 +65,6 @@
|
||||||
<item elementID="=org.adempiere.server" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.server" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.webstore" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.webstore" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.idempiere.felix.webconsole" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.idempiere.felix.webconsole" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.eclipse.equinox.servletbridge" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
|
||||||
<item elementID="=org.adempiere.base.callout" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.base.callout" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.idempiere.hazelcast.service" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.idempiere.hazelcast.service" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.ui.zk" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.ui.zk" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
|
@ -82,7 +79,6 @@
|
||||||
<item elementID="=org.adempiere.pipo" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.pipo" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.report.jasper.webapp" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.report.jasper.webapp" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.webstore.resource" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.webstore.resource" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.eclipse.equinox.http.servletbridge" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
|
||||||
<item elementID="=org.idempiere.zk.extra" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.idempiere.zk.extra" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.base" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.base" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
<item elementID="=org.adempiere.pipo.handlers" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
<item elementID="=org.adempiere.pipo.handlers" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
|
||||||
|
|
|
@ -125,14 +125,21 @@
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
<plugin
|
<plugin
|
||||||
id="org.adempiere.eclipse.equinox.http.servletbridge"
|
id="org.eclipse.equinox.http.servlet"
|
||||||
download-size="0"
|
download-size="0"
|
||||||
install-size="0"
|
install-size="0"
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
<plugin
|
<plugin
|
||||||
id="org.adempiere.eclipse.equinox.servletbridge"
|
id="org.eclipse.equinox.http.servletbridge"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.equinox.servletbridge"
|
||||||
download-size="0"
|
download-size="0"
|
||||||
install-size="0"
|
install-size="0"
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -71,6 +71,27 @@
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.equinox.http.servlet"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.equinox.http.servletbridge"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.equinox.servletbridge"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
<plugin
|
<plugin
|
||||||
id="org.eclipse.equinox.p2.publisher"
|
id="org.eclipse.equinox.p2.publisher"
|
||||||
download-size="0"
|
download-size="0"
|
||||||
|
|
|
@ -83,13 +83,10 @@ Import-Package: groovy.beans;version="2.5.3",
|
||||||
groovy.inspect;version="2.5.3",
|
groovy.inspect;version="2.5.3",
|
||||||
groovy.inspect.swingui;version="2.5.3",
|
groovy.inspect.swingui;version="2.5.3",
|
||||||
groovy.io;version="2.5.3",
|
groovy.io;version="2.5.3",
|
||||||
groovy.jmx.builder;version="2.5.3",
|
|
||||||
groovy.json;version="2.5.3",
|
groovy.json;version="2.5.3",
|
||||||
groovy.lang;version="2.5.3",
|
groovy.lang;version="2.5.3",
|
||||||
groovy.model;version="2.5.3",
|
groovy.model;version="2.5.3",
|
||||||
groovy.security;version="2.5.3",
|
groovy.security;version="2.5.3",
|
||||||
groovy.servlet;version="2.5.3",
|
|
||||||
groovy.sql;version="2.5.3",
|
|
||||||
groovy.swing;version="2.5.3",
|
groovy.swing;version="2.5.3",
|
||||||
groovy.swing.binding;version="2.5.3",
|
groovy.swing.binding;version="2.5.3",
|
||||||
groovy.swing.factory;version="2.5.3",
|
groovy.swing.factory;version="2.5.3",
|
||||||
|
|
|
@ -8,6 +8,7 @@ Bundle-ActivationPolicy: lazy
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=11))"
|
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=11))"
|
||||||
Import-Package: javax.servlet;version="2.5.0",
|
Import-Package: javax.servlet;version="2.5.0",
|
||||||
|
javax.servlet.descriptor;version="3.1.0",
|
||||||
javax.servlet.http;version="2.5.0",
|
javax.servlet.http;version="2.5.0",
|
||||||
javax.servlet.jsp;version="2.1.0",
|
javax.servlet.jsp;version="2.1.0",
|
||||||
javax.servlet.jsp.el;version="2.1.0",
|
javax.servlet.jsp.el;version="2.1.0",
|
||||||
|
@ -18,6 +19,7 @@ Import-Package: javax.servlet;version="2.5.0",
|
||||||
javax.servlet.jsp.resources;version="2.1.0",
|
javax.servlet.jsp.resources;version="2.1.0",
|
||||||
javax.servlet.jsp.tagext;version="2.1.0",
|
javax.servlet.jsp.tagext;version="2.1.0",
|
||||||
javax.servlet.resources;version="2.5.0",
|
javax.servlet.resources;version="2.5.0",
|
||||||
|
org.adempiere.eclipse.equinox.http.servlet,
|
||||||
org.apache.felix.webconsole;version="3.1.2",
|
org.apache.felix.webconsole;version="3.1.2",
|
||||||
org.compiere.model,
|
org.compiere.model,
|
||||||
org.compiere.util,
|
org.compiere.util,
|
||||||
|
@ -31,3 +33,4 @@ Service-Component: OSGI-INF/*.xml
|
||||||
Bundle-ClassPath: .
|
Bundle-ClassPath: .
|
||||||
Automatic-Module-Name: org.idempiere.felix.webconsole
|
Automatic-Module-Name: org.idempiere.felix.webconsole
|
||||||
Bundle-Vendor: iDempiere Community
|
Bundle-Vendor: iDempiere Community
|
||||||
|
Export-Package: org.idempiere.felix.webconsole;x-internal:=true
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.felix.webconsole.security.provider">
|
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.idempiere.felix.webconsole.security.provider">
|
||||||
<implementation class="org.idempiere.felix.webconsole.SecurityProviderImpl"/>
|
<implementation class="org.idempiere.felix.webconsole.SecurityProviderImpl"/>
|
||||||
<service>
|
<service>
|
||||||
<provide interface="org.apache.felix.webconsole.WebConsoleSecurityProvider"/>
|
<provide interface="org.apache.felix.webconsole.WebConsoleSecurityProvider"/>
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
|
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
|
||||||
version="2.4">
|
version="3.1">
|
||||||
<display-name>Web Console</display-name>
|
<display-name>Web Console</display-name>
|
||||||
<description></description>
|
<description></description>
|
||||||
<filter id="bridge">
|
<filter id="bridge">
|
||||||
<filter-name>equinoxBridgeFilter</filter-name>
|
<filter-name>equinoxBridgeFilter</filter-name>
|
||||||
<filter-class>org.eclipse.equinox.servletbridge.BridgeFilter</filter-class>
|
<filter-class>org.adempiere.eclipse.equinox.http.servlet.BridgeFilter</filter-class>
|
||||||
<init-param>
|
<init-param>
|
||||||
<param-name>HttpContext.ClassName</param-name>
|
<param-name>HttpContext.ClassName</param-name>
|
||||||
<param-value>org.apache.felix.webconsole.internal.servlet.OsgiManagerHttpContext</param-value>
|
<param-value>org.apache.felix.webconsole.internal.servlet.OsgiManagerHttpContext</param-value>
|
||||||
|
@ -17,13 +17,6 @@
|
||||||
<filter-name>equinoxBridgeFilter</filter-name>
|
<filter-name>equinoxBridgeFilter</filter-name>
|
||||||
<url-pattern>/*</url-pattern>
|
<url-pattern>/*</url-pattern>
|
||||||
</filter-mapping>
|
</filter-mapping>
|
||||||
<!--
|
|
||||||
This is required if your application bundles expose JSPs.
|
|
||||||
-->
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>equinoxBridgeFilter</filter-name>
|
|
||||||
<url-pattern>*.jsp</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<session-config>
|
<session-config>
|
||||||
<session-timeout>30</session-timeout>
|
<session-timeout>30</session-timeout>
|
||||||
|
|
|
@ -4,9 +4,6 @@ bin.includes = META-INF/,\
|
||||||
jars.extra.classpath = platform:/plugin/org.adempiere.base/,\
|
jars.extra.classpath = platform:/plugin/org.adempiere.base/,\
|
||||||
platform:/plugin/org.adempiere.base.callout/,\
|
platform:/plugin/org.adempiere.base.callout/,\
|
||||||
platform:/plugin/org.adempiere.base.process/,\
|
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.extend/,\
|
||||||
platform:/plugin/org.adempiere.install/,\
|
platform:/plugin/org.adempiere.install/,\
|
||||||
platform:/plugin/org.adempiere.payment.processor/,\
|
platform:/plugin/org.adempiere.payment.processor/,\
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -18,8 +18,6 @@
|
||||||
<module>org.adempiere.extend</module>
|
<module>org.adempiere.extend</module>
|
||||||
<module>org.adempiere.payment.processor</module>
|
<module>org.adempiere.payment.processor</module>
|
||||||
<module>org.adempiere.eclipse.equinox.http.servlet</module>
|
<module>org.adempiere.eclipse.equinox.http.servlet</module>
|
||||||
<module>org.adempiere.eclipse.equinox.http.servletbridge</module>
|
|
||||||
<module>org.adempiere.eclipse.equinox.servletbridge</module>
|
|
||||||
<module>org.adempiere.install</module>
|
<module>org.adempiere.install</module>
|
||||||
<module>org.adempiere.pipo</module>
|
<module>org.adempiere.pipo</module>
|
||||||
<module>org.adempiere.pipo.handlers</module>
|
<module>org.adempiere.pipo.handlers</module>
|
||||||
|
|
Loading…
Reference in New Issue