Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 608B8200BD9 for ; Thu, 24 Nov 2016 11:53:11 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 5F0E2160B1E; Thu, 24 Nov 2016 10:53:11 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 63CFC160B22 for ; Thu, 24 Nov 2016 11:53:08 +0100 (CET) Received: (qmail 64986 invoked by uid 500); 24 Nov 2016 10:53:07 -0000 Mailing-List: contact commits-help@aries.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@aries.apache.org Delivered-To: mailing list commits@aries.apache.org Received: (qmail 63055 invoked by uid 99); 24 Nov 2016 10:53:06 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Nov 2016 10:53:06 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 74413EEE34; Thu, 24 Nov 2016 10:53:06 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: csierra@apache.org To: commits@aries.apache.org Date: Thu, 24 Nov 2016 10:53:43 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [39/50] [abbrv] aries-jax-rs-whiteboard git commit: renaming and restructuring archived-at: Thu, 24 Nov 2016 10:53:11 -0000 http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.example/pom.xml ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.example/pom.xml b/org.apache.aries.jax-rs.example/pom.xml deleted file mode 100644 index 2a36d9b..0000000 --- a/org.apache.aries.jax-rs.example/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - 4.0.0 - - org.apache.aries - org.apache.aries.jax-rs - 1.0.0-SNAPSHOT - - org.apache.aries.jax-rs.example - jar - JAX-RS Example - - - javax.ws.rs - javax.ws.rs-api - 2.0.1 - - - org.osgi - org.osgi.service.component.annotations - 1.3.0 - - - http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleAddon.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleAddon.java b/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleAddon.java deleted file mode 100644 index 5431e76..0000000 --- a/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleAddon.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.rest.example; - -import org.osgi.service.component.annotations.Component; - -import javax.annotation.PostConstruct; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.UriInfo; - -/** - * @author Carlos Sierra Andrés - */ -@Component( - immediate = true, - property = "osgi.jaxrs.resource.base=/examples/example-addon", - service = ExampleAddon.class -) -public class ExampleAddon { - - @GET - @Path("/{name}") - public String sayHello(@PathParam("name") String name) { - return "Hello " + name; - } - - @PostConstruct - public void init() { - System.out.println("URIINFO: " + _uriInfo); - } - - @Context - UriInfo _uriInfo; - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleApplication.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleApplication.java b/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleApplication.java deleted file mode 100644 index 25234b2..0000000 --- a/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleApplication.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.rest.example; - -import org.osgi.service.component.annotations.Component; - -import javax.ws.rs.GET; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Application; -import java.util.Collections; -import java.util.Set; - -/** - * @author Carlos Sierra Andrés - */ -@Component( - immediate = true, - property = "osgi.jaxrs.application.base=/example-application", - service = Application.class -) -public class ExampleApplication extends Application { - - @Override - public Set getSingletons() { - return Collections.singleton(this); - } - - @GET - @Produces("text/plain") - public String sayHello() { - return "Hello world"; - } - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleFilter.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleFilter.java b/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleFilter.java deleted file mode 100644 index c2e89ac..0000000 --- a/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleFilter.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.rest.example; - -import org.osgi.service.component.annotations.Component; - -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.ext.Provider; -import java.io.IOException; - -/** - * @author Carlos Sierra Andrés - */ -@Component( - immediate = true, - property = { - "jaxrs.application.select=(component.name=com.liferay.portal.rest.example.ExampleApplication)", - "osgi.jaxrs.filter.base=/examples" - } -) -@Provider -public class ExampleFilter implements ContainerRequestFilter { - - @Override - public void filter(ContainerRequestContext requestContext) - throws IOException { - - System.out.println("FILTERED!"); - } - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/.gitignore ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/.gitignore b/org.apache.aries.jax-rs.extender/.gitignore deleted file mode 100644 index 83ccc54..0000000 --- a/org.apache.aries.jax-rs.extender/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build/ -/bin/ http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/bnd.bnd ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/bnd.bnd b/org.apache.aries.jax-rs.extender/bnd.bnd deleted file mode 100644 index 1e44d09..0000000 --- a/org.apache.aries.jax-rs.extender/bnd.bnd +++ /dev/null @@ -1,58 +0,0 @@ -Bundle-Activator: com.liferay.portal.remote.rest.extender.activator.CXFJaxRsBundleActivator -Provide-Capability: \ - osgi.extender; \ - osgi.extender='aries.jax-rs'; \ - version:Version='1.0.0' -Import-Package:\ - !com.sun.*,\ - !com.ctc.wstx.*,\ - !javax.imageio.*,\ - !javax.jws.*,\ - !javax.net.*,\ - !javax.security.*,\ - !javax.tools.*,\ - !javax.validation.*,\ - !javax.wsdl.*,\ - !net.sf.cglib.proxy.*,\ - !org.apache.abdera.*,\ - !org.apache.aries.*,\ - !org.apache.cxf.*,\ - !org.apache.neethi.*,\ - !org.apache.velocity.*,\ - !org.apache.xerces.*,\ - !org.apache.xml.resolver.*,\ - !org.apache.xmlbeans.*,\ - !org.codehaus.stax2.*,\ - !org.dom4j.*,\ - !org.junit.*,\ - !org.jvnet.fastinfoset.*,\ - !org.jvnet.staxex.*,\ - !org.ietf.jgss.*,\ - !org.osgi.service.blueprint.*,\ - !org.relaxng.datatype.*,\ - !org.slf4j.spi.*,\ - !org.springframework.*,\ - * - -#Provide-Capability:\ -# osgi.contract;\ -# osgi.contract=JavaJAXRS;\ -# uses:="javax.ws.rs,javax.ws.rs.core,javax.ws.rs.client,javax.ws.rs.container,javax.ws.rs.ext";\ -# version:Version=2,\ -# osgi.contract;\ -# osgi.contract=JavaJSONP;\ -# uses:="javax.json,javax.json.spi,javax.json.stream";\ -# version:Version=1 - -#-exportcontents:\ -# org.apache.cxf.jaxrs.ext.* - --includeresource:\ - lib/cxf-core.jar=cxf-core-*.jar;lib:=true,\ - lib/cxf-rt-databinding-jaxb.jar=cxf-rt-databinding-jaxb-*.jar;lib:=true,\ - lib/cxf-rt-frontend-jaxrs.jar=cxf-rt-frontend-jaxrs-*.jar;lib:=true,\ - lib/cxf-rt-rs-extension-providers.jar=cxf-rt-rs-extension-providers-*.jar;lib:=true,\ - lib/cxf-rt-transports-http.jar=cxf-rt-transports-http-*.jar;lib:=true,\ - lib/cxf-tools-common.jar=cxf-tools-common-*.jar;lib:=true,\ - lib/cxf-tools-validator.jar=cxf-tools-validator-*.jar;lib:=true,\ - lib/jettison.jar=jettison-*.jar;lib:=true \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/pom.xml ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/pom.xml b/org.apache.aries.jax-rs.extender/pom.xml deleted file mode 100644 index 2e756de..0000000 --- a/org.apache.aries.jax-rs.extender/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - 4.0.0 - - org.apache.aries - org.apache.aries.jax-rs - 1.0.0-SNAPSHOT - - org.apache.aries.jax-rs.extender - jar - Aries JAX-RS Extender - - - javax.servlet - javax.servlet-api - 3.0.1 - - - org.apache.cxf - cxf-rt-databinding-jaxb - 3.1.7 - - - org.apache.cxf - cxf-rt-rs-extension-providers - 3.1.7 - - - org.apache.cxf - cxf-rt-frontend-jaxrs - 3.1.7 - - - org.apache.cxf - cxf-rt-transports-http - 3.1.7 - - - org.apache.cxf - cxf-tools-common - 3.1.7 - - - org.apache.cxf - cxf-tools-validator - 3.1.7 - - - org.codehaus.jettison - jettison - 1.3.8 - - - org.osgi - org.osgi.annotation - 6.0.0 - - - org.osgi - org.osgi.core - 5.0.0 - - - org.osgi - org.osgi.compendium - 5.0.0 - - - org.apache.felix - org.apache.felix.http.api - 3.0.0 - - - org.slf4j - slf4j-api - 1.7.2 - - - http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java deleted file mode 100644 index f3203b0..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java +++ /dev/null @@ -1,102 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - * - * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - * - * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.activator; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Dictionary; -import java.util.Hashtable; - -import javax.ws.rs.ext.RuntimeDelegate; - -import org.apache.cxf.Bus; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.Filter; -import org.osgi.framework.wiring.BundleWiring; -import org.osgi.util.tracker.ServiceTracker; - -import com.liferay.portal.remote.rest.extender.internal.BusServiceTrackerCustomizer; -import com.liferay.portal.remote.rest.extender.internal.ServicesServiceTrackerCustomizer; - -/** - * @author Carlos Sierra Andrés - */ -public class CXFJaxRsBundleActivator implements BundleActivator { - - private ServiceTracker _busServiceTracker; - private ServiceTracker _singletonsTracker; - private ServicesRegistrator _servicesRegistrator; - - @Override - public void start(BundleContext bundleContext) throws Exception { - Thread thread = Thread.currentThread(); - - ClassLoader contextClassLoader = thread.getContextClassLoader(); - - Bundle bundle = bundleContext.getBundle(); - - BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); - - thread.setContextClassLoader(bundleWiring.getClassLoader()); - - try { - - // Initialize instance so it is never looked up again - - RuntimeDelegate.getInstance(); - } - finally { - thread.setContextClassLoader(contextClassLoader); - } - - Dictionary runtimeProperties = new Hashtable<>(); - - runtimeProperties.put("endpoints", new ArrayList()); - - // TODO make the context path of the JAX-RS Whiteboard configurable. - - _servicesRegistrator = new ServicesRegistrator( - bundleContext, Collections.singletonMap("contextPath", "/")); - - _servicesRegistrator.start(); - - _busServiceTracker = new ServiceTracker<>( - bundleContext, Bus.class, - new BusServiceTrackerCustomizer(bundleContext)); - - _busServiceTracker.open(); - - Filter filter = bundleContext.createFilter( - "(jaxrs.application.select=*)"); - - _singletonsTracker = new ServiceTracker<>( - bundleContext, filter, - new ServicesServiceTrackerCustomizer(bundleContext)); - - _singletonsTracker.open(); - } - - @Override - public void stop(BundleContext context) throws Exception { - _busServiceTracker.close(); - - _singletonsTracker.close(); - - _servicesRegistrator.stop(); - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/ServicesRegistrator.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/ServicesRegistrator.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/ServicesRegistrator.java deleted file mode 100644 index 83c802a..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/ServicesRegistrator.java +++ /dev/null @@ -1,151 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.activator; - -import org.apache.cxf.Bus; -import org.apache.cxf.bus.CXFBusFactory; -import org.apache.cxf.transport.servlet.CXFNonSpringServlet; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.osgi.service.http.context.ServletContextHelper; -import org.osgi.service.http.whiteboard.HttpWhiteboardConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.servlet.Servlet; -import java.util.Dictionary; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Map; - -/** - * @author Carlos Sierra Andrés - */ -public class ServicesRegistrator { - - public ServicesRegistrator( - BundleContext bundleContext, Map properties) { - - _bundleContext = bundleContext; - - _properties = properties; - } - - public void start() { - Dictionary properties = new Hashtable<>(); - - Object contextPathObject = _properties.get("contextPath"); - - String contextPath = contextPathObject.toString(); - - String contextName = contextPath.substring(1); - - contextName = contextName.replace("/", "."); - - properties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME, - contextName); - properties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, - contextPath); - - _servletContextHelperServiceRegistration = - _bundleContext.registerService( - ServletContextHelper.class, - new ServletContextHelper(_bundleContext.getBundle()) { - }, - properties); - - CXFNonSpringServlet cxfNonSpringServlet = new CXFNonSpringServlet(); - - CXFBusFactory cxfBusFactory = - (CXFBusFactory) CXFBusFactory.newInstance( - CXFBusFactory.class.getName()); - - Bus bus = cxfBusFactory.createBus(); - - properties = new Hashtable<>(); - - properties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT, - "(osgi.http.whiteboard.context.name=" + contextName + ")"); - properties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME, - CXFNonSpringServlet.class.getName()); - properties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/*"); - - cxfNonSpringServlet.setBus(bus); - - _servletServiceRegistration = _bundleContext.registerService( - Servlet.class, cxfNonSpringServlet, properties); - - properties = new Hashtable<>(); - - properties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, - contextPath); - - _busServiceRegistration = _bundleContext.registerService( - Bus.class, bus, properties); - } - - public void stop() { - try { - _busServiceRegistration.unregister(); - } - catch (Exception e) { - if (_logger.isWarnEnabled()) { - _logger.warn( - "Unable to unregister CXF bus service registration " + - _busServiceRegistration); - } - } - - try { - _servletServiceRegistration.unregister(); - } - catch (Exception e) { - if (_logger.isWarnEnabled()) { - _logger.warn( - "Unable to unregister servlet service registration " + - _servletServiceRegistration); - } - } - - try { - _servletContextHelperServiceRegistration.unregister(); - } - catch (Exception e) { - if (_logger.isWarnEnabled()) { - _logger.warn( - "Unable to unregister servlet context helper service " + - "registration " + - _servletContextHelperServiceRegistration); - } - } - } - - private static final Logger _logger = LoggerFactory.getLogger( - ServicesRegistrator.class); - - private final BundleContext _bundleContext; - private ServiceRegistration _busServiceRegistration; - private final Map _properties; - private ServiceRegistration - _servletContextHelperServiceRegistration; - private ServiceRegistration _servletServiceRegistration; - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java deleted file mode 100644 index 8900ded..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java +++ /dev/null @@ -1,102 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import com.liferay.portal.remote.rest.extender.internal.CXFJaxRsServiceRegistrator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -import javax.ws.rs.ext.Provider; - -/** - * @author Carlos Sierra Andrés - */ -public class AddonsServiceTrackerCustomizer - implements ServiceTrackerCustomizer { - - private final BundleContext _bundleContext; - private final ClassLoader _classLoader; - private final Class _serviceClass; - private final Object _service; - - public AddonsServiceTrackerCustomizer( - BundleContext bundleContext, ClassLoader classLoader, - Object service) { - - _bundleContext = bundleContext; - _classLoader = classLoader; - _service = service; - - _serviceClass = service.getClass(); - } - - @Override - public CXFJaxRsServiceRegistrator addingService( - ServiceReference reference) { - - Thread thread = Thread.currentThread(); - - ClassLoader contextClassLoader = - thread.getContextClassLoader(); - - CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator = - _bundleContext.getService(reference); - - try { - thread.setContextClassLoader(_classLoader); - - if (_serviceClass.isAnnotationPresent(Provider.class)) { - cxfJaxRsServiceRegistrator.addProvider(_service); - } else { - cxfJaxRsServiceRegistrator.addService(_service); - } - - return cxfJaxRsServiceRegistrator; - } - catch (Exception e) { - _bundleContext.ungetService(reference); - - throw e; - } - finally { - thread.setContextClassLoader(contextClassLoader); - } - } - - @Override - public void modifiedService( - ServiceReference reference, - CXFJaxRsServiceRegistrator registrator) { - - removedService(reference, registrator); - - addingService(reference); - } - - @Override - public void removedService( - ServiceReference reference, - CXFJaxRsServiceRegistrator registrator) { - - if (_serviceClass.isAnnotationPresent(Provider.class)) { - registrator.removeProvider(_service); - } else { - registrator.removeService(_service); - } - - _bundleContext.ungetService(reference); - } -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java deleted file mode 100644 index 8296683..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java +++ /dev/null @@ -1,141 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Map; - -import javax.ws.rs.core.Application; - -import org.apache.cxf.Bus; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.framework.ServiceRegistration; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -/** - * @author Carlos Sierra Andrés - */ -class ApplicationServiceTrackerCustomizer - implements ServiceTrackerCustomizer - { - - private BundleContext _bundleContext; - private Bus _bus; - - public ApplicationServiceTrackerCustomizer( - BundleContext bundleContext, Bus bus) { - - _bundleContext = bundleContext; - _bus = bus; - } - - @Override - public Tracked addingService( - ServiceReference serviceReference) { - - Application application = _bundleContext.getService( - serviceReference); - - try { - String[] propertyKeys = serviceReference.getPropertyKeys(); - - Map properties = new HashMap<>( - propertyKeys.length); - - for (String propertyKey : propertyKeys) { - properties.put( - propertyKey, serviceReference.getProperty(propertyKey)); - } - - properties.put( - "CXF_ENDPOINT_ADDRESS", - serviceReference.getProperty("osgi.jaxrs.application.base"). - toString()); - - CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator = - new CXFJaxRsServiceRegistrator(_bus, application, properties); - - return new Tracked( - cxfJaxRsServiceRegistrator, application, - _bundleContext.registerService( - CXFJaxRsServiceRegistrator.class, - cxfJaxRsServiceRegistrator, new Hashtable<>(properties))); - } - catch (Throwable e) { - _bundleContext.ungetService(serviceReference); - - throw e; - } - } - - @Override - public void modifiedService( - ServiceReference serviceReference, Tracked tracked) { - - removedService(serviceReference, tracked); - - addingService(serviceReference); - } - - @Override - public void removedService( - ServiceReference reference, Tracked tracked) { - - _bundleContext.ungetService(reference); - - tracked.getCxfJaxRsServiceRegistrator().close(); - - tracked.getCxfJaxRsServiceRegistratorServiceRegistration().unregister(); - } - - public static class Tracked { - - private final CXFJaxRsServiceRegistrator _cxfJaxRsServiceRegistrator; - private final Application _application; - private final ServiceRegistration - _cxfJaxRsServiceRegistratorServiceRegistration; - - public Application getApplication() { - return _application; - } - - public CXFJaxRsServiceRegistrator getCxfJaxRsServiceRegistrator() { - return _cxfJaxRsServiceRegistrator; - } - - public ServiceRegistration - getCxfJaxRsServiceRegistratorServiceRegistration() { - - return _cxfJaxRsServiceRegistratorServiceRegistration; - } - - public Tracked( - CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator, - Application application, - ServiceRegistration - cxfJaxRsServiceRegistratorServiceRegistration) { - - _cxfJaxRsServiceRegistrator = cxfJaxRsServiceRegistrator; - _application = application; - _cxfJaxRsServiceRegistratorServiceRegistration = - cxfJaxRsServiceRegistratorServiceRegistration; - } - - } -} - - http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java deleted file mode 100644 index ba15c1e..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import java.util.Arrays; -import java.util.Collection; - -import javax.ws.rs.core.Application; - -import org.apache.cxf.Bus; -import org.osgi.framework.BundleContext; -import org.osgi.framework.Filter; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; -import org.osgi.util.tracker.ServiceTracker; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -/** - * @author Carlos Sierra Andrés - */ -public class BusServiceTrackerCustomizer - implements ServiceTrackerCustomizer>> { - - private BundleContext _bundleContext; - - public BusServiceTrackerCustomizer(BundleContext bundleContext) { - _bundleContext = bundleContext; - } - - @Override - public Collection> - addingService(ServiceReference serviceReference) { - - Bus bus = _bundleContext.getService(serviceReference); - - try { - ServiceTracker applicationTracker = - new ServiceTracker<>(_bundleContext, getApplicationFilter(), - new ApplicationServiceTrackerCustomizer( - _bundleContext, bus)); - - applicationTracker.open(); - - ServiceTracker singletonsServiceTracker = - new ServiceTracker<>(_bundleContext, getSingletonsFilter(), - new SingletonServiceTrackerCustomizer(_bundleContext, bus)); - - singletonsServiceTracker.open(); - - ServiceTracker filtersAndInterceptorsServiceTracker = - new ServiceTracker<>(_bundleContext, getFiltersFilter(), - new FiltersAndInterceptorsServiceTrackerCustomizer( - _bundleContext)); - - filtersAndInterceptorsServiceTracker.open(); - - return Arrays.asList(applicationTracker, singletonsServiceTracker, filtersAndInterceptorsServiceTracker); - } - catch (InvalidSyntaxException ise) { - throw new RuntimeException(ise); - } - catch (Exception e) { - _bundleContext.ungetService(serviceReference); - - throw e; - } - } - - private Filter getFiltersFilter() throws InvalidSyntaxException { - return _bundleContext.createFilter("(osgi.jaxrs.filter.base=*)"); - } - - private Filter getApplicationFilter() throws InvalidSyntaxException { - return _bundleContext.createFilter( - "(&(objectClass=" + Application.class.getName() + ")" + - "(osgi.jaxrs.application.base=*))"); - } - - private Filter getSingletonsFilter() throws InvalidSyntaxException { - return _bundleContext.createFilter("(osgi.jaxrs.resource.base=*)"); - } - - @Override - public void modifiedService( - ServiceReference reference, - Collection> serviceTrackers) { - - removedService(reference, serviceTrackers); - - addingService(reference); - } - - @Override - public void removedService( - ServiceReference serviceReference, - Collection> serviceTrackers) { - - _bundleContext.ungetService(serviceReference); - - for (ServiceTracker serviceTracker : serviceTrackers) { - serviceTracker.close(); - } - } - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java deleted file mode 100644 index 7449ec8..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - * - * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - * - * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -import javax.ws.rs.core.Application; -import javax.ws.rs.ext.RuntimeDelegate; - -import org.apache.cxf.Bus; -import org.apache.cxf.endpoint.Server; -import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; -import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider; -import org.apache.cxf.jaxrs.provider.json.JSONProvider; - -/** - * @author Carlos Sierra Andrés - */ -public class CXFJaxRsServiceRegistrator { - - public CXFJaxRsServiceRegistrator( - Bus bus, Application application, Map properties) { - - _bus = bus; - _application = application; - _properties = properties; - - rewire(); - } - - public void close() { - if (_closed) { - return; - } - - if (_server != null) { - _server.destroy(); - } - - _closed = true; - } - - public void addProvider(Object provider) { - if (_closed) { - return; - } - - _providers.add(provider); - - rewire(); - } - - public void addService(Object service) { - if (_closed) { - return; - } - - _services.add(service); - - rewire(); - } - - public void removeProvider(Object provider) { - if (_closed) { - return; - } - - _providers.remove(provider); - - rewire(); - } - - public void removeService(Object service) { - if (_closed) { - return; - } - - _services.remove(service); - - rewire(); - } - - protected synchronized void rewire() { - if (_server != null) { - _server.destroy(); - } - - RuntimeDelegate runtimeDelegate = RuntimeDelegate.getInstance(); - - JAXRSServerFactoryBean jaxRsServerFactoryBean = - runtimeDelegate.createEndpoint( - _application, JAXRSServerFactoryBean.class); - - jaxRsServerFactoryBean.setBus(_bus); - jaxRsServerFactoryBean.setProperties(_properties); - - JSONProvider jsonProvider = new JSONProvider<>(); - - jsonProvider.setDropCollectionWrapperElement(true); - jsonProvider.setDropRootElement(true); - jsonProvider.setSerializeAsArray(true); - jsonProvider.setSupportUnwrapped(true); - - jaxRsServerFactoryBean.setProvider(jsonProvider); - - for (Object provider : _providers) { - jaxRsServerFactoryBean.setProvider(provider); - } - - for (Object service : _services) { - jaxRsServerFactoryBean.setResourceProvider( - new SingletonResourceProvider(service, true)); - } - - String address = _properties.get("CXF_ENDPOINT_ADDRESS").toString(); - - if (address != null) { - jaxRsServerFactoryBean.setAddress(address); - } - - _server = jaxRsServerFactoryBean.create(); - - _server.start(); - } - - private volatile boolean _closed = false; - private final Application _application; - private final Bus _bus; - private final Map _properties; - private final Collection _providers = new ArrayList<>(); - private Server _server; - private final Collection _services = new ArrayList<>(); - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java deleted file mode 100644 index 07e8c7a..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.util.tracker.ServiceTracker; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -/** - * @author Carlos Sierra Andrés - */ -public class FiltersAndInterceptorsServiceTrackerCustomizer - implements ServiceTrackerCustomizer> { - - private BundleContext _bundleContext; - - public FiltersAndInterceptorsServiceTrackerCustomizer( - BundleContext bundleContext) { - - _bundleContext = bundleContext; - } - - @Override - public ServiceTracker addingService(final ServiceReference reference) { - final String filterBase = - reference.getProperty("osgi.jaxrs.filter.base").toString(); - - final Object service = _bundleContext.getService(reference); - - ServiceTracker serviceTracker = new ServiceTracker<>( - _bundleContext, CXFJaxRsServiceRegistrator.class, - new ServiceTrackerCustomizer - () { - - @Override - public CXFJaxRsServiceRegistrator addingService( - ServiceReference cxfReference) { - - Object resourceBaseObject = - cxfReference.getProperty("CXF_ENDPOINT_ADDRESS"); - - if (resourceBaseObject == null) { - return null; - } - - String resourceBase = resourceBaseObject.toString(); - - if (resourceBase.startsWith(filterBase)) { - CXFJaxRsServiceRegistrator serviceRegistrator = - _bundleContext.getService(cxfReference); - try { - serviceRegistrator.addProvider(service); - - return serviceRegistrator; - } - finally { - _bundleContext.ungetService(reference); - } - } - - return null; - } - - @Override - public void modifiedService( - ServiceReference reference, - CXFJaxRsServiceRegistrator service) { - - removedService(reference, service); - addingService(reference); - } - - @Override - public void removedService( - ServiceReference reference, - CXFJaxRsServiceRegistrator service) { - - CXFJaxRsServiceRegistrator serviceRegistrator = - _bundleContext.getService(reference); - try { - serviceRegistrator.removeProvider(service); - } - finally { - _bundleContext.ungetService(reference); - } - } - }); - - serviceTracker.open(); - - return serviceTracker; - } - - @Override - public void modifiedService( - ServiceReference reference, ServiceTracker serviceTracker) { - - removedService(reference, serviceTracker); - addingService(reference); - } - - @Override - public void removedService( - ServiceReference reference, ServiceTracker serviceTracker) { - - _bundleContext.ungetService(reference); - - serviceTracker.close(); - } -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java deleted file mode 100644 index 433f70c..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java +++ /dev/null @@ -1,104 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.Filter; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; -import org.osgi.framework.wiring.BundleWiring; -import org.osgi.util.tracker.ServiceTracker; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -/** - * @author Carlos Sierra Andrés - */ -public class ServicesServiceTrackerCustomizer - implements ServiceTrackerCustomizer - > { - - private final BundleContext _bundleContext; - - public ServicesServiceTrackerCustomizer(BundleContext bundleContext) { - _bundleContext = bundleContext; - } - - @Override - public ServiceTracker - - addingService(ServiceReference reference) { - - String applicationSelector = - reference.getProperty("jaxrs.application.select").toString(); - - Bundle bundle = reference.getBundle(); - - BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); - - ClassLoader classLoader = bundleWiring.getClassLoader(); - - Object service = _bundleContext.getService(reference); - - try { - Filter filter = _bundleContext.createFilter( - "(&(objectClass=" + CXFJaxRsServiceRegistrator.class.getName() + ")" + - applicationSelector + ")"); - - ServiceTracker - - serviceTracker = new ServiceTracker<>( - _bundleContext, filter, - new AddonsServiceTrackerCustomizer( - _bundleContext, classLoader, - service)); - - serviceTracker.open(); - - return serviceTracker; - } - catch (InvalidSyntaxException ise) { - _bundleContext.ungetService(reference); - - throw new RuntimeException(ise); - } - } - - @Override - public void modifiedService( - ServiceReference reference, - ServiceTracker - - serviceTracker) { - - removedService(reference, serviceTracker); - - addingService(reference); - } - - @Override - public void removedService( - ServiceReference reference, - ServiceTracker - - serviceTracker) { - - serviceTracker.close(); - - _bundleContext.ungetService(reference); - } - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java b/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java deleted file mode 100644 index 8645504..0000000 --- a/org.apache.aries.jax-rs.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package com.liferay.portal.remote.rest.extender.internal; - -import org.apache.cxf.Bus; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.framework.ServiceRegistration; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -import javax.ws.rs.core.Application; -import java.util.Collections; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Map; -import java.util.Set; - -/** - * @author Carlos Sierra Andrés - */ -class SingletonServiceTrackerCustomizer - implements ServiceTrackerCustomizer - { - - private BundleContext _bundleContext; - private Bus _bus; - - public SingletonServiceTrackerCustomizer( - BundleContext bundleContext, Bus bus) { - - _bundleContext = bundleContext; - _bus = bus; - } - - @Override - public Tracked addingService( - ServiceReference serviceReference) { - - final Object service = _bundleContext.getService( - serviceReference); - - try { - String[] propertyKeys = serviceReference.getPropertyKeys(); - - Map properties = new HashMap<>( - propertyKeys.length); - - for (String propertyKey : propertyKeys) { - if (propertyKey.equals("osgi.jaxrs.resource.base")) { - continue; - } - properties.put( - propertyKey, serviceReference.getProperty(propertyKey)); - } - - properties.put( - "CXF_ENDPOINT_ADDRESS", - serviceReference.getProperty("osgi.jaxrs.resource.base"). - toString()); - - CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator = - new CXFJaxRsServiceRegistrator( - _bus, - new Application() { - @Override - public Set getSingletons() { - return Collections.singleton(service); - } - }, - properties); - - return new Tracked( - cxfJaxRsServiceRegistrator, service, - _bundleContext.registerService( - CXFJaxRsServiceRegistrator.class, - cxfJaxRsServiceRegistrator, new Hashtable<>(properties))); - } - catch (Exception e) { - _bundleContext.ungetService(serviceReference); - - throw e; - } - } - - @Override - public void modifiedService( - ServiceReference serviceReference, Tracked tracked) { - - removedService(serviceReference, tracked); - - addingService(serviceReference); - } - - @Override - public void removedService( - ServiceReference reference, Tracked tracked) { - - _bundleContext.ungetService(reference); - - Object service = tracked.getService(); - - CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator = - tracked.getCxfJaxRsServiceRegistrator(); - - cxfJaxRsServiceRegistrator.close(); - - tracked.getCxfJaxRsServiceRegistratorServiceRegistration().unregister(); - } - - public static class Tracked { - - private final CXFJaxRsServiceRegistrator _cxfJaxRsServiceRegistrator; - private final Object _service; - private final ServiceRegistration - _cxfJaxRsServiceRegistratorServiceRegistration; - - public Object getService() { - return _service; - } - - public CXFJaxRsServiceRegistrator getCxfJaxRsServiceRegistrator() { - return _cxfJaxRsServiceRegistrator; - } - - public ServiceRegistration - getCxfJaxRsServiceRegistratorServiceRegistration() { - - return _cxfJaxRsServiceRegistratorServiceRegistration; - } - - public Tracked( - CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator, - Object service, - ServiceRegistration - cxfJaxRsServiceRegistratorServiceRegistration) { - - _cxfJaxRsServiceRegistrator = cxfJaxRsServiceRegistrator; - _service = service; - _cxfJaxRsServiceRegistratorServiceRegistration = - cxfJaxRsServiceRegistratorServiceRegistration; - } - - } - -} - - http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.integration-test/integration-test.bndrun ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.integration-test/integration-test.bndrun b/org.apache.aries.jax-rs.integration-test/integration-test.bndrun deleted file mode 100644 index 435ad96..0000000 --- a/org.apache.aries.jax-rs.integration-test/integration-test.bndrun +++ /dev/null @@ -1,50 +0,0 @@ --standalone: - --plugin.integration.test = \ - aQute.bnd.repository.maven.pom.provider.BndPomRepository; \ - snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \ - releaseUrls=https://repo1.maven.org/maven2/; \ - pom=${.}/pom.xml; \ - name=integration.test; \ - location=${.}/target/cached.xml - --runrequires: \ - osgi.identity;filter:='(osgi.identity=org.apache.aries.jax-rs.tests)' - --runfw: org.eclipse.osgi;version='[3.10.100.v20150529-1857,3.10.100.v20150529-1857]' - -#-runtrace: true - --runee: JavaSE-1.8 --resolve.effective: resolve, active - --runsystempackages.eqnx: javax.script --runsystemcapabilities.dflt: ${native_capability} --runproperties.eqnx: \ - osgi.console.enable.builtin=false, \ - osgi.console=, \ - org.osgi.service.http.port=8080 --runbundles: \ - javax.annotation-api; version='[1.2.0,1.2.1)',\ - javax.json-api; version='[1.0.0,1.0.1)',\ - javax.ws.rs-api; version='[2.0.1,2.0.2)',\ - log4j; version='[1.2.17,1.2.18)',\ - org.apache.aries.jax-rs.extender; version='[1.0.0,1.0.1)',\ - org.apache.aries.jax-rs.tests; version='[1.0.0,1.0.1)',\ - org.apache.felix.bundlerepository; version='[1.6.0,1.6.1)',\ - org.apache.felix.configadmin; version='[1.8.8,1.8.9)',\ - org.apache.felix.http.api; version='[3.0.0,3.0.1)',\ - org.apache.felix.http.jetty; version='[3.4.0,3.4.1)',\ - org.apache.felix.http.servlet-api; version='[1.1.2,1.1.3)',\ - org.apache.felix.scr; version='[2.0.2,2.0.3)',\ - org.apache.ws.xmlschema.core; version='[2.2.1,2.2.2)',\ - org.eclipse.equinox.event; version='[1.3.100,1.3.101)',\ - org.eclipse.equinox.metatype; version='[1.4.100,1.4.101)',\ - org.objectweb.asm; version='[5.0.4,5.0.5)',\ - org.osgi.compendium; version='[4.1.0,4.1.1)',\ - org.osgi.service.event; version='[1.3.1,1.3.2)',\ - org.osgi.service.metatype; version='[1.3.0,1.3.1)',\ - osgi.enroute.hamcrest.wrapper; version='[1.3.0,1.3.1)',\ - osgi.enroute.junit.wrapper; version='[4.12.0,4.12.1)',\ - slf4j.api; version='[1.7.21,1.7.22)',\ - slf4j.log4j12; version='[1.6.1,1.6.2)' \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.integration-test/pom.xml ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.integration-test/pom.xml b/org.apache.aries.jax-rs.integration-test/pom.xml deleted file mode 100644 index 2650fc2..0000000 --- a/org.apache.aries.jax-rs.integration-test/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ - - 4.0.0 - - - org.apache.aries - org.apache.aries.jax-rs - 1.0.0-SNAPSHOT - .. - - - org.apache.aries.jax-rs.integration-test - - pom - - - - - biz.aQute.bnd - bnd-testing-maven-plugin - 3.4.0-SNAPSHOT - - false - false - - integration-test.bndrun - - . - - - - - testing - - - - - - - - - org.apache.aries - org.apache.aries.jax-rs.extender - 1.0.0-SNAPSHOT - - - org.apache.aries - org.apache.aries.jax-rs.tests - 1.0.0-SNAPSHOT - - - org.apache.felix - org.apache.felix.http.jetty - 3.4.0 - - - org.osgi - osgi.enroute.pom.distro - 2.0.0 - - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.tests/bnd.bnd ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.tests/bnd.bnd b/org.apache.aries.jax-rs.tests/bnd.bnd deleted file mode 100644 index 264db93..0000000 --- a/org.apache.aries.jax-rs.tests/bnd.bnd +++ /dev/null @@ -1,5 +0,0 @@ -Bundle-Description: Integration Test bundle for the JAX-RS extender - -Test-Cases: \ - ${classes;CONCRETE;EXTENDS;junit.framework.TestCase},\ - ${classes;CONCRETE;ANNOTATED;org.junit.Test} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.tests/pom.xml ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.tests/pom.xml b/org.apache.aries.jax-rs.tests/pom.xml deleted file mode 100644 index 0a4a453..0000000 --- a/org.apache.aries.jax-rs.tests/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.apache.aries - org.apache.aries.jax-rs - 1.0.0-SNAPSHOT - - - org.apache.aries.jax-rs.tests - - - - javax.ws.rs - javax.ws.rs-api - 2.0.1 - - - org.osgi - org.osgi.core - 5.0.0 - - - org.osgi - osgi.enroute.junit.wrapper - 4.12.0 - - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.tests/src/main/java/test/JaxrsTest.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.tests/src/main/java/test/JaxrsTest.java b/org.apache.aries.jax-rs.tests/src/main/java/test/JaxrsTest.java deleted file mode 100644 index 38b03c2..0000000 --- a/org.apache.aries.jax-rs.tests/src/main/java/test/JaxrsTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package test; - -import java.util.Dictionary; -import java.util.Hashtable; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.Filter; -import org.osgi.framework.FrameworkUtil; -import org.osgi.framework.ServiceRegistration; -import org.osgi.util.tracker.ServiceTracker; - -import junit.framework.TestCase; -import test.types.TestAddon; - -public class JaxrsTest extends TestCase { - - static BundleContext bundleContext = FrameworkUtil.getBundle( - JaxrsTest.class).getBundleContext(); - - public void testEndPoint() throws Exception { - ServiceRegistration serviceRegistration = null; - - try { - TestAddon testAddon = new TestAddon(); - - Dictionary properties = new Hashtable<>(); - properties.put("osgi.jaxrs.resource.base", "/test-addon"); - - serviceRegistration = bundleContext.registerService( - Object.class, testAddon, properties); - - // TODO this availability should be checked through a jaxrs runtime service of some kind - - Filter filter = bundleContext.createFilter( - "(&(objectClass=com.liferay.portal.remote.rest.extender.internal.CXFJaxRsServiceRegistrator)" + - "(CXF_ENDPOINT_ADDRESS=/test-addon))"); - - ServiceTracker st = new ServiceTracker<>(bundleContext, filter, null); - - st.open(); - - if (st.waitForService(5000) == null) { - fail(); - } - - // TODO add http client to connect to the endpoint - } - finally { - if (serviceRegistration != null) { - serviceRegistration.unregister(); - } - } - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestAddon.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestAddon.java b/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestAddon.java deleted file mode 100644 index 849d582..0000000 --- a/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestAddon.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package test.types; - -import javax.annotation.PostConstruct; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.UriInfo; - -//property = "osgi.jaxrs.resource.base=/test-addon", -public class TestAddon { - - @GET - @Path("/{name}") - public String sayHello(@PathParam("name") String name) { - return "Hello " + name; - } - - @PostConstruct - public void init() { - System.out.println("URIINFO: " + _uriInfo); - } - - @Context - UriInfo _uriInfo; - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestApplication.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestApplication.java b/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestApplication.java deleted file mode 100644 index c7e65f3..0000000 --- a/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestApplication.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package test.types; - -import java.util.Collections; -import java.util.Set; - -import javax.ws.rs.GET; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Application; - -// property = "osgi.jaxrs.application.base=/example-application", -public class TestApplication extends Application { - - @Override - public Set getSingletons() { - return Collections.singleton(this); - } - - @GET - @Produces("text/plain") - public String sayHello() { - return "Hello world"; - } - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestFilter.java ---------------------------------------------------------------------- diff --git a/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestFilter.java b/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestFilter.java deleted file mode 100644 index 928221a..0000000 --- a/org.apache.aries.jax-rs.tests/src/main/java/test/types/TestFilter.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. - *

- * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) - * any later version. - *

- * This library 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 Lesser General Public License for more - * details. - */ - -package test.types; - -import java.io.IOException; - -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.ext.Provider; - -// property = { -// "jaxrs.application.select=(component.name=com.liferay.portal.rest.example.ExampleApplication)", -// "osgi.jaxrs.filter.base=/examples" -// } -@Provider -public class TestFilter implements ContainerRequestFilter { - - @Override - public void filter(ContainerRequestContext requestContext) - throws IOException { - - System.out.println("FILTERED!"); - } - -} http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/76e7db85/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index e0e1edf..6a426c8 100644 --- a/pom.xml +++ b/pom.xml @@ -48,11 +48,11 @@ - org.apache.aries.jax-rs.extender - org.apache.aries.jax-rs.example - org.apache.aries.jax-rs.bndrun - org.apache.aries.jax-rs.tests - org.apache.aries.jax-rs.integration-test + jax-rs.whiteboard + jax-rs.itests + jax-rs.itests-run + jax-rs.example + jax-rs.example-run @@ -80,4 +80,4 @@ default - \ No newline at end of file +