[jboss-cvs] JBossAS SVN: r100153 - in trunk/resteasy-int: jar/src/main/java/org/jboss/resteasy/integration/deployers and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 29 20:55:35 EST 2010


Author: bill.burke at jboss.com
Date: 2010-01-29 20:55:34 -0500 (Fri, 29 Jan 2010)
New Revision: 100153

Added:
   trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java
   trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java
   trunk/resteasy-int/zip/resteasy-ejb-jboss-beans.xml
Removed:
   trunk/resteasy-int/test/scanned-war/scanned-test.iml
Modified:
   trunk/resteasy-int/jar/pom.xml
   trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java
   trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java
   trunk/resteasy-int/test/pom.xml
   trunk/resteasy-int/zip/assembly.xml
   trunk/resteasy-int/zip/pom.xml
Log:
Resteasy integration

Modified: trunk/resteasy-int/jar/pom.xml
===================================================================
--- trunk/resteasy-int/jar/pom.xml	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/jar/pom.xml	2010-01-30 01:55:34 UTC (rev 100153)
@@ -1,144 +1,144 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  
-  <parent>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.jboss.jbossas</groupId>
+        <artifactId>jboss-as-parent</artifactId>
+        <version>6.0.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
     <groupId>org.jboss.jbossas</groupId>
-    <artifactId>jboss-as-parent</artifactId>
-    <version>6.0.0-SNAPSHOT</version>
-  </parent>
-  
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.jboss.jbossas</groupId>
-  <artifactId>jboss-as-resteasy</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss Application Server Resteasy</name>
-  <url>http://www.jboss.org/jbossas</url>
-  <description>JBoss Application Server (resteasy module)</description>
-  
-  <build>
-    <plugins>
-<plugin>
-  <artifactId>maven-jar-plugin</artifactId>
-  <configuration>
-    <archive>  
-      <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-    </archive> 
-  </configuration>
-</plugin>  
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <version>2.0.1</version>
-  <executions>
-    <execution>
-      <id>bundle-manifest</id>
-      <phase>process-classes</phase>
-      <goals>    
-        <goal>manifest</goal>
-      </goals>   
-    </execution>
-  </executions>
-      </plugin>
-    </plugins>
-  </build>
-  
-  <!-- Dependencies -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.resteasy</groupId>
-      <artifactId>resteasy-jaxrs</artifactId>
-      <version>1.2.1.GA</version>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.xml.bind</groupId>
-          <artifactId>jaxb-api</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.xml.stream</groupId>
-          <artifactId>stax-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
+    <artifactId>jboss-as-resteasy</artifactId>
+    <packaging>jar</packaging>
+    <name>JBoss Application Server Resteasy</name>
+    <url>http://www.jboss.org/jbossas</url>
+    <description>JBoss Application Server (resteasy module)</description>
 
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-server</artifactId>
-      <scope>provided</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.xml.bind</groupId>
-          <artifactId>jaxb-api</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.xml.stream</groupId>
-          <artifactId>stax-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>2.0.1</version>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-system</artifactId>
-      <scope>provided</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.xml.bind</groupId>
-          <artifactId>jaxb-api</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.xml.stream</groupId>
-          <artifactId>stax-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
+    <!-- Dependencies -->
+    <dependencies>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-jaxrs</artifactId>
+            <version>2.0-beta-1</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.xml.bind</groupId>
+                    <artifactId>jaxb-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>javax.xml.stream</groupId>
+                    <artifactId>stax-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
-      <!--
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-system-jmx</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.cl</groupId>
-      <artifactId>jboss-classloading</artifactId>
-        <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jboss-vfs</artifactId>
-        <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jboss-reflect</artifactId>
-        <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.microcontainer</groupId>
-      <artifactId>jboss-dependency</artifactId>
-        <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.microcontainer</groupId>
-      <artifactId>jboss-kernel</artifactId>
-        <scope>provided</scope>
-    </dependency>
-      <dependency>
-        <groupId>org.jboss.metadata</groupId>
-        <artifactId>jboss-metadata-common</artifactId>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.deployers</groupId>
-        <artifactId>jboss-deployers-vfs</artifactId>
+        <dependency>
+            <groupId>org.jboss.jbossas</groupId>
+            <artifactId>jboss-as-server</artifactId>
+            <scope>provided</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.xml.bind</groupId>
+                    <artifactId>jaxb-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>javax.xml.stream</groupId>
+                    <artifactId>stax-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jboss.jbossas</groupId>
+            <artifactId>jboss-as-system</artifactId>
+            <scope>provided</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.xml.bind</groupId>
+                    <artifactId>jaxb-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>javax.xml.stream</groupId>
+                    <artifactId>stax-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!--
+        <dependency>
+          <groupId>org.jboss.jbossas</groupId>
+          <artifactId>jboss-as-system-jmx</artifactId>
           <scope>provided</scope>
