You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2016/11/24 10:53:24 UTC
[20/50] [abbrv] aries-jax-rs-whiteboard git commit: [maven] convert
to maven build using bnd-maven-plugin
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.jax-rs.cxf-common/src/main/resources/content/Language_zh_TW.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.jax-rs.cxf-common/src/main/resources/content/Language_zh_TW.properties b/org.apache.aries.jax-rs.cxf-common/src/main/resources/content/Language_zh_TW.properties
new file mode 100644
index 0000000..c287f7f
--- /dev/null
+++ b/org.apache.aries.jax-rs.cxf-common/src/main/resources/content/Language_zh_TW.properties
@@ -0,0 +1 @@
+cxf.endpoint.configuration.name=CXF \u7d42\u7d50\u9ede (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.jax-rs.example/.gitignore
----------------------------------------------------------------------
diff --git a/org.apache.aries.jax-rs.example/.gitignore b/org.apache.aries.jax-rs.example/.gitignore
new file mode 100644
index 0000000..83ccc54
--- /dev/null
+++ b/org.apache.aries.jax-rs.example/.gitignore
@@ -0,0 +1,2 @@
+/build/
+/bin/
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/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
new file mode 100644
index 0000000..252a6ba
--- /dev/null
+++ b/org.apache.aries.jax-rs.example/pom.xml
@@ -0,0 +1,27 @@
+<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.apache.aries</groupId>
+ <artifactId>org.apache.aries.jax-rs</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>com.liferay.portal.rest.example</artifactId>
+ <packaging>jar</packaging>
+ <description>REST Example</description>
+ <dependencies>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ <version>1.3.0</version>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/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
new file mode 100644
index 0000000..5431e76
--- /dev/null
+++ b/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleAddon.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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/c7de7755/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
new file mode 100644
index 0000000..25234b2
--- /dev/null
+++ b/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleApplication.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p/>
+ * 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.
+ * <p/>
+ * 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<Object> getSingletons() {
+ return Collections.<Object>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/c7de7755/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
new file mode 100644
index 0000000..c2e89ac
--- /dev/null
+++ b/org.apache.aries.jax-rs.example/src/main/java/com/liferay/portal/rest/example/ExampleFilter.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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/c7de7755/org.apache.aries.rest.extender/.gitignore
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/.gitignore b/org.apache.aries.rest.extender/.gitignore
new file mode 100644
index 0000000..83ccc54
--- /dev/null
+++ b/org.apache.aries.rest.extender/.gitignore
@@ -0,0 +1,2 @@
+/build/
+/bin/
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/bnd.bnd
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/bnd.bnd b/org.apache.aries.rest.extender/bnd.bnd
new file mode 100644
index 0000000..d03d478
--- /dev/null
+++ b/org.apache.aries.rest.extender/bnd.bnd
@@ -0,0 +1,5 @@
+Bundle-Activator: com.liferay.portal.remote.rest.extender.activator.CXFJaxRsBundleActivator
+Provide-Capability: \
+ osgi.extender; \
+ osgi.extender='aries.jax-rs'; \
+ version:Version='1.0.0'
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/pom.xml
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/pom.xml b/org.apache.aries.rest.extender/pom.xml
new file mode 100644
index 0000000..5952b5a
--- /dev/null
+++ b/org.apache.aries.rest.extender/pom.xml
@@ -0,0 +1,67 @@
+<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.apache.aries</groupId>
+ <artifactId>org.apache.aries.jax-rs</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>org.apache.aries.rest.extender</artifactId>
+ <packaging>jar</packaging>
+ <description>Aries JAX-RS Extender</description>
+ <dependencies>
+ <dependency>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>biz.aQute.bndlib</artifactId>
+ <version>3.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.liferay</groupId>
+ <artifactId>com.liferay.portal.remote.cxf.jaxrs.common</artifactId>
+ <version>2.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-core</artifactId>
+ <version>3.1.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>3.1.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-rs-extension-providers</artifactId>
+ <version>3.1.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>6.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.http.whiteboard</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.dependencymanager</artifactId>
+ <version>3.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ <version>1.3.8</version>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java
new file mode 100644
index 0000000..04017d6
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/activator/CXFJaxRsBundleActivator.java
@@ -0,0 +1,78 @@
+/**
+ * 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 javax.ws.rs.ext.RuntimeDelegate;
+
+import com.liferay.portal.remote.rest.extender.internal.BusServiceTrackerCustomizer;
+import com.liferay.portal.remote.rest.extender.internal.ServicesServiceTrackerCustomizer;
+import org.apache.cxf.Bus;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Filter;
+import org.osgi.util.tracker.ServiceTracker;
+
+/**
+ * @author Carlos Sierra Andr�s
+ */
+public class CXFJaxRsBundleActivator implements BundleActivator {
+
+ private ServiceTracker<?, ?> _busServiceTracker;
+ private ServiceTracker<?, ?> _singletonsTracker;
+
+ @Override
+ public void start(BundleContext bundleContext) throws Exception {
+ Thread thread = Thread.currentThread();
+
+ ClassLoader contextClassLoader = thread.getContextClassLoader();
+
+ ClassLoader classLoader = RuntimeDelegate.class.getClassLoader();
+
+ thread.setContextClassLoader(classLoader);
+
+ try {
+
+ // Initialize instance so it is never looked up again
+
+ RuntimeDelegate.getInstance();
+ }
+ finally {
+ thread.setContextClassLoader(contextClassLoader);
+ }
+
+ _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();
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java
new file mode 100644
index 0000000..8900ded
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/AddonsServiceTrackerCustomizer.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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<CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator> {
+
+ 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<CXFJaxRsServiceRegistrator> 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<CXFJaxRsServiceRegistrator> reference,
+ CXFJaxRsServiceRegistrator registrator) {
+
+ removedService(reference, registrator);
+
+ addingService(reference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<CXFJaxRsServiceRegistrator> 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/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java
new file mode 100644
index 0000000..2594ac3
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ApplicationServiceTrackerCustomizer.java
@@ -0,0 +1,140 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+/**
+ * @author Carlos Sierra Andr�s
+ */
+class ApplicationServiceTrackerCustomizer
+ implements ServiceTrackerCustomizer
+ <Application, ApplicationServiceTrackerCustomizer.Tracked> {
+
+ private BundleContext _bundleContext;
+ private Bus _bus;
+
+ public ApplicationServiceTrackerCustomizer(
+ BundleContext bundleContext, Bus bus) {
+
+ _bundleContext = bundleContext;
+ _bus = bus;
+ }
+
+ @Override
+ public Tracked addingService(
+ ServiceReference<Application> serviceReference) {
+
+ Application application = _bundleContext.getService(
+ serviceReference);
+
+ try {
+ String[] propertyKeys = serviceReference.getPropertyKeys();
+
+ Map<String, Object> 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 (Exception e) {
+ _bundleContext.ungetService(serviceReference);
+
+ throw e;
+ }
+ }
+
+ @Override
+ public void modifiedService(
+ ServiceReference<Application> serviceReference, Tracked tracked) {
+
+ removedService(serviceReference, tracked);
+
+ addingService(serviceReference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<Application> 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<CXFJaxRsServiceRegistrator>
+ _cxfJaxRsServiceRegistratorServiceRegistration;
+
+ public Application getApplication() {
+ return _application;
+ }
+
+ public CXFJaxRsServiceRegistrator getCxfJaxRsServiceRegistrator() {
+ return _cxfJaxRsServiceRegistrator;
+ }
+
+ public ServiceRegistration<CXFJaxRsServiceRegistrator>
+ getCxfJaxRsServiceRegistratorServiceRegistration() {
+
+ return _cxfJaxRsServiceRegistratorServiceRegistration;
+ }
+
+ public Tracked(
+ CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator,
+ Application application,
+ ServiceRegistration<CXFJaxRsServiceRegistrator>
+ cxfJaxRsServiceRegistratorServiceRegistration) {
+
+ _cxfJaxRsServiceRegistrator = cxfJaxRsServiceRegistrator;
+ _application = application;
+ _cxfJaxRsServiceRegistratorServiceRegistration =
+ cxfJaxRsServiceRegistratorServiceRegistration;
+ }
+
+ }
+}
+
+
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java
new file mode 100644
index 0000000..8440196
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/BusServiceTrackerCustomizer.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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.Filter;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+
+import javax.ws.rs.core.Application;
+import java.util.Arrays;
+import java.util.Collection;
+
+/**
+ * @author Carlos Sierra Andr�s
+ */
+public class BusServiceTrackerCustomizer
+ implements ServiceTrackerCustomizer<Bus, Collection<ServiceTracker<?, ?>>> {
+
+ private BundleContext _bundleContext;
+
+ public BusServiceTrackerCustomizer(BundleContext bundleContext) {
+ _bundleContext = bundleContext;
+ }
+
+ @Override
+ public Collection<ServiceTracker<?, ?>>
+ addingService(ServiceReference<Bus> serviceReference) {
+
+ Bus bus = _bundleContext.getService(serviceReference);
+
+ try {
+ ServiceTracker<Application,?> applicationTracker =
+ new ServiceTracker<>(_bundleContext, getApplicationFilter(),
+ new ApplicationServiceTrackerCustomizer(
+ _bundleContext, bus));
+
+ applicationTracker.open();
+
+ ServiceTracker<Object, ?> singletonsServiceTracker =
+ new ServiceTracker<>(_bundleContext, getSingletonsFilter(),
+ new SingletonServiceTrackerCustomizer(_bundleContext, bus));
+
+ singletonsServiceTracker.open();
+
+ ServiceTracker<Object, ?> filtersAndInterceptorsServiceTracker =
+ new ServiceTracker<>(_bundleContext, getFiltersFilter(),
+ new FiltersAndInterceptorsServiceTrackerCustomizer(
+ _bundleContext));
+
+ filtersAndInterceptorsServiceTracker.open();
+
+ return Arrays.asList(applicationTracker, singletonsServiceTracker);
+ }
+ 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<Bus> reference,
+ Collection<ServiceTracker<?, ?>> serviceTrackers) {
+
+ removedService(reference, serviceTrackers);
+
+ addingService(reference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<Bus> serviceReference,
+ Collection<ServiceTracker<?, ?>> serviceTrackers) {
+
+ _bundleContext.ungetService(serviceReference);
+
+ for (ServiceTracker<?, ?> serviceTracker : serviceTrackers) {
+ serviceTracker.close();
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java
new file mode 100644
index 0000000..7449ec8
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/CXFJaxRsServiceRegistrator.java
@@ -0,0 +1,148 @@
+/**
+ * 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<String, Object> 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<Object> 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<String, Object> _properties;
+ private final Collection<Object> _providers = new ArrayList<>();
+ private Server _server;
+ private final Collection<Object> _services = new ArrayList<>();
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java
new file mode 100644
index 0000000..07e8c7a
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/FiltersAndInterceptorsServiceTrackerCustomizer.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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<Object, ServiceTracker<?, ?>> {
+
+ private BundleContext _bundleContext;
+
+ public FiltersAndInterceptorsServiceTrackerCustomizer(
+ BundleContext bundleContext) {
+
+ _bundleContext = bundleContext;
+ }
+
+ @Override
+ public ServiceTracker<?, ?> addingService(final ServiceReference<Object> reference) {
+ final String filterBase =
+ reference.getProperty("osgi.jaxrs.filter.base").toString();
+
+ final Object service = _bundleContext.getService(reference);
+
+ ServiceTracker<CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator> serviceTracker = new ServiceTracker<>(
+ _bundleContext, CXFJaxRsServiceRegistrator.class,
+ new ServiceTrackerCustomizer
+ <CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator>() {
+
+ @Override
+ public CXFJaxRsServiceRegistrator addingService(
+ ServiceReference<CXFJaxRsServiceRegistrator> 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<CXFJaxRsServiceRegistrator> reference,
+ CXFJaxRsServiceRegistrator service) {
+
+ removedService(reference, service);
+ addingService(reference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<CXFJaxRsServiceRegistrator> 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<Object> reference, ServiceTracker<?, ?> serviceTracker) {
+
+ removedService(reference, serviceTracker);
+ addingService(reference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<Object> reference, ServiceTracker<?, ?> serviceTracker) {
+
+ _bundleContext.ungetService(reference);
+
+ serviceTracker.close();
+ }
+}
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java
new file mode 100644
index 0000000..433f70c
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/ServicesServiceTrackerCustomizer.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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
+ <Object, ServiceTracker
+ <CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator>> {
+
+ private final BundleContext _bundleContext;
+
+ public ServicesServiceTrackerCustomizer(BundleContext bundleContext) {
+ _bundleContext = bundleContext;
+ }
+
+ @Override
+ public ServiceTracker
+ <CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator>
+ addingService(ServiceReference<Object> 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
+ <CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator>
+ 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<Object> reference,
+ ServiceTracker
+ <CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator>
+ serviceTracker) {
+
+ removedService(reference, serviceTracker);
+
+ addingService(reference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<Object> reference,
+ ServiceTracker
+ <CXFJaxRsServiceRegistrator, CXFJaxRsServiceRegistrator>
+ serviceTracker) {
+
+ serviceTracker.close();
+
+ _bundleContext.ungetService(reference);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java
new file mode 100644
index 0000000..8645504
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/java/com/liferay/portal/remote/rest/extender/internal/SingletonServiceTrackerCustomizer.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
+ * <p>
+ * 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.
+ * <p>
+ * 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
+ <Object, SingletonServiceTrackerCustomizer.Tracked> {
+
+ private BundleContext _bundleContext;
+ private Bus _bus;
+
+ public SingletonServiceTrackerCustomizer(
+ BundleContext bundleContext, Bus bus) {
+
+ _bundleContext = bundleContext;
+ _bus = bus;
+ }
+
+ @Override
+ public Tracked addingService(
+ ServiceReference<Object> serviceReference) {
+
+ final Object service = _bundleContext.getService(
+ serviceReference);
+
+ try {
+ String[] propertyKeys = serviceReference.getPropertyKeys();
+
+ Map<String, Object> 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<Object> 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<Object> serviceReference, Tracked tracked) {
+
+ removedService(serviceReference, tracked);
+
+ addingService(serviceReference);
+ }
+
+ @Override
+ public void removedService(
+ ServiceReference<Object> 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<CXFJaxRsServiceRegistrator>
+ _cxfJaxRsServiceRegistratorServiceRegistration;
+
+ public Object getService() {
+ return _service;
+ }
+
+ public CXFJaxRsServiceRegistrator getCxfJaxRsServiceRegistrator() {
+ return _cxfJaxRsServiceRegistrator;
+ }
+
+ public ServiceRegistration<CXFJaxRsServiceRegistrator>
+ getCxfJaxRsServiceRegistratorServiceRegistration() {
+
+ return _cxfJaxRsServiceRegistratorServiceRegistration;
+ }
+
+ public Tracked(
+ CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator,
+ Object service,
+ ServiceRegistration<CXFJaxRsServiceRegistrator>
+ cxfJaxRsServiceRegistratorServiceRegistration) {
+
+ _cxfJaxRsServiceRegistrator = cxfJaxRsServiceRegistrator;
+ _service = service;
+ _cxfJaxRsServiceRegistratorServiceRegistration =
+ cxfJaxRsServiceRegistratorServiceRegistration;
+ }
+
+ }
+
+}
+
+
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language.properties
new file mode 100644
index 0000000..ff2b883
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_ar.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_ar.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_ar.properties
new file mode 100644
index 0000000..f7ddde5
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_ar.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u0628\u0642\u064a\u0629 \u0645\u0648\u0633\u0639 (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_bg.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_bg.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_bg.properties
new file mode 100644
index 0000000..93f99d3
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_bg.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u041f\u041e\u0427\u0418\u0412\u041a\u0410 Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_ca.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_ca.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_ca.properties
new file mode 100644
index 0000000..9476a3e
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_ca.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=Amplificador REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_cs.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_cs.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_cs.properties
new file mode 100644
index 0000000..76bc497
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_cs.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=OSTATN� za\u0159�zen� Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_da.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_da.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_da.properties
new file mode 100644
index 0000000..9b885db
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_da.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=RESTEN Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_de.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_de.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_de.properties
new file mode 100644
index 0000000..ff2b883
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_de.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_el.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_el.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_el.properties
new file mode 100644
index 0000000..1fd60a7
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_el.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u03a5\u03a0\u038c\u039b\u039f\u0399\u03a0\u039f \u03b1\u03c1\u03b1\u03af\u03c9\u03c3\u03b7\u03c2 (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_en.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_en.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_en.properties
new file mode 100644
index 0000000..ff2b883
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_en.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_es.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_es.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_es.properties
new file mode 100644
index 0000000..cc489da
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_es.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=Extensor REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_et.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_et.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_et.properties
new file mode 100644
index 0000000..824e6e1
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_et.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=�LEJ��NUD Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_eu.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_eu.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_eu.properties
new file mode 100644
index 0000000..e82a9e0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_eu.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Copy)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_fa.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_fa.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_fa.properties
new file mode 100644
index 0000000..64e00d0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_fa.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u06af\u0633\u062a\u0631\u0634 \u062f\u0647\u0646\u062f\u0647 REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_fi.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_fi.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_fi.properties
new file mode 100644
index 0000000..d0e0a1d
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_fi.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST laajennin
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_fr.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_fr.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_fr.properties
new file mode 100644
index 0000000..52e43d9
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_fr.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=Extendeur REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_gl.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_gl.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_gl.properties
new file mode 100644
index 0000000..e82a9e0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_gl.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Copy)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_hi_IN.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_hi_IN.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_hi_IN.properties
new file mode 100644
index 0000000..340d552
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_hi_IN.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u092c\u093e\u0915\u0940 \u092d\u0930\u0928\u0947\u0935\u093e\u0932\u093e (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_hr.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_hr.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_hr.properties
new file mode 100644
index 0000000..e82a9e0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_hr.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Copy)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_hu.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_hu.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_hu.properties
new file mode 100644
index 0000000..cdc65c6
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_hu.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST kiterjeszt\u0151
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_in.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_in.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_in.properties
new file mode 100644
index 0000000..b60839d
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_in.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=SISANYA Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_it.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_it.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_it.properties
new file mode 100644
index 0000000..ff2b883
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_it.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_iw.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_iw.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_iw.properties
new file mode 100644
index 0000000..667e11d
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_iw.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u05de\u05d0\u05e8\u05d9\u05da REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_ja.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_ja.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_ja.properties
new file mode 100644
index 0000000..ff2b883
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_ja.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_ko.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_ko.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_ko.properties
new file mode 100644
index 0000000..3b3ecce
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_ko.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\ub098\uba38\uc9c0 \uc775\uc2a4\ud150\ub354 (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_lo.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_lo.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_lo.properties
new file mode 100644
index 0000000..e82a9e0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_lo.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Copy)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_lt.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_lt.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_lt.properties
new file mode 100644
index 0000000..4f37958
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_lt.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=POILSIO pl\u0117stuvo (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_nb.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_nb.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_nb.properties
new file mode 100644
index 0000000..9b885db
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_nb.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=RESTEN Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_nl.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_nl.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_nl.properties
new file mode 100644
index 0000000..b62adc9
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_nl.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST-extenders
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_nl_BE.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_nl_BE.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_nl_BE.properties
new file mode 100644
index 0000000..d137e77
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_nl_BE.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_pl.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_pl.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_pl.properties
new file mode 100644
index 0000000..0055a27
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_pl.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=RESZTA Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_BR.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_BR.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_BR.properties
new file mode 100644
index 0000000..cc489da
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_BR.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=Extensor REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_PT.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_PT.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_PT.properties
new file mode 100644
index 0000000..cc489da
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_pt_PT.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=Extensor REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_ro.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_ro.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_ro.properties
new file mode 100644
index 0000000..2c26380
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_ro.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=RESTUL Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_ru.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_ru.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_ru.properties
new file mode 100644
index 0000000..068b2cd
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_ru.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u041e\u0421\u0422\u0410\u041b\u042c\u041d\u042b\u0415 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u0435\u043b\u044c (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_sk.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_sk.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_sk.properties
new file mode 100644
index 0000000..05a4cbe
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_sk.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=Roz\u0161irova\u010d REST
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_sl.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_sl.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_sl.properties
new file mode 100644
index 0000000..393ff7f
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_sl.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=OSTALI Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS.properties
new file mode 100644
index 0000000..e82a9e0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Copy)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS_latin.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS_latin.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS_latin.properties
new file mode 100644
index 0000000..e82a9e0
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_sr_RS_latin.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST Extender (Automatic Copy)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_sv.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_sv.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_sv.properties
new file mode 100644
index 0000000..9b885db
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_sv.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=RESTEN Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_tr.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_tr.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_tr.properties
new file mode 100644
index 0000000..87ddb28
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_tr.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=D\u0130\u011eER Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_uk.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_uk.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_uk.properties
new file mode 100644
index 0000000..2e65121
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_uk.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u0420\u0415\u0428\u0422\u0410 Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_vi.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_vi.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_vi.properties
new file mode 100644
index 0000000..e01047a
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_vi.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=C�n l\u1ea1i Extender (Automatic Translation)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_CN.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_CN.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_CN.properties
new file mode 100644
index 0000000..1d4ebb9
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_CN.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=\u5176\u4ed6\u6269\u5c55\u7a0b\u5e8f
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_TW.properties
----------------------------------------------------------------------
diff --git a/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_TW.properties b/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_TW.properties
new file mode 100644
index 0000000..36dac4d
--- /dev/null
+++ b/org.apache.aries.rest.extender/src/main/resources/content/Language_zh_TW.properties
@@ -0,0 +1 @@
+rest.extender.configuration.name=REST\u64f4\u5145\u5668
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/osgi-rest.iml
----------------------------------------------------------------------
diff --git a/osgi-rest.iml b/osgi-rest.iml
deleted file mode 100644
index caad45e..0000000
--- a/osgi-rest.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="osgi-rest" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build" />
- <output-test url="file://$MODULE_DIR$/build" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- </component>
-</module>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2ef5d2b..3da7abe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,7 +36,7 @@
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
- <version>3.3.0</version>
+ <version>3.4.0-SNAPSHOT</version>
<executions>
<execution>
<goals>
@@ -47,6 +47,11 @@
</plugin>
</plugins>
</build>
+ <modules>
+ <module>org.apache.aries.jax-rs.example</module>
+ <module>org.apache.aries.jax-rs.cxf-common</module>
+ <module>org.apache.aries.rest.extender</module>
+ </modules>
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
@@ -71,4 +76,11 @@
<layout>default</layout>
</repository>
</repositories>
-</project>
\ No newline at end of file
+ <pluginRepositories>
+ <pluginRepository>
+ <id>bnd-snapshots</id>
+ <url>https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/dist/bundles/</url>
+ <layout>default</layout>
+ </pluginRepository>
+ </pluginRepositories>
+</project>
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/.gitignore
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/.gitignore b/portal-remote-cxf-common/.gitignore
deleted file mode 100644
index 83ccc54..0000000
--- a/portal-remote-cxf-common/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/build/
-/bin/
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/.lfrbuild-portal
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/.lfrbuild-portal b/portal-remote-cxf-common/.lfrbuild-portal
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/bnd.bnd
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/bnd.bnd b/portal-remote-cxf-common/bnd.bnd
deleted file mode 100644
index 3daca64..0000000
--- a/portal-remote-cxf-common/bnd.bnd
+++ /dev/null
@@ -1,63 +0,0 @@
-Bundle-Activator: com.liferay.portal.remote.cxf.common.activator.CXFEndpointPublisherActivator
-Bundle-ClassPath:\
- .,\
- lib/cxf-core.jar,\
- lib/cxf-rt-bindings-soap.jar,\
- lib/cxf-rt-databinding-jaxb.jar,\
- lib/cxf-rt-transports-http.jar,\
- lib/cxf-rt-wsdl.jar,\
- lib/cxf-tools-common.jar,\
- lib/cxf-tools-validator.jar,\
- lib/javax.annotation-api.jar,\
- lib/wsdl4j.jar,\
- lib/xmlschema-core.jar
-Bundle-Name: Liferay Portal Remote CXF Common
-Bundle-SymbolicName: com.liferay.portal.remote.cxf.common
-Bundle-Version: 2.0.6
-Export-Package:\
- javax.wsdl.*;version="1.2",\
- \
- org.apache.cxf.*;version="3.1.7",\
- org.apache.ws.commons.schema.*;version="2.1.0"
-Import-Package:\
- !com.sun.*,\
- \
- !javax.validation.*,\
- \
- !net.sf.cglib.proxy.*,\
- \
- !org.apache.abdera.*,\
- !org.apache.aries.*,\
- !org.apache.cxf.aegis.*,\
- !org.apache.cxf.ws.policy.*,\
- !org.apache.neethi.*,\
- !org.apache.velocity.*,\
- !org.apache.xml.resolver.*,\
- !org.apache.xmlbeans.*,\
- \
- !org.junit.*,\
- \
- !org.jvnet.fastinfoset.*,\
- !org.jvnet.staxex.*,\
- \
- !org.osgi.service.blueprint.*,\
- \
- !org.relaxng.datatype.*,\
- \
- !org.slf4j.spi.*,\
- \
- !org.springframework.*,\
- *
-Liferay-Releng-Module-Group-Description:
-Liferay-Releng-Module-Group-Title: Remote Service Engines
--includeresource:\
- lib/cxf-core.jar=cxf-core-3.1.7.jar,\
- lib/cxf-rt-bindings-soap.jar=cxf-rt-bindings-soap-3.1.7.jar,\
- lib/cxf-rt-databinding-jaxb.jar=cxf-rt-databinding-jaxb-3.1.7.jar,\
- lib/cxf-rt-transports-http.jar=cxf-rt-transports-http-3.1.7.jar,\
- lib/cxf-rt-wsdl.jar=cxf-rt-wsdl-3.1.7.jar,\
- lib/cxf-tools-common.jar=cxf-tools-common-3.1.7.jar,\
- lib/cxf-tools-validator.jar=cxf-tools-validator-3.1.7.jar,\
- lib/javax.annotation-api.jar=javax.annotation-api-1.2.jar,\
- lib/wsdl4j.jar=wsdl4j-1.6.3.jar,\
- lib/xmlschema-core.jar=xmlschema-core-2.2.1.jar
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/build.gradle
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/build.gradle b/portal-remote-cxf-common/build.gradle
deleted file mode 100644
index f431c26..0000000
--- a/portal-remote-cxf-common/build.gradle
+++ /dev/null
@@ -1,48 +0,0 @@
-task deployDependencies(type: Copy)
-
-dependencies {
- compile group: "biz.aQute.bnd", name: "biz.aQute.bndlib", version: "3.1.0"
- compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.2'
- compile group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"
- compile group: "org.apache.cxf", name: "cxf-core", version: "3.1.7"
- compile group: "org.apache.cxf", name: "cxf-rt-bindings-soap", version: "3.1.7"
- compile group: "org.apache.cxf", name: "cxf-rt-databinding-jaxb", version: "3.1.7"
- compile group: "org.apache.cxf", name: "cxf-rt-transports-http", version: "3.1.7"
- compile group: "org.apache.cxf", name: "cxf-rt-wsdl", version: "3.1.7"
- compile group: "org.apache.cxf", name: "cxf-tools-common", version: "3.1.7"
- compile group: "org.apache.cxf", name: "cxf-tools-validator", version: "3.1.7"
- compile group: "org.apache.felix", name: "org.apache.felix.dependencymanager", version: "3.2.0"
-// compile group: "org.apache.ws.xmlschema", name: "xmlschema-core", version: "2.1.0"
- compile group: "org.codehaus.woodstox", name: "stax2-api", version: "3.1.4"
- compile group: "org.codehaus.woodstox", name: "woodstox-core-asl", version: "4.4.1"
- compile group: "org.osgi", name: "org.osgi.core", version: "5.0.0"
- compile group: "org.osgi", name: "org.osgi.service.http.whiteboard", version: "1.0.0"
- compile group: "org.slf4j", name: "slf4j-api", version: "1.7.2"
- compile group: "wsdl4j", name: "wsdl4j", version: "1.6.3"
-}
-
-deployDependencies {
- boolean keepDependencyVersions = Boolean.getBoolean("deploy.dependencies.keep.versions")
-
- ext {
- autoClean = false
- }
-
- from configurations.runtime
-
- include "stax2-api-*.jar"
- include "woodstox-core-asl-*.jar"
-
- into {
- liferay.deployDir
- }
-
- String renameSuffix = ".jar"
-
- if (keepDependencyVersions) {
- renameSuffix = '-$1.jar'
- }
-
- rename(/stax2-api-(.+)\.jar/, "org.codehaus.stax2" + renameSuffix)
- rename(/woodstox-core-asl-(.+)\.jar/, "com.ctc.wstx" + renameSuffix)
-}
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$1.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$1.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$1.class
deleted file mode 100644
index 8bcb75e..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$1.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$1.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$1.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$1.class
deleted file mode 100644
index 524bf3a..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$1.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$RemoteAccessFilter.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$RemoteAccessFilter.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$RemoteAccessFilter.class
deleted file mode 100644
index 359d9e3..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator$RemoteAccessFilter.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator.class
deleted file mode 100644
index fe4d730..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher$ServicesRegistrator.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher.class
deleted file mode 100644
index 01b4059..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/CXFEndpointPublisher.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/ExtensionManager.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/ExtensionManager.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/ExtensionManager.class
deleted file mode 100644
index c54e11c..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/ExtensionManager.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/configuration/CXFEndpointPublisherConfiguration.class
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/configuration/CXFEndpointPublisherConfiguration.class b/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/configuration/CXFEndpointPublisherConfiguration.class
deleted file mode 100644
index aabdb47..0000000
Binary files a/portal-remote-cxf-common/classes/com/liferay/portal/remote/cxf/common/configuration/CXFEndpointPublisherConfiguration.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/content/Language.properties
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/content/Language.properties b/portal-remote-cxf-common/classes/content/Language.properties
deleted file mode 100644
index 12dd09d..0000000
--- a/portal-remote-cxf-common/classes/content/Language.properties
+++ /dev/null
@@ -1 +0,0 @@
-cxf.endpoint.configuration.name=CXF Endpoints
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/c7de7755/portal-remote-cxf-common/classes/content/Language_ar.properties
----------------------------------------------------------------------
diff --git a/portal-remote-cxf-common/classes/content/Language_ar.properties b/portal-remote-cxf-common/classes/content/Language_ar.properties
deleted file mode 100644
index 1e2a617..0000000
--- a/portal-remote-cxf-common/classes/content/Language_ar.properties
+++ /dev/null
@@ -1 +0,0 @@
-cxf.endpoint.configuration.name=\u0646\u0642\u0627\u0637 \u0627\u0644\u0646\u0647\u0627\u064a\u0629 CXF (Automatic Translation)
\ No newline at end of file