mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-18 19:59:09 +00:00
bug5631: use shared RestServletContainer for other RESTlets
This commit is contained in:
@@ -240,7 +240,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>Jersey REST API</servlet-name>
|
||||
<servlet-class>com.sap.sailing.server.gateway.jaxrs.RestServletContainer</servlet-class>
|
||||
<servlet-class>com.sap.sailing.shared.server.gateway.jaxrs.RestServletContainer</servlet-class>
|
||||
<init-param>
|
||||
<param-name>javax.ws.rs.Application</param-name>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.api.RestApiApplication</param-value>
|
||||
@@ -262,7 +262,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>Jersey REST SPI</servlet-name>
|
||||
<servlet-class>com.sap.sailing.server.gateway.jaxrs.RestServletContainer</servlet-class>
|
||||
<servlet-class>com.sap.sailing.shared.server.gateway.jaxrs.RestServletContainer</servlet-class>
|
||||
<init-param>
|
||||
<param-name>javax.ws.rs.Application</param-name>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.spi.RestSpiApplication</param-value>
|
||||
@@ -297,7 +297,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>SharingApi</servlet-name>
|
||||
<servlet-class>com.sap.sailing.server.gateway.jaxrs.RestServletContainer</servlet-class>
|
||||
<servlet-class>com.sap.sailing.shared.server.gateway.jaxrs.RestServletContainer</servlet-class>
|
||||
<init-param>
|
||||
<param-name>javax.ws.rs.Application</param-name>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.sharing.SharingApiApplication</param-value>
|
||||
|
||||
-88
@@ -1,88 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.jaxrs;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.ws.rs.core.Application;
|
||||
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.util.tracker.ServiceTracker;
|
||||
|
||||
import com.sap.sailing.server.interfaces.RacingEventService;
|
||||
import com.sap.sailing.shared.server.SharedSailingData;
|
||||
import com.sap.sse.datamining.DataMiningServer;
|
||||
import com.sap.sse.replication.ReplicationService;
|
||||
import com.sap.sse.security.SecurityService;
|
||||
import com.sun.jersey.spi.container.servlet.ServletContainer;
|
||||
|
||||
public class RestServletContainer extends ServletContainer {
|
||||
private static final long serialVersionUID = -3132655822281021061L;
|
||||
|
||||
public static final String OSGI_RFC66_WEBBUNDLE_BUNDLECONTEXT_NAME = "osgi-bundlecontext";
|
||||
|
||||
public static final String RACING_EVENT_SERVICE_TRACKER_NAME = "racingEventServiceTracker";
|
||||
|
||||
public static final String SHARED_SAILING_DATA_TRACKER_NAME = "sharedSailingDataTracker";
|
||||
|
||||
public static final String REPLICATION_SERVICE_TRACKER_NAME = "replicationServiceTracker";
|
||||
|
||||
public static final String DATA_MINING_SERVER_TRACKER_NAME = "dataMiningServerTracker";
|
||||
|
||||
public static final String SECURITY_SERVICE_TRACKER_NAME = "securityServiceTracker";
|
||||
|
||||
private ServiceTracker<RacingEventService, RacingEventService> racingEventServiceTracker;
|
||||
|
||||
private ServiceTracker<SharedSailingData, SharedSailingData> sharedSailingDataTracker;
|
||||
|
||||
private ServiceTracker<ReplicationService, ReplicationService> replicationServiceTracker;
|
||||
|
||||
private ServiceTracker<DataMiningServer, DataMiningServer> dataMiningServerTracker;
|
||||
|
||||
private ServiceTracker<SecurityService, SecurityService> securityServiceTracker;
|
||||
|
||||
public RestServletContainer() {
|
||||
super();
|
||||
}
|
||||
|
||||
public RestServletContainer(Application app) {
|
||||
super(app);
|
||||
}
|
||||
|
||||
public RestServletContainer(Class<? extends Application> appClass) {
|
||||
super(appClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(ServletConfig config) throws ServletException {
|
||||
super.init(config);
|
||||
BundleContext context = (BundleContext) config.getServletContext().getAttribute(OSGI_RFC66_WEBBUNDLE_BUNDLECONTEXT_NAME);
|
||||
racingEventServiceTracker = new ServiceTracker<RacingEventService, RacingEventService>(context, RacingEventService.class.getName(), null);
|
||||
racingEventServiceTracker.open();
|
||||
sharedSailingDataTracker = new ServiceTracker<SharedSailingData, SharedSailingData>(context, SharedSailingData.class.getName(), null);
|
||||
sharedSailingDataTracker.open();
|
||||
replicationServiceTracker = new ServiceTracker<ReplicationService, ReplicationService>(context, ReplicationService.class.getName(), null);
|
||||
replicationServiceTracker.open();
|
||||
dataMiningServerTracker = new ServiceTracker<DataMiningServer, DataMiningServer>(context, DataMiningServer.class, null);
|
||||
dataMiningServerTracker.open();
|
||||
securityServiceTracker = new ServiceTracker<SecurityService, SecurityService>(context, SecurityService.class, null);
|
||||
securityServiceTracker.open();
|
||||
config.getServletContext().setAttribute(RACING_EVENT_SERVICE_TRACKER_NAME, racingEventServiceTracker);
|
||||
config.getServletContext().setAttribute(SHARED_SAILING_DATA_TRACKER_NAME, sharedSailingDataTracker);
|
||||
config.getServletContext().setAttribute(REPLICATION_SERVICE_TRACKER_NAME, replicationServiceTracker);
|
||||
config.getServletContext().setAttribute(DATA_MINING_SERVER_TRACKER_NAME, dataMiningServerTracker);
|
||||
config.getServletContext().setAttribute(SECURITY_SERVICE_TRACKER_NAME, securityServiceTracker);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
super.destroy();
|
||||
if (racingEventServiceTracker != null) {
|
||||
racingEventServiceTracker.close();
|
||||
}
|
||||
if (dataMiningServerTracker != null) {
|
||||
dataMiningServerTracker.close();
|
||||
}
|
||||
if (securityServiceTracker != null) {
|
||||
securityServiceTracker.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -23,8 +23,8 @@ import org.osgi.util.tracker.ServiceTracker;
|
||||
import com.sap.sailing.datamining.SailingPredefinedQueries;
|
||||
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
|
||||
import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
|
||||
import com.sap.sailing.server.gateway.jaxrs.RestServletContainer;
|
||||
import com.sap.sailing.server.gateway.serialization.NotJsonSerializableException;
|
||||
import com.sap.sailing.shared.server.gateway.jaxrs.RestServletContainer;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.datamining.DataMiningServer;
|
||||
import com.sap.sse.datamining.Query;
|
||||
|
||||
+2
-12
@@ -55,27 +55,17 @@ public class RestServletContainer extends ServletContainer {
|
||||
|
||||
@Override
|
||||
public void init(ServletConfig config) throws ServletException {
|
||||
super.init(config);
|
||||
super.init(config);
|
||||
BundleContext context = (BundleContext) config.getServletContext().getAttribute(OSGI_RFC66_WEBBUNDLE_BUNDLECONTEXT_NAME);
|
||||
racingEventServiceTracker = ServiceTrackerFactory.createAndOpen(context, RacingEventService.class);
|
||||
sharedSailingDataTracker = ServiceTrackerFactory.createAndOpen(context, SharedSailingData.class);
|
||||
replicationServiceTracker = ServiceTrackerFactory.createAndOpen(context, ReplicationService.class);
|
||||
securityServiceTracker = ServiceTrackerFactory.createAndOpen(context, SecurityService.class);
|
||||
sailingServerFactoryTracker = ServiceTrackerFactory.createAndOpen(context, SailingServerFactory.class);
|
||||
config.getServletContext().setAttribute(RACING_EVENT_SERVICE_TRACKER_NAME, racingEventServiceTracker);
|
||||
config.getServletContext().setAttribute(SHARED_SAILING_DATA_TRACKER_NAME, sharedSailingDataTracker);
|
||||
config.getServletContext().setAttribute(REPLICATION_SERVICE_TRACKER_NAME, replicationServiceTracker);
|
||||
config.getServletContext().setAttribute(SECURITY_SERVICE_TRACKER_NAME, securityServiceTracker);
|
||||
config.getServletContext().setAttribute(SAILING_SERVER_FACTORY_TRACKER_NAME, sailingServerFactoryTracker);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
super.destroy();
|
||||
if (racingEventServiceTracker != null) {
|
||||
racingEventServiceTracker.close();
|
||||
}
|
||||
if (securityServiceTracker != null) {
|
||||
securityServiceTracker.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user