-      </dependency>
-    <dependency>
-      <groupId>org.jboss.security</groupId>
-      <artifactId>jboss-security-spi</artifactId>
-        <scope>provided</scope>
-    </dependency>
-    -->
-  </dependencies>
+        </dependency>
+        <dependency>
+          <groupId>org.jboss.cl</groupId>
+          <artifactId>jboss-classloading</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-vfs</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-reflect</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-dependency</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-kernel</artifactId>
+            <scope>provided</scope>
+        </dependency>
+          <dependency>
+            <groupId>org.jboss.metadata</groupId>
+            <artifactId>jboss-metadata-common</artifactId>
+            <scope>provided</scope>
+          </dependency>
+          <dependency>
+            <groupId>org.jboss.deployers</groupId>
+            <artifactId>jboss-deployers-vfs</artifactId>
+              <scope>provided</scope>
+          </dependency>
+        <dependency>
+          <groupId>org.jboss.security</groupId>
+          <artifactId>jboss-security-spi</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        -->
+    </dependencies>
 
 </project>

Added: trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java
===================================================================
--- trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java	                        (rev 0)
+++ trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java	2010-01-30 01:55:34 UTC (rev 100153)
@@ -0,0 +1,93 @@
+package org.jboss.resteasy.integration.deployers;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public class ResteasyDeploymentData
+{
+   private boolean scanAll;
+   private boolean scanResources;
+   private boolean scanProviders;
+   private boolean createDispatcher;
+   private Set<String> resources = new LinkedHashSet<String>();
+   private Set<String> providers = new LinkedHashSet<String>();
+
+   public boolean shouldScan()
+   {
+      return scanAll || scanResources || scanProviders;
+   }
+
+   public boolean isScanAll()
+   {
+      return scanAll;
+   }
+
+   public void setScanAll(boolean scanAll)
+   {
+      if (scanAll)
+      {
+         scanResources = true;
+         scanProviders = true;
+      }
+      this.scanAll = scanAll;
+   }
+
+   public boolean isScanResources()
+   {
+      return scanResources;
+   }
+
+   public void setScanResources(boolean scanResources)
+   {
+      this.scanResources = scanResources;
+   }
+
+   public boolean isScanProviders()
+   {
+      return scanProviders;
+   }
+
+   public void setScanProviders(boolean scanProviders)
+   {
+      this.scanProviders = scanProviders;
+   }
+
+   public Set<String> getResources()
+   {
+      return resources;
+   }
+
+   public void setResources(Set<String> resources)
+   {
+      this.resources = resources;
+   }
+
+   public Set<String> getProviders()
+   {
+      return providers;
+   }
+
+   public void setProviders(Set<String> providers)
+   {
+      this.providers = providers;
+   }
+
+   /**
+    * A component layer wants a dispatcher created
+    */
+   public void createDispatcher()
+   {
+      this.createDispatcher = true;
+   }
+
+   public boolean shouldCreateDispatcher()
+   {
+      return createDispatcher || !resources.isEmpty() || !providers.isEmpty();
+   }
+
+
+}

