[jboss-cvs] JBossAS SVN: r73417 - in projects/jboss-aspects/trunk/remoting: .settings and 13 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 15 08:55:53 EDT 2008


Author: wolfc
Date: 2008-05-15 08:55:52 -0400 (Thu, 15 May 2008)
New Revision: 73417

Added:
   projects/jboss-aspects/trunk/remoting/.settings/org.maven.ide.eclipse.prefs
   projects/jboss-aspects/trunk/remoting/src/main/java/org/jboss/aspects/remoting/AOPRemotingInvocationHandler.java
   projects/jboss-aspects/trunk/remoting/src/test/java/org/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/Fork.java
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelController.java
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelControllerImpl.java
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifier.java
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifierImpl.java
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/unit/
   projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/unit/RemoteTestCase.java
   projects/jboss-aspects/trunk/remoting/src/test/resources/
   projects/jboss-aspects/trunk/remoting/src/test/resources/META-INF/
   projects/jboss-aspects/trunk/remoting/src/test/resources/META-INF/jboss-beans.xml
   projects/jboss-aspects/trunk/remoting/src/test/resources/jndi.properties
   projects/jboss-aspects/trunk/remoting/src/test/resources/log4j.xml
Modified:
   projects/jboss-aspects/trunk/remoting/.classpath
   projects/jboss-aspects/trunk/remoting/.project
   projects/jboss-aspects/trunk/remoting/pom.xml
Log:
JBASPECT-17: added remoting test

Modified: projects/jboss-aspects/trunk/remoting/.classpath
===================================================================
--- projects/jboss-aspects/trunk/remoting/.classpath	2008-05-15 11:50:53 UTC (rev 73416)
+++ projects/jboss-aspects/trunk/remoting/.classpath	2008-05-15 12:55:52 UTC (rev 73417)
@@ -1,23 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar" sourcepath="M2_REPO/javax/activation/activation/1.1/activation-1.1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar" sourcepath="M2_REPO/ant/ant/1.6.5/ant-1.6.5-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javassist/3.7.1.GA/javassist-3.7.1.GA.jar" sourcepath="M2_REPO/org/jboss/javassist/3.7.1.GA/javassist-3.7.1.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.0/jaxb-api-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR8/jboss-aop-2.0.0.CR8.jar" sourcepath="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR8/jboss-aop-2.0.0.CR8-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.5.GA/jboss-common-core-2.2.5.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.5.GA/jboss-common-core-2.2.5.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-container/2.0.0.Beta10/jboss-container-2.0.0.Beta10.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-container/2.0.0.Beta10/jboss-container-2.0.0.Beta10-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.3.GA/jboss-logging-spi-2.0.3.GA.jar" sourcepath="M2_REPO/jboss/jboss-logging-spi/2.0.3.GA/jboss-logging-spi-2.0.3.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/remoting/jboss-remoting/2.4.0.CR1/jboss-remoting-2.4.0.CR1.jar" sourcepath="M2_REPO/jboss/remoting/jboss-remoting/2.4.0.CR1/jboss-remoting-2.4.0.CR1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.0.CR5/jbossxb-2.0.0.CR5.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.0.CR5/jbossxb-2.0.0.CR5-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/qdox/qdox/1.6/qdox-1.6.jar" sourcepath="M2_REPO/qdox/qdox/1.6/qdox-1.6-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/trove/trove/2.1.1/trove-2.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.7.1/xercesImpl-2.7.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="src" output="eclipse-target/tests-classes" path="src/test/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="eclipse-target/classes"/>
+</classpath>

Modified: projects/jboss-aspects/trunk/remoting/.project
===================================================================
--- projects/jboss-aspects/trunk/remoting/.project	2008-05-15 11:50:53 UTC (rev 73416)
+++ projects/jboss-aspects/trunk/remoting/.project	2008-05-15 12:55:52 UTC (rev 73417)
@@ -1,17 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-  <name>jboss-remoting-aspects</name>
-  <comment>JBoss Remoting Aspects</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.maven.ide.eclipse.maven2Builder</name>
-    </buildCommand>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-    <nature>org.maven.ide.eclipse.maven2Nature</nature>
-  </natures>
-</projectDescription>
\ No newline at end of file
+	<name>jboss-remoting-aspects</name>
+	<comment>JBoss Remoting Aspects</comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Added: projects/jboss-aspects/trunk/remoting/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- projects/jboss-aspects/trunk/remoting/.settings/org.maven.ide.eclipse.prefs	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/.settings/org.maven.ide.eclipse.prefs	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,9 @@
+#Thu Apr 24 13:32:58 CEST 2008
+activeProfiles=
+eclipse.preferences.version=1
+filterResources=false
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+useMavenFolders=false
+version=1

