[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