Copied: trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java (from rev 99431, trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java)
===================================================================
--- trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java	                        (rev 0)
+++ trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java	2010-01-30 01:55:34 UTC (rev 100153)
@@ -0,0 +1,332 @@
+package org.jboss.resteasy.integration.deployers;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
+import org.jboss.ejb3.annotation.LocalBinding;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
+import org.jboss.resteasy.util.GetRestful;
+
+import javax.ejb.EJBException;
+import javax.ejb.Local;
+import javax.ejb.LocalHome;
+import javax.ejb.Remote;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public class ResteasyEjbDeployer extends AbstractRealDeployer
+{
+   private static final Logger LOGGER = Logger.getLogger(ResteasyEjbDeployer.class);
+
+   public ResteasyEjbDeployer()
+   {
+      super();
+
+      addRequiredInput(JBossWebMetaData.class);
+      addRequiredInput(ResteasyDeploymentData.class);
+      addRequiredInput(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
+      addOutput(JBossWebMetaData.class);
+      setStage(DeploymentStages.PRE_REAL); // TODO -- right stage?
+   }
+
+   protected void internalDeploy(DeploymentUnit du) throws DeploymentException
+   {
+      log.info("********************* IN EJB DEPLOYER!!!!!!");
+      ResteasyDeploymentData resteasy = du.getAttachment(ResteasyDeploymentData.class);
+
+      /*
+      log.info("*******************");
+      log.info("*** Attachments ***");
+      log.info("*******************");
+      for (String attachment : du.getAttachments().keySet())
+      {
+         log.info(">>> " + attachment);
+      }
+
+      if (true) return;
+      */
+
+      // right now I only support resources
+      if (!resteasy.isScanResources()) return;
+
+      JBossWebMetaData webdata = du.getAttachment(JBossWebMetaData.class);
+      JBossMetaData ejbs = (JBossMetaData) du
+              .getAttachment(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
+      ClassLoader loader = du.getClassLoader();
+      StringBuffer buf = null;
+      for (final JBossEnterpriseBeanMetaData ejb : ejbs.getEnterpriseBeans())
+      {
+         Class ejbClass = null;
+         try
+         {
+            ejbClass = loader.loadClass(ejb.getEjbClass());
+         }
+         catch (ClassNotFoundException e)
+         {
+            throw new RuntimeException(e);
+         }
+         if (!GetRestful.isRootResource(ejbClass)) continue;
+         String jndiName = getLocalJndiName(ejb, ejbClass);
+         log.info("******* Found JAX-RS EJB: " + ejbClass.getName() + " local jndi name: " + jndiName);
+         if (buf == null)
+         {
+            buf = new StringBuffer();
+         }
+         else
+         {
+            buf.append(",");
+         }
+         buf.append(jndiName).append(";").append(ejbClass.getName()).append(";").append("true");
+
+         // make sure its removed from list
+         resteasy.getResources().remove(ejbClass.getName());
+      }
+      if (buf != null)
+      {
+         resteasy.createDispatcher();
+         String paramValue = buf.toString();
+         ParamValueMetaData param = new ParamValueMetaData();
+         param.setParamName(ResteasyContextParameters.RESTEASY_JNDI_COMPONENT_RESOURCES);
+         param.setParamValue(paramValue);
+         List<ParamValueMetaData> params = webdata.getContextParams();
+         if (params == null)
+         {
+            params = new ArrayList<ParamValueMetaData>();
+            webdata.setContextParams(params);
+         }
+         params.add(param);
+         param = new ParamValueMetaData();
+         param.setParamName(ResteasyContextParameters.RESTEASY_UNWRAPPED_EXCEPTIONS);
+         param.setParamValue(EJBException.class.getName());
+         params.add(param);
+      }
+   }
+
+   private static String getLocalJndiName(JBossEnterpriseBeanMetaData ejb, Class<?> ejbClass)
+   {
+      // See if local binding is explicitly-defined
+      LocalBinding localBinding = ejbClass.getAnnotation(LocalBinding.class);
+
+      // If none specified
+      if (localBinding == null || (localBinding.jndiBinding() != null && localBinding.jndiBinding().trim().length() == 0))
+      {
+         String name = ejb.getLocalJndiName();
+         return name;
+      }
+      // Local Binding was explicitly-specified, use it
+      else
+      {
+         return localBinding.jndiBinding();
+      }
+   }
+
+
+   public static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass)
+   {
+      // Obtain all business interfaces implemented by this bean class and its superclasses
+      return getBusinessInterfaces(beanClass, new HashSet<Class<?>>());
+   }
+
+   /**
+    * Resolve the potential business interfaces on an enterprise bean.
+    * Returns all interfaces implemented by this class and, optionally, its supers which
+    * are potentially a business interface.
+    * <p/>
+    * Note: for normal operation call container.getBusinessInterfaces().
+    *
+    * @param beanClass     the EJB implementation class
+    * @param includeSupers Whether or not to include superclasses of the specified beanClass in this check
+    * @return a list of potential business interfaces
+    * @see org.jboss.ejb3.EJBContainer#getBusinessInterfaces()
+    */
+   public static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass, boolean includeSupers)
+   {
+      // Obtain all business interfaces implemented by this bean class and optionally, its superclass
+      return getBusinessInterfaces(beanClass, new HashSet<Class<?>>(), includeSupers);
+   }
+
+   private static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass, Set<Class<?>> interfaces)
+   {
+      return getBusinessInterfaces(beanClass, interfaces, true);
+   }
+
+   private static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass, Set<Class<?>> interfaces,
+                                                      boolean includeSupers)
+   {
+      /*
+       * 4.6.6:
+       * The following interfaces are excluded when determining whether the bean class has
+       * more than one interface: java.io.Serializable; java.io.Externalizable;
+       * any of the interfaces defined by the javax.ejb package.
+       */
+      for (Class<?> intf : beanClass.getInterfaces())
+      {
+         if (intf.equals(java.io.Externalizable.class))
+            continue;
+         if (intf.equals(java.io.Serializable.class))
+            continue;
+         if (intf.getName().startsWith("javax.ejb"))
+            continue;
+
+         // FIXME Other aop frameworks might add other interfaces, this should really be configurable
+         if (intf.getName().startsWith("org.jboss.aop"))
+            continue;
+
+         interfaces.add(intf);
+      }
+
+      // If there's no superclass, or we shouldn't check the superclass, return
+      if (!includeSupers || beanClass.getSuperclass() == null)
+      {
+         return interfaces;
+      }
+      else
+      {
+         // Include any superclasses' interfaces
+         return getBusinessInterfaces(beanClass.getSuperclass(), interfaces);
+      }
+   }
+
+
+   public static Class<?>[] getLocalInterfaces(Class<?> beanClass)
+   {
+      // Initialize
+      Set<Class<?>> localAndBusinessLocalInterfaces = new HashSet<Class<?>>();
+
+      // Obtain @Local
+      Local localAnnotation = beanClass.getAnnotation(Local.class);
+
+      // Obtain @LocalHome
+      LocalHome localHomeAnnotation = beanClass.getAnnotation(LocalHome.class);
+
+      // Obtain @Remote
+      Remote remoteAnnotation = beanClass.getAnnotation(Remote.class);
+
+      // Obtain Remote and Business Remote interfaces
+      //Class<?>[] remoteAndBusinessRemoteInterfaces = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container);
+
+      // Obtain all business interfaces from the bean class
+      Set<Class<?>> businessInterfacesImplementedByBeanClass = getBusinessInterfaces(beanClass);
+
+      // Obtain all business interfaces directly implemented by the bean class (not including supers)
+      Set<Class<?>> businessInterfacesDirectlyImplementedByBeanClass = getBusinessInterfaces(
+              beanClass, false);
+
+      // For each of the business interfaces implemented by the bean class
+      for (Class<?> clazz : businessInterfacesImplementedByBeanClass)
+      {
+         // If @Local is on the interface
+         if (clazz.isAnnotationPresent(Local.class))
+         {
+            // Add to the list of locals
+            localAndBusinessLocalInterfaces.add(clazz);
+         }
+      }
+
+      // EJBTHREE-1062
+      // EJB 3 Core Specification 4.6.6
+      // If bean class implements a single interface, that interface is assumed to be the
+      // business interface of the bean. This business interface will be a local interface unless the
+      // interface is designated as a remote business interface by use of the Remote
+      // annotation on the bean class or interface or by means of the deployment descriptor.
+      if (businessInterfacesDirectlyImplementedByBeanClass.size() == 1 && localAndBusinessLocalInterfaces.size() == 0)
+      {
+         // Obtain the implemented interface
+         Class<?> singleInterface = businessInterfacesDirectlyImplementedByBeanClass.iterator().next();
+
+         // If not explicitly marked as @Remote, and is a valid business interface
+         if (remoteAnnotation == null && singleInterface.getAnnotation(Remote.class) == null)
+         {
+            // Return the implemented interface, adding to the container
+            Class<?>[] returnValue = new Class[]
+                    {singleInterface};
+            return returnValue;
+         }
+      }
+
+      // @Local was defined
+      if (localAnnotation != null)
+      {
+         // If @Local has no value or empty value
+         if (localAnnotation.value() == null || localAnnotation.value().length == 0)
+         {
+            // If @Local is defined with no value and there are no business interfaces
+            if (businessInterfacesImplementedByBeanClass.size() == 0)
+            {
+               return new Class<?>[]
+                       {};
+            }
+            // If more than one business interface is directly implemented by the bean class
+            else if (businessInterfacesImplementedByBeanClass.size() > 1)
+            {
+               return new Class<?>[]
+                       {};
+            }
+            // JIRA EJBTHREE-1062
+            // EJB 3 4.6.6
+            // If the bean class implements only one business interface, that
+            //interface is exposed as local business if not denoted as @Remote
+            else
+            {
+               // If not explicitly marked as @Remote
+               if (remoteAnnotation == null)
+               {
+                  // Return the implemented interface and add to container
+                  Class<?>[] returnValue = businessInterfacesImplementedByBeanClass.toArray(new Class<?>[]
+                          {});
+                  return returnValue;
+               }
+            }
+         }
+         // @Local has value
+         else
+         {
+            // For each of the interfaces in @Local.value
+            for (Class<?> clazz : localAnnotation.value())
+            {
+               // Add to the list of locals
+               localAndBusinessLocalInterfaces.add(clazz);
+            }
+
+            // For each of the business interfaces implemented by the bean class
+            for (Class<?> clazz : businessInterfacesImplementedByBeanClass)
+            {
+               // If @Local is on the interface
+               if (clazz.isAnnotationPresent(Local.class))
+               {
+                  // Add to the list of locals
+                  localAndBusinessLocalInterfaces.add(clazz);
+               }
+            }
+         }
+      }
+
+      // If local interfaces have been defined/discovered
+      if (localAndBusinessLocalInterfaces.size() > 0)
+      {
+         // Return local interfaces, first adding to the container
+         Class<?>[] rtn = localAndBusinessLocalInterfaces.toArray(new Class<?>[]
+                 {});
+         return rtn;
+      }
+
+      // No local or business local interfaces discovered
+      return new Class<?>[]
+              {};
+   }
+
+
+}
\ No newline at end of file

