FELIX-5002 : Upgrade Jetty to 9.3.x and cometd to 3.0.x
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1723480 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/cometd/pom.xml b/http/cometd/pom.xml
index 6c220fd..0c6e435 100644
--- a/http/cometd/pom.xml
+++ b/http/cometd/pom.xml
@@ -38,7 +38,7 @@
</scm>
<properties>
- <felix.java.version>7</felix.java.version>
+ <felix.java.version>8</felix.java.version>
</properties>
<build>
diff --git a/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java b/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java
index c163e69..7462f41 100644
--- a/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java
+++ b/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java
@@ -24,7 +24,7 @@
import org.apache.felix.http.base.internal.logger.SystemLogger;
import org.apache.felix.http.cometd.CometdService;
import org.cometd.bayeux.server.BayeuxServer;
-import org.cometd.server.CometdServlet;
+import org.cometd.server.CometDServlet;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
@@ -46,14 +46,14 @@
private ServiceRegistration configServiceReg;
private ServiceTracker httpServiceTracker;
private ServiceRegistration cometdServiceReg;
- private CometdServlet continuationCometdServlet;
+ private CometDServlet continuationCometdServlet;
public CometdServiceImpl(BundleContext context)
{
this.context = context;
this.config = new CometdConfig(this.context);
}
-
+
public void start()
throws Exception
{
@@ -77,6 +77,7 @@
}
}
+ @Override
public void updated(Dictionary props)
{
this.config.update(props);
@@ -89,6 +90,7 @@
}
}
+ @Override
public Object addingService(ServiceReference reference)
{
Object service = this.context.getService(reference);
@@ -96,12 +98,14 @@
return service;
}
+ @Override
public void modifiedService(ServiceReference reference, Object service)
{
this.unregister((HttpService)service);
this.register((HttpService)service);
}
+ @Override
public void removedService(ServiceReference reference, Object service)
{
this.unregister((HttpService)service);
@@ -109,7 +113,7 @@
private void register(HttpService httpService) {
if (this.continuationCometdServlet == null) {
- this.continuationCometdServlet = new CometdServlet();
+ this.continuationCometdServlet = new CometDServlet();
}
try {
Dictionary dictionary = new Hashtable();
@@ -131,6 +135,7 @@
}
}
+ @Override
public BayeuxServer getBayeuxServer() {
return this.continuationCometdServlet.getBayeux();
}
diff --git a/http/itest/pom.xml b/http/itest/pom.xml
index b9050f7..34a8c4b 100644
--- a/http/itest/pom.xml
+++ b/http/itest/pom.xml
@@ -31,7 +31,7 @@
</scm>
<properties>
- <felix.java.version>7</felix.java.version>
+ <felix.java.version>8</felix.java.version>
<pax.exam.version>4.4.0</pax.exam.version>
<pax.url.aether.version>2.4.1</pax.url.aether.version>
<http.servlet.api.version>1.1.3-SNAPSHOT</http.servlet.api.version>
diff --git a/http/jetty/pom.xml b/http/jetty/pom.xml
index 16987b8..73a0781 100644
--- a/http/jetty/pom.xml
+++ b/http/jetty/pom.xml
@@ -38,7 +38,7 @@
</scm>
<properties>
- <felix.java.version>7</felix.java.version>
+ <felix.java.version>8</felix.java.version>
<!-- jetty.version is moved to http-parent POM -->
</properties>
diff --git a/http/parent/pom.xml b/http/parent/pom.xml
index 1132a9c..ea8a0ce 100755
--- a/http/parent/pom.xml
+++ b/http/parent/pom.xml
@@ -38,8 +38,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <jetty.version>9.2.14.v20151106</jetty.version>
- <cometd.version>2.8.0</cometd.version>
+ <jetty.version>9.3.6.v20151106</jetty.version>
+ <cometd.version>3.0.8</cometd.version>
<servlet.version>3.1.0</servlet.version>
<!--
Java API and class file compliance. This property supports
diff --git a/http/samples/cometd/pom.xml b/http/samples/cometd/pom.xml
index 823721b..ce7709a 100644
--- a/http/samples/cometd/pom.xml
+++ b/http/samples/cometd/pom.xml
@@ -37,6 +37,10 @@
<url>http://svn.apache.org/viewvc/felix/trunk/http/samples/cometd/</url>
</scm>
+ <properties>
+ <felix.java.version>8</felix.java.version>
+ </properties>
+
<build>
<plugins>
<plugin>
diff --git a/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/TimeServlet.java b/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/TimeServlet.java
index 4876f2e..d9b81dd 100644
--- a/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/TimeServlet.java
+++ b/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/TimeServlet.java
@@ -31,6 +31,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.cometd.bayeux.MarkedReference;
import org.cometd.bayeux.server.BayeuxServer;
import org.cometd.bayeux.server.ConfigurableServerChannel;
import org.cometd.bayeux.server.LocalSession;
@@ -58,81 +59,81 @@
" <script type='text/javascript' src='/js/dojo/dojo.js'></script>\n" +
" <script type='text/javascript'>\n" +
" dojo.require('dojox.cometd');\n" +
- "dojo.addOnLoad(function()\n" +
- "{\n" +
- " var cometd = dojox.cometd;\n" +
- "\n" +
- " function _connectionEstablished()\n" +
- " {\n" +
- " dojo.byId('body').innerHTML += '<div>CometD Connection Established</div>';\n" +
- " }\n" +
- "\n" +
- " function _connectionBroken()\n" +
- " {\n" +
- " dojo.byId('body').innerHTML += '<div>CometD Connection Broken</div>';\n" +
- " }\n" +
- "\n" +
- " function _connectionClosed()\n" +
- " {\n" +
- " dojo.byId('body').innerHTML += '<div>CometD Connection Closed</div>';\n" +
- " }\n" +
- "\n" +
- " // Function that manages the connection status with the Bayeux server\n" +
- " var _connected = false;\n" +
- " function _metaConnect(message)\n" +
- " {\n" +
- " if (cometd.isDisconnected())\n" +
- " {\n" +
- " _connected = false;\n" +
- " _connectionClosed();\n" +
- " return;\n" +
- " }\n" +
- "\n" +
- " var wasConnected = _connected;\n" +
- " _connected = message.successful === true;\n" +
- " if (!wasConnected && _connected)\n" +
- " {\n" +
- " _connectionEstablished();\n" +
- " }\n" +
- " else if (wasConnected && !_connected)\n" +
- " {\n" +
- " _connectionBroken();\n" +
- " }\n" +
- " }\n" +
- "\n" +
- " // Function invoked when first contacting the server and\n" +
- " // when the server has lost the state of this client\n" +
- " function _metaHandshake(handshake)\n" +
- " {\n" +
- " if (handshake.successful === true)\n" +
- " {\n" +
- " cometd.batch(function()\n" +
- " {\n" +
- " cometd.subscribe('/System/Time', function(message)\n" +
- " {\n" +
- " dojo.byId('systemTime').innerHTML = '<div>' + message.data + '</div>';\n" +
- " });\n" +
- " });\n" +
- " }\n" +
- " }\n" +
- "\n" +
- " // Disconnect when the page unloads\n" +
- " dojo.addOnUnload(function()\n" +
- " {\n" +
- " cometd.disconnect(true);\n" +
- " });\n" +
- "\n" +
- " var cometURL = \"http://localhost:8080/system/cometd\";\n" +
- " cometd.configure({\n" +
- " url: cometURL,\n" +
- " logLevel: 'debug'\n" +
- " });\n" +
- "\n" +
- " cometd.addListener('/meta/handshake', _metaHandshake);\n" +
- " cometd.addListener('/meta/connect', _metaConnect);\n" +
- "\n" +
- " cometd.handshake();\n" +
- "});\n" +
+ "dojo.addOnLoad(function()\n" +
+ "{\n" +
+ " var cometd = dojox.cometd;\n" +
+ "\n" +
+ " function _connectionEstablished()\n" +
+ " {\n" +
+ " dojo.byId('body').innerHTML += '<div>CometD Connection Established</div>';\n" +
+ " }\n" +
+ "\n" +
+ " function _connectionBroken()\n" +
+ " {\n" +
+ " dojo.byId('body').innerHTML += '<div>CometD Connection Broken</div>';\n" +
+ " }\n" +
+ "\n" +
+ " function _connectionClosed()\n" +
+ " {\n" +
+ " dojo.byId('body').innerHTML += '<div>CometD Connection Closed</div>';\n" +
+ " }\n" +
+ "\n" +
+ " // Function that manages the connection status with the Bayeux server\n" +
+ " var _connected = false;\n" +
+ " function _metaConnect(message)\n" +
+ " {\n" +
+ " if (cometd.isDisconnected())\n" +
+ " {\n" +
+ " _connected = false;\n" +
+ " _connectionClosed();\n" +
+ " return;\n" +
+ " }\n" +
+ "\n" +
+ " var wasConnected = _connected;\n" +
+ " _connected = message.successful === true;\n" +
+ " if (!wasConnected && _connected)\n" +
+ " {\n" +
+ " _connectionEstablished();\n" +
+ " }\n" +
+ " else if (wasConnected && !_connected)\n" +
+ " {\n" +
+ " _connectionBroken();\n" +
+ " }\n" +
+ " }\n" +
+ "\n" +
+ " // Function invoked when first contacting the server and\n" +
+ " // when the server has lost the state of this client\n" +
+ " function _metaHandshake(handshake)\n" +
+ " {\n" +
+ " if (handshake.successful === true)\n" +
+ " {\n" +
+ " cometd.batch(function()\n" +
+ " {\n" +
+ " cometd.subscribe('/System/Time', function(message)\n" +
+ " {\n" +
+ " dojo.byId('systemTime').innerHTML = '<div>' + message.data + '</div>';\n" +
+ " });\n" +
+ " });\n" +
+ " }\n" +
+ " }\n" +
+ "\n" +
+ " // Disconnect when the page unloads\n" +
+ " dojo.addOnUnload(function()\n" +
+ " {\n" +
+ " cometd.disconnect(true);\n" +
+ " });\n" +
+ "\n" +
+ " var cometURL = \"http://localhost:8080/system/cometd\";\n" +
+ " cometd.configure({\n" +
+ " url: cometURL,\n" +
+ " logLevel: 'debug'\n" +
+ " });\n" +
+ "\n" +
+ " cometd.addListener('/meta/handshake', _metaHandshake);\n" +
+ " cometd.addListener('/meta/connect', _metaConnect);\n" +
+ "\n" +
+ " cometd.handshake();\n" +
+ "});\n" +
" </script>\n" +
" </head>\n" +
" <body>\n" +
@@ -145,14 +146,13 @@
this.bayeuxServer = bayeuxServer;
this.channels = new ArrayList<ServerChannel>();
for (SystemTopics topic : SystemTopics.values()) {
- boolean created = bayeuxServer.createIfAbsent("/System/" + topic, new ServerChannel.Initializer() {
- public void configureChannel(ConfigurableServerChannel channel) {
+ MarkedReference<ServerChannel> created = bayeuxServer.createChannelIfAbsent("/System/" + topic, new ConfigurableServerChannel.Initializer() {
+ @Override
+ public void configureChannel(ConfigurableServerChannel channel) {
channel.setPersistent(true);
}
});
- if (created) {
- this.channels.add(topic.ordinal(), this.bayeuxServer.getChannel("/System/" + topic));
- }
+ this.channels.add(topic.ordinal(), created.getReference());
}
this.logDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
this.updateTimer = new Timer("System.Time.ClientNotifier");
@@ -196,6 +196,7 @@
extends TimerTask
{
+ @Override
public void run() {
for (SystemTopics topic : SystemTopics.values()) {
String topicData;
@@ -209,7 +210,7 @@
ServerMessage.Mutable message = bayeuxServer.newMessage();
message.setChannel(channels.get(topic.ordinal()).getId());
message.setData(topicData);
- channels.get(topic.ordinal()).publish(session, topicData, null);
+ channels.get(topic.ordinal()).publish(session, message);
}
}
}