You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2016/09/16 07:30:14 UTC
svn commit: r1761006 - in /felix/trunk/http:
base/src/main/java/org/apache/felix/http/base/internal/
jetty/src/main/java/org/apache/felix/http/jetty/internal/
jetty/src/test/java/org/apache/felix/http/jetty/internal/
Author: cziegeler
Date: Fri Sep 16 07:30:14 2016
New Revision: 1761006
URL: http://svn.apache.org/viewvc?rev=1761006&view=rev
Log:
FELIX-5349 : add ManagedServiceFactory to HTTP service
Modified:
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractActivator.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractHttpActivator.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/HttpServiceController.java
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyActivator.java
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyManagedServiceFactory.java
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyServiceStarter.java
felix/trunk/http/jetty/src/test/java/org/apache/felix/http/jetty/internal/JettyServiceTest.java
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractActivator.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractActivator.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractActivator.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractActivator.java Fri Sep 16 07:30:14 2016
@@ -16,10 +16,10 @@
*/
package org.apache.felix.http.base.internal;
+import org.apache.felix.http.base.internal.logger.LogServiceLogger;
+import org.apache.felix.http.base.internal.logger.SystemLogger;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
-import org.apache.felix.http.base.internal.logger.SystemLogger;
-import org.apache.felix.http.base.internal.logger.LogServiceLogger;
public abstract class AbstractActivator
implements BundleActivator
@@ -32,11 +32,7 @@ public abstract class AbstractActivator
return this.context;
}
- protected final void setBundleContext(BundleContext context)
- {
- this.context = context;
- }
-
+ @Override
public final void start(BundleContext context)
throws Exception
{
@@ -46,6 +42,7 @@ public abstract class AbstractActivator
doStart();
}
+ @Override
public final void stop(BundleContext context)
throws Exception
{
@@ -57,5 +54,5 @@ public abstract class AbstractActivator
throws Exception;
protected abstract void doStop()
- throws Exception;
+ throws Exception;
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractHttpActivator.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractHttpActivator.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractHttpActivator.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/AbstractHttpActivator.java Fri Sep 16 07:30:14 2016
@@ -19,20 +19,8 @@ package org.apache.felix.http.base.inter
public abstract class AbstractHttpActivator
extends AbstractActivator
{
- private DispatcherServlet dispatcherServlet;
- private EventDispatcher eventDispatcher;
private HttpServiceController controller;
- protected final DispatcherServlet getDispatcherServlet()
- {
- return this.dispatcherServlet;
- }
-
- protected final EventDispatcher getEventDispatcher()
- {
- return this.eventDispatcher;
- }
-
protected final HttpServiceController getHttpServiceController()
{
return this.controller;
@@ -43,8 +31,6 @@ public abstract class AbstractHttpActiva
throws Exception
{
this.controller = new HttpServiceController(getBundleContext());
- this.dispatcherServlet = new DispatcherServlet(this.controller.getDispatcher());
- this.eventDispatcher = new EventDispatcher(this.controller);
}
@Override
@@ -52,6 +38,5 @@ public abstract class AbstractHttpActiva
throws Exception
{
this.controller.unregister();
- this.dispatcherServlet.destroy();
}
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/HttpServiceController.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/HttpServiceController.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/HttpServiceController.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/HttpServiceController.java Fri Sep 16 07:30:14 2016
@@ -37,20 +37,41 @@ public final class HttpServiceController
private final BundleContext bundleContext;
private final HandlerRegistry registry;
private final Dispatcher dispatcher;
+ private final DispatcherServlet dispatcherServlet;
+ private final EventDispatcher eventDispatcher;
private final HttpServiceFactory httpServiceFactory;
private final WhiteboardManager whiteboardManager;
private volatile HttpSessionListener httpSessionListener;
+
+ public DispatcherServlet getDispatcherServlet()
+ {
+ return this.dispatcherServlet;
+ }
+
+ public EventDispatcher getEventDispatcher()
+ {
+ return this.eventDispatcher;
+ }
+
public HttpServiceController(final BundleContext bundleContext)
{
this.bundleContext = bundleContext;
this.registry = new HandlerRegistry();
this.dispatcher = new Dispatcher(this.registry);
+ this.dispatcherServlet = new DispatcherServlet(this.dispatcher);
+ this.eventDispatcher = new EventDispatcher(this);
this.httpServiceFactory = new HttpServiceFactory(this.bundleContext, this.registry);
this.whiteboardManager = new WhiteboardManager(bundleContext, this.httpServiceFactory, this.registry);
}
+ public void stop()
+ {
+ this.unregister();
+ this.dispatcherServlet.destroy();
+ }
+
public Dispatcher getDispatcher()
{
return this.dispatcher;
Modified: felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyActivator.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyActivator.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyActivator.java (original)
+++ felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyActivator.java Fri Sep 16 07:30:14 2016
@@ -60,7 +60,7 @@ public final class JettyActivator extend
// nothing to do
}
}, properties);
- this.jetty = new JettyService(getBundleContext(), getDispatcherServlet(), getEventDispatcher(), getHttpServiceController());
+ this.jetty = new JettyService(getBundleContext(), getHttpServiceController());
this.jetty.start();
final Dictionary<String, Object> propertiesCustomizer = new Hashtable<String, Object>();
@@ -85,7 +85,7 @@ public final class JettyActivator extend
// nothing to do
}
}, propertiesCustomizer);
-
+
Dictionary<String, Object> factoryProps = new Hashtable<String, Object>();
factoryProps.put(Constants.SERVICE_PID, JettyService.PID);
this.configServiceFactoryReg = this.getBundleContext().registerService(
Modified: felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyManagedServiceFactory.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyManagedServiceFactory.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyManagedServiceFactory.java (original)
+++ felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyManagedServiceFactory.java Fri Sep 16 07:30:14 2016
@@ -53,7 +53,6 @@ public class JettyManagedServiceFactory
{
jetty = new JettyServiceStarter(context, properties);
services.put(pid, jetty);
- jetty.start();
}
else
{
Modified: felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java (original)
+++ felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java Fri Sep 16 07:30:14 2016
@@ -110,14 +110,12 @@ public final class JettyService extends
private boolean registerManagedService = true;
public JettyService(final BundleContext context,
- final DispatcherServlet dispatcher,
- final EventDispatcher eventDispatcher,
final HttpServiceController controller)
{
this.context = context;
this.config = new JettyConfig(this.context);
- this.dispatcher = dispatcher;
- this.eventDispatcher = eventDispatcher;
+ this.dispatcher = controller.getDispatcherServlet();
+ this.eventDispatcher = controller.getEventDispatcher();
this.controller = controller;
this.deployments = new LinkedHashMap<String, Deployment>();
this.executor = Executors.newSingleThreadExecutor(new ThreadFactory()
@@ -133,12 +131,10 @@ public final class JettyService extends
}
public JettyService(final BundleContext context,
- final DispatcherServlet dispatcher,
- final EventDispatcher eventDispatcher,
final HttpServiceController controller,
final Dictionary<String,?> props)
{
- this(context, dispatcher, eventDispatcher, controller);
+ this(context, controller);
this.config.update(props);
this.registerManagedService = false;
}
Modified: felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyServiceStarter.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyServiceStarter.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyServiceStarter.java (original)
+++ felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyServiceStarter.java Fri Sep 16 07:30:14 2016
@@ -20,40 +20,33 @@ package org.apache.felix.http.jetty.inte
import java.util.Dictionary;
-import org.apache.felix.http.base.internal.AbstractHttpActivator;
+import org.apache.felix.http.base.internal.HttpServiceController;
import org.osgi.framework.BundleContext;
-public class JettyServiceStarter extends AbstractHttpActivator
+public class JettyServiceStarter
{
- private final BundleContext context;
+ private final HttpServiceController controller;
private final Dictionary<String, ?> props;
- private JettyService jetty;
+ private final JettyService jetty;
JettyServiceStarter(BundleContext context, Dictionary<String, ?> properties)
+ throws Exception
{
- this.context = context;
+ this.controller = new HttpServiceController(context);
this.props = properties;
- }
-
- public void start() throws Exception
- {
- super.setBundleContext(context);
- super.doStart();
- jetty = new JettyService(context, getDispatcherServlet(), getEventDispatcher(),
- getHttpServiceController(), props);
- jetty.start();
+ this.jetty = new JettyService(context, this.controller, props);
+ this.jetty.start();
}
public void stop() throws Exception
{
- jetty.stop();
- super.doStop();
+ this.jetty.stop();
+ this.controller.stop();
}
public void updated(Dictionary<String, ?> properties) throws Exception
{
- jetty.updated(properties);
+ this.jetty.updated(properties);
}
-
}
Modified: felix/trunk/http/jetty/src/test/java/org/apache/felix/http/jetty/internal/JettyServiceTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/jetty/src/test/java/org/apache/felix/http/jetty/internal/JettyServiceTest.java?rev=1761006&r1=1761005&r2=1761006&view=diff
==============================================================================
--- felix/trunk/http/jetty/src/test/java/org/apache/felix/http/jetty/internal/JettyServiceTest.java (original)
+++ felix/trunk/http/jetty/src/test/java/org/apache/felix/http/jetty/internal/JettyServiceTest.java Fri Sep 16 07:30:14 2016
@@ -42,8 +42,6 @@ import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
-import org.apache.felix.http.base.internal.DispatcherServlet;
-import org.apache.felix.http.base.internal.EventDispatcher;
import org.apache.felix.http.base.internal.HttpServiceController;
import org.apache.felix.http.jetty.internal.JettyService.Deployment;
import org.eclipse.jetty.servlet.FilterHolder;
@@ -71,10 +69,6 @@ public class JettyServiceTest
private BundleContext mockBundleContext;
- private DispatcherServlet dispatcherServlet;
-
- private EventDispatcher mockEventDispatcher;
-
private HttpServiceController httpServiceController;
private Bundle mockBundle;
@@ -84,7 +78,6 @@ public class JettyServiceTest
{
//Setup Mocks
mockBundleContext = mock(BundleContext.class);
- mockEventDispatcher = mock(EventDispatcher.class);
mockBundle = mock(Bundle.class);
//Setup Behaviors
@@ -110,8 +103,7 @@ public class JettyServiceTest
Matchers.any(Dictionary.class))).thenReturn(reg);
httpServiceController = new HttpServiceController(mockBundleContext);
- dispatcherServlet = new DispatcherServlet(httpServiceController.getDispatcher());
- jettyService = new JettyService(mockBundleContext, dispatcherServlet, mockEventDispatcher, httpServiceController);
+ jettyService = new JettyService(mockBundleContext, httpServiceController);
jettyService.start();
}