Modified: trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java
===================================================================
--- trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java	2010-01-30 01:55:34 UTC (rev 100153)
@@ -6,13 +6,12 @@
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMappingMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
+import org.jboss.metadata.web.spec.FilterMappingMetaData;
+import org.jboss.metadata.web.spec.FilterMetaData;
+import org.jboss.metadata.web.spec.FiltersMetaData;
+import org.jboss.resteasy.plugins.server.servlet.FilterDispatcher;
 import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
-import org.jboss.resteasy.spi.ResteasyDeployment;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -30,7 +29,7 @@
       super();
 
       addRequiredInput(JBossWebMetaData.class);
-      addRequiredInput(ResteasyDeployment.class);
+      addRequiredInput(ResteasyDeploymentData.class);
       addOutput(JBossWebMetaData.class);
       setStage(DeploymentStages.PRE_REAL); // TODO -- right stage?
    }
@@ -40,16 +39,16 @@
 
    }
 
-   protected void setInitParam(ServletMetaData servlet, String name, String value)
+   protected void setInitParam(FilterMetaData filter, String name, String value)
    {
       ParamValueMetaData param = new ParamValueMetaData();
       param.setParamName(name);
       param.setParamValue(value);
-      List<ParamValueMetaData> params = servlet.getInitParam();
+      List<ParamValueMetaData> params = filter.getInitParam();
       if (params == null)
       {
          params = new ArrayList<ParamValueMetaData>();
-         servlet.setInitParam(params);
+         filter.setInitParam(params);
       }
       params.add(param);
 
@@ -57,23 +56,18 @@
 
    protected void internalDeploy(DeploymentUnit du) throws DeploymentException
    {
-      if (du.isAttachmentPresent(ResteasyScannerDeployer.JAXRS_APPLICATION_CLASS_DEPLOYMENT))
-      {
-         // do not do this deployer if there is an application class a previous deployer will handle it
-         return;
-      }
-
       JBossWebMetaData webdata = du.getAttachment(JBossWebMetaData.class);
-      ResteasyDeployment resteasy = du.getAttachment(ResteasyDeployment.class);
+      ResteasyDeploymentData resteasy = du.getAttachment(ResteasyDeploymentData.class);
+      if (!resteasy.shouldCreateDispatcher()) return;
 
-      JBossServletMetaData servlet = new JBossServletMetaData();
-      servlet.setServletClass(HttpServletDispatcher.class.getName());
-      servlet.setName("Resteasy");
+      FilterMetaData filter = new FilterMetaData();
+      filter.setFilterClass(FilterDispatcher.class.getName());
+      filter.setName("Resteasy");
 
-      if (!resteasy.getResourceClasses().isEmpty())
+      if (!resteasy.getResources().isEmpty())
       {
          StringBuffer buf = null;
-         for (String resource : resteasy.getResourceClasses())
+         for (String resource : resteasy.getResources())
          {
             if (buf == null)
             {
@@ -84,14 +78,15 @@
             {
                buf.append(",").append(resource);
             }
+            log.info("******** Adding RESOURCE CLASS: " + resource);
          }
          String resources = buf.toString();
-         setInitParam(servlet, ResteasyContextParameters.RESTEASY_RESOURCES, resources);
+         setInitParam(filter, ResteasyContextParameters.RESTEASY_RESOURCES, resources);
       }
-      if (!resteasy.getProviderClasses().isEmpty())
+      if (!resteasy.getProviders().isEmpty())
       {
          StringBuffer buf = null;
-         for (String provider : resteasy.getProviderClasses())
+         for (String provider : resteasy.getProviders())
          {
             if (buf == null)
             {
@@ -103,20 +98,24 @@
                buf.append(",").append(provider);
             }
          }
-         setInitParam(servlet, ResteasyContextParameters.RESTEASY_PROVIDERS, buf.toString());
+         setInitParam(filter, ResteasyContextParameters.RESTEASY_PROVIDERS, buf.toString());
       }
-      ServletMappingMetaData mapping = new ServletMappingMetaData();
-      mapping.setServletName("Resteasy");
+      FilterMappingMetaData mapping = new FilterMappingMetaData();
+      mapping.setFilterName("Resteasy");
       List<String> patterns = new ArrayList<String>();
       patterns.add("/*");
       mapping.setUrlPatterns(patterns);
 
-      webdata.getServlets().add(servlet);
-      List<ServletMappingMetaData> mappings = webdata.getServletMappings();
+      if (webdata.getFilters() == null)
+      {
+         webdata.setFilters(new FiltersMetaData());
+      }
+      webdata.getFilters().add(filter);
+      List<FilterMappingMetaData> mappings = webdata.getFilterMappings();
       if (mappings == null)
       {
-         mappings = new ArrayList<ServletMappingMetaData>();
-         webdata.setServletMappings(mappings);
+         mappings = new ArrayList<FilterMappingMetaData>();
+         webdata.setFilterMappings(mappings);
       }
       mappings.add(mapping);
    }

Modified: trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java
===================================================================
--- trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java	2010-01-30 01:55:34 UTC (rev 100153)
@@ -9,15 +9,17 @@
 import org.jboss.mcann.Element;
 import org.jboss.metadata.javaee.spec.ParamValueMetaData;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.FilterMetaData;
 import org.jboss.metadata.web.spec.ServletMetaData;
 import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
+import org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrapClasses;
 import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
-import org.jboss.resteasy.spi.ResteasyDeployment;
 
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Application;
 import javax.ws.rs.ext.Provider;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -28,18 +30,24 @@
 public class ResteasyScannerDeployer extends AbstractRealDeployer
 {
    private static final Logger LOGGER = Logger.getLogger(ResteasyScannerDeployer.class);
-   public static final String JAXRS_APPLICATION_CLASS_DEPLOYMENT = ResteasyScannerDeployer.class.getName() + "-JAXRS_APPLICATION_CLASS_DEPLOYMENT";
+   public static final Set<String> BOOT_CLASSES = new HashSet<String>();
 
+   static
+   {
+      for (String clazz : ResteasyBootstrapClasses.BOOTSTRAP_CLASSES)
+      {
+         BOOT_CLASSES.add(clazz);
+      }
+   }
+
    public ResteasyScannerDeployer()
    {
       super();
 
       addRequiredInput(JBossWebMetaData.class);
       addInput(AnnotationRepository.class);
-      addInput(ResteasyDeployment.class);
       addOutput(JBossWebMetaData.class);
-      addOutput(JAXRS_APPLICATION_CLASS_DEPLOYMENT);
-      addOutput(ResteasyDeployment.class);
+      addOutput(ResteasyDeploymentData.class);
       setStage(DeploymentStages.PRE_REAL); // TODO -- right stage?
    }
 
@@ -55,9 +63,41 @@
 
    }
 
+   /**
+    * If any servlet/filter classes are declared, then we probably don't want to scan.
+    *
+    * @param du
+    * @param webdata
+    * @return
+    * @throws DeploymentException
+    */
+   protected boolean scannable(DeploymentUnit du, JBossWebMetaData webdata) throws DeploymentException
+   {
+      ClassLoader loader = du.getClassLoader();
+      if (webdata.getServlets() != null)
+      {
+         for (ServletMetaData servlet : webdata.getServlets())
+         {
+            String servletClass = servlet.getServletClass();
+            if (BOOT_CLASSES.contains(servletClass)) return false;
+         }
+      }
+      if (webdata.getFilters() != null)
+      {
+         for (FilterMetaData filter : webdata.getFilters())
+         {
+            if (BOOT_CLASSES.contains(filter.getFilterClass())) return false;
+         }
+      }
+      return true;
+
+   }
+
    protected boolean deployApplicationClass(DeploymentUnit du, JBossWebMetaData webdata) throws DeploymentException
    {
       ClassLoader loader = du.getClassLoader();
+      if (webdata.getServlets() == null) return false;
+
       for (ServletMetaData servlet : webdata.getServlets())
       {
          String servletClass = servlet.getServletClass();
@@ -73,7 +113,6 @@
          }
          if (Application.class.isAssignableFrom(clazz))
          {
-            du.addAttachment(JAXRS_APPLICATION_CLASS_DEPLOYMENT, servletClass);
             servlet.setServletClass(HttpServletDispatcher.class.getName());
             ParamValueMetaData param = new ParamValueMetaData();
             param.setParamName("javax.ws.rs.Application");
@@ -95,34 +134,66 @@
    protected void scan(DeploymentUnit du, JBossWebMetaData webdata)
            throws DeploymentException
    {
-      boolean scanAll = true;
-      boolean scanProviders = true;
-      boolean scanResources = true;
+      ResteasyDeploymentData scanningData = new ResteasyDeploymentData();
 
+      // If there is a resteasy boot class in web.xml, then the default should not be to scan
+      if (scannable(du, webdata) && !webdata.isMetadataComplete())
+      {
+         scanningData.setScanAll(true);
+         scanningData.setScanProviders(true);
+         scanningData.setScanResources(true);
+      }
+
       // check resteasy configuration flags
 
+
       List<ParamValueMetaData> contextParams = webdata.getContextParams();
+      boolean hasResourceParam = false;
+      boolean hasProviderParam = false;
+      boolean hasJndiParam = false;
       if (contextParams != null)
       {
          for (ParamValueMetaData param : contextParams)
          {
             if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN))
             {
-               scanAll = Boolean.valueOf(param.getParamValue());
+               scanningData.setScanAll(Boolean.valueOf(param.getParamValue()));
             }
             else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_PROVIDERS))
             {
-               scanProviders = Boolean.valueOf(param.getParamValue());
+               scanningData.setScanProviders(Boolean.valueOf(param.getParamValue()));
             }
             else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_RESOURCES))
             {
-               scanResources = Boolean.valueOf(param.getParamValue());
+               scanningData.setScanResources(Boolean.valueOf(param.getParamValue()));
             }
+            else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_RESOURCES))
+            {
+               hasResourceParam = true;
+            }
+            else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_PROVIDERS))
+            {
+               hasProviderParam = true;
+            }
+            else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_JNDI_RESOURCES))
+            {
+               hasJndiParam = true;
+            }
          }
       }
 