Modified: projects/jboss-aspects/trunk/remoting/pom.xml
===================================================================
--- projects/jboss-aspects/trunk/remoting/pom.xml	2008-05-15 11:50:53 UTC (rev 73416)
+++ projects/jboss-aspects/trunk/remoting/pom.xml	2008-05-15 12:55:52 UTC (rev 73417)
@@ -16,8 +16,45 @@
   <url>http://www.jboss.org/jbossas</url>
   <description>JBoss Remoting Aspects</description>
   
+  <build>
+    <sourceDirectory>src/main/java</sourceDirectory>
+    <testSourceDirectory>src/test/java</testSourceDirectory>
+  </build>
+
+  <dependencyManagement>
+    <dependencies>
+      <!-- Because of a bug in m2eclipse the version of reflect must be explicitly defined -->
+      <!-- 
+      <dependency>
+        <groupId>org.jboss</groupId>
+        <artifactId>jboss-reflect</artifactId>
+        <version>2.0.0.Beta12</version>
+      </dependency>
+      -->
+    </dependencies>
+  </dependencyManagement>
+  
   <dependencies>
+    <!-- TODO: who should declare this dependency? -->
     <dependency>
+      <groupId>jboss</groupId>
+      <artifactId>jboss-serialization</artifactId>
+      <version>1.0.3.GA</version>
+      <exclusions>
+        <exclusion>
+          <groupId>jboss</groupId>
+          <artifactId>jboss-logging-log4j</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
       <groupId>org.jboss</groupId>
       <artifactId>jboss-common-core</artifactId>
     </dependency>
@@ -27,11 +64,47 @@
       <artifactId>jboss-remoting</artifactId>
     </dependency>
     
+    <!-- TODO: who should define this dependency? -->
     <dependency>
+      <groupId>oswego-concurrent</groupId>
+      <artifactId>concurrent</artifactId>
+      <version>1.3.4-jboss-update1</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
       <groupId>org.jboss.aop</groupId>
       <artifactId>jboss-aop</artifactId>
     </dependency>
 
+    <dependency>
+      <groupId>org.jboss.logging</groupId>
+      <artifactId>jboss-logging-log4j</artifactId>
+      <version>2.0.5.GA</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <!-- MC doesn't declare this as a proper dependency -->
+    <dependency>
+      <groupId>org.jboss.man</groupId>
+      <artifactId>jboss-managed</artifactId>
+      <version>2.0.0.Beta12</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.microcontainer</groupId>
+      <artifactId>jboss-kernel</artifactId>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.naming</groupId>
+      <artifactId>jnpserver</artifactId>
+      <version>5.0.0.CR1</version>
+      <scope>test</scope>
+    </dependency>
+    
     <!-- JBASPECT-3  
     Dependencies below this line should be removed
     -->

