[jboss-osgi-commits] JBoss-OSGI SVN: r89576 - in projects/jboss-osgi/trunk: bundles/remotelog and 6 other directories.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Sat May 30 17:09:54 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-osgi-commits mailing list