-      if (scanAll == false) return;
+      if (!scanningData.shouldScan())
+      {
+         if (hasResourceParam || hasProviderParam || hasJndiParam)
+         {
+            scanningData.createDispatcher();
+            du.addAttachment(ResteasyDeploymentData.class, scanningData);
+         }
+         return;
+      }
 
+      du.addAttachment(ResteasyDeploymentData.class, scanningData);
+
       AnnotationRepository env = du.getAttachment(AnnotationRepository.class);
       if (env == null)
       {
@@ -132,36 +203,31 @@
 
       Set<Element<Path, Class<?>>> resources = null;
       Set<Element<Provider, Class<?>>> providers = null;
-      if (scanResources)
+      if (scanningData.isScanResources())
       {
          resources = env.classIsAnnotatedWith(Path.class);
       }
-      if (scanProviders)
+      if (scanningData.isScanProviders())
       {
          providers = env.classIsAnnotatedWith(Provider.class);
       }
 
       if ((resources == null || resources.isEmpty()) && (providers == null || providers.isEmpty())) return;
 
-      ResteasyDeployment resteasy = du.getAttachment(ResteasyDeployment.class);
-      if (resteasy == null)
-      {
-         resteasy = new ResteasyDeployment();
-         du.addAttachment(ResteasyDeployment.class, resteasy);
-      }
-
       if (resources != null)
       {
          for (Element e : resources)
          {
-            resteasy.getResourceClasses().add(e.getOwnerClassName());
+            if (e.getOwner().isInterface()) continue;
+            scanningData.getResources().add(e.getOwnerClassName());
          }
       }
       if (providers != null)
       {
          for (Element e : providers)
          {
-            resteasy.getProviderClasses().add(e.getOwnerClassName());
+            if (e.getOwner().isInterface()) continue;
+            scanningData.getResources().add(e.getOwnerClassName());
          }
       }
    }

