[jboss-cvs] JBossAS SVN: r107599 - in projects/ejb3/tags: jboss-ejb3-core-1.3.5 and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 13 14:51:57 EDT 2010


Author: wolfc
Date: 2010-08-13 14:51:56 -0400 (Fri, 13 Aug 2010)
New Revision: 107599

Added:
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java
Removed:
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java
   projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java
Log:
[maven-release-plugin]  copy for tag jboss-ejb3-core-1.3.5

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5 (from rev 107349, projects/ejb3/branches/jboss-ejb3-core-1.3)

Deleted: projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3/pom.xml	2010-08-03 14:01:22 UTC (rev 107349)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml	2010-08-13 18:51:56 UTC (rev 107599)
@@ -1,731 +0,0 @@
-<!--
-  vi:ts=2:sw=2:expandtab
--->
-<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 -->
-  <parent>
-    <groupId>org.jboss.ejb3</groupId>
-    <artifactId>jboss-ejb3-build</artifactId>
-    <version>1.0.13</version>
-    <relativePath>../build/pom.xml</relativePath>
-  </parent>
-
-  <!-- POM Model Version -->
-  <modelVersion>4.0.0</modelVersion>
-
-  <!-- Artifact Information -->
-  <artifactId>jboss-ejb3-core</artifactId>
-  <packaging>jar</packaging>
-  <version>1.3.4-SNAPSHOT</version>
-  <name>JBoss EJB 3.0 Core</name>
-  <url>http://labs.jboss.com/jbossejb3</url>
-  <description>JBoss EJB 3.0 Core</description>
-
-  <repositories>
-    <!-- APIviz repository -->
-    <repository>
-      <id>apiviz.release</id>
-      <name>APIviz releases</name>
-      <url>http://apiviz.googlecode.com/svn/site/repo/mvn/release</url>
-      <releases>
-
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <!-- Properties -->
-
-  <properties>
-    <version.org.jboss.ejb3.context>0.1.1</version.org.jboss.ejb3.context>
-    <version.org.jboss.jboss-as>5.0.0.CR2</version.org.jboss.jboss-as>
-    <version.org.jboss.security>2.0.3.SP1</version.org.jboss.security>
-    <version.sun-jaxws>2.1.1</version.sun-jaxws>
-  </properties>
-
-  <!-- Build Information -->
-  <build>
-
-    <plugins>
-
-      <!-- Assembly Plugin -->
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <version>2.2-beta-1</version>
-        <executions>
-          <execution>
-            <id>make-assembly</id><!-- this is used for inheritance merges -->
-            <phase>package</phase>
-            <goals>
-              <goal>attached</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-          <!-- JBoss EJB3 Client JAR -->
-          <descriptors>
-            <descriptor>jboss-ejb3-client.xml</descriptor>
-          </descriptors>
-          <attach>true</attach>
-        </configuration>
-        <inherited>false</inherited>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-<!--
-        <executions>
-          <execution>
-            <id>attach-javadoc</id>
-            <phase>package</phase>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
--->
-        <configuration>
-          <doclet>net.gleamynode.apiviz.APIviz</doclet>
-          <docletArtifact>
-            <groupId>net.gleamynode.apiviz</groupId>
-            <artifactId>apiviz</artifactId>
-            <version>1.0.3</version>
-          </docletArtifact>
-<!--
-          <aggregate>true</aggregate>
-          <encoding>UTF-8</encoding>
-          <locale>en_US</locale>
--->
-        </configuration>
-      </plugin>
-
-    </plugins>
-
-  </build>
-
-  <!-- Dependencies -->
-
-  <dependencies>
-
-    <!-- Because AOP doesn't declare a proper dependency -->
-    <dependency>
-      <groupId>javassist</groupId>
-      <artifactId>javassist</artifactId>
-      <version>3.7.1.GA</version>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.xml.soap</groupId>
-      <artifactId>saaj-api</artifactId>
-      <version>1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.mail</groupId>
-      <artifactId>mail</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>jboss.jbossts</groupId>
-      <artifactId>jbossjta</artifactId>
-      <version>4.3.0.GA</version>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- To actually run SimpleTransactionService -->
-    <dependency>
-      <groupId>jboss.jbossts</groupId>
-      <artifactId>jbossts-common</artifactId>
-      <version>4.3.0.GA</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-core</artifactId>
-      <version>${version.org.hibernate}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-annotations</artifactId>
-      <version>${version.org.hibernate}</version>
-      <!-- Exclude org.hibernate:hibernate which is banned in
-      favour of org.hibernate:hibernate-core -->
-      <exclusions>
-        <exclusion>
-            <groupId>org.hibernate</groupId>
-            <artifactId>hibernate</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-entitymanager</artifactId>
-      <version>${version.org.hibernate.hibernate-entitymanager}</version>
-      <!-- Exclude org.hibernate:hibernate which is banned in
-      favour of org.hibernate:hibernate-core -->
-      <exclusions>
-        <exclusion>
-            <groupId>org.hibernate</groupId>
-            <artifactId>hibernate</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.integration</groupId>
-      <artifactId>jboss-jca-spi</artifactId>
-      <version>5.0.3.GA</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss.aop</groupId>
-          <artifactId>jboss-aop</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.metadata</groupId>
-      <artifactId>jboss-metadata</artifactId>
-      <exclusions>
-        <!-- jboss-metadata must not dictate the JPA API -->
-        <exclusion>
-          <groupId>org.hibernate</groupId>
-          <artifactId>ejb3-persistence</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>jboss.jbossws</groupId>
-          <artifactId>jboss-jaxws</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-vfs</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.javaee</groupId>
-          <artifactId>jboss-javaee</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.logging</groupId>
-      <artifactId>jboss-logging-spi</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.test</groupId>
-      <artifactId>jboss-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-server-manager</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.naming</groupId>
-      <artifactId>jnpserver</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.aop</groupId>
-      <artifactId>jboss-aop</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>javassist</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-container</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.aop</groupId>
-      <artifactId>jboss-aop-aspects</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>jboss</groupId>
-          <artifactId>jboss-test</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <!-- used in the basicbootstrap-beans.xml -->
-    <dependency>
-      <groupId>org.jboss.aop</groupId>
-      <artifactId>jboss-aop-deployer-jdk50</artifactId>
-      <version>2.0.0.CR10</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.cache</groupId>
-      <artifactId>jbosscache-core</artifactId>
-      <!-- not used anywhere else -->
-      <version>3.1.0.GA</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss.javaee</groupId>
-          <artifactId>jboss-javaee</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.aspects</groupId>
-      <artifactId>jboss-aspects-test</artifactId>
-      <version>1.0.0.Beta1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.aspects</groupId>
-      <artifactId>jboss-remoting-aspects</artifactId>
-      <exclusions>
-        <!-- Conflicts with org.jboss.security:jbosssx -->
-        <exclusion>
-          <groupId>org.jboss.security</groupId>
-          <artifactId>jbosssx-client</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-transaction-spi</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.cluster</groupId>
-      <artifactId>jboss-ha-client</artifactId>
-      <version>1.1.1.GA</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss.aspects</groupId>
-          <artifactId>jboss-remoting-aspects</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>jboss.remoting</groupId>
-          <artifactId>jboss-remoting</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.aop</groupId>
-          <artifactId>jboss-aop</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.cluster</groupId>
-      <artifactId>jboss-ha-server-api</artifactId>
-      <version>1.1.1.GA</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-common-core</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.logging</groupId>
-          <artifactId>jboss-logging-spi</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.cache</groupId>
-          <artifactId>jbosscache-core</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.cache</groupId>
-          <artifactId>jbosscache-pojo</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>jgroups</groupId>
-          <artifactId>jgroups</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-cache</artifactId>
-      <version>1.0.0</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-common</artifactId>
-      <version>1.0.1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-endpoint</artifactId>
-      <version>0.1.0</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-jpa-int</artifactId>
-      <version>${version.org.jboss.ejb3.jboss-ejb3-jpa-int}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-security</artifactId>
-      <version>1.0.2</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-timerservice-spi</artifactId>
-      <version>1.0.0</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-ext-api</artifactId>
-      <version>1.1.1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-ext-api-impl</artifactId>
-      <version>1.1.1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-interceptors</artifactId>
-      <version>1.0.6</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-metadata</artifactId>
-      <version>1.0.0</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-proxy-impl</artifactId>
-      <version>1.0.7</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-proxy-clustered</artifactId>
-      <version>1.0.3</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-proxy-spi</artifactId>
-      <version>1.0.0</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-test</artifactId>
-      <version>1.0.0</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-transactions</artifactId>
-      <version>1.0.2</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3.context</groupId>
-      <artifactId>jboss-ejb3-context-base</artifactId>
-      <version>${version.org.jboss.ejb3.context}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3.context</groupId>
-      <artifactId>jboss-ejb3-context-naming</artifactId>
-      <version>${version.org.jboss.ejb3.context}</version>
-      <scope>runtime</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3.timeout</groupId>
-      <artifactId>jboss-ejb3-timeout-spi</artifactId>
-      <version>0.1.1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3.timeout</groupId>
-      <artifactId>jboss-ejb3-timeout-3.0</artifactId>
-      <version>0.1.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3.vfs</groupId>
-      <artifactId>jboss-ejb3-vfs-spi</artifactId>
-      <version>1.0.0-alpha-1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.embedded</groupId>
-      <artifactId>jboss-embedded</artifactId>
-      <version>beta3</version>
-      <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-deployers-core-spi</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-ejb-api</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-jacc-api</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-jca-api</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-jms-api</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-servlet-api</artifactId>
-      <optional>true</optional>
-    </dependency>
-
-    <!-- those needs to be removed - EJBTHREE-1340 -->
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-main</artifactId>
-      <version>${version.org.jboss.jboss-as}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-system</artifactId>
-      <version>${version.org.jboss.jboss-as}</version>
-      <scope>provided</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>javassist</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-vfs</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-aop-mc-int</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-container</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-deployers-impl</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-deployers-spi</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-system-jmx</artifactId>
-      <version>${version.org.jboss.jboss-as}</version>
-      <scope>provided</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>javassist</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-vfs</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-aop-mc-int</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-container</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-deployers-impl</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-deployers-spi</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-mbeans</artifactId>
-      <version>${version.org.jboss.jboss-as}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-test</artifactId>
-        </exclusion>
-      </exclusions>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-j2se</artifactId>
-      <version>${version.org.jboss.jboss-as}</version>
-      <scope>provided</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-container</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <!-- this needs to be removed - EJBTHREE-1343 -->
-    <dependency>
-      <groupId>org.jboss.jbossas</groupId>
-      <artifactId>jboss-as-server</artifactId>
-      <version>${version.org.jboss.jboss-as}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>jboss</groupId>
-          <artifactId>jboss-remoting</artifactId>
-        </exclusion>
-        <!-- jboss-as-server must not dictate the JPA API -->
-        <exclusion>
-          <groupId>org.hibernate</groupId>
-          <artifactId>ejb3-persistence</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-metadata</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.jbossas</groupId>
-          <artifactId>jboss-as-security</artifactId>
-        </exclusion>
-        <!-- Conflicts with org.jboss.security:jbosssx -->
-        <exclusion>
-          <groupId>org.jboss.security</groupId>
-          <artifactId>jbosssx-client</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss.ws.native</groupId>
-          <artifactId>jbossws-native-jaxws</artifactId>
-        </exclusion>
-      </exclusions>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.jpa</groupId>
-      <artifactId>jboss-jpa-deployers</artifactId>
-      <version>1.0.2-alpha-1</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-vfs</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.deployers</groupId>
-      <artifactId>jboss-deployers-core-spi</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.microcontainer</groupId>
-      <artifactId>jboss-kernel</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.security</groupId>
-      <artifactId>jboss-security-spi</artifactId>
-      <version>${version.org.jboss.security}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.security</groupId>
-      <artifactId>jbosssx</artifactId>
-      <version>${version.org.jboss.security}</version>
-    </dependency>
-
-     <dependency>
-      <groupId>org.jboss.ws</groupId>
-      <artifactId>jbossws-spi</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <version>1.8.4</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>quartz</groupId>
-      <artifactId>quartz</artifactId>
-      <version>1.6.0</version>
-    </dependency>
-
-    <dependency>
-      <groupId>sun-jaxws</groupId>
-      <artifactId>jaxws-api</artifactId>
-      <version>${version.sun-jaxws}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>sun-jaxws</groupId>
-      <artifactId>jsr181-api</artifactId>
-      <version>${version.sun-jaxws}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>trove</groupId>
-      <artifactId>trove</artifactId>
-    </dependency>
-
-  </dependencies>
-</project>

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml (from rev 107598, projects/ejb3/branches/jboss-ejb3-core-1.3/pom.xml)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml	                        (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/pom.xml	2010-08-13 18:51:56 UTC (rev 107599)
@@ -0,0 +1,737 @@
+<!--
+  vi:ts=2:sw=2:expandtab
+-->
+<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 -->
+  <parent>
+    <groupId>org.jboss.ejb3</groupId>
+    <artifactId>jboss-ejb3-build</artifactId>
+    <version>1.0.13</version>
+    <relativePath>../build/pom.xml</relativePath>
+  </parent>
+
+  <!-- POM Model Version -->
+  <modelVersion>4.0.0</modelVersion>
+
+  <!-- Artifact Information -->
+  <artifactId>jboss-ejb3-core</artifactId>
+  <packaging>jar</packaging>
+  <version>1.3.5</version>
+  <name>JBoss EJB 3.0 Core</name>
+  <url>http://labs.jboss.com/jbossejb3</url>
+  <description>JBoss EJB 3.0 Core</description>
+
+  <repositories>
+    <!-- APIviz repository -->
+    <repository>
+      <id>apiviz.release</id>
+      <name>APIviz releases</name>
+      <url>http://apiviz.googlecode.com/svn/site/repo/mvn/release</url>
+      <releases>
+
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <!-- Properties -->
+
+  <properties>
+    <version.org.jboss.ejb3.context>0.1.1</version.org.jboss.ejb3.context>
+    <version.org.jboss.jboss-as>5.0.0.CR2</version.org.jboss.jboss-as>
+    <version.org.jboss.security>2.0.3.SP1</version.org.jboss.security>
+    <version.sun-jaxws>2.1.1</version.sun-jaxws>
+  </properties>
+
+  <!-- Build Information -->
+  <build>
+
+    <plugins>
+
+      <!-- Assembly Plugin -->
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.2-beta-1</version>
+        <executions>
+          <execution>
+            <id>make-assembly</id><!-- this is used for inheritance merges -->
+            <phase>package</phase>
+            <goals>
+              <goal>attached</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <!-- JBoss EJB3 Client JAR -->
+          <descriptors>
+            <descriptor>jboss-ejb3-client.xml</descriptor>
+          </descriptors>
+          <attach>true</attach>
+        </configuration>
+        <inherited>false</inherited>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+<!--
+        <executions>
+          <execution>
+            <id>attach-javadoc</id>
+            <phase>package</phase>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+-->
+        <configuration>
+          <doclet>net.gleamynode.apiviz.APIviz</doclet>
+          <docletArtifact>
+            <groupId>net.gleamynode.apiviz</groupId>
+            <artifactId>apiviz</artifactId>
+            <version>1.0.3</version>
+          </docletArtifact>
+<!--
+          <aggregate>true</aggregate>
+          <encoding>UTF-8</encoding>
+          <locale>en_US</locale>
+-->
+        </configuration>
+      </plugin>
+
+    </plugins>
+
+  </build>
+
+  <!-- Dependencies -->
+
+  <dependencies>
+
+    <!-- Because AOP doesn't declare a proper dependency -->
+    <dependency>
+      <groupId>javassist</groupId>
+      <artifactId>javassist</artifactId>
+      <version>3.7.1.GA</version>
+    </dependency>
+
+    <dependency>
+      <groupId>javax.xml.soap</groupId>
+      <artifactId>saaj-api</artifactId>
+      <version>1.3</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>mail</artifactId>
+      <version>1.4</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>jboss.jbossts</groupId>
+      <artifactId>jbossjta</artifactId>
+      <version>4.3.0.GA</version>
+      <scope>test</scope>
+    </dependency>
+
+    <!-- To actually run SimpleTransactionService -->
+    <dependency>
+      <groupId>jboss.jbossts</groupId>
+      <artifactId>jbossts-common</artifactId>
+      <version>4.3.0.GA</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-core</artifactId>
+      <version>${version.org.hibernate}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-annotations</artifactId>
+      <version>${version.org.hibernate}</version>
+      <!-- Exclude org.hibernate:hibernate which is banned in
+      favour of org.hibernate:hibernate-core -->
+      <exclusions>
+        <exclusion>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-entitymanager</artifactId>
+      <version>${version.org.hibernate.hibernate-entitymanager}</version>
+      <!-- Exclude org.hibernate:hibernate which is banned in
+      favour of org.hibernate:hibernate-core -->
+      <exclusions>
+        <exclusion>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.integration</groupId>
+      <artifactId>jboss-jca-spi</artifactId>
+      <version>5.0.3.GA</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.aop</groupId>
+          <artifactId>jboss-aop</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.metadata</groupId>
+      <artifactId>jboss-metadata</artifactId>
+      <exclusions>
+        <!-- jboss-metadata must not dictate the JPA API -->
+        <exclusion>
+          <groupId>org.hibernate</groupId>
+          <artifactId>ejb3-persistence</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>jboss.jbossws</groupId>
+          <artifactId>jboss-jaxws</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-vfs</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.javaee</groupId>
+          <artifactId>jboss-javaee</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.logging</groupId>
+      <artifactId>jboss-logging-spi</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.test</groupId>
+      <artifactId>jboss-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-server-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.naming</groupId>
+      <artifactId>jnpserver</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.aop</groupId>
+      <artifactId>jboss-aop</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>javassist</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-container</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.aop</groupId>
+      <artifactId>jboss-aop-aspects</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>jboss</groupId>
+          <artifactId>jboss-test</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <!-- used in the basicbootstrap-beans.xml -->
+    <dependency>
+      <groupId>org.jboss.aop</groupId>
+      <artifactId>jboss-aop-deployer-jdk50</artifactId>
+      <version>2.0.0.CR10</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.cache</groupId>
+      <artifactId>jbosscache-core</artifactId>
+      <!-- not used anywhere else -->
+      <version>3.1.0.GA</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.javaee</groupId>
+          <artifactId>jboss-javaee</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.aspects</groupId>
+      <artifactId>jboss-aspects-test</artifactId>
+      <version>1.0.0.Beta1</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.aspects</groupId>
+      <artifactId>jboss-remoting-aspects</artifactId>
+      <exclusions>
+        <!-- Conflicts with org.jboss.security:jbosssx -->
+        <exclusion>
+          <groupId>org.jboss.security</groupId>
+          <artifactId>jbosssx-client</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-transaction-spi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.cluster</groupId>
+      <artifactId>jboss-ha-client</artifactId>
+      <version>1.1.1.GA</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.aspects</groupId>
+          <artifactId>jboss-remoting-aspects</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>jboss.remoting</groupId>
+          <artifactId>jboss-remoting</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.aop</groupId>
+          <artifactId>jboss-aop</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.cluster</groupId>
+      <artifactId>jboss-ha-server-api</artifactId>
+      <version>1.1.1.GA</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-common-core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.logging</groupId>
+          <artifactId>jboss-logging-spi</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.cache</groupId>
+          <artifactId>jbosscache-core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.cache</groupId>
+          <artifactId>jbosscache-pojo</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>jgroups</groupId>
+          <artifactId>jgroups</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-cache</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-common</artifactId>
+      <version>1.0.1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-endpoint</artifactId>
+      <version>0.1.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-jpa-int</artifactId>
+      <version>${version.org.jboss.ejb3.jboss-ejb3-jpa-int}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-security</artifactId>
+      <version>1.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-timerservice-spi</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-ext-api</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-ext-api-impl</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-interceptors</artifactId>
+      <version>1.0.6</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-metadata</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-proxy-impl</artifactId>
+      <version>1.0.7</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-proxy-clustered</artifactId>
+      <version>1.0.3</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-proxy-spi</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-test</artifactId>
+      <version>1.0.0</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-transactions</artifactId>
+      <version>1.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3.context</groupId>
+      <artifactId>jboss-ejb3-context-base</artifactId>
+      <version>${version.org.jboss.ejb3.context}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3.context</groupId>
+      <artifactId>jboss-ejb3-context-naming</artifactId>
+      <version>${version.org.jboss.ejb3.context}</version>
+      <scope>runtime</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3.timeout</groupId>
+      <artifactId>jboss-ejb3-timeout-spi</artifactId>
+      <version>0.1.1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3.timeout</groupId>
+      <artifactId>jboss-ejb3-timeout-3.0</artifactId>
+      <version>0.1.1</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3.vfs</groupId>
+      <artifactId>jboss-ejb3-vfs-spi</artifactId>
+      <version>1.0.0-alpha-1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.embedded</groupId>
+      <artifactId>jboss-embedded</artifactId>
+      <version>beta3</version>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-deployers-core-spi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-ejb-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-jacc-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-jca-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-jms-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-servlet-api</artifactId>
+      <optional>true</optional>
+    </dependency>
+
+    <!-- those needs to be removed - EJBTHREE-1340 -->
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-main</artifactId>
+      <version>${version.org.jboss.jboss-as}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-system</artifactId>
+      <version>${version.org.jboss.jboss-as}</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>javassist</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-vfs</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-aop-mc-int</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-container</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-deployers-impl</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-deployers-spi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-system-jmx</artifactId>
+      <version>${version.org.jboss.jboss-as}</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>javassist</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-vfs</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-aop-mc-int</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-container</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-deployers-impl</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-deployers-spi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-mbeans</artifactId>
+      <version>${version.org.jboss.jboss-as}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-test</artifactId>
+        </exclusion>
+      </exclusions>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-j2se</artifactId>
+      <version>${version.org.jboss.jboss-as}</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.microcontainer</groupId>
+          <artifactId>jboss-container</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <!-- this needs to be removed - EJBTHREE-1343 -->
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-server</artifactId>
+      <version>${version.org.jboss.jboss-as}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>jboss</groupId>
+          <artifactId>jboss-remoting</artifactId>
+        </exclusion>
+        <!-- jboss-as-server must not dictate the JPA API -->
+        <exclusion>
+          <groupId>org.hibernate</groupId>
+          <artifactId>ejb3-persistence</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-metadata</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.jbossas</groupId>
+          <artifactId>jboss-as-security</artifactId>
+        </exclusion>
+        <!-- Conflicts with org.jboss.security:jbosssx -->
+        <exclusion>
+          <groupId>org.jboss.security</groupId>
+          <artifactId>jbosssx-client</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss.ws.native</groupId>
+          <artifactId>jbossws-native-jaxws</artifactId>
+        </exclusion>
+      </exclusions>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.jpa</groupId>
+      <artifactId>jboss-jpa-deployers</artifactId>
+      <version>1.0.2-alpha-1</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-vfs</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.deployers</groupId>
+      <artifactId>jboss-deployers-core-spi</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.microcontainer</groupId>
+      <artifactId>jboss-kernel</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.security</groupId>
+      <artifactId>jboss-security-spi</artifactId>
+      <version>${version.org.jboss.security}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.security</groupId>
+      <artifactId>jbosssx</artifactId>
+      <version>${version.org.jboss.security}</version>
+    </dependency>
+
+     <dependency>
+      <groupId>org.jboss.ws</groupId>
+      <artifactId>jbossws-spi</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>1.8.4</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>quartz</groupId>
+      <artifactId>quartz</artifactId>
+      <version>1.6.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>sun-jaxws</groupId>
+      <artifactId>jaxws-api</artifactId>
+      <version>${version.sun-jaxws}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>sun-jaxws</groupId>
+      <artifactId>jsr181-api</artifactId>
+      <version>${version.sun-jaxws}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>trove</groupId>
+      <artifactId>trove</artifactId>
+    </dependency>
+
+  </dependencies>
+
+  <scm>
+    <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/tags/jboss-ejb3-core-1.3.5</connection>
+    <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/ejb3/tags/jboss-ejb3-core-1.3.5</developerConnection>
+    <url>http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/tags/jboss-ejb3-core-1.3.5</url>
+  </scm>
+</project>

Deleted: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java	2010-08-03 14:01:22 UTC (rev 107349)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -1,188 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ejb3.pool;
-
-import org.jboss.ejb3.BeanContext;
-import org.jboss.ejb3.Container;
-import org.jboss.ejb3.InfinitePool;
-import org.jboss.injection.Injector;
-import org.jboss.lang.ref.WeakThreadLocal;
-import org.jboss.logging.Logger;
-
-
-/**
- * Pools EJBs within a ThreadLocal.
- *
- * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
- * @version $Revision$
- */
-public class ThreadlocalPool implements Pool
-{
-private static final Logger log = Logger.getLogger(ThreadlocalPool.class);
-   
-   protected Pool pool = new InfinitePool();
-   protected WeakThreadLocal<BeanContext> currentBeanContext = new WeakThreadLocal<BeanContext>();
-   private int inUse = 0;
-   
-   public ThreadlocalPool()
-   {
-   }
-
-   protected BeanContext create()
-   {
-      return pool.get();
-   }
-   
-   protected BeanContext create(Class[] initTypes, Object[] initValues)
-   {
-      return pool.get(initTypes, initValues);
-   }
-
-   public void discard(BeanContext obj)
-   {
-      pool.discard(obj);
-      --inUse;
-   }
-   
-   public void destroy()
-   {
-      log.trace("destroying pool");
-      
-      pool.destroy();
-      
-      // This really serves little purpose, because we want the whole thread local map to die
-      currentBeanContext.remove();
-      
-      inUse = 0;
-   }
-   
-   public BeanContext get()
-   {
-      BeanContext ctx = null;
-      
-      synchronized(pool)
-      {
-         ctx = currentBeanContext.get();
-         if (ctx != null)
-         {
-            currentBeanContext.set(null);
-            ++inUse;
-            return ctx;
-         }
-   
-         ctx = create();
-         ++inUse;
-      }
-      
-      return ctx;
-   }
-
-   public BeanContext get(Class[] initTypes, Object[] initValues)
-   {
-      BeanContext ctx = null;
-      synchronized(pool)
-      {
-         ctx = currentBeanContext.get();
-         if (ctx != null)
-         {
-            currentBeanContext.set(null);
-            ++inUse;
-            return ctx;
-         }
-   
-         ctx = create(initTypes, initValues);
-         ++inUse;
-      }
-      
-      return ctx;
-   }
-
-   public void initialize(Container container, int maxSize, long timeout)
-   {
-      pool.initialize(container, maxSize, timeout);
-   }
-   
-   public void release(BeanContext ctx)
-   {
-      synchronized(pool)
-      {
-         if (currentBeanContext.get() != null)
-         {
-            remove(ctx);
-         }
-         else
-         {
-            currentBeanContext.set(ctx);
-         }
-         
-         --inUse;
-      }
-   }
-   
-   public void remove(BeanContext ctx)
-   {
-      pool.remove(ctx);
-   }
-   
-   public int getCurrentSize()
-   {
-      int size;
-      synchronized (pool)
-      {
-         size = pool.getCreateCount() - pool.getRemoveCount();
-      }
-      return size;
-   }
-   
-   public int getAvailableCount()
-   {
-      return getMaxSize() - inUse;
-   }
-   
-   public int getCreateCount()
-   {
-      return pool.getCreateCount();
-   }
-   
-   public int getMaxSize()
-   {
-      // the thread local pool dynamically grows for new threads
-      // if a bean is reentrant it'll grow and shrink over the reentrant call
-      return getCurrentSize();
-   }
-
-   public int getRemoveCount()
-   {
-      return pool.getRemoveCount();
-   }
-   
-   public void setInjectors(Injector[] injectors)
-   {
-      pool.setInjectors(injectors);
-   }
-   
-   public void setMaxSize(int maxSize)
-   {
-      //this.maxSize = maxSize;
-      log.warn("EJBTHREE-1703: setting a max size on ThreadlocalPool is bogus");
-   }
-}

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java (from rev 107587, projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java	                        (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/pool/ThreadlocalPool.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -0,0 +1,168 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.pool;
+
+import org.jboss.ejb3.BeanContext;
+import org.jboss.ejb3.Container;
+import org.jboss.ejb3.InfinitePool;
+import org.jboss.injection.Injector;
+import org.jboss.lang.ref.WeakThreadLocal;
+import org.jboss.logging.Logger;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+
+/**
+ * Pools EJBs within a ThreadLocal.
+ *
+ * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+ * @version $Revision$
+ */
+public class ThreadlocalPool implements Pool
+{
+private static final Logger log = Logger.getLogger(ThreadlocalPool.class);
+   
+   protected Pool pool = new InfinitePool();
+   protected WeakThreadLocal<BeanContext> currentBeanContext = new WeakThreadLocal<BeanContext>();
+   private AtomicInteger inUse = new AtomicInteger();
+   
+   public ThreadlocalPool()
+   {
+   }
+
+   protected BeanContext create()
+   {
+      return pool.get();
+   }
+   
+   protected BeanContext create(Class[] initTypes, Object[] initValues)
+   {
+      return pool.get(initTypes, initValues);
+   }
+
+   public void discard(BeanContext obj)
+   {
+      pool.discard(obj);
+      inUse.decrementAndGet();
+   }
+   
+   public void destroy()
+   {
+      log.trace("destroying pool");
+      
+      pool.destroy();
+      
+      // This really serves little purpose, because we want the whole thread local map to die
+      currentBeanContext.remove();
+      
+      inUse.getAndSet(0);
+   }
+   
+   public BeanContext get()
+   {
+      BeanContext ctx = currentBeanContext.get();
+      if (ctx != null)
+         currentBeanContext.set(null);
+      else
+         ctx = create();
+
+      inUse.incrementAndGet();
+      
+      return ctx;
+   }
+
+   public BeanContext get(Class[] initTypes, Object[] initValues)
+   {
+      BeanContext ctx = currentBeanContext.get();
+      if (ctx != null)
+         currentBeanContext.set(null);
+      else
+         ctx = create(initTypes, initValues);
+
+      inUse.incrementAndGet();
+
+      return ctx;
+   }
+
+   public void initialize(Container container, int maxSize, long timeout)
+   {
+      pool.initialize(container, maxSize, timeout);
+   }
+   
+   public void release(BeanContext ctx)
+   {
+      if (currentBeanContext.get() != null)
+         remove(ctx);
+      else
+         currentBeanContext.set(ctx);
+
+      inUse.decrementAndGet();
+   }
+   
+   public void remove(BeanContext ctx)
+   {
+      pool.remove(ctx);
+   }
+   
+   public int getCurrentSize()
+   {
+      int size;
+      synchronized (pool)
+      {
+         size = pool.getCreateCount() - pool.getRemoveCount();
+      }
+      return size;
+   }
+   
+   public int getAvailableCount()
+   {
+      return getMaxSize() - inUse.get();
+   }
+   
+   public int getCreateCount()
+   {
+      return pool.getCreateCount();
+   }
+   
+   public int getMaxSize()
+   {
+      // the thread local pool dynamically grows for new threads
+      // if a bean is reentrant it'll grow and shrink over the reentrant call
+      return getCurrentSize();
+   }
+
+   public int getRemoveCount()
+   {
+      return pool.getRemoveCount();
+   }
+   
+   public void setInjectors(Injector[] injectors)
+   {
+      pool.setInjectors(injectors);
+   }
+   
+   public void setMaxSize(int maxSize)
+   {
+      //this.maxSize = maxSize;
+      log.warn("EJBTHREE-1703: setting a max size on ThreadlocalPool is bogus");
+   }
+}

Deleted: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java	2010-08-03 14:01:22 UTC (rev 107349)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -1,221 +0,0 @@
-/*
-  * JBoss, Home of Professional Open Source
-  * Copyright 2007, 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.ejb3.security;
-
-import java.lang.reflect.Method;
-import java.security.AccessController;
-import java.security.Principal;
-import java.security.PrivilegedExceptionAction;
-
-import javax.ejb.EJBAccessException;
-import javax.security.auth.Subject;
-
-import org.jboss.aop.advice.Interceptor;
-import org.jboss.aop.joinpoint.Invocation;
-import org.jboss.aop.joinpoint.MethodInvocation;
-import org.jboss.ejb3.Container;
-import org.jboss.ejb3.EJBContainer;
-import org.jboss.ejb3.annotation.SecurityDomain;
-import org.jboss.logging.Logger;
-import org.jboss.security.ISecurityManagement;
-import org.jboss.security.RunAs;
-import org.jboss.security.RunAsIdentity;
-import org.jboss.security.SecurityContext;
-import org.jboss.security.SecurityUtil;
-import org.jboss.security.identity.Identity;
-import org.jboss.security.identity.plugins.SimpleIdentity;
-import org.jboss.security.javaee.EJBAuthenticationHelper;
-import org.jboss.security.javaee.SecurityHelperFactory;
-
-/**
- *  Authentication Interceptor
- *  @author <a href="mailto:bill at jboss.org">Bill Burke</a>
- *  @author Anil.Saldhana at redhat.com
- *  @since  Aug 16, 2007 
- *  @version $Revision$
- */
-public class Ejb3AuthenticationInterceptorv2 implements Interceptor
-{ 
-   protected Logger log = Logger.getLogger(this.getClass()); 
-   private EJBContainer container; 
-   
-   public  Ejb3AuthenticationInterceptorv2(Container container)
-   { 
-     this.container = (EJBContainer) container; 
-   }
-   
-   public String getName()
-   { 
-      return getClass().getName();
-   }
-
-   public Object invoke(Invocation invocation) throws Throwable
-   { 
-      //Check for ejbTimeOutCallback or ejbTimeOut method
-      SecurityHelper shelper = new SecurityHelper();
-      MethodInvocation mi = (MethodInvocation) invocation;
-      Method method = mi.getMethod();
-      if(shelper.isEJBTimeOutCallback(method) ||
-            shelper.containsTimeoutAnnotation(container, method) ||
-            shelper.isMDB(container)) 
-         return invocation.invokeNext();
-       
-      SecurityContext prevSC = SecurityActions.getSecurityContext();
-      try
-      {
-         SecurityContext invSC = (SecurityContext) invocation.getMetaData("security","context"); 
-         
-         SecurityDomain domain = container.getAnnotation(SecurityDomain.class); 
-         
-         boolean domainExists = domain != null && domain.value() != null 
-                       && domain.value().length() > 0;
-          
-         /**
-          * TODO: Decide if you want to allow zero security based on non-availability
-          * of a security domain, as per the configuration on the container
-          */
-         if(domainExists)
-         {  
-            String domainValue = canonicalizeSecurityDomain(domain.value());
-            
-            /* Need to establish the security context. For local calls, we pick the outgoing runas
-             * of the existing sc. For remote calls, we create a new security context with the information
-             * from the invocation sc
-             */
-            final SecurityContext sc = SecurityActions.createSecurityContext(domainValue);
-            
-            if(shelper.isLocalCall(mi))
-            {
-               if(prevSC == null)
-                  throw new IllegalStateException("Local Call: Security Context is null");
-               populateSecurityContext(sc, prevSC);  
-            }
-            else
-            { 
-              //Remote Invocation
-              if(invSC == null)
-                throw new IllegalStateException("Remote Call: Invocation Security Context is null");
-              
-              populateSecurityContext(sc, invSC); 
-            }
-            
-            SecurityActions.setSecurityContext(sc);
-               
-            //TODO: Need to get the SecurityManagement instance
-            AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
-            {
-               public Object run() throws Exception
-               {
-                  sc.setSecurityManagement(getSecurityManagement());
-                  return null;
-               }
-            });
-            
-              
-            //Check if there is a RunAs configured and can be trusted 
-            EJBAuthenticationHelper helper = null;
-            try
-            {
-               helper = SecurityHelperFactory.getEJBAuthenticationHelper(sc);
-            }
-            catch(Exception e)
-            {
-               throw new RuntimeException(e);
-            } 
-            boolean trustedCaller = hasIncomingRunAsIdentity(sc) || helper.isTrusted();
-            if(!trustedCaller)
-            {
-               Subject subject = new Subject();
-               /**
-                * Special Case: Invocation has no principal set, 
-                * but an unauthenticatedPrincipal has been configured in JBoss DD
-                */
-               Principal userPrincipal = sc.getUtil().getUserPrincipal();
-               String unauthenticatedPrincipal = domain.unauthenticatedPrincipal();
-               if(userPrincipal == null && unauthenticatedPrincipal !=null &&
-                     unauthenticatedPrincipal.length() > 0)
-               {
-                  Identity unauthenticatedIdentity = new SimpleIdentity(unauthenticatedPrincipal);
-                  sc.getSubjectInfo().addIdentity(unauthenticatedIdentity);
-                  subject.getPrincipals().add(unauthenticatedIdentity.asPrincipal());
-               }
-               else
-               { 
-                  //Authenticate the caller now
-                  if(!helper.isValid(subject, method.getName()))
-                     throw new EJBAccessException("Invalid User"); 
-               }
-               helper.pushSubjectContext(subject);
-            }
-            else
-            {  
-               //Trusted caller. No need for authentication. Straight to authorization
-            } 
-         }
-         else
-         {
-            //domain == null
-            /**
-             * Special Case when a bean with no security domain defined comes with a security
-             * context attached.
-             */
-            if(invSC != null)
-            {
-               SecurityActions.setSecurityContext(invSC);
-            }
-         }
-         return invocation.invokeNext();  
-      }
-      finally
-      { 
-         SecurityActions.setSecurityContext(prevSC); 
-      }
-   }
-   
-   private String canonicalizeSecurityDomain(String securityDomain)
-   {
-	  return SecurityUtil.unprefixSecurityDomain(securityDomain); 
-   }
-   
-   private void populateSecurityContext(SecurityContext to, SecurityContext from)
-   {
-      SecurityActions.setSubjectInfo(to, from.getSubjectInfo());
-      SecurityActions.setIncomingRunAs(to, from.getOutgoingRunAs());
-   }
-   
-   /**
-    * TODO: This needs to be injectable
-    * @return
-    * @throws Exception 
-    */
-   private ISecurityManagement getSecurityManagement() throws Exception
-   {
-      Class<?> clazz = SecurityActions.loadClass("org.jboss.security.integration.JNDIBasedSecurityManagement");
-      return (ISecurityManagement) clazz.newInstance();    
-   }
-   
-   private boolean hasIncomingRunAsIdentity(SecurityContext sc)
-   {
-      RunAs incomingRunAs = sc.getIncomingRunAs();
-      return incomingRunAs != null && incomingRunAs instanceof RunAsIdentity;
-   }
-}
\ No newline at end of file

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java (from rev 107376, projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java	                        (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -0,0 +1,217 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, 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.ejb3.security;
+
+import org.jboss.aop.advice.Interceptor;
+import org.jboss.aop.joinpoint.Invocation;
+import org.jboss.aop.joinpoint.MethodInvocation;
+import org.jboss.ejb3.Container;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.annotation.SecurityDomain;
+import org.jboss.logging.Logger;
+import org.jboss.security.ISecurityManagement;
+import org.jboss.security.RunAs;
+import org.jboss.security.RunAsIdentity;
+import org.jboss.security.SecurityContext;
+import org.jboss.security.SecurityUtil;
+import org.jboss.security.identity.Identity;
+import org.jboss.security.identity.plugins.SimpleIdentity;
+import org.jboss.security.javaee.EJBAuthenticationHelper;
+import org.jboss.security.javaee.SecurityHelperFactory;
+
+import javax.ejb.EJBAccessException;
+import javax.security.auth.Subject;
+import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.Principal;
+import java.security.PrivilegedExceptionAction;
+
+/**
+ *  Authentication Interceptor
+ *  @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Aug 16, 2007 
+ *  @version $Revision$
+ */
+public class Ejb3AuthenticationInterceptorv2 implements Interceptor
+{ 
+   protected Logger log = Logger.getLogger(this.getClass()); 
+   private EJBContainer container; 
+   
+   public  Ejb3AuthenticationInterceptorv2(Container container)
+   { 
+     this.container = (EJBContainer) container; 
+   }
+   
+   public String getName()
+   { 
+      return getClass().getName();
+   }
+
+   public Object invoke(Invocation invocation) throws Throwable
+   { 
+      //Check for ejbTimeOutCallback or ejbTimeOut method
+      SecurityHelper shelper = new SecurityHelper();
+      MethodInvocation mi = (MethodInvocation) invocation;
+      Method method = mi.getMethod();
+      if(shelper.isEJBTimeOutCallback(method) ||
+            shelper.containsTimeoutAnnotation(container, method) ||
+            shelper.isMDB(container)) 
+         return invocation.invokeNext();
+       
+      SecurityContext prevSC = SecurityActions.getSecurityContext();
+      try
+      {
+         // See org.jboss.ejb3.security.client.SecurityClientInterceptor
+         SecurityContext invSC = (SecurityContext) invocation.getMetaData("security","context"); 
+         
+         SecurityDomain domain = container.getAnnotation(SecurityDomain.class); 
+         
+         boolean domainExists = domain != null && domain.value() != null 
+                       && domain.value().length() > 0;
+          
+         /**
+          * TODO: Decide if you want to allow zero security based on non-availability
+          * of a security domain, as per the configuration on the container
+          */
+         if(domainExists)
+         {  
+            String domainValue = canonicalizeSecurityDomain(domain.value());
+            
+            /* Need to establish the security context. For local calls, we pick the outgoing runas
+             * of the existing sc. For remote calls, we create a new security context with the information
+             * from the invocation sc
+             */
+            final SecurityContext sc = SecurityActions.createSecurityContext(domainValue);
+
+            if(invSC == null)
+            {
+               if(prevSC == null)
+                  throw new IllegalStateException("Local Call: Security Context is null");
+               populateSecurityContext(sc, prevSC);
+            }
+            else
+            { 
+               populateSecurityContext(sc, invSC);
+            }
+            
+            SecurityActions.setSecurityContext(sc);
+               
+            //TODO: Need to get the SecurityManagement instance
+            AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+            {
+               public Object run() throws Exception
+               {
+                  sc.setSecurityManagement(getSecurityManagement());
+                  return null;
+               }
+            });
+            
+              
+            //Check if there is a RunAs configured and can be trusted 
+            EJBAuthenticationHelper helper = null;
+            try
+            {
+               helper = SecurityHelperFactory.getEJBAuthenticationHelper(sc);
+            }
+            catch(Exception e)
+            {
+               throw new RuntimeException(e);
+            } 
+            boolean trustedCaller = hasIncomingRunAsIdentity(sc) || helper.isTrusted();
+            if(!trustedCaller)
+            {
+               Subject subject = new Subject();
+               /**
+                * Special Case: Invocation has no principal set, 
+                * but an unauthenticatedPrincipal has been configured in JBoss DD
+                */
+               Principal userPrincipal = sc.getUtil().getUserPrincipal();
+               String unauthenticatedPrincipal = domain.unauthenticatedPrincipal();
+               if(userPrincipal == null && unauthenticatedPrincipal !=null &&
+                     unauthenticatedPrincipal.length() > 0)
+               {
+                  Identity unauthenticatedIdentity = new SimpleIdentity(unauthenticatedPrincipal);
+                  sc.getSubjectInfo().addIdentity(unauthenticatedIdentity);
+                  subject.getPrincipals().add(unauthenticatedIdentity.asPrincipal());
+               }
+               else
+               { 
+                  //Authenticate the caller now
+                  if(!helper.isValid(subject, method.getName()))
+                     throw new EJBAccessException("Invalid User"); 
+               }
+               helper.pushSubjectContext(subject);
+            }
+            else
+            {  
+               //Trusted caller. No need for authentication. Straight to authorization
+            } 
+         }
+         else
+         {
+            //domain == null
+            /**
+             * Special Case when a bean with no security domain defined comes with a security
+             * context attached.
+             */
+            if(invSC != null)
+            {
+               SecurityActions.setSecurityContext(invSC);
+            }
+         }
+         return invocation.invokeNext();  
+      }
+      finally
+      { 
+         SecurityActions.setSecurityContext(prevSC); 
+      }
+   }
+   
+   private String canonicalizeSecurityDomain(String securityDomain)
+   {
+	  return SecurityUtil.unprefixSecurityDomain(securityDomain); 
+   }
+   
+   private void populateSecurityContext(SecurityContext to, SecurityContext from)
+   {
+      SecurityActions.setSubjectInfo(to, from.getSubjectInfo());
+      SecurityActions.setIncomingRunAs(to, from.getOutgoingRunAs());
+   }
+   
+   /**
+    * TODO: This needs to be injectable
+    * @return
+    * @throws Exception 
+    */
+   private ISecurityManagement getSecurityManagement() throws Exception
+   {
+      Class<?> clazz = SecurityActions.loadClass("org.jboss.security.integration.JNDIBasedSecurityManagement");
+      return (ISecurityManagement) clazz.newInstance();    
+   }
+   
+   private boolean hasIncomingRunAsIdentity(SecurityContext sc)
+   {
+      RunAs incomingRunAs = sc.getIncomingRunAs();
+      return incomingRunAs != null && incomingRunAs instanceof RunAsIdentity;
+   }
+}
\ No newline at end of file

Deleted: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/security/SecurityHelper.java	2010-08-03 14:01:22 UTC (rev 107349)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -1,101 +0,0 @@
-/*
-  * JBoss, Home of Professional Open Source
-  * Copyright 2007, 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.ejb3.security;
-
-import java.lang.reflect.Method;
-
-import javax.ejb.TimedObject;
-import javax.ejb.Timeout;
-import javax.ejb.Timer;
-
-import org.jboss.aop.joinpoint.MethodInvocation;
-import org.jboss.ejb3.Container;
-import org.jboss.ejb3.EJBContainer;
-import org.jboss.ejb3.mdb.MessagingContainer;
-import org.jboss.ejb3.remoting.IsLocalInterceptor;
-import org.jboss.remoting.InvokerLocator; 
-import org.jboss.aspects.remoting.InvokeRemoteInterceptor;
-
-//$Id$
-
-/**
- *  Helper class for the EJB3 Security Interceptors
- *  @author Anil.Saldhana at redhat.com
- *  @since  Aug 23, 2007 
- *  @version $Revision$
- */
-public class SecurityHelper
-{
-   /**
-    * Check whether an invocation is local or remote
-    * @param mi method invocation
-    * @return true - local call
-    */
-   public boolean isLocalCall(MethodInvocation mi)
-   { 
-      InvokerLocator locator = (InvokerLocator) mi.getMetaData(InvokeRemoteInterceptor.REMOTING, InvokeRemoteInterceptor.INVOKER_LOCATOR);
-      return locator == null ||
-          mi.getMetaData(IsLocalInterceptor.IS_LOCAL,IsLocalInterceptor.IS_LOCAL) != null;
-   }
-   
-   /**
-    * Check if the method is an EJBTimeOut method
-    * @param m method
-    * @return true if it is a ejb timeout callback
-    */
-   public boolean isEJBTimeOutCallback(Method m)
-   {
-      /** The TimedObject.ejbTimeout callback */
-      Method ejbTimeout = null;
-      
-      try
-      {
-         // Get the timeout method
-         ejbTimeout = TimedObject.class.getMethod("ejbTimeout", new Class[]{Timer.class});
-      }
-      catch (NoSuchMethodException ignore)
-      {
-      } 
-      return m == ejbTimeout; 
-   } 
-   
-   /**
-    * Checks whether a method declares a Timeout annotation
-    * @param container EJBContainer
-    * @param meth The method under investigation for an annotation
-    * @return @Timeout annotation exists
-    */
-   public boolean containsTimeoutAnnotation(EJBContainer container, Method meth)
-   {
-      return (Timeout) container.resolveAnnotation(meth, Timeout.class) != null;
-   }
-   
-   /**
-    * Determine if the container is a MDB
-    * @param container
-    * @return
-    */
-   public boolean isMDB(Container container)
-   {
-      return container instanceof MessagingContainer;
-   }
-}

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java (from rev 107376, projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/security/SecurityHelper.java)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java	                        (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/security/SecurityHelper.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -0,0 +1,84 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, 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.ejb3.security;
+
+import org.jboss.ejb3.Container;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.mdb.MessagingContainer;
+
+import javax.ejb.TimedObject;
+import javax.ejb.Timeout;
+import javax.ejb.Timer;
+import java.lang.reflect.Method;
+
+//$Id$
+
+/**
+ *  Helper class for the EJB3 Security Interceptors
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Aug 23, 2007 
+ *  @version $Revision$
+ */
+public class SecurityHelper
+{
+   /**
+    * Check if the method is an EJBTimeOut method
+    * @param m method
+    * @return true if it is a ejb timeout callback
+    */
+   public boolean isEJBTimeOutCallback(Method m)
+   {
+      /** The TimedObject.ejbTimeout callback */
+      Method ejbTimeout = null;
+      
+      try
+      {
+         // Get the timeout method
+         ejbTimeout = TimedObject.class.getMethod("ejbTimeout", new Class[]{Timer.class});
+      }
+      catch (NoSuchMethodException ignore)
+      {
+      } 
+      return m == ejbTimeout; 
+   } 
+   
+   /**
+    * Checks whether a method declares a Timeout annotation
+    * @param container EJBContainer
+    * @param meth The method under investigation for an annotation
+    * @return @Timeout annotation exists
+    */
+   public boolean containsTimeoutAnnotation(EJBContainer container, Method meth)
+   {
+      return (Timeout) container.resolveAnnotation(meth, Timeout.class) != null;
+   }
+   
+   /**
+    * Determine if the container is a MDB
+    * @param container
+    * @return
+    */
+   public boolean isMDB(Container container)
+   {
+      return container instanceof MessagingContainer;
+   }
+}

Deleted: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java	2010-08-03 14:01:22 UTC (rev 107349)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -1,193 +0,0 @@
-/*
-* 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.ejb3.statistics;
-
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
-
-/** A method invocation statistics collection class.
- *
- * @author Scott.Stark at jboss.org
- * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
- */
-public class InvocationStatistics implements Serializable
-{
-   private static final long serialVersionUID = -1637309757441812924L;
-
-   /** The method invocations */
-   private Map<String, TimeStatistic> methodStats;
-
-   public long concurrentCalls = 0;
-   public long maxConcurrentCalls = 0;
-   public long lastResetTime = System.currentTimeMillis();
-
-   public class TimeStatistic implements Serializable
-   {
-      private static final long serialVersionUID = -3717837456831579570L;
-      
-      public volatile long count;
-      public volatile long minTime = Long.MAX_VALUE;
-      public volatile long maxTime;
-      public volatile long totalTime;
-
-      public void reset()
-      {
-         count = 0;
-         minTime = Long.MAX_VALUE;
-         maxTime = 0;
-         totalTime = 0;
-      }
-   }
-
-   public InvocationStatistics()
-   {
-      methodStats = new ConcurrentHashMap<String, TimeStatistic>();
-   }
-
-   /** Update the TimeStatistic for the given method. This synchronizes on
-    * this to ensure that the TimeStatistic for m is updated atomically.
-    *
-    * @param m the method to update the statistics for.
-    * @param elapsed the elapsed time in milliseconds for the invocation.
-    */
-   public synchronized void updateStats(Method m, long elapsed)
-   {
-      TimeStatistic stat = (TimeStatistic) methodStats.get(m.getName());
-      if (stat == null)
-      {
-         stat = new TimeStatistic();
-         methodStats.put(m.getName(), stat);
-      }
-      stat.count++;
-      stat.totalTime += elapsed;
-      if (stat.minTime > elapsed)
-         stat.minTime = elapsed;
-      if (stat.maxTime < elapsed)
-         stat.maxTime = elapsed;
-   }
-
-   public synchronized void callIn()
-   {
-      concurrentCalls++;
-      if (concurrentCalls > maxConcurrentCalls)
-         maxConcurrentCalls = concurrentCalls;
-   }
-
-   public synchronized void callOut()
-   {
-      concurrentCalls--;
-   }
-
-   /** Resets all current TimeStatistics.
-    *
-    */
-   public synchronized void resetStats()
-   {
-      methodStats.clear();
-      maxConcurrentCalls = 0;
-      lastResetTime = System.currentTimeMillis();
-   }
-
-   /** Accesses an immutable view of the current collection of method invocation statistics
-    *
-    * @return A HashMap<Method, TimeStatistic> of the method invocations
-    */
-   public Map<String,TimeStatistic> getStats()
-   {
-      return Collections.unmodifiableMap(methodStats);
-   }
-
-   /** Generate an XML fragement for the InvocationStatistics. The format is
-    * <InvocationStatistics concurrentCalls="c">
-    *    <method name="aMethod" count="x" minTime="y" maxTime="z" totalTime="t" />
-    *    ...
-    * </InvocationStatistics>
-    *
-    * @return an XML representation of the InvocationStatistics
-    */
-   public String toString()
-   {
-      StringBuffer tmp = new StringBuffer("InvocationStatistics concurrentCalls='");
-      tmp.append(concurrentCalls);
-      tmp.append("'\n");
-
-      HashMap<String,TimeStatistic> copy = new HashMap<String,TimeStatistic>(methodStats);
-      Iterator<Entry<String,TimeStatistic>> iter = copy.entrySet().iterator();
-      while (iter.hasNext())
-      {
-         Entry<String,TimeStatistic> entry = iter.next();
-         final TimeStatistic stat = entry.getValue();
-         if (stat != null)
-         {
-            tmp.append("method name='");
-            tmp.append(entry.getKey());
-            tmp.append("' count='");
-            tmp.append(stat.count);
-            tmp.append("' minTime='");
-            tmp.append(stat.minTime);
-            tmp.append("' maxTime='");
-            tmp.append(stat.maxTime);
-            tmp.append("' totalTime='");
-            tmp.append(stat.totalTime);
-            tmp.append("' \n");
-         }
-      }
-      return tmp.toString();
-   }
-   
-   public String toXmlString()
-   {
-      StringBuffer tmp = new StringBuffer("<InvocationStatistics concurrentCalls='");
-      tmp.append(concurrentCalls);
-      tmp.append("' >\n");
-
-      HashMap<String,TimeStatistic> copy = new HashMap<String,TimeStatistic>(methodStats);
-      Iterator<Entry<String,TimeStatistic>> iter = copy.entrySet().iterator();
-      while (iter.hasNext())
-      {
-         Entry<String,TimeStatistic> entry = iter.next();
-         TimeStatistic stat = (TimeStatistic) entry.getValue();
-         if (stat != null)
-         {
-            tmp.append("<method name='");
-            tmp.append(entry.getKey());
-            tmp.append("' count='");
-            tmp.append(stat.count);
-            tmp.append("' minTime='");
-            tmp.append(stat.minTime);
-            tmp.append("' maxTime='");
-            tmp.append(stat.maxTime);
-            tmp.append("' totalTime='");
-            tmp.append(stat.totalTime);
-            tmp.append("' />\n");
-         }
-      }
-      tmp.append("</InvocationStatistics>");
-      return tmp.toString();
-   }
-}

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java (from rev 107588, projects/ejb3/branches/jboss-ejb3-core-1.3/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java	                        (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/main/java/org/jboss/ejb3/statistics/InvocationStatistics.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -0,0 +1,203 @@
+/*
+* 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.ejb3.statistics;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
+
+/** A method invocation statistics collection class.
+ *
+ * @author Scott.Stark at jboss.org
+ * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
+ */
+public class InvocationStatistics implements Serializable
+{
+   private static final long serialVersionUID = -1637309757441812924L;
+
+   /** The method invocations */
+   private Map<String, TimeStatistic> methodStats;
+
+   public AtomicLong concurrentCalls = new AtomicLong();
+   public volatile long maxConcurrentCalls = 0;
+   public long lastResetTime = System.currentTimeMillis();
+
+   public class TimeStatistic implements Serializable
+   {
+      private static final long serialVersionUID = -3717837456831579570L;
+      
+      public AtomicLong count = new AtomicLong();
+      public volatile long minTime = Long.MAX_VALUE;
+      public volatile long maxTime;
+      public AtomicLong totalTime = new AtomicLong();
+
+      public void reset()
+      {
+         count.set(0);
+         minTime = Long.MAX_VALUE;
+         maxTime = 0;
+         totalTime.set(0);
+      }
+   }
+
+   public InvocationStatistics()
+   {
+      methodStats = new ConcurrentHashMap<String, TimeStatistic>();
+   }
+
+   /** Update the TimeStatistic for the given method. This synchronizes on
+    * this to ensure that the TimeStatistic for m is updated atomically.
+    *
+    * @param m the method to update the statistics for.
+    * @param elapsed the elapsed time in milliseconds for the invocation.
+    */
+   public void updateStats(Method m, long elapsed)
+   {
+      TimeStatistic stat = methodStats.get(m.getName());
+      if (stat == null)
+      {
+         synchronized (methodStats)
+         {
+            stat = methodStats.get(m.getName());
+            if (stat == null)
+            {
+               stat = new TimeStatistic();
+               methodStats.put(m.getName(), stat);
+            }
+         }
+      }
+      // Does it really matter if a stat is off for a tick?
+      stat.count.incrementAndGet();
+      stat.totalTime.addAndGet(elapsed);
+      // Eventually it'll be close to accurate
+      if (stat.minTime > elapsed)
+         stat.minTime = elapsed;
+      if (stat.maxTime < elapsed)
+         stat.maxTime = elapsed;
+   }
+
+   public void callIn()
+   {
+      long calls = concurrentCalls.incrementAndGet();
+      if (calls > maxConcurrentCalls)
+         maxConcurrentCalls = calls;
+   }
+
+   public void callOut()
+   {
+      concurrentCalls.decrementAndGet();
+   }
+
+   /** Resets all current TimeStatistics.
+    *
+    */
+   public synchronized void resetStats()
+   {
+      methodStats.clear();
+      maxConcurrentCalls = 0;
+      lastResetTime = System.currentTimeMillis();
+   }
+
+   /** Accesses an immutable view of the current collection of method invocation statistics
+    *
+    * @return A HashMap<Method, TimeStatistic> of the method invocations
+    */
+   public Map<String,TimeStatistic> getStats()
+   {
+      return Collections.unmodifiableMap(methodStats);
+   }
+
+   /** Generate an XML fragement for the InvocationStatistics. The format is
+    * <InvocationStatistics concurrentCalls="c">
+    *    <method name="aMethod" count="x" minTime="y" maxTime="z" totalTime="t" />
+    *    ...
+    * </InvocationStatistics>
+    *
+    * @return an XML representation of the InvocationStatistics
+    */
+   public String toString()
+   {
+      StringBuffer tmp = new StringBuffer("InvocationStatistics concurrentCalls='");
+      tmp.append(concurrentCalls);
+      tmp.append("'\n");
+
+      HashMap<String,TimeStatistic> copy = new HashMap<String,TimeStatistic>(methodStats);
+      Iterator<Entry<String,TimeStatistic>> iter = copy.entrySet().iterator();
+      while (iter.hasNext())
+      {
+         Entry<String,TimeStatistic> entry = iter.next();
+         final TimeStatistic stat = entry.getValue();
+         if (stat != null)
+         {
+            tmp.append("method name='");
+            tmp.append(entry.getKey());
+            tmp.append("' count='");
+            tmp.append(stat.count);
+            tmp.append("' minTime='");
+            tmp.append(stat.minTime);
+            tmp.append("' maxTime='");
+            tmp.append(stat.maxTime);
+            tmp.append("' totalTime='");
+            tmp.append(stat.totalTime);
+            tmp.append("' \n");
+         }
+      }
+      return tmp.toString();
+   }
+   
+   public String toXmlString()
+   {
+      StringBuffer tmp = new StringBuffer("<InvocationStatistics concurrentCalls='");
+      tmp.append(concurrentCalls);
+      tmp.append("' >\n");
+
+      HashMap<String,TimeStatistic> copy = new HashMap<String,TimeStatistic>(methodStats);
+      Iterator<Entry<String,TimeStatistic>> iter = copy.entrySet().iterator();
+      while (iter.hasNext())
+      {
+         Entry<String,TimeStatistic> entry = iter.next();
+         TimeStatistic stat = (TimeStatistic) entry.getValue();
+         if (stat != null)
+         {
+            tmp.append("<method name='");
+            tmp.append(entry.getKey());
+            tmp.append("' count='");
+            tmp.append(stat.count);
+            tmp.append("' minTime='");
+            tmp.append(stat.minTime);
+            tmp.append("' maxTime='");
+            tmp.append(stat.maxTime);
+            tmp.append("' totalTime='");
+            tmp.append(stat.totalTime);
+            tmp.append("' />\n");
+         }
+      }
+      tmp.append("</InvocationStatistics>");
+      return tmp.toString();
+   }
+}

Deleted: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java	2010-08-03 14:01:22 UTC (rev 107349)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -1,236 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, 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.ejb3.test.threadlocal.unit;
-
-import junit.framework.TestCase;
-
-import org.jboss.ejb3.BeanContext;
-import org.jboss.ejb3.Container;
-import org.jboss.ejb3.pool.ThreadlocalPool;
-import org.jboss.ejb3.test.threadlocal.MockBean;
-import org.jboss.ejb3.test.threadlocal.MockContainer;
-
-/**
- * Comment
- *
- * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision$
- */
-public class ThreadLocalPoolUnitTestCase extends TestCase
-{
-   int used = 0;
-   
-   private static void gc()
-   {
-      for(int i = 0; i < 3; i++)
-      {
-         System.gc();
-         try
-         {
-            Thread.sleep(100);
-         }
-         catch (InterruptedException e)
-         {
-            // ignore
-         }
-         System.runFinalization();
-      }
-   }
-   
-   public void test1()
-   {
-      ThreadlocalPool pool = new ThreadlocalPool();
-      Container container = new MockContainer();
-      int maxSize = -1;
-      int timeout = -1;
-      pool.initialize(container, maxSize, timeout);
-      BeanContext ctx = pool.get();
-      pool.release(ctx);
-      
-      ctx = null;
-      
-      gc();
-      assertEquals(0, pool.getRemoveCount());
-      assertEquals(0, MockBean.finalizers);
-      
-      pool.destroy();
-      
-      gc();
-      assertEquals(1, pool.getRemoveCount());
-      assertEquals(1, MockBean.finalizers);
-   }
-   
-   public void testWithThreads() throws Exception
-   {
-      final ThreadlocalPool pool = new ThreadlocalPool();
-      Container container = new MockContainer();
-      int maxSize = -1;
-      int timeout = -1;
-      pool.initialize(container, maxSize, timeout);
-      
-      Runnable r = new Runnable()
-      {
-         public void run()
-         {
-            BeanContext ctx = pool.get();
-            pool.release(ctx);
-            
-            ctx = null;
-            used++;
-         }
-      };
-      
-      Thread threads[] = new Thread[20];
-      for(int i = 0; i < threads.length; i++)
-      {
-         threads[i] = new Thread(r);
-         threads[i].start();
-      }
-      
-      for(Thread t : threads)
-      {
-         t.join(1000);
-      }
-      
-      gc();
-      assertEquals(0, pool.getRemoveCount());
-      assertEquals(0, MockBean.finalizers);
-      
-      pool.destroy();
-      
-      gc();
-      assertEquals(20, pool.getRemoveCount());
-      assertEquals(20, MockBean.finalizers);
-      
-      assertEquals(20, used);
-   }
-   
-   public void testMultipleWithThreads() throws Exception
-   {
-      final ThreadlocalPool pool = new ThreadlocalPool();
-      Container container = new MockContainer();
-      int maxSize = -1;
-      int timeout = -1;
-      pool.initialize(container, maxSize, timeout);
-      
-      Runnable r = new Runnable()
-      {
-         public void run()
-         {
-            for(int i = 0; i < 10; i++)
-            {
-               BeanContext ctx = pool.get();
-               pool.release(ctx);
-               
-               ctx = null;
-               used++;
-            }
-         }
-      };
-      
-      Thread threads[] = new Thread[20];
-      for(int i = 0; i < threads.length; i++)
-      {
-         threads[i] = new Thread(r);
-         threads[i].start();
-      }
-      
-      for(Thread t : threads)
-      {
-         t.join(1000);
-      }
-      
-      gc();
-      assertEquals(0, pool.getRemoveCount());
-      assertEquals(0, MockBean.finalizers);
-      
-      pool.destroy();
-      
-      gc();
-      assertEquals(20, pool.getRemoveCount());
-      assertEquals(20, MockBean.finalizers);
-      
-      assertEquals(200, used);
-   }
-   
-   public void testMultipleRecursiveWithThreads() throws Exception
-   {
-      final ThreadlocalPool pool = new ThreadlocalPool();
-      Container container = new MockContainer();
-      int maxSize = -1;
-      int timeout = -1;
-      pool.initialize(container, maxSize, timeout);
-      
-      Runnable r = new Runnable()
-      {
-         public void run()
-         {
-            for(int i = 0; i < 10; i++)
-            {
-               BeanContext ctx = pool.get();
-               BeanContext ctx2 = pool.get();
-               
-               pool.release(ctx2);
-               ctx2 = null;
-               used ++;
-               
-               pool.release(ctx);
-               ctx = null;
-               used ++;
-            }
-         }
-      };
-      
-      Thread threads[] = new Thread[20];
-      for(int i = 0; i < threads.length; i++)
-      {
-         threads[i] = new Thread(r);
-         threads[i].start();
-      }
-      
-      for(Thread t : threads)
-      {
-         t.join(1000);
-      }
-      
-      gc();
-      assertEquals(200, pool.getRemoveCount());
-      assertEquals(200, MockBean.finalizers);
-      
-      pool.destroy();
-      
-      gc();
-      assertEquals(220, pool.getRemoveCount());
-      assertEquals(220, MockBean.finalizers);
-      
-      assertEquals(400, used);
-   }
-   
-   @Override
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-      
-      MockBean.finalizers = 0;
-      used = 0;
-   }
-}

Copied: projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java (from rev 107587, projects/ejb3/branches/jboss-ejb3-core-1.3/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java	                        (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.3.5/src/test/java/org/jboss/ejb3/test/threadlocal/unit/ThreadLocalPoolUnitTestCase.java	2010-08-13 18:51:56 UTC (rev 107599)
@@ -0,0 +1,260 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, 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.ejb3.test.threadlocal.unit;
+
+import junit.framework.TestCase;
+
+import org.jboss.ejb3.BeanContext;
+import org.jboss.ejb3.Container;
+import org.jboss.ejb3.pool.ThreadlocalPool;
+import org.jboss.ejb3.test.threadlocal.MockBean;
+import org.jboss.ejb3.test.threadlocal.MockContainer;
+
+/**
+ * Comment
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision$
+ */
+public class ThreadLocalPoolUnitTestCase extends TestCase
+{
+   int used = 0;
+   
+   private static void gc()
+   {
+      for(int i = 0; i < 3; i++)
+      {
+         System.gc();
+         try
+         {
+            Thread.sleep(100);
+         }
+         catch (InterruptedException e)
+         {
+            // ignore
+         }
+         System.runFinalization();
+      }
+   }
+   
+   public void test1()
+   {
+      ThreadlocalPool pool = new ThreadlocalPool();
+      Container container = new MockContainer();
+      int maxSize = -1;
+      int timeout = -1;
+      pool.initialize(container, maxSize, timeout);
+      BeanContext ctx = pool.get();
+      pool.release(ctx);
+      
+      ctx = null;
+      
+      gc();
+      assertEquals(0, pool.getRemoveCount());
+      assertEquals(0, MockBean.finalizers);
+      
+      pool.destroy();
+      
+      gc();
+      assertEquals(1, pool.getRemoveCount());
+      assertEquals(1, MockBean.finalizers);
+   }
+
+   public void testInUse1()
+   {
+      ThreadlocalPool pool = new ThreadlocalPool();
+      Container container = new MockContainer();
+      int maxSize = -1;
+      int timeout = -1;
+      pool.initialize(container, maxSize, timeout);
+
+      assertEquals(0, pool.getAvailableCount());
+      
+      BeanContext ctx = pool.get();
+
+      assertEquals(0, pool.getAvailableCount());
+
+      pool.release(ctx);
+      ctx = null;
+
+      assertEquals(1, pool.getAvailableCount());
+
+      pool.destroy();
+
+      gc();
+   }
+
+   public void testWithThreads() throws Exception
+   {
+      final ThreadlocalPool pool = new ThreadlocalPool();
+      Container container = new MockContainer();
+      int maxSize = -1;
+      int timeout = -1;
+      pool.initialize(container, maxSize, timeout);
+      
+      Runnable r = new Runnable()
+      {
+         public void run()
+         {
+            BeanContext ctx = pool.get();
+            pool.release(ctx);
+            
+            ctx = null;
+            used++;
+         }
+      };
+      
+      Thread threads[] = new Thread[20];
+      for(int i = 0; i < threads.length; i++)
+      {
+         threads[i] = new Thread(r);
+         threads[i].start();
+      }
+      
+      for(Thread t : threads)
+      {
+         t.join(1000);
+      }
+      
+      gc();
+      assertEquals(0, pool.getRemoveCount());
+      assertEquals(0, MockBean.finalizers);
+      
+      pool.destroy();
+      
+      gc();
+      assertEquals(20, pool.getRemoveCount());
+      assertEquals(20, MockBean.finalizers);
+      
+      assertEquals(20, used);
+   }
+   
+   public void testMultipleWithThreads() throws Exception
+   {
+      final ThreadlocalPool pool = new ThreadlocalPool();
+      Container container = new MockContainer();
+      int maxSize = -1;
+      int timeout = -1;
+      pool.initialize(container, maxSize, timeout);
+      
+      Runnable r = new Runnable()
+      {
+         public void run()
+         {
+            for(int i = 0; i < 10; i++)
+            {
+               BeanContext ctx = pool.get();
+               pool.release(ctx);
+               
+               ctx = null;
+               used++;
+            }
+         }
+      };
+      
+      Thread threads[] = new Thread[20];
+      for(int i = 0; i < threads.length; i++)
+      {
+         threads[i] = new Thread(r);
+         threads[i].start();
+      }
+      
+      for(Thread t : threads)
+      {
+         t.join(1000);
+      }
+      
+      gc();
+      assertEquals(0, pool.getRemoveCount());
+      assertEquals(0, MockBean.finalizers);
+      
+      pool.destroy();
+      
+      gc();
+      assertEquals(20, pool.getRemoveCount());
+      assertEquals(20, MockBean.finalizers);
+      
+      assertEquals(200, used);
+   }
+   
+   public void testMultipleRecursiveWithThreads() throws Exception
+   {
+      final ThreadlocalPool pool = new ThreadlocalPool();
+      Container container = new MockContainer();
+      int maxSize = -1;
+      int timeout = -1;
+      pool.initialize(container, maxSize, timeout);
+      
+      Runnable r = new Runnable()
+      {
+         public void run()
+         {
+            for(int i = 0; i < 10; i++)
+            {
+               BeanContext ctx = pool.get();
+               BeanContext ctx2 = pool.get();
+               
+               pool.release(ctx2);
+               ctx2 = null;
+               used ++;
+               
+               pool.release(ctx);
+               ctx = null;
+               used ++;
+            }
+         }
+      };
+      
+      Thread threads[] = new Thread[20];
+      for(int i = 0; i < threads.length; i++)
+      {
+         threads[i] = new Thread(r);
+         threads[i].start();
+      }
+      
+      for(Thread t : threads)
+      {
+         t.join(1000);
+      }
+      
+      gc();
+      assertEquals(200, pool.getRemoveCount());
+      assertEquals(200, MockBean.finalizers);
+      
+      pool.destroy();
+      
+      gc();
+      assertEquals(220, pool.getRemoveCount());
+      assertEquals(220, MockBean.finalizers);
+      
+      assertEquals(400, used);
+   }
+   
+   @Override
+   protected void tearDown() throws Exception
+   {
+      super.tearDown();
+      
+      MockBean.finalizers = 0;
+      used = 0;
+   }
+}



More information about the jboss-cvs-commits mailing list