Copied: projects/jboss-aspects/trunk/remoting/src/main/java/org/jboss/aspects/remoting/AOPRemotingInvocationHandler.java (from rev 73328, trunk/aspects/src/main/org/jboss/aspects/remoting/AOPRemotingInvocationHandler.java)
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/main/java/org/jboss/aspects/remoting/AOPRemotingInvocationHandler.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/main/java/org/jboss/aspects/remoting/AOPRemotingInvocationHandler.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,104 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.aspects.remoting;
+
+import org.jboss.aop.Dispatcher;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+
+import javax.management.MBeanServer;
+
+/**
+ * AOPRemotingInvocationHandler is a ServerInvocationHandler that will forward requests to the
+ * aop Dispatcher
+ *
+ * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+ * @version $Revision$
+ */
+public class AOPRemotingInvocationHandler implements ServerInvocationHandler
+{
+   public AOPRemotingInvocationHandler()
+   {
+      super();
+   }
+
+   /**
+    * set the invoker that owns this handler
+    *
+    * @param invoker
+    */
+   public void setInvoker(ServerInvoker invoker)
+   {
+   }
+
+   /**
+    * set the mbean server that the handler can reference
+    *
+    * @param server
+    */
+   public void setMBeanServer( MBeanServer server )
+   {
+   }
+
+   /**
+    * method is called to destroy the handler and remove all pending notifications and listeners
+    * from the notification cache
+    */
+   public synchronized void destroy()
+   {
+   }
+
+   protected void finalize() throws Throwable
+   {
+      destroy();
+      super.finalize();
+   }
+
+   public Object invoke(InvocationRequest invocation)
+      throws Throwable
+   {
+      org.jboss.aop.joinpoint.Invocation inv =(org.jboss.aop.joinpoint.Invocation)invocation.getParameter();
+      return Dispatcher.singleton.invoke(inv);
+   }
+
+    /**
+     * Adds a callback handler that will listen for callbacks from
+     * the server invoker handler.
+     * @param callbackHandler
+     */
+    public void addListener(InvokerCallbackHandler callbackHandler)
+    {
+        //TODO: implement for callback api -TME
+    }
+
+    /**
+     * Removes the callback handler that was listening for callbacks
+     * from the server invoker handler.
+     * @param callbackHandler
+     */
+    public void removeListener(InvokerCallbackHandler callbackHandler)
+    {
+        //TODO: implement for callback api -TME
+    }
+}

