[jboss-cvs] JBossAS SVN: r89576 - in projects/jboss-osgi/trunk: bundles/remotelog and 6 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat May 30 17:09:53 EDT 2009
Author: thomas.diesler at jboss.com
Date: 2009-05-30 17:09:53 -0400 (Sat, 30 May 2009)
New Revision: 89576
Modified:
projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java
projects/jboss-osgi/trunk/bundles/remotelog/pom.xml
projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/RemoteLogListener.java
projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogReaderServiceImpl.java
projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogServiceActivator.java
projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml
projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/RemoteLogCapability.java
projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/http/HttpServiceTestCase.java
Log:
Remove dependency on jboss-remoting
Modified: projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -244,6 +244,7 @@
{
JarFile jarFile = new JarFile(file);
manifest = jarFile.getManifest();
+ jarFile.close();
}
catch (IOException ex)
{
Modified: projects/jboss-osgi/trunk/bundles/remotelog/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/bundles/remotelog/pom.xml 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/bundles/remotelog/pom.xml 2009-05-30 21:09:53 UTC (rev 89576)
@@ -19,9 +19,6 @@
<!-- Properties -->
<properties>
- <version.concurrent>1.3.4</version.concurrent>
- <version.jboss.remoting>2.5.0.SP2</version.jboss.remoting>
- <version.jboss.serialization>1.0.3.GA</version.jboss.serialization>
</properties>
<!-- Dependencies -->
@@ -50,33 +47,6 @@
<scope>provided</scope>
</dependency>
- <!-- Remoting Dependencies -->
- <dependency>
- <groupId>org.jboss.remoting</groupId>
- <artifactId>jboss-remoting-core</artifactId>
- <version>${version.jboss.remoting}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.remoting</groupId>
- <artifactId>jboss-remoting-socket</artifactId>
- <version>${version.jboss.remoting}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.remoting</groupId>
- <artifactId>jboss-remoting-socket-client</artifactId>
- <version>${version.jboss.remoting}</version>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-serialization</artifactId>
- <version>${version.jboss.serialization}</version>
- </dependency>
- <dependency>
- <groupId>concurrent</groupId>
- <artifactId>concurrent</artifactId>
- <version>${version.concurrent}</version>
- </dependency>
-
</dependencies>
<build>
@@ -91,44 +61,16 @@
<Bundle-Activator>org.jboss.osgi.service.remotelog.internal.RemoteLogServiceActivator</Bundle-Activator>
<Export-Package>org.jboss.osgi.service.remotelog;version=${version}</Export-Package>
<Import-Package>
- org.osgi.framework,
- org.osgi.service.log,
- org.osgi.util.tracker,
-
- javax.crypto;resolution:=optional,
- javax.crypto.spec;resolution:=optional,
- javax.management,
- javax.naming,
- javax.net,
- javax.net.ssl,
- javax.servlet;resolution:=optional,
- javax.servlet.http;resolution:=optional,
- org.apache.log4j,
- org.jboss.logging,
- org.jboss.mx.util;resolution:=optional,
- org.jboss.osgi.common.service;version=1.0,
- org.jboss.osgi.spi;version=1.0,
- org.jboss.osgi.spi.logging;version=1.0,
- org.jboss.remoting;resolution:=optional,
- org.jboss.remoting.*;resolution:=optional,
- org.jboss.util.*,
- org.w3c.dom;resolution:=optional,
-
- <!-- jboss-serialization -->
- gnu.trove;resolution:=optional,
- sun.misc;resolution:=optional,
- sun.reflect;resolution:=optional,
-
- <!-- concurrent -->
- javax.swing;resolution:=optional,
- javax.swing.border;resolution:=optional
+ org.jboss.osgi.common.log;version=1.0,
+ org.jboss.osgi.common.service;version=1.0,
+ org.jboss.osgi.spi;version=1.0,
+ org.jboss.osgi.spi.logging;version=1.0,
+
+ org.osgi.framework,
+ org.osgi.service.log,
+ org.osgi.util.tracker,
</Import-Package>
<Embed-Dependency>
- concurrent,
- jboss-remoting-core,
- jboss-remoting-socket,
- jboss-remoting-socket-client,
- jboss-serialization
</Embed-Dependency>
</instructions>
</configuration>
Modified: projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/RemoteLogListener.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/RemoteLogListener.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/RemoteLogListener.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -23,17 +23,25 @@
//$Id$
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.Socket;
import java.util.Properties;
+import org.jboss.osgi.common.log.LogServiceTracker;
+import org.jboss.osgi.service.remotelog.internal.RemoteLogEntry;
import org.jboss.osgi.service.remotelog.internal.RemoteLogServiceActivator;
-import org.jboss.osgi.service.remotelog.internal.RemoteLogEntry;
-import org.jboss.remoting.Client;
-import org.jboss.remoting.InvokerLocator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogEntry;
import org.osgi.service.log.LogListener;
import org.osgi.service.log.LogReaderService;
+import org.osgi.service.log.LogService;
import org.osgi.util.tracker.ServiceTracker;
/**
@@ -44,30 +52,22 @@
*/
public class RemoteLogListener implements LogListener
{
+ private LogService log;
+
private BundleContext context;
private ServiceTracker tracker;
private String host;
private Integer port;
- private Client remotingClient;
-
public RemoteLogListener(BundleContext context, Properties props)
{
+ this.log = new LogServiceTracker(context);
this.context = context;
+
this.host = props.getProperty(RemoteLogServiceActivator.REMOTE_LOG_HOST);
this.port = new Integer(props.getProperty(RemoteLogServiceActivator.REMOTE_LOG_PORT));
- // Get the remoting client
- try
- {
- String locatorURI = "socket://" + host + ":" + port;
- InvokerLocator locator = new InvokerLocator(locatorURI);
- remotingClient = new Client(locator);
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
+ log.log(LogService.LOG_DEBUG, "RemoteLogListener: [host=" + host + ",port=" + port + "]");
}
public void start()
@@ -88,9 +88,6 @@
public void stop()
{
- System.out.println("remotingClient.disconnect");
- remotingClient.disconnect();
-
LogReaderService logReader = (LogReaderService)tracker.getService();
if (logReader != null)
logReader.removeLogListener(this);
@@ -101,18 +98,32 @@
RemoteLogEntry remoteEntry = new RemoteLogEntry(entry);
try
{
- if (remotingClient.isConnected() == false)
- {
- System.out.println("remotingClient.connect");
- remotingClient.connect();
- }
-
- System.out.println("invoke: " + remoteEntry);
- remotingClient.invoke(remoteEntry);
+ Socket socket = new Socket(InetAddress.getByName(host), new Integer(port));
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(remoteEntry);
+ oos.close();
+
+ InputStream reqBytes = new ByteArrayInputStream(baos.toByteArray());
+ OutputStream socketOut = socket.getOutputStream();
+ copyStream(reqBytes, socketOut);
+ socketOut.close();
}
- catch (Throwable ex)
+ catch (Exception ex)
{
- ex.printStackTrace();
+ System.err.println(ex);
}
}
+
+ public static void copyStream(InputStream in, OutputStream out) throws IOException
+ {
+ byte[] bytes = new byte[1024];
+ int read = in.read(bytes);
+ while (read > 0)
+ {
+ out.write(bytes, 0, read);
+ read = in.read(bytes);
+ }
+ }
}
\ No newline at end of file
Modified: projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogReaderServiceImpl.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogReaderServiceImpl.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogReaderServiceImpl.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -23,24 +23,24 @@
//$Id$
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
-import javax.management.MBeanServer;
-
+import org.jboss.osgi.common.log.LogServiceTracker;
import org.jboss.osgi.spi.NotImplementedException;
import org.jboss.osgi.spi.logging.RemoteLogReaderService;
-import org.jboss.remoting.InvocationRequest;
-import org.jboss.remoting.InvokerLocator;
-import org.jboss.remoting.ServerInvocationHandler;
-import org.jboss.remoting.ServerInvoker;
-import org.jboss.remoting.callback.InvokerCallbackHandler;
-import org.jboss.remoting.transport.Connector;
import org.osgi.framework.BundleContext;
import org.osgi.service.log.LogEntry;
import org.osgi.service.log.LogListener;
+import org.osgi.service.log.LogService;
/**
* [TODO]
@@ -50,26 +50,29 @@
*/
public class RemoteLogReaderServiceImpl implements RemoteLogReaderService
{
+ private LogService log;
+
private String host;
private Integer port;
- private Connector connector;
-
- private List<LogListener> listeners = new ArrayList<LogListener>();
+ private RemoteLogReaderThread listenerThread;
+ private List<LogListener> logListeners = new ArrayList<LogListener>();
+
public RemoteLogReaderServiceImpl(BundleContext context, Properties props)
{
+ this.log = new LogServiceTracker(context);
this.host = props.getProperty(RemoteLogServiceActivator.REMOTE_LOG_HOST);
this.port = new Integer(props.getProperty(RemoteLogServiceActivator.REMOTE_LOG_PORT));
}
public void addLogListener(LogListener listener)
{
- listeners.add(listener);
+ logListeners.add(listener);
}
public void removeLogListener(LogListener listener)
{
- listeners.remove(listener);
+ logListeners.remove(listener);
}
public Enumeration<LogEntry> getLog()
@@ -79,77 +82,95 @@
public void start()
{
- try
- {
- String locatorURI = "socket://" + host + ":" + port;
- InvokerLocator locator = new InvokerLocator(locatorURI);
- connector = new Connector(locator);
- connector.create();
-
- LogEntryInvocationHandler invocationHandler = new LogEntryInvocationHandler();
- connector.addInvocationHandler("remote-log", invocationHandler);
- connector.start(true);
- }
- catch (Throwable ex)
- {
- ex.printStackTrace();
- }
+ listenerThread = new RemoteLogReaderThread(host, new Integer(port));
+ listenerThread.start();
}
public void stop()
{
- try
+ if (listenerThread != null)
+ listenerThread.stopListener();
+ }
+
+ private class RemoteLogReaderThread extends Thread
+ {
+ private ServerSocket serverSocket;
+
+ public RemoteLogReaderThread(String host, int port)
{
- if (connector != null)
- connector.stop();
+ super("RemoteLogReaderListenerThread");
+ try
+ {
+ log.log(LogService.LOG_DEBUG, "RemoteLogReader: [host=" + host + ",port=" + port + "]");
+ serverSocket = new ServerSocket();
+ serverSocket.bind(new InetSocketAddress(host, port));
+ }
+ catch (IOException ex)
+ {
+ throw new IllegalStateException("Cannot create server socket", ex);
+ }
}
- catch (Throwable ex)
+
+ public void stopListener()
{
- ex.printStackTrace();
+ try
+ {
+ log.log(LogService.LOG_DEBUG, "Stop RemoteLogReaderListener");
+ serverSocket.close();
+ }
+ catch (IOException ex)
+ {
+ // ignore
+ }
}
- }
- /**
- * Simple invocation handler implementation.
- * This is the code that will be called with the invocation payload from the client.
- */
- class LogEntryInvocationHandler implements ServerInvocationHandler
- {
- public Object invoke(InvocationRequest invocation) throws Throwable
+ @Override
+ public void run()
{
- RemoteLogEntry remoteEntry = (RemoteLogEntry)invocation.getParameter();
- for (LogListener listener : listeners)
+ while (serverSocket.isClosed() == false)
{
+ Socket socket = null;
try
{
- listener.logged(remoteEntry);
+ socket = serverSocket.accept();
}
- catch (RuntimeException rte)
+ catch (IOException ex)
{
- System.out.println(rte.toString());
+ if (serverSocket.isClosed())
+ break;
}
+
+ if (socket != null)
+ {
+ try
+ {
+ InputStream socketIn = socket.getInputStream();
+ ObjectInputStream ois = new ObjectInputStream(socketIn);
+ RemoteLogEntry remoteEntry = (RemoteLogEntry)ois.readObject();
+ socketIn.close();
+
+ log.log(LogService.LOG_DEBUG, "Received: " + remoteEntry);
+
+ for (LogListener listener : logListeners)
+ {
+ try
+ {
+ listener.logged(remoteEntry);
+ }
+ catch (RuntimeException rte)
+ {
+ log.log(LogService.LOG_ERROR, rte.toString());
+ }
+ }
+
+ socket.close();
+ }
+ catch (Exception ex)
+ {
+ log.log(LogService.LOG_ERROR, "Cannot process request: " + ex);
+ }
+ }
}
- return null;
}
-
- public void addListener(InvokerCallbackHandler callbackHandler)
- {
- // NOOP as do not handling callback listeners
- }
-
- public void removeListener(InvokerCallbackHandler callbackHandler)
- {
- // NOOP as do not handling callback listeners
- }
-
- public void setMBeanServer(MBeanServer server)
- {
- // NOOP as do not need reference to MBeanServer for this handler
- }
-
- public void setInvoker(ServerInvoker invoker)
- {
- // NOOP as do not need reference back to the server invoker
- }
}
}
\ No newline at end of file
Modified: projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogServiceActivator.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogServiceActivator.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/bundles/remotelog/src/main/java/org/jboss/osgi/service/remotelog/internal/RemoteLogServiceActivator.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -62,8 +62,8 @@
if (senderProp != null)
isSender = Boolean.valueOf(senderProp);
- String host = hostProp != null ? hostProp : "localhost";
- String port = portProp != null ? portProp : "5400";
+ String host = (hostProp != null ? hostProp : "localhost");
+ String port = (portProp != null ? portProp : "5400");
Properties props = new Properties();
props.put(REMOTE_LOG_HOST, host);
Modified: projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml
===================================================================
--- projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml 2009-05-30 21:09:53 UTC (rev 89576)
@@ -46,13 +46,6 @@
org.osgi.service.http;version=1.2,
org.osgi.service.log;version=1.3,
org.osgi.util.xml;version=1.0,
-
- <!-- needed by jboss-remoting -->
- org.apache.log4j,
- org.jboss.util,
- org.jboss.util.id,
- org.jboss.util.threadpool,
- org.jboss.util.propertyeditor,
</value>
</entry>
<!--
Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/RemoteLogCapability.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/RemoteLogCapability.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/RemoteLogCapability.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -42,7 +42,7 @@
Properties props = getProperties();
props.setProperty("org.jboss.osgi.service.remote.log.reader", "true");
- props.setProperty("rg.jboss.osgi.service.remote.log.host", System.getProperty("jboss.bind.address", "localhost"));
+ props.setProperty("org.jboss.osgi.service.remote.log.host", System.getProperty("jboss.bind.address", "localhost"));
props.setProperty("org.jboss.osgi.service.remote.log.port", "5400");
addBundle("bundles/jboss-osgi-remotelog.jar");
Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -22,7 +22,6 @@
package org.jboss.osgi.spi.testing.internal;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
@@ -31,7 +30,8 @@
import java.util.List;
import java.util.Map;
import java.util.jar.Attributes;
-import java.util.jar.JarInputStream;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
import javax.management.ObjectName;
import javax.naming.InitialContext;
@@ -235,10 +235,12 @@
try
{
File archiveFile = getTestHelper().getTestArchiveFile(location);
- JarInputStream jarInputStream = new JarInputStream(new FileInputStream(archiveFile));
- Attributes attribs = jarInputStream.getManifest().getMainAttributes();
+ JarFile jarFile = new JarFile(archiveFile);
+ Manifest manifest = jarFile.getManifest();
+ jarFile.close();
+
+ Attributes attribs = manifest.getMainAttributes();
symbolicName = attribs.getValue(Constants.BUNDLE_SYMBOLICNAME);
- jarInputStream.close();
}
catch (IOException ex)
{
Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/http/HttpServiceTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/http/HttpServiceTestCase.java 2009-05-30 20:48:33 UTC (rev 89575)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/http/HttpServiceTestCase.java 2009-05-30 21:09:53 UTC (rev 89576)
@@ -57,7 +57,7 @@
runtime.addCapability(new ConfigAdminCapability());
runtime.addCapability(new HttpCapability());
- Thread.sleep(10000);
+ Thread.sleep(5000);
testBundle = runtime.installBundle("example-http.jar");
testBundle.start();
More information about the jboss-cvs-commits
mailing list