Modified: trunk/resteasy-int/test/pom.xml
===================================================================
--- trunk/resteasy-int/test/pom.xml	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/test/pom.xml	2010-01-30 01:55:34 UTC (rev 100153)
@@ -15,5 +15,6 @@
     <modules>
         <module>application-war</module>
         <module>scanned-war</module>
+        <module>ejb-war</module>
     </modules>
 </project>

Deleted: trunk/resteasy-int/test/scanned-war/scanned-test.iml
===================================================================
--- trunk/resteasy-int/test/scanned-war/scanned-test.iml	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/test/scanned-war/scanned-test.iml	2010-01-30 01:55:34 UTC (rev 100153)
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: junit:junit:4.1" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.test:jboss-test:1.1.4.GA" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.ant:ant:1.7.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.ant:ant-launcher:1.7.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.ant:ant-junit:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-spi:2.2.0.CR1" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-log4j:2.2.0.CR1" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.14" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss:jboss-common-core:2.2.17.GA" level="project" />
-    <orderEntry type="library" name="Maven: jboss.profiler.jvmti:jboss-profiler-jvmti:1.0.0.CR5" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.jbossas:jboss-server-manager:1.0.2.GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.naming:jnp-client:5.0.4.GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.security:jbosssx-client:2.1.0.20091223" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.security:jboss-security-spi:2.1.0.20091223" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-jaxrs:1.2.1.GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.resteasy:jaxrs-api:1.2.1.GA" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.5.6" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-simple:1.5.8" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.5.6" level="project" />
-    <orderEntry type="library" name="Maven: org.scannotation:scannotation:1.0.2" level="project" />
-    <orderEntry type="library" name="Maven: javassist:javassist:3.11.0.GA" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
-    <orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-  </component>
-</module>
-