Added: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/Fork.java
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/Fork.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/Fork.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,107 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.aspects.remoting.test.common;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.jboss.logging.Logger;
+
+/**
+ * Fork off a process and run the specified class.
+ * 
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class Fork
+{
+   private static final Logger log = Logger.getLogger(Fork.class);
+   
+   private Process p;
+   private Thread errorStreamReader;
+   private Thread inputStreamReader;
+   
+   public Fork(Class<?> cls) throws IOException
+   {
+      this(cls.getName());
+   }
+   
+   public Fork(String className) throws IOException
+   {
+      String java = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
+      // make sure we can run under surefire 
+      String classPath = System.getProperty("surefire.test.class.path");
+      if(classPath == null)
+         classPath = System.getProperty("java.class.path");
+      log.debug("classPath = " + classPath);
+      String cmdarray[] = { java, "-cp", classPath, className };
+      p = Runtime.getRuntime().exec(cmdarray);
+      
+      final InputStream in = p.getInputStream();
+      inputStreamReader = new Thread()
+      {
+         @Override
+         public void run()
+         {
+            try
+            {
+               int b;
+               while((b = in.read()) != -1)
+                  System.out.write(b);
+            }
+            catch(IOException e)
+            {
+               e.printStackTrace();
+            }
+         }
+      };
+      inputStreamReader.setDaemon(true);
+      inputStreamReader.start();
+      
+      final InputStream err = p.getErrorStream();
+      errorStreamReader = new Thread()
+      {
+         @Override
+         public void run()
+         {
+            try
+            {
+               int b;
+               while((b = err.read()) != -1)
+                  System.err.write(b);
+            }
+            catch(IOException e)
+            {
+               e.printStackTrace();
+            }
+         }
+      };
+      errorStreamReader.setDaemon(true);
+      errorStreamReader.start();
+   }
+   
+   public void kill()
+   {
+      p.destroy();
+   }
+}


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/Fork.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelController.java
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelController.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelController.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.aspects.remoting.test.common;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+
+/**
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public interface RemoteKernelController
+{
+   /**
+    * Install a context
+    * 
+    * @param metaData the metaData
+    * @throws Throwable for any error
+    */
+   void install(BeanMetaData metaData) throws Throwable;
+
+   void uninstall(String name) throws Throwable;
+}


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelController.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelControllerImpl.java
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelControllerImpl.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelControllerImpl.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.aspects.remoting.test.common;
+
+import javax.naming.InitialContext;
+
+import org.jboss.aop.Dispatcher;
+import org.jboss.aspects.remoting.Remoting;
+import org.jboss.beans.metadata.api.annotations.Inject;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.kernel.Kernel;
+
+/**
+ * Provides functions of MC which can be remotely called.
+ * 
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class RemoteKernelControllerImpl implements RemoteKernelController
+{
+   private static final String OID = "jboss:RemoteKernelController";
+   
+   private Kernel kernel;
+   
+   public void install(BeanMetaData metaData) throws Throwable
+   {
+      kernel.getController().install(metaData);
+   }
+
+   public void uninstall(String name) throws Throwable
+   {
+      kernel.getController().uninstall(name);
+   }
+
+   @Inject(bean="jboss.kernel:service=Kernel")
+   public void setKernel(Kernel kernel)
+   {
+      this.kernel = kernel;
+   }
+   
+   public void start() throws Exception
+   {
+      InitialContext ctx = new InitialContext();
+      Class<?> interfaces[] = { RemoteKernelController.class };
+      Object proxy = Remoting.createPojiProxy(OID, interfaces, "socket://0.0.0.0:3874");
+      ctx.rebind("RemoteKernelController", proxy);
+      Dispatcher.singleton.registerTarget(OID, this);
+   }
+   
+   public void stop() throws Exception
+   {
+      Dispatcher.singleton.unregisterTarget(OID);
+      InitialContext ctx = new InitialContext();
+      ctx.unbind("RemoteKernelController");
+   }
+   
+   // Must implement toString otherwise it won't get exposed via ClassProxyFactory.getMethodMap
+   @Override
+   public String toString()
+   {
+      return OID;
+   }
+}


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/common/RemoteKernelControllerImpl.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifier.java
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifier.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifier.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.aspects.remoting.test.simple;
+
+import java.rmi.dgc.VMID;
+
+/**
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public interface VMIdentifier
+{
+   VMID getCurrentVMID();
+}


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifier.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifierImpl.java
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifierImpl.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifierImpl.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.aspects.remoting.test.simple;
+
+import java.rmi.dgc.VMID;
+
+import javax.naming.InitialContext;
+
+import org.jboss.aop.Dispatcher;
+import org.jboss.aspects.remoting.Remoting;
+import org.jboss.logging.Logger;
+
+/**
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class VMIdentifierImpl implements VMIdentifier
+{
+   private static final Logger log = Logger.getLogger(VMIdentifierImpl.class);
+   private static final Object OID = "VMIdentifier";
+   
+   private VMID vmid = new VMID();
+   
+   public VMID getCurrentVMID()
+   {
+      log.info(Thread.currentThread() + ": Retrieving VMID from " + this);
+      return vmid;
+   }
+   
+   public void start() throws Exception
+   {
+      InitialContext ctx = new InitialContext();
+      Class<?> interfaces[] = { VMIdentifier.class };
+      // TODO: OID should match MC name
+      Object proxy = Remoting.createPojiProxy(OID, interfaces, "socket://0.0.0.0:3874");
+      ctx.rebind("VMIdentifier", proxy);
+      Dispatcher.singleton.registerTarget(OID, this);
+   }
+}


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/VMIdentifierImpl.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/unit/RemoteTestCase.java
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/unit/RemoteTestCase.java	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/unit/RemoteTestCase.java	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.aspects.remoting.test.simple.unit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.rmi.dgc.VMID;
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.jboss.aspects.remoting.test.common.Fork;
+import org.jboss.aspects.remoting.test.common.RemoteKernelController;
+import org.jboss.aspects.remoting.test.simple.VMIdentifier;
+import org.jboss.aspects.remoting.test.simple.VMIdentifierImpl;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.kernel.plugins.bootstrap.standalone.StandaloneBootstrap;
+import org.jboss.logging.Logger;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class RemoteTestCase
+{
+   private static final Logger log = Logger.getLogger(RemoteTestCase.class);
+   
+   private static Fork fork;
+   
+   /**
+    * @throws java.lang.Exception
+    */
+   @BeforeClass
+   public static void setUpBeforeClass() throws Exception
+   {
+      fork = new Fork(StandaloneBootstrap.class);
+      // TODO: how do I know the server has started?
+      Thread.sleep(5000);
+   }
+
+   /**
+    * @throws java.lang.Exception
+    */
+   @AfterClass
+   public static void tearDownAfterClass() throws Exception
+   {
+      fork.kill();
+   }
+
+   @Test
+   public void test1() throws Throwable
+   {
+      Properties props = new Properties();
+      // For some reason surefire finds the wrong jndi.properties, so we specify the factory here.
+      props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
+      props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
+      
+      InitialContext ctx = new InitialContext(props);
+      RemoteKernelController controller = (RemoteKernelController) ctx.lookup("RemoteKernelController");
+      System.out.println(controller);
+      
+      AbstractBeanMetaData bmd = new AbstractBeanMetaData("VMIdentifier", VMIdentifierImpl.class.getName());
+      controller.install(bmd);
+      
+      VMIdentifier identifierHere = new VMIdentifierImpl();
+      
+      VMID firstHere = identifierHere.getCurrentVMID();
+      VMID secondHere = identifierHere.getCurrentVMID();
+      assertEquals(firstHere, secondHere);
+      
+      VMIdentifier identifierThere = (VMIdentifier) ctx.lookup("VMIdentifier");
+      
+      VMID firstThere = identifierThere.getCurrentVMID();
+      VMID secondThere = identifierThere.getCurrentVMID();
+      assertEquals(firstThere, secondThere);
+      
+      assertFalse(firstHere.equals(firstThere));
+   }
+}


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/java/org/jboss/aspects/remoting/test/simple/unit/RemoteTestCase.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/resources/META-INF/jboss-beans.xml
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/resources/META-INF/jboss-beans.xml	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/resources/META-INF/jboss-beans.xml	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- JNDI -->
+   <bean name="NamingBeanImpl" class="org.jnp.server.NamingBeanImpl"/>
+   
+   <bean name="Naming" class="org.jnp.server.Main">
+      <property name="namingInfo"><inject bean="NamingBeanImpl"/></property>
+   </bean>
+   
+   <bean name="RemoteKernelController" class="org.jboss.aspects.remoting.test.common.RemoteKernelControllerImpl">
+      <depends>Naming</depends>
+   </bean>
+   
+   <bean name="ServerConfiguration" class="org.jboss.remoting.ServerConfiguration">
+      <property name="invocationHandlers">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>AOP</key>
+               <value>org.jboss.aspects.remoting.AOPRemotingInvocationHandler</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+   
+   <bean name="Connector" class="org.jboss.remoting.transport.Connector">
+      <property name="invokerLocator">socket://0.0.0.0:3874</property>
+      <property name="serverConfiguration"><inject bean="ServerConfiguration"/></property>
+   </bean>
+</deployment>
\ No newline at end of file


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/resources/META-INF/jboss-beans.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: projects/jboss-aspects/trunk/remoting/src/test/resources/jndi.properties
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/resources/jndi.properties	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/resources/jndi.properties	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,3 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+#java.naming.provider.url=jnp://localhost:1099
\ No newline at end of file

