diff --git a/java/com.sap.sailing.feature.runtime/feature.xml b/java/com.sap.sailing.feature.runtime/feature.xml
index 3c40b3fd6fe..2c8772bd1be 100644
--- a/java/com.sap.sailing.feature.runtime/feature.xml
+++ b/java/com.sap.sailing.feature.runtime/feature.xml
@@ -26,8 +26,14 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.server.gateway/.gitignore b/java/com.sap.sailing.server.gateway/.gitignore
new file mode 100644
index 00000000000..e660fd93d31
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/.gitignore
@@ -0,0 +1 @@
+bin/
diff --git a/java/com.sap.sailing.server.gateway/.project b/java/com.sap.sailing.server.gateway/.project
new file mode 100644
index 00000000000..d04cc8ee9a6
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/.project
@@ -0,0 +1,28 @@
+
+
+ com.sap.sailing.server.gateway
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/java/com.sap.sailing.server.gateway/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.server.gateway/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/java/com.sap.sailing.server.gateway/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sailing.server.gateway/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 00000000000..f29e940a005
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..0f2a5e4e717
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Sailing Server Gateway
+Bundle-SymbolicName: com.sap.sailing.server.gateway
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Import-Package: org.apache.jasper.servlet,
+ org.json.simple,
+ org.json.simple.parser,
+ org.osgi.framework;version="1.3.0",
+ org.osgi.util.tracker;version="1.3.1",
+ com.sap.sailing.server
+Bundle-ActivationPolicy: lazy
+Require-Bundle: com.sap.sailing.domain,
+ com.sap.sailing.expeditionconnector,
+ com.sap.sailing.declination,
+ javax.servlet;bundle-version="2.5.0",
+ com.sap.sailing.domain.common,
+ com.sap.sailing.udpconnector
+Bundle-ClassPath: .
+Web-ContextPath: /gateway
diff --git a/java/com.sap.sailing.server.gateway/WEB-INF/jsp/listEvents.jsp b/java/com.sap.sailing.server.gateway/WEB-INF/jsp/listEvents.jsp
new file mode 100644
index 00000000000..0b499d2ed7b
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/WEB-INF/jsp/listEvents.jsp
@@ -0,0 +1,19 @@
+<%@ page import="com.sap.sailing.server.RacingEventService" %>
+<%@ page import="com.sap.sailing.domain.base.*" %>
+
+
+
+
+<%="Hello RacingEventService... !"%>
+
+<%
+ RacingEventService racingEventService = (RacingEventService) request.getAttribute("racingEventService");
+ for(Event event: racingEventService.getAllEvents()) {
+%>
+ <%= event.getName() %>
+<%
+ }
+%>
+
+
+
diff --git a/java/com.sap.sailing.server.gateway/WEB-INF/web.xml b/java/com.sap.sailing.server.gateway/WEB-INF/web.xml
new file mode 100644
index 00000000000..b6f7506db5c
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/WEB-INF/web.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ jspServet
+ org.apache.jasper.servlet.JspServlet
+
+ logVerbosityLevel
+ DEBUG
+
+
+ fork
+ false
+
+
+ keepgenerated
+ true
+
+
+ 0
+
+
+
+ jspServet
+ *.jsp
+
+
+
+ SimpleJspForwardServlet
+ com.sap.sailing.server.gateway.SimpleJspForwardServlet
+
+
+ SimpleJspForwardServlet
+ /events
+
+
+
diff --git a/java/com.sap.sailing.server.gateway/build.properties b/java/com.sap.sailing.server.gateway/build.properties
new file mode 100644
index 00000000000..bae4bd52009
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ WEB-INF/
diff --git a/java/com.sap.sailing.server.gateway/pom.xml b/java/com.sap.sailing.server.gateway/pom.xml
new file mode 100644
index 00000000000..1a4d58fa315
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/pom.xml
@@ -0,0 +1,12 @@
+
+
+ 4.0.0
+
+ root
+ com.sap.sailing
+ 1.0.0-SNAPSHOT
+
+ com.sap.sailing.server.gateway
+ eclipse-plugin
+
diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SimpleJspForwardServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SimpleJspForwardServlet.java
new file mode 100644
index 00000000000..6d0d6ab4916
--- /dev/null
+++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/SimpleJspForwardServlet.java
@@ -0,0 +1,28 @@
+package com.sap.sailing.server.gateway;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sap.sailing.server.RacingEventService;
+import com.sap.sailing.server.SailingServerHttpServlet;
+
+public class SimpleJspForwardServlet extends SailingServerHttpServlet {
+ private static final long serialVersionUID = -1017961881555515288L;
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ RacingEventService racingEventService = getService();
+ if(racingEventService != null) {
+ request.setAttribute("racingEventService", racingEventService);
+ ServletContext sc = getServletContext();
+ RequestDispatcher requestDispatcher = sc.getRequestDispatcher("/WEB-INF/jsp/listEvents.jsp");
+ requestDispatcher.forward(request, response);
+ }
+ }
+
+}
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy).launch b/java/com.sap.sailing.server/SailingServer (No Proxy).launch
index 1374e75fbd5..45ee479adec 100755
--- a/java/com.sap.sailing.server/SailingServer (No Proxy).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy).launch
@@ -20,9 +20,9 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch
index cf5c85df71b..68496c2fc92 100755
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch
@@ -21,10 +21,10 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, No Tests).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, No Tests).launch
index aa76a161aaf..47ce8ee78ac 100755
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, No Tests).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, No Tests).launch
@@ -24,5 +24,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch
index c6092649571..4f9529e8b6e 100755
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch
@@ -21,9 +21,9 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy).launch b/java/com.sap.sailing.server/SailingServer (Proxy).launch
index 5ac0f4cadd2..721f8106696 100755
--- a/java/com.sap.sailing.server/SailingServer (Proxy).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy).launch
@@ -21,10 +21,10 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch
index cb40a86b677..5e443029bde 100755
--- a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch
@@ -21,10 +21,10 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch
index ecaf15e631b..62fdfbd5079 100755
--- a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch
@@ -22,9 +22,9 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch
index 96fd12839b4..eb8181cfeea 100755
--- a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch
@@ -20,9 +20,9 @@
-
+
-
+
diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/SailingServerHttpServlet.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/SailingServerHttpServlet.java
index 06b27078052..bd67ff62d10 100755
--- a/java/com.sap.sailing.server/src/com/sap/sailing/server/SailingServerHttpServlet.java
+++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/SailingServerHttpServlet.java
@@ -1,17 +1,18 @@
package com.sap.sailing.server;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
-import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.RaceDefinition;
+import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.tracking.TrackedRace;
-import com.sap.sailing.server.impl.Activator;
import com.sap.sailing.util.DateParser;
import com.sap.sailing.util.InvalidDateException;
@@ -28,14 +29,31 @@ public abstract class SailingServerHttpServlet extends HttpServlet {
protected static final String PARAM_NAME_TIME_MILLIS = "timeasmillis";
+ private static final String OSGI_RFC66_WEBBUNDLE_BUNDLECONTEXT_NAME = "osgi-bundlecontext";
+
private ServiceTracker racingEventServiceTracker;
protected SailingServerHttpServlet() {
- BundleContext context = Activator.getDefault();
- racingEventServiceTracker = new ServiceTracker(context, RacingEventService.class.getName(), null);
- racingEventServiceTracker.open();
}
+ @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(context, RacingEventService.class.getName(), null);
+ racingEventServiceTracker.open();
+ }
+
+ @Override
+ public void destroy() {
+ super.destroy();
+
+ if(racingEventServiceTracker != null) {
+ racingEventServiceTracker.close();
+ }
+ }
+
protected RacingEventService getService() {
return racingEventServiceTracker.getService();
}
@@ -85,13 +103,14 @@ public abstract class SailingServerHttpServlet extends HttpServlet {
return timePoint;
}
- protected TrackedRace getTrackedRace(HttpServletRequest req) {
- Regatta regatta = getRegatta(req);
- RaceDefinition race = getRaceDefinition(req);
- TrackedRace trackedRace = null;
- if (regatta != null && race != null) {
- trackedRace = getService().getOrCreateTrackedRegatta(regatta).getTrackedRace(race);
- }
- return trackedRace;
- }
+ protected TrackedRace getTrackedRace(HttpServletRequest req) {
+ Regatta regatta = getRegatta(req);
+ RaceDefinition race = getRaceDefinition(req);
+ TrackedRace trackedRace = null;
+ if (regatta != null && race != null) {
+ trackedRace = getService().getOrCreateTrackedRegatta(regatta).getTrackedRace(race);
+ }
+ return trackedRace;
+ }
+
}
diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java
index 5fbcd1a7001..b3176a1aa25 100755
--- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java
+++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java
@@ -6,63 +6,46 @@ import java.util.logging.Logger;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceListener;
-import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.common.impl.Util.Triple;
import com.sap.sailing.server.RacingEventService;
-public class Activator implements BundleActivator, ServiceListener {
+public class Activator implements BundleActivator {
private static final Logger logger = Logger.getLogger(Activator.class.getName());
- private static BundleContext fContext;
-
private static ExtenderBundleTracker extenderBundleTracker;
-
- public static BundleContext getDefault() {
- return fContext;
- }
+ private final RacingEventService racingEventService;
+
+ public Activator() {
+ // there is exactly one instance of the racingEventService in the whole server
+ racingEventService = new RacingEventServiceImpl();
+ }
+
public void start(BundleContext context) throws Exception {
- fContext = context;
-
extenderBundleTracker = new ExtenderBundleTracker(context);
extenderBundleTracker.open();
- RacingEventService service = new RacingEventServiceImpl();
- // register the racing service
- context.registerService(RacingEventService.class.getName(), service, null);
+ // register the racing service in the OSGi registry
+ context.registerService(RacingEventService.class.getName(), racingEventService, null);
logger.log(Level.INFO, "Started "+context.getBundle().getSymbolicName()+". Character encoding: "+
Charset.defaultCharset());
}
public void stop(BundleContext context) throws Exception {
- fContext = null;
-
if(extenderBundleTracker != null) {
- extenderBundleTracker.open();
+ extenderBundleTracker.close();
}
- ServiceTracker racingEventServiceTracker = new ServiceTracker(context, RacingEventService.class.getName(), null);
-
- racingEventServiceTracker.open();
- // grab the service
- RacingEventService service = (RacingEventService) racingEventServiceTracker.getService();
- for (Triple windTracker : service.getWindTrackedRaces()) {
- service.stopTrackingWind(windTracker.getA(), windTracker.getB());
+ // stop the tracking of the wind and all races
+ for (Triple windTracker : racingEventService.getWindTrackedRaces()) {
+ racingEventService.stopTrackingWind(windTracker.getA(), windTracker.getB());
}
- for (Regatta regatta : service.getAllRegattas()) {
- service.stopTracking(regatta);
+ for (Regatta regatta : racingEventService.getAllRegattas()) {
+ racingEventService.stopTracking(regatta);
}
}
-
- public void serviceChanged(ServiceEvent ev) {
- ServiceReference> sr = ev.getServiceReference();
- System.out.println("service changed: "+ev+" for service reference "+sr);
- }
}
diff --git a/java/com.sap.sailing.targetplatform.base/features/target-jsp/feature.xml b/java/com.sap.sailing.targetplatform.base/features/target-jsp/feature.xml
new file mode 100644
index 00000000000..bb039009d84
--- /dev/null
+++ b/java/com.sap.sailing.targetplatform.base/features/target-jsp/feature.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ Java Server Pages libraries
+
+
+
+ NA.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.el_2.1.0.v201105211819.jar b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.el_2.1.0.v201105211819.jar
new file mode 100644
index 00000000000..6d65ce4813f
Binary files /dev/null and b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.el_2.1.0.v201105211819.jar differ
diff --git a/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.servlet.jsp.jstl_1.2.0.v201105211821.jar b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.servlet.jsp.jstl_1.2.0.v201105211821.jar
new file mode 100644
index 00000000000..ca2d696df85
Binary files /dev/null and b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.servlet.jsp.jstl_1.2.0.v201105211821.jar differ
diff --git a/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.servlet.jsp_2.1.0.v201105211820.jar b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.servlet.jsp_2.1.0.v201105211820.jar
new file mode 100644
index 00000000000..ff39b580f6d
Binary files /dev/null and b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/javax.servlet.jsp_2.1.0.v201105211820.jar differ
diff --git a/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/org.apache.jasper.glassfish_2.1.0.v201105210816.jar b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/org.apache.jasper.glassfish_2.1.0.v201105210816.jar
new file mode 100644
index 00000000000..387a12b0172
Binary files /dev/null and b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/org.apache.jasper.glassfish_2.1.0.v201105210816.jar differ
diff --git a/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201105210653.jar b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201105210653.jar
new file mode 100644
index 00000000000..cdd1a589460
Binary files /dev/null and b/java/com.sap.sailing.targetplatform.base/plugins/target-jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201105210653.jar differ
diff --git a/java/com.sap.sailing.targetplatform.base/site.xml b/java/com.sap.sailing.targetplatform.base/site.xml
index 4af427b1291..baa0959947d 100644
--- a/java/com.sap.sailing.targetplatform.base/site.xml
+++ b/java/com.sap.sailing.targetplatform.base/site.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-ide-local.target b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-ide-local.target
index 261a747e6ea..143ce094b4a 100644
--- a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-ide-local.target
+++ b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-ide-local.target
@@ -1,7 +1,7 @@
-
+
@@ -10,6 +10,7 @@
+
diff --git a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-central.target b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-central.target
index ea438b1e1e6..2ac95f39520 100644
--- a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-central.target
+++ b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-central.target
@@ -10,6 +10,7 @@
+
diff --git a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-local.target b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-local.target
index 09cdf3ba5a0..4abc8bf9ee8 100644
--- a/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-local.target
+++ b/java/com.sap.sailing.targetplatform/definitions/race-analysis-p2-maven-local.target
@@ -7,6 +7,7 @@
+
diff --git a/java/com.sap.sailing.www/build.properties b/java/com.sap.sailing.www/build.properties
index 176c936555b..fc97f0aeb3a 100644
--- a/java/com.sap.sailing.www/build.properties
+++ b/java/com.sap.sailing.www/build.properties
@@ -5,5 +5,4 @@ bin.includes = META-INF/,\
images/,\
main.css,\
webfonts/,\
- fontface.css,\
- licenses/
+ fontface.css
diff --git a/java/pom.xml b/java/pom.xml
index aa709723e4b..915cdbd5f84 100755
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -33,6 +33,7 @@
com.sap.sailing.expeditionconnector
com.sap.sailing.expeditionconnector.test
com.sap.sailing.server
+ com.sap.sailing.server.gateway
com.sap.sailing.server.replication
com.sap.sailing.server.replication.test
com.sap.sailing.www