[jboss-osgi-commits] JBoss-OSGI SVN: r95472 - in projects/jboss-osgi/trunk: reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint and 18 other directories.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Fri Oct 23 05:56:58 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-10-23 05:56:57 -0400 (Fri, 23 Oct 2009)
New Revision: 95472

Added:
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/InterceptorTestCase.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/endpoint/
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/endpoint/EndpointServlet.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/HttpMetadata.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/InterceptorActivator.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/ParserInterceptor.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/PublisherInterceptor.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor-bundle.bnd
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor.bnd
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/http-metadata.properties
Modified:
   projects/jboss-osgi/trunk/reactor/blueprint/impl/pom.xml
   projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/BlueprintContext.java
   projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java
   projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/extender/BlueprintContextImpl.java
   projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/BlueprintParser.java
   projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/interceptor/AbstractLifecycleInterceptorService.java
   projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/internal/LifecycleInterceptorServiceImpl.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/LifecycleInterceptorServiceImpl.java
   projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java
   projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/internal/OSGiRuntimeImpl.java
   projects/jboss-osgi/trunk/testsuite/example/pom.xml
   projects/jboss-osgi/trunk/testsuite/example/scripts/antrun-test-jars.xml
   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/webapp/WebAppExtenderTestCase.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppInterceptorTestCase.java
Log:
Add interceptor example

Modified: projects/jboss-osgi/trunk/reactor/blueprint/impl/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/blueprint/impl/pom.xml	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/blueprint/impl/pom.xml	2009-10-23 09:56:57 UTC (rev 95472)
@@ -92,6 +92,7 @@
               org.osgi.service.blueprint.reflect;version=1.0,
               org.osgi.service.log;version=1.3,
               org.osgi.util.tracker;version=1.4, 
+              org.slf4j;version="[1.5,2.0)",
               org.w3c.dom,
               org.xml.sax,
             </Import-Package>

Modified: projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/BlueprintContext.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/BlueprintContext.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/BlueprintContext.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -25,7 +25,6 @@
 
 import org.jboss.osgi.blueprint.parser.BlueprintParser;
 import org.osgi.framework.BundleContext;
