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