Added: projects/jboss-aspects/trunk/remoting/src/test/resources/log4j.xml
===================================================================
--- projects/jboss-aspects/trunk/remoting/src/test/resources/log4j.xml	                        (rev 0)
+++ projects/jboss-aspects/trunk/remoting/src/test/resources/log4j.xml	2008-05-15 12:55:52 UTC (rev 73417)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 68671 2008-01-08 10:04:25Z wolfc $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+  <!-- ================================= -->
+  <!-- Preserve messages in a local file -->
+  <!-- ================================= -->
+
+  <!-- A time/date based rolling appender -->
+  <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+    <param name="File" value="target/test.log"/>
+    <param name="Threshold" value="INFO"/>
+    <param name="Append" value="false"/>
+
+    <!-- Rollover at midnight each day -->
+    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+    <!-- Rollover at the top of each hour
+    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+    -->
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+       -->
+    </layout>	    
+  </appender>
+
+  <!-- ============================== -->
+  <!-- Append messages to the console -->
+  <!-- ============================== -->
+
+  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out"/>
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+    </layout>
+  </appender>
+
+
+  <!-- ================ -->
+  <!-- Limit categories -->
+  <!-- ================ -->
+  
+  <category name="org.jboss">
+    <priority value="INFO"/>
+  </category>
+  
+  <category name="org.jboss.ejb3.test.proxy">
+    <priority value="ALL"/>
+  </category>
+  
+  <category name="org.jboss.ejb3.proxy">
+    <priority value="ALL"/>
+  </category>
+  
+  <category name="org.jboss.kernel">
+    <priority value="INFO"/>
+  </category>
+  
+  <!-- ======================= -->
+  <!-- Setup the Root category -->
+  <!-- ======================= -->
+
+  <root>
+    <appender-ref ref="CONSOLE"/>
+    <appender-ref ref="FILE"/>
+  </root>
+  
+</log4j:configuration>


Property changes on: projects/jboss-aspects/trunk/remoting/src/test/resources/log4j.xml
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list