-import org.osgi.service.log.LogService;
 
 /**
  * The context of the Blueprint implementation
@@ -37,8 +36,6 @@
 {
    String XMLNS_BLUEPRINT = "http://www.osgi.org/xmlns/blueprint/v1.0.0";
    
-   LogService getLog();
-
    BundleContext getBundleContext();
 
    BlueprintParser getBlueprintParser();

Modified: projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -34,7 +34,8 @@
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.blueprint.container.BlueprintContainer;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
-import org.osgi.service.log.LogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * For each of the ComponentMetadata objects, the Blueprint Container has a
@@ -51,7 +52,7 @@
  */
 public abstract class AbstractManager
 {
-   protected LogService log;
+   protected Logger log = LoggerFactory.getLogger(getClass());
    protected BlueprintContext context;
    protected BlueprintContainer container;
    
@@ -59,7 +60,6 @@
 
    public AbstractManager(BlueprintContext context, BlueprintContainer container, ComponentMetadata component)
    {
-      this.log = context.getLog();
       this.context = context;
       this.container = container;
       this.component = component;
@@ -82,17 +82,17 @@
    
    public void install()
    {
-      log.log(LogService.LOG_DEBUG, "install: " + component);
+      log.debug("install: " + component);
    }
    
    public void activate()
    {
-      log.log(LogService.LOG_DEBUG, "activate: " + component);
+      log.debug("activate: " + component);
    }
    
    public void shutdown()
    {
-      log.log(LogService.LOG_DEBUG, "shutdown: " + component);
+      log.debug("shutdown: " + component);
    }
    
    public Object getTargetBean()
@@ -111,7 +111,7 @@
       try
       {
          KernelControllerContext ctrlContext = getKernelController().install(kernelBean);
-         log.log(LogService.LOG_DEBUG, "installed: " + ctrlContext);
+         log.debug("installed: " + ctrlContext);
          return ctrlContext;
       }
       catch (RuntimeException rte)
@@ -127,7 +127,7 @@
    protected void uninstallKernelBean(BeanMetaData kernelBean)
    {
       getKernelController().uninstall(kernelBean.getName());
-      log.log(LogService.LOG_DEBUG, "uninstalled: " + kernelBean.getName());
+      log.debug("uninstalled: " + kernelBean.getName());
    }
 
    protected KernelController getKernelController()

Modified: projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/extender/BlueprintContextImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/extender/BlueprintContextImpl.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/extender/BlueprintContextImpl.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -25,9 +25,7 @@
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 import org.jboss.osgi.blueprint.parser.BlueprintParser;
-import org.jboss.osgi.common.log.LogServiceTracker;
 import org.osgi.framework.BundleContext;
-import org.osgi.service.log.LogService;
 
 /**
  * The context of the Blueprint implementation
@@ -39,23 +37,16 @@
 {
    public static final String XMLNS_BLUEPRINT = "http://www.osgi.org/xmlns/blueprint/v1.0.0";
    
-   private LogService log;
    private BundleContext context;
    private BlueprintParser parser;
    
    public BlueprintContextImpl(BundleContext context)
    {
-      this.log = new LogServiceTracker(context);
       this.context = context;
       
       this.parser = new BlueprintParser(this);
    }
 
-   public LogService getLog()
-   {
-      return log;
-   }
-
    public BundleContext getBundleContext()
    {
       return context;

Modified: projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/BlueprintParser.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/BlueprintParser.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/BlueprintParser.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -30,7 +30,8 @@
 import org.jboss.osgi.blueprint.parser.xb.TBlueprint;
 import org.jboss.osgi.blueprint.reflect.BlueprintMetadata;
 import org.osgi.framework.Bundle;
-import org.osgi.service.log.LogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 //$Id$
 
@@ -42,13 +43,14 @@
  */
 public class BlueprintParser
 {
-   private LogService log;
+   // Provide Logging
+   private Logger log = LoggerFactory.getLogger(BlueprintParser.class);
+   
    private BlueprintContext context;
    private JBossXBParser parser;
    
    public BlueprintParser(BlueprintContext context)
    {
-      this.log = context.getLog();
       this.context = context;
       
       this.parser = new SchemaResolverParser(context);
@@ -67,7 +69,7 @@
       String descriptorPaths = (String)bundle.getHeaders().get(HEADER_BUNDLE_BLUEPRINT);
       if (descriptorPaths != null)
       {
-         log.log(LogService.LOG_INFO, HEADER_BUNDLE_BLUEPRINT + ": " + descriptorPaths + " in bundle: " + bundle);
+         log.info(HEADER_BUNDLE_BLUEPRINT + ": " + descriptorPaths + " in bundle: " + bundle);
          String[] descritors = descriptorPaths.split(", ");
          
          for (String descriptor : descritors)

Modified: projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/interceptor/AbstractLifecycleInterceptorService.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/interceptor/AbstractLifecycleInterceptorService.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/interceptor/AbstractLifecycleInterceptorService.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -34,6 +34,7 @@
 import org.jboss.osgi.deployment.internal.InterceptorWrapper;
 import org.jboss.osgi.spi.util.ConstantsHelper;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
 import org.osgi.framework.Version;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,10 +49,23 @@
 {
    // Provide logging
    private Logger log = LoggerFactory.getLogger(AbstractLifecycleInterceptorService.class);
+
+   // The system bundle context
+   private BundleContext context;
    
    // The interceptor chain
    private List<LifecycleInterceptor> interceptorChain = new ArrayList<LifecycleInterceptor>();
    
+   protected AbstractLifecycleInterceptorService(BundleContext context)
+   {
+      this.context = context;
+   }
+   
+   public BundleContext getBundleContext()
+   {
+      return context;
+   }
+
    /**
     * Add a LifecycleInterceptor to the service.
     * 
@@ -212,6 +226,11 @@
          if (attBundle == null)
             dep.addAttachment(Bundle.class, bundle);
          
+         // Attach the bundle context if not already done so
+         BundleContext attBundleContext = dep.getAttachment(BundleContext.class);
+         if (attBundleContext == null)
+            dep.addAttachment(BundleContext.class, context);
+         
          // Call the interceptor chain
          for (LifecycleInterceptor aux : interceptorChain)
          {

Modified: projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/internal/LifecycleInterceptorServiceImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/internal/LifecycleInterceptorServiceImpl.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/deployment/src/main/java/org/jboss/osgi/deployment/internal/LifecycleInterceptorServiceImpl.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -41,11 +41,9 @@
  */
 public class LifecycleInterceptorServiceImpl extends AbstractLifecycleInterceptorService  
 {
-   private BundleContext context;
-   
    public LifecycleInterceptorServiceImpl(BundleContext context)
    {
-      this.context = context;
+      super(context);
    }
    
    @Override
@@ -63,10 +61,10 @@
 
    private DeploymentRegistryService getDeploymentRegistryService()
    {
-      ServiceReference sref = context.getServiceReference(DeploymentRegistryService.class.getName());
+      ServiceReference sref = getBundleContext().getServiceReference(DeploymentRegistryService.class.getName());
       if (sref == null)
          throw new IllegalStateException("Cannot obtain deployment registry service");
       
-      return (DeploymentRegistryService)context.getService(sref);
+      return (DeploymentRegistryService)getBundleContext().getService(sref);
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/LifecycleInterceptorServiceImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/LifecycleInterceptorServiceImpl.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/LifecycleInterceptorServiceImpl.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -62,7 +62,7 @@
    public void startService()
    {
       final BundleContext context = getSystemContext();
-      delegate = new AbstractLifecycleInterceptorService()
+      delegate = new AbstractLifecycleInterceptorService(context)
       {
          protected Deployment getDeployment(String name, Version version)
          {

Modified: projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -96,6 +96,15 @@
    OSGiServiceReference getServiceReference(String clazz);
    
    /**
+    * Returns a ServiceReference object for a service that implements and was registered 
+    * under the specified class.
+    * 
+    * @param timeout the timeout to wait for the service to become available
+    * @return A ServiceReference object, or null  if no services are registered which implement the named class. 
+    */
+   OSGiServiceReference getServiceReference(String clazz, long timeout);
+   
+   /**
     * Returns an array of ServiceReference objects. 
     * The returned array of ServiceReference objects contains services that were registered under the specified 
     * class and match the specified filter criteria. 

Modified: projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/internal/OSGiRuntimeImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/internal/OSGiRuntimeImpl.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/reactor/testing/src/main/java/org/jboss/osgi/testing/internal/OSGiRuntimeImpl.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -195,6 +195,26 @@
       return bundle;
    }
 
+   public OSGiServiceReference getServiceReference(String clazz, long timeout)
+   {
+      int fraktion = 200;
+      timeout = timeout/fraktion;
+      OSGiServiceReference sref = getServiceReference(clazz);
+      while (sref == null &&  0 < timeout--)
+      {
+         try
+         {
+            Thread.sleep(fraktion);
+         }
+         catch (InterruptedException e)
+         {
+            // ignore
+         }
+         sref = getServiceReference(clazz);
+      }
+      return sref;
+   }
+   
    protected OSGiBundle getBundle(String symbolicName, Version version, boolean mustExist)
    {
       OSGiBundle bundle = null;

Modified: projects/jboss-osgi/trunk/testsuite/example/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/pom.xml	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/testsuite/example/pom.xml	2009-10-23 09:56:57 UTC (rev 95472)
@@ -237,6 +237,7 @@
             <configuration>
               <excludes>
                 <exclude>${target.container.excludes}</exclude>
+                <exclude>org/jboss/test/osgi/example/interceptor/**</exclude>
                 <exclude>org/jboss/test/osgi/example/webapp/WebAppInterceptorTestCase.class</exclude>
               </excludes>
             </configuration>

Modified: projects/jboss-osgi/trunk/testsuite/example/scripts/antrun-test-jars.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/scripts/antrun-test-jars.xml	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/testsuite/example/scripts/antrun-test-jars.xml	2009-10-23 09:56:57 UTC (rev 95472)
@@ -48,6 +48,10 @@
     <!-- http -->
     <bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/example-http.jar" files="${tests.resources.dir}/http/example-http.bnd" />
 
+    <!-- interceptor -->
+    <bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/example-interceptor.jar" files="${tests.resources.dir}/interceptor/example-interceptor.bnd" />
+    <bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/example-interceptor-bundle.jar" files="${tests.resources.dir}/interceptor/example-interceptor-bundle.bnd" />
+
     <!-- jmx -->
     <bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/example-jmx.jar" files="${tests.resources.dir}/jmx/example-jmx.bnd" />
 

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-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/http/HttpServiceTestCase.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -31,7 +31,6 @@
 import java.net.URL;
 
 import org.jboss.osgi.spi.capability.HttpServiceCapability;
-import org.jboss.osgi.testing.OSGiBundle;
 import org.jboss.osgi.testing.OSGiRuntime;
 import org.jboss.osgi.testing.OSGiServiceReference;
 import org.jboss.osgi.testing.OSGiTestHelper;
@@ -57,18 +56,10 @@
       runtime.addCapability(new HttpServiceCapability());
 
       // Allow 10s for the HttpService to become available
-      long timeout = 50;
-      OSGiServiceReference sref = runtime.getServiceReference(HttpService.class.getName());
-      while (sref == null &&  0 < timeout--)
-      {
-         Thread.sleep(200);
-         sref = runtime.getServiceReference(HttpService.class.getName());
-      }
-
+      OSGiServiceReference sref = runtime.getServiceReference(HttpService.class.getName(), 10000);
       assertNotNull("HttpService not null", sref);
 
-      OSGiBundle bundle = runtime.installBundle("example-http.jar");
-      bundle.start();
+      runtime.installBundle("example-http.jar").start();
    }
 
    @AfterClass
@@ -81,40 +72,42 @@
    @Test
    public void testServletAccess() throws Exception
    {
-      URL url = new URL("http://" + runtime.getServerHost() + ":8090/servlet?test=plain");
-      BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
-      assertEquals("Hello from Servlet", br.readLine());
+      String line = getHttpResponse("/servlet?test=plain");
+      assertEquals("Hello from Servlet", line);
    }
 
    @Test
    public void testServletInitProps() throws Exception
    {
-      URL url = new URL("http://" + runtime.getServerHost() + ":8090/servlet?test=initProp");
-      BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
-      assertEquals("initProp=SomeValue", br.readLine());
+      String line = getHttpResponse("/servlet?test=initProp");
+      assertEquals("initProp=SomeValue", line);
    }
 
    @Test
    public void testServletBundleContext() throws Exception
    {
-      URL url = new URL("http://" + runtime.getServerHost() + ":8090/servlet?test=context");
-      BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
-      assertEquals("example-http", br.readLine());
+      String line = getHttpResponse("/servlet?test=context");
+      assertEquals("example-http", line);
    }
 
    @Test
    public void testServletStartLevel() throws Exception
    {
-      URL url = new URL("http://" + runtime.getServerHost() + ":8090/servlet?test=startLevel");
-      BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
-      assertEquals("startLevel=1", br.readLine());
+      String line = getHttpResponse("/servlet?test=startLevel");
+      assertEquals("startLevel=1", line);
    }
 
    @Test
    public void testResourceAccess() throws Exception
    {
-      URL url = new URL("http://" + runtime.getServerHost() + ":8090/file/message.txt");
+      String line = getHttpResponse("/file/message.txt");
+      assertEquals("Hello from Resource", line);
+   }
+
+   private String getHttpResponse(String reqPath) throws Exception
+   {
+      URL url = new URL("http://" + runtime.getServerHost() + ":8090" + reqPath);
       BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
-      assertEquals("Hello from Resource", br.readLine());
+      return br.readLine();
    }
 }
\ No newline at end of file

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/InterceptorTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/InterceptorTestCase.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/InterceptorTestCase.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,90 @@
+/*
+ * 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.test.osgi.example.interceptor;
+
+//$Id$
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+import org.jboss.osgi.spi.capability.HttpServiceCapability;
+import org.jboss.osgi.testing.OSGiRuntime;
+import org.jboss.osgi.testing.OSGiServiceReference;
+import org.jboss.osgi.testing.OSGiTestHelper;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.service.http.HttpService;
+
+/**
+ * A test that deployes a bundle that contains some metadata and an interceptor bundle 
+ * that processes the metadata and registeres an http endpoint from it.
+ * 
+ * The idea is that the bundle does not process its own metadata. Instead this work
+ * is delegated to some specialized metadata processor (i.e. the interceptor)
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 23-Oct-2009
+ */
+public class InterceptorTestCase
+{
+   private static OSGiRuntime runtime;
+
+   @BeforeClass
+   public static void setUpClass() throws Exception
+   {
+      runtime = new OSGiTestHelper().getDefaultRuntime();
+      runtime.addCapability(new HttpServiceCapability());
+
+      // Allow 10s for the HttpService to become available
+      OSGiServiceReference sref = runtime.getServiceReference(HttpService.class.getName(), 10000);
+      assertNotNull("HttpService not null", sref);
+
+      runtime.installBundle("example-interceptor.jar").start();
+      runtime.installBundle("example-interceptor-bundle.jar").start();
+   }
+
+   @AfterClass
+   public static void tearDownClass() throws Exception
+   {
+      runtime.shutdown();
+      runtime = null;
+   }
+
+   @Test
+   public void testServletAccess() throws Exception
+   {
+      String line = getHttpResponse("/servlet");
+      assertEquals("Hello from Servlet", line);
+   }
+
+   private String getHttpResponse(String reqPath) throws Exception
+   {
+      URL url = new URL("http://" + runtime.getServerHost() + ":8090" + reqPath);
+      BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
+      return br.readLine();
+   }
+}
\ No newline at end of file


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/InterceptorTestCase.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/endpoint/EndpointServlet.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/endpoint/EndpointServlet.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/endpoint/EndpointServlet.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,46 @@
+/*
+ * 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.test.osgi.example.interceptor.endpoint;
+
+//$Id$
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+ at SuppressWarnings("serial")
+public class EndpointServlet extends HttpServlet
+{
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
+   {
+      PrintWriter out = res.getWriter();
+
+      out.println("Hello from Servlet");
+
+      out.close();
+   }
+}


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/endpoint/EndpointServlet.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/HttpMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/HttpMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/HttpMetadata.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,46 @@
+/*
+ * 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.test.osgi.example.interceptor.processor;
+
+//$Id$
+
+
+/**
+ * Metadata the represent an Http endpoint
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 23-Oct-2009
+ */
+public class HttpMetadata 
+{
+   private String servletName;
+
+   HttpMetadata(String servletName)
+   {
+      this.servletName = servletName;
+   }
+
+   public String getServletName()
+   {
+      return servletName;
+   }
+}


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/HttpMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/InterceptorActivator.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/InterceptorActivator.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/InterceptorActivator.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,64 @@
+/*
+ * 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.test.osgi.example.interceptor.processor;
+
+//$Id$
+
+import org.jboss.osgi.deployment.interceptor.LifecycleInterceptorService;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Registers the interceptors with the {@link LifecycleInterceptorService}
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 20-Oct-2009
+ */
+public class InterceptorActivator implements BundleActivator
+{
+   private LifecycleInterceptorService service;
+   private PublisherInterceptor publisher;
+   private ParserInterceptor parser;
+   
+   public void start(BundleContext context)
+   {
+      publisher = new PublisherInterceptor();
+      parser = new ParserInterceptor();
+      
+      // This is a system service, which should always be available
+      ServiceReference sref = context.getServiceReference(LifecycleInterceptorService.class.getName());
+      if (sref == null)
+         throw new IllegalStateException("Required LifecycleInterceptorService not available");
+      
+      // Add the interceptors, the order of which is handles by the service
+      service = (LifecycleInterceptorService)context.getService(sref);
+      service.addInterceptor(publisher);
+      service.addInterceptor(parser);
+   }
+
+   public void stop(BundleContext context)
+   {
+      service.removeInterceptor(publisher);
+      service.removeInterceptor(parser);
+   }
+}
\ No newline at end of file


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/InterceptorActivator.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/ParserInterceptor.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/ParserInterceptor.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/ParserInterceptor.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,71 @@
+/*
+ * 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.test.osgi.example.interceptor.processor;
+
+//$Id$
+
+import java.io.IOException;
+import java.util.Properties;
+
+import org.jboss.osgi.deployment.common.Deployment;
+import org.jboss.osgi.deployment.interceptor.AbstractLifecycleInterceptor;
+import org.jboss.osgi.deployment.interceptor.LifecycleInterceptorException;
+import org.jboss.virtual.VirtualFile;
+import org.osgi.framework.Bundle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * An interceptor that creates and attaches HttpMetadata.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 23-Oct-2009
+ */
+public class ParserInterceptor extends AbstractLifecycleInterceptor
+{
+   // Provide logging
+   private Logger log = LoggerFactory.getLogger(ParserInterceptor.class);
+   
+   public void invoke(int state, Deployment dep) throws LifecycleInterceptorException
+   {
+      HttpMetadata metadata = dep.getAttachment(HttpMetadata.class);
+      if (metadata == null && state == Bundle.STARTING)
+      {
+         try
+         {
+            VirtualFile propsFile = dep.getRoot().getChild("/http-metadata.properties");
+            if (propsFile != null)
+            {
+               log.info("Create and attach HttpMetadata");
+               Properties props = new Properties();
+               props.load(propsFile.openStream());
+               metadata = new HttpMetadata(props.getProperty("servlet.name"));
+               dep.addAttachment(HttpMetadata.class, metadata);
+            }
+         }
+         catch (IOException ex)
+         {
+            throw new LifecycleInterceptorException("Cannot parse metadata", ex);
+         }
+      }
+   }
+}


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/ParserInterceptor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/PublisherInterceptor.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/PublisherInterceptor.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/PublisherInterceptor.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,95 @@
+/*
+ * 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.test.osgi.example.interceptor.processor;
+
+//$Id$
+
+import javax.servlet.http.HttpServlet;
+
+import org.jboss.osgi.deployment.common.Deployment;
+import org.jboss.osgi.deployment.interceptor.AbstractLifecycleInterceptor;
+import org.jboss.osgi.deployment.interceptor.LifecycleInterceptorException;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.http.HttpService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * An interceptor that publishes HttpMetadata.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 23-Oct-2009
+ */
+public class PublisherInterceptor extends AbstractLifecycleInterceptor
+{
+   // Provide logging
+   private Logger log = LoggerFactory.getLogger(PublisherInterceptor.class);
+   
+   PublisherInterceptor()
+   {
+      // Add the required input
+      addInput(HttpMetadata.class);
+   }
+
+   public void invoke(int state, Deployment dep) throws LifecycleInterceptorException
+   {
+      if (state == Bundle.STARTING)
+      {
+         HttpMetadata metadata = dep.getAttachment(HttpMetadata.class);
+         String servletName = metadata.getServletName();
+         try
+         {
+            log.info("Publish HttpMetadata");
+            
+            // Load the endpoint servlet from the attached bundle (is always attached)
+            Bundle bundle = dep.getAttachment(Bundle.class);
+            HttpServlet servlet = (HttpServlet)bundle.loadClass(servletName).newInstance();
+            
+            // Register the servlet with the HttpService
+            getHttpService(dep).registerServlet("/servlet", servlet, null, null);
+         }
+         catch (RuntimeException rte)
+         {
+            throw rte;
+         }
+         catch (Exception ex)
+         {
+            throw new LifecycleInterceptorException("Cannot publish: " + servletName, ex);
+         }
+      }
+   }
+
+   private HttpService getHttpService(Deployment dep)
+   {
+      // Get the system bundle context (is always attached)
+      BundleContext context = dep.getAttachment(BundleContext.class);
+      
+      ServiceReference sref = context.getServiceReference(HttpService.class.getName());
+      if (sref == null)
+         throw new IllegalStateException("Required HttpService not available");
+      
+      HttpService httpService = (HttpService)context.getService(sref);
+      return httpService;
+   }
+}


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/interceptor/processor/PublisherInterceptor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppExtenderTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppExtenderTestCase.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppExtenderTestCase.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -71,19 +71,22 @@
    @Test
    public void testResourceAccess() throws Exception
    {
-      assertEquals("Hello from Resource", getHttpResponse("/message.txt"));
+      String line = getHttpResponse("/message.txt");
+      assertEquals("Hello from Resource", line);
    }
 
    @Test
    public void testServletAccess() throws Exception
    {
-      assertEquals("Hello from Servlet", getHttpResponse("/servlet?test=plain"));
+      String line = getHttpResponse("/servlet?test=plain");
+      assertEquals("Hello from Servlet", line);
    }
 
    @Test
    public void testServletInitProps() throws Exception
    {
-      assertEquals("initProp=SomeValue", getHttpResponse("/servlet?test=initProp"));
+      String line = getHttpResponse("/servlet?test=initProp");
+      assertEquals("initProp=SomeValue", line);
    }
 
    // Due to the nature of asynchronous event processing by the 

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppInterceptorTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppInterceptorTestCase.java	2009-10-23 08:09:55 UTC (rev 95471)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppInterceptorTestCase.java	2009-10-23 09:56:57 UTC (rev 95472)
@@ -70,28 +70,28 @@
    @Test
    public void testResourceAccess() throws Exception
    {
-      assertEquals("Hello from Resource", getHttpResponse("/message.txt"));
+      String line = getHttpResponse("/message.txt");
+      assertEquals("Hello from Resource", line);
    }
 
    @Test
    public void testServletAccess() throws Exception
    {
-      assertEquals("Hello from Servlet", getHttpResponse("/servlet?test=plain"));
+      String line = getHttpResponse("/servlet?test=plain");
+      assertEquals("Hello from Servlet", line);
    }
 
    @Test
    public void testServletInitProps() throws Exception
    {
-      assertEquals("initProp=SomeValue", getHttpResponse("/servlet?test=initProp"));
+      String line = getHttpResponse("/servlet?test=initProp");
+      assertEquals("initProp=SomeValue", line);
    }
 
    private String getHttpResponse(String reqPath) throws Exception
    {
       URL url = new URL("http://" + runtime.getServerHost() + ":8090/example-webapp" + reqPath);
-
       BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
-      String line = br.readLine();
-
-      return line;
+      return br.readLine();
    }
 }
\ No newline at end of file

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor-bundle.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor-bundle.bnd	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor-bundle.bnd	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,7 @@
+# bnd build -classpath target/test-classes -output target/test-libs/example/example-interceptor-bundle.jar src/test/resources/example/interceptor/example-interceptor-bundle.bnd
+
+Bundle-SymbolicName: example-interceptor-bundle
+Export-Package: org.jboss.test.osgi.example.interceptor.endpoint
+Import-Package: javax.servlet, javax.servlet.http
+
+Include-Resource: http-metadata.properties
\ No newline at end of file

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor.bnd	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/example-interceptor.bnd	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1,5 @@
+# bnd build -classpath target/test-classes -output target/test-libs/example/example-interceptor.jar src/test/resources/example/interceptor/example-interceptor.bnd
+
+Bundle-SymbolicName: example-interceptor
+Bundle-Activator: org.jboss.test.osgi.example.interceptor.processor.InterceptorActivator
+Export-Package: org.jboss.test.osgi.example.interceptor.processor

Added: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/http-metadata.properties
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/http-metadata.properties	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/http-metadata.properties	2009-10-23 09:56:57 UTC (rev 95472)
@@ -0,0 +1 @@
+servlet.name=org.jboss.test.osgi.example.interceptor.endpoint.EndpointServlet
\ No newline at end of file


Property changes on: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/interceptor/http-metadata.properties
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF



More information about the jboss-osgi-commits mailing list