Modified: trunk/resteasy-int/zip/assembly.xml
===================================================================
--- trunk/resteasy-int/zip/assembly.xml	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/zip/assembly.xml	2010-01-30 01:55:34 UTC (rev 100153)
@@ -11,6 +11,7 @@
             <directory></directory>
             <includes>
                 <include>resteasy-jboss-beans.xml</include>
+                <include>resteasy-ejb-jboss-beans.xml</include>
             </includes>
             <outputDirectory>resteasy.deployer/META-INF</outputDirectory>
         </fileSet>
@@ -21,6 +22,13 @@
             <useTransitiveFiltering>true</useTransitiveFiltering>
             <includes>
                 <include>org.jboss.jbossas:jboss-as-resteasy</include>
+                <include>org.jboss.resteasy:resteasy-jaxrs</include>
+                <include>org.jboss.resteasy:resteasy-jaxb-provider</include>
+                <include>org.jboss.resteasy:resteasy-jettison-provider</include>
+                <include>org.jboss.resteasy:resteasy-atom-provider</include>
+                <include>org.jboss.resteasy:resteasy-multipart-provider</include>
+                <include>org.jboss.resteasy:resteasy-jackson-provider</include>
+                <include>org.jboss.resteasy:resteasy-yaml-provider</include>
             </includes>
             <outputDirectory>resteasy.deployer</outputDirectory>
         </dependencySet>

Modified: trunk/resteasy-int/zip/pom.xml
===================================================================
--- trunk/resteasy-int/zip/pom.xml	2010-01-30 00:21:40 UTC (rev 100152)
+++ trunk/resteasy-int/zip/pom.xml	2010-01-30 01:55:34 UTC (rev 100153)
@@ -42,7 +42,73 @@
 
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>jaxrs-api</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-atom-provider</artifactId>
+            <version>2.0-beta-1</version>
+      <exclusions>
+        <exclusion>
+          <groupId>javax.xml.bind</groupId>
+          <artifactId>jaxb-api</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>javax.xml.stream</groupId>
+          <artifactId>stax-api</artifactId>
+        </exclusion>
+      </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-guice</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-jaxb-provider</artifactId>
+            <version>2.0-beta-1</version>
+      <exclusions>
+        <exclusion>
+          <groupId>javax.xml.bind</groupId>
+          <artifactId>jaxb-api</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>javax.xml.stream</groupId>
+          <artifactId>stax-api</artifactId>
+        </exclusion>
+      </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-jettison-provider</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-jackson-provider</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-multipart-provider</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-spring</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-yaml-provider</artifactId>
+            <version>2.0-beta-1</version>
+        </dependency>
 
+
     </dependencies>
 
     <build>

Copied: trunk/resteasy-int/zip/resteasy-ejb-jboss-beans.xml (from rev 99996, trunk/resteasy-int/zip/resteasy-jboss-beans.xml)
===================================================================
--- trunk/resteasy-int/zip/resteasy-ejb-jboss-beans.xml	                        (rev 0)
+++ trunk/resteasy-int/zip/resteasy-ejb-jboss-beans.xml	2010-01-30 01:55:34 UTC (rev 100153)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+    <bean name="ResteasyEjbDeployer" class="org.jboss.resteasy.integration.deployers.ResteasyEjbDeployer"/>
+</deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list