[jboss-cvs] JBossAS SVN: r96250 - projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 11 02:05:34 EST 2009


Author: thomas.diesler at jboss.com
Date: 2009-11-11 02:05:34 -0500 (Wed, 11 Nov 2009)
New Revision: 96250

Modified:
   projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTest.java
   projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTestHelper.java
Log:
Add VFS bundle creation

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTest.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTest.java	2009-11-11 07:03:43 UTC (rev 96249)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTest.java	2009-11-11 07:05:34 UTC (rev 96250)
@@ -28,6 +28,7 @@
 import javax.naming.NamingException;
 
 import org.jboss.virtual.VFS;
+import org.jboss.virtual.VirtualFile;
 import org.junit.After;
 import org.junit.Before;
 import org.slf4j.Logger;
@@ -178,14 +179,6 @@
    }
 
    /**
-    * Delegates to {@link OSGiTestHelper#getJndiPort()}
-    */
-   public Integer getJndiPort()
-   {
-      return getTestHelper().getJndiPort();
-   }
-
-   /**
     * Delegates to {@link OSGiTestHelper#getServerHost()}
     */
    public String getServerHost()
@@ -208,28 +201,14 @@
    {
       return getTestHelper().getFramework();
    }
-   
-   /**
-    * Delegates to {@link OSGiTestHelper#isFrameworkEquinox()}
-    */
-   public boolean isFrameworkEquinox()
+
+   public VirtualFile assembleBundle(String name, String resource, Class<?>... packages) throws Exception
    {
-      return getTestHelper().isFrameworkEquinox();
+      return getTestHelper().assembleBundle(name, resource, packages);
    }
-   
-   /**
-    * Delegates to {@link OSGiTestHelper#isFrameworkFelix()}
-    */
-   public boolean isFrameworkFelix()
+
+   public VirtualFile assembleBundle(String name, String[] resources, Class<?>... packages) throws Exception
    {
-      return getTestHelper().isFrameworkFelix();
+      return getTestHelper().assembleBundle(name, resources, packages);
    }
-   
-   /**
-    * Delegates to {@link OSGiTestHelper#isFrameworkJBossMC()}
-    */
-   public boolean isFrameworkJBossMC()
-   {
-      return getTestHelper().isFrameworkJBossMC();
-   }
 }

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTestHelper.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTestHelper.java	2009-11-11 07:03:43 UTC (rev 96249)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiTestHelper.java	2009-11-11 07:05:34 UTC (rev 96250)
@@ -29,10 +29,15 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
+import junit.framework.AssertionFailedError;
+
 import org.jboss.osgi.spi.framework.OSGiBootstrap;
 import org.jboss.osgi.spi.framework.OSGiBootstrapProvider;
 import org.jboss.osgi.testing.internal.EmbeddedRuntime;
 import org.jboss.osgi.testing.internal.RemoteRuntime;
+import org.jboss.virtual.AssembledDirectory;
+import org.jboss.virtual.VFS;
+import org.jboss.virtual.VirtualFile;
 
 /**
  * An OSGi Test Helper
@@ -172,49 +177,73 @@
    @SuppressWarnings("unchecked")
    public InitialContext getInitialContext() throws NamingException
    {
+      String port = System.getProperty("jndi.server.port", "1099");
+      Integer jndiPort = new Integer(port);
+      
       Hashtable env = new Hashtable();
       env.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
       env.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
-      env.put("java.naming.provider.url", "jnp://" + getServerHost() + ":" + getJndiPort());
+      env.put("java.naming.provider.url", "jnp://" + getServerHost() + ":" + jndiPort);
       return new InitialContext(env);
    }
 
-   public Integer getJndiPort()
-   {
-      String port = System.getProperty("jndi.server.port", "1099");
-      return new Integer(port);
-   }
-
    public String getServerHost()
    {
       String bindAddress = System.getProperty("jboss.bind.address", "localhost");
       return bindAddress;
    }
-   
+
    public String getTargetContainer()
    {
       String targetContainer = System.getProperty("target.container");
       return targetContainer;
    }
-   
+
    public String getFramework()
    {
       String framework = System.getProperty("framework", "jbossmc");
       return framework;
    }
-   
-   public boolean isFrameworkEquinox()
+
+   public VirtualFile assembleBundle(String name, String resource, Class<?>... packages) throws Exception
    {
-      return "equinox".equals(getFramework());
+      return assembleBundle(name, new String[] { resource }, packages);
    }
-   
-   public boolean isFrameworkFelix()
+
+   public VirtualFile assembleBundle(String name, String[] resources, Class<?>... packages) throws Exception
    {
-      return "felix".equals(getFramework());
+      AssembledDirectory assembledDirectory = AssembledDirectory.createAssembledDirectory(name, "");
+      for (String path : resources)
+         addPath(assembledDirectory, path, "");
+      for (Class<?> reference : packages)
+         addPackage(assembledDirectory, reference);
+      return assembledDirectory;
    }
-   
-   public boolean isFrameworkJBossMC()
+
+   private void addPath(AssembledDirectory dir, String path, String name) throws Exception
    {
-      return "jbossmc".equals(getFramework());
+      URL url = getClass().getResource(path);
+      if (url == null)
+         throw new AssertionFailedError(path + " not found");
+
+      VirtualFile file = VFS.getVirtualFile(url, name);
+      dir.addPath(file);
    }
+
+   private void addPackage(AssembledDirectory dir, Class<?> reference) throws Exception
+   {
+      String packagePath = packageNameToPath(reference.getName());
+      dir.addResources(reference, new String[] { packagePath + "/*.class" }, new String[0]);
+   }
+
+   // Convert a class's package name into a path
+   private String packageNameToPath(final String className)
+   {
+      int end = className.lastIndexOf('.');
+      if (end == -1)
+         return "";
+
+      String packageName = className.substring(0, end);
+      return packageName.replace('.', '/');
+   }
 }




More information about the jboss-cvs-commits mailing list