[jboss-cvs] JBossAS SVN: r78494 - in projects/ejb3/tags: jboss-ejb3-core-1.0.0-Beta3 and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Sep 12 13:04:49 EDT 2008
Author: ALRubinger
Date: 2008-09-12 13:04:49 -0400 (Fri, 12 Sep 2008)
New Revision: 78494
Added:
projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/
projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml
projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
Removed:
projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml
projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
Log:
[maven-release-plugin] copy for tag jboss-ejb3-core-1.0.0-Beta3
Copied: projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3 (from rev 78490, projects/ejb3/trunk/core)
Deleted: projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml 2008-09-12 15:14:03 UTC (rev 78490)
+++ projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml 2008-09-12 17:04:49 UTC (rev 78494)
@@ -1,577 +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.0-Beta1</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.0.0-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.jboss-as>5.0.0.Beta4</version.org.jboss.jboss-as>
- </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</artifactId>
- <version>3.2.6.ga</version>
- </dependency>
-
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-annotations</artifactId>
- <version>3.3.1.GA</version>
- </dependency>
-
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>3.3.2.GA</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.metadata</groupId>
- <artifactId>jboss-metadata</artifactId>
- <exclusions>
- <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</groupId>
- <artifactId>jboss-transaction-spi</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <version>2.0.0.Beta13</version>
- </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>
- </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>2.1.1.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>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.cluster</groupId>
- <artifactId>jboss-ha-client</artifactId>
- <version>1.1.0.CR4</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.0.CR4</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-async</artifactId>
- <version>0.1.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-cache</artifactId>
- <version>0.13.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-common</artifactId>
- <version>0.1.6</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-security</artifactId>
- <version>1.0.0-Beta1</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-ext-api</artifactId>
- <version>0.4</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-ext-api-impl</artifactId>
- <version>0.4.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-interceptors</artifactId>
- <version>1.0.0-Beta1</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-metadata</artifactId>
- <version>0.13.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-proxy</artifactId>
- <version>0.1.5</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-proxy-clustered</artifactId>
- <version>0.1.3</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-test</artifactId>
- <version>0.1.3</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ejb3</groupId>
- <artifactId>jboss-ejb3-transactions</artifactId>
- <version>0.13.6</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.embedded</groupId>
- <artifactId>jboss-embedded</artifactId>
- <version>beta3</version>
- <scope>test</scope>
- </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>
- </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.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.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>
- <exclusion>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-metadata</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-security</artifactId>
- </exclusion>
- </exclusions>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.jpa</groupId>
- <artifactId>jboss-jpa-deployers</artifactId>
- <version>0.1.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.microcontainer</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>2.0.2.CR5</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx</artifactId>
- <version>2.0.2.CR5</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.ws</groupId>
- <artifactId>jbossws-spi</artifactId>
- </dependency>
-
- <dependency>
- <groupId>quartz</groupId>
- <artifactId>quartz</artifactId>
- <version>1.6.0</version>
- </dependency>
-
- <dependency>
- <groupId>trove</groupId>
- <artifactId>trove</artifactId>
- </dependency>
-
- </dependencies>
-</project>
Copied: projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml (from rev 78493, projects/ejb3/trunk/core/pom.xml)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/pom.xml 2008-09-12 17:04:49 UTC (rev 78494)
@@ -0,0 +1,583 @@
+<!--
+ 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.0-Beta1</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.0.0-Beta3</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.jboss-as>5.0.0.Beta4</version.org.jboss.jboss-as>
+ </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</artifactId>
+ <version>3.2.6.ga</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.3.1.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.3.2.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.metadata</groupId>
+ <artifactId>jboss-metadata</artifactId>
+ <exclusions>
+ <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</groupId>
+ <artifactId>jboss-transaction-spi</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <version>2.0.0.Beta13</version>
+ </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>
+ </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>2.1.1.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>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.cluster</groupId>
+ <artifactId>jboss-ha-client</artifactId>
+ <version>1.1.0.CR4</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.0.CR4</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-async</artifactId>
+ <version>0.1.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-cache</artifactId>
+ <version>0.13.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-common</artifactId>
+ <version>0.1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-security</artifactId>
+ <version>1.0.0-Beta1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-ext-api</artifactId>
+ <version>0.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-ext-api-impl</artifactId>
+ <version>0.4.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-interceptors</artifactId>
+ <version>1.0.0-Beta1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-metadata</artifactId>
+ <version>0.13.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-proxy</artifactId>
+ <version>0.1.5</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-proxy-clustered</artifactId>
+ <version>0.1.3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-test</artifactId>
+ <version>0.1.3</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-transactions</artifactId>
+ <version>0.13.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.embedded</groupId>
+ <artifactId>jboss-embedded</artifactId>
+ <version>beta3</version>
+ <scope>test</scope>
+ </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>
+ </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.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.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>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-metadata</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-security</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.jpa</groupId>
+ <artifactId>jboss-jpa-deployers</artifactId>
+ <version>0.1.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.microcontainer</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>2.0.2.CR5</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jbosssx</artifactId>
+ <version>2.0.2.CR5</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ws</groupId>
+ <artifactId>jbossws-spi</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>quartz</groupId>
+ <artifactId>quartz</artifactId>
+ <version>1.6.0</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.0.0-Beta3</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3</developerConnection>
+ <url>http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3</url>
+ </scm>
+</project>
Deleted: projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2008-09-12 15:14:03 UTC (rev 78490)
+++ projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2008-09-12 17:04:49 UTC (rev 78494)
@@ -1,785 +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.stateless;
-
-
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Set;
-
-import javax.ejb.EJBContext;
-import javax.ejb.EJBException;
-import javax.ejb.EJBObject;
-import javax.ejb.Handle;
-import javax.ejb.Timer;
-import javax.ejb.TimerService;
-import javax.naming.NamingException;
-
-import org.jboss.aop.Advisor;
-import org.jboss.aop.Domain;
-import org.jboss.aop.MethodInfo;
-import org.jboss.aop.joinpoint.Invocation;
-import org.jboss.aop.joinpoint.InvocationResponse;
-import org.jboss.aop.joinpoint.MethodInvocation;
-import org.jboss.aspects.asynch.FutureHolder;
-import org.jboss.ejb.AllowedOperationsAssociation;
-import org.jboss.ejb.AllowedOperationsFlags;
-import org.jboss.ejb3.BeanContext;
-import org.jboss.ejb3.BeanContextLifecycleCallback;
-import org.jboss.ejb3.EJBContainerInvocation;
-import org.jboss.ejb3.Ejb3Deployment;
-import org.jboss.ejb3.annotation.Clustered;
-import org.jboss.ejb3.annotation.LocalBinding;
-import org.jboss.ejb3.annotation.RemoteBinding;
-import org.jboss.ejb3.common.lang.SerializableMethod;
-import org.jboss.ejb3.proxy.ProxyUtils;
-import org.jboss.ejb3.proxy.clustered.objectstore.ClusteredObjectStoreBindings;
-import org.jboss.ejb3.proxy.container.InvokableContext;
-import org.jboss.ejb3.proxy.factory.ProxyFactoryHelper;
-import org.jboss.ejb3.proxy.factory.SessionProxyFactory;
-import org.jboss.ejb3.proxy.factory.stateless.BaseStatelessRemoteProxyFactory;
-import org.jboss.ejb3.proxy.factory.stateless.StatelessClusterProxyFactory;
-import org.jboss.ejb3.proxy.factory.stateless.StatelessLocalProxyFactory;
-import org.jboss.ejb3.proxy.factory.stateless.StatelessRemoteProxyFactory;
-import org.jboss.ejb3.proxy.objectstore.ObjectStoreBindings;
-import org.jboss.ejb3.proxy.remoting.SessionSpecRemotingMetadata;
-import org.jboss.ejb3.session.SessionContainer;
-import org.jboss.ejb3.session.SessionSpecContainer;
-import org.jboss.ejb3.stateful.StatefulRemoteInvocation;
-import org.jboss.ejb3.timerservice.TimedObjectInvoker;
-import org.jboss.ejb3.timerservice.TimerServiceFactory;
-import org.jboss.injection.WebServiceContextProxy;
-import org.jboss.injection.lang.reflect.BeanProperty;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
-import org.jboss.proxy.ejb.handle.HomeHandleImpl;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
-import org.jboss.wsf.spi.invocation.ExtensibleWebServiceContext;
-import org.jboss.wsf.spi.invocation.InvocationType;
-import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
-import org.jboss.wsf.spi.invocation.integration.InvocationContextCallback;
-import org.jboss.wsf.spi.invocation.integration.ServiceEndpointContainer;
-
-
-/**
- * Comment
- *
- * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
- * @version $Revision$
- */
-public class StatelessContainer extends SessionSpecContainer
- implements TimedObjectInvoker, ServiceEndpointContainer, InvokableContext
-{
- private static final Logger log = Logger.getLogger(StatelessContainer.class);
-
- protected TimerService timerService;
- private Method timeout;
- private StatelessDelegateWrapper mbean = new StatelessDelegateWrapper(this);
-
- public StatelessContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
- Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData) throws ClassNotFoundException
- {
- super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData);
-
- initializeTimeout();
- }
-
- @Override
- public BeanContext<?> createBeanContext()
- {
- return new StatelessBeanContext(this, construct());
- }
-
- @Override
- protected StatelessLocalProxyFactory getProxyFactory(LocalBinding binding)
- {
- StatelessLocalProxyFactory factory = (StatelessLocalProxyFactory) this.proxyDeployer.getProxyFactory(binding);
-
- if (factory == null)
- {
- factory = new StatelessLocalProxyFactory(this, binding);
- try
- {
- factory.init();
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
-
- return factory;
- }
-
- @Override
- protected BaseStatelessRemoteProxyFactory getProxyFactory(RemoteBinding binding)
- {
- BaseStatelessRemoteProxyFactory factory = (BaseStatelessRemoteProxyFactory) this.proxyDeployer
- .getProxyFactory(binding);
-
- if (factory == null)
- {
- Clustered clustered = getAnnotation(Clustered.class);
- if (clustered != null)
- factory = new StatelessClusterProxyFactory(this, binding, clustered);
- else
- factory = new StatelessRemoteProxyFactory(this, binding);
-
- try
- {
- factory.init();
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
-
- return factory;
- }
-
- /**
- * Create a local proxy (EJBLocalObject) for an enterprise bean identified by id, with
- * the specified LocalBinding
- *
- * @param id
- * @return
- * @throws Exception
- */
- @Override
- public Object createProxyLocalEjb21(LocalBinding binding, String businessInterfaceType) throws Exception
- {
- StatelessLocalProxyFactory proxyFactory = this.getProxyFactory(binding);
- return proxyFactory.createProxyEjb21(businessInterfaceType);
- }
-
- @Override
- public Object createProxyRemoteEjb21(RemoteBinding binding, String businessInterfaceType) throws Exception
- {
- BaseStatelessRemoteProxyFactory proxyFactory = this.getProxyFactory(binding);
- return proxyFactory.createProxyEjb21(businessInterfaceType);
- }
-
- public Serializable createSession(Class<?> initTypes[], Object initArgs[])
- {
- if((initTypes != null && initTypes.length > 0) || (initArgs != null && initArgs.length > 0))
- throw new IllegalArgumentException("stateless bean create method must take no arguments (EJB3 4.5)");
- // a stateless bean has no sessions
- // TODO: pool stuff
- return null;
- }
-
- public boolean isClustered()
- {
- return isAnnotationPresent(Clustered.class);
- }
-
- public Object getMBean()
- {
- return mbean;
- }
-
- private void initializeTimeout()
- {
- JBossSessionBeanMetaData metaData = getMetaData();
- NamedMethodMetaData timeoutMethodMetaData = null;
- if(metaData != null)
- timeoutMethodMetaData = metaData.getTimeoutMethod();
- this.timeout = getTimeoutCallback(timeoutMethodMetaData, getBeanClass());
- }
-
- @Override
- protected void lockedStart() throws Exception
- {
- try
- {
- super.lockedStart();
-
- timerService = TimerServiceFactory.getInstance().createTimerService(this, this);
-
- TimerServiceFactory.getInstance().restoreTimerService(timerService);
- }
- catch (Exception e)
- {
- try
- {
- this.lockedStop();
- }
- catch (Exception ignore)
- {
- log.debug("Failed to cleanup after start() failure", ignore);
- }
- throw e;
- }
- }
-
- @Override
- protected void lockedStop() throws Exception
- {
- if (timerService != null)
- {
- TimerServiceFactory.getInstance().removeTimerService(timerService);
- timerService = null;
- }
-
- super.lockedStop();
- }
-
- public TimerService getTimerService()
- {
- return timerService;
- }
-
- public TimerService getTimerService(Object pKey)
- {
- assert timerService != null : "Timer Service not yet initialized";
- return timerService;
- }
-
- public void callTimeout(Timer timer) throws Exception
- {
- if (timeout == null) throw new EJBException("No method has been annotated with @Timeout");
- Object[] args = {timer};
- ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
- try
- {
- AllowedOperationsAssociation.pushInMethodFlag(AllowedOperationsFlags.IN_EJB_TIMEOUT);
- try
- {
- MethodInfo info = super.getMethodInfo(timeout);
- EJBContainerInvocation nextInvocation = new EJBContainerInvocation(info);
- nextInvocation.setAdvisor(getAdvisor());
- nextInvocation.setArguments(args);
- nextInvocation.invokeNext();
- }
- catch (Throwable throwable)
- {
- if (throwable instanceof Exception) throw (Exception) throwable;
- throw new RuntimeException(throwable);
- }
- finally
- {
- AllowedOperationsAssociation.popInMethodFlag();
- }
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(oldLoader);
- }
- }
-
- /**
- * Performs a synchronous local invocation
- */
- public Object localInvoke(Method method, Object[] args) throws Throwable
- {
- return localInvoke(method, args, null);
- }
-
- /**
- * Performs a synchronous or asynchronous local invocation
- *
- * @param provider If null a synchronous invocation, otherwise an asynchronous
- */
- public Object localInvoke(Method method, Object[] args, FutureHolder provider) throws Throwable
- {
- return localInvoke(method, args, provider, null);
- }
-
- public Object localInvoke(Object id, Method method, Object[] args, FutureHolder provider) throws Throwable
- {
- return localInvoke(method, args, provider);
- }
-
- public Object localInvoke(Method method, Object[] args, FutureHolder provider, BeanContextLifecycleCallback<StatelessBeanContext> callback) throws Throwable
- {
- long start = System.currentTimeMillis();
-
- ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
- try
- {
- MethodInfo info = getMethodInfo(method);
- Method unadvisedMethod = info.getUnadvisedMethod();
-
- try
- {
- invokeStats.callIn();
-
- //invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
-
- if (unadvisedMethod != null && isHomeMethod(unadvisedMethod))
- {
- return localHomeInvoke(unadvisedMethod, args);
- }
-
- EJBContainerInvocation<StatelessContainer, StatelessBeanContext> nextInvocation = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
- nextInvocation.setAdvisor(getAdvisor());
- nextInvocation.setArguments(args);
- nextInvocation.setContextCallback(callback);
-
- ProxyUtils.addLocalAsynchronousInfo(nextInvocation, provider);
- return nextInvocation.invokeNext();
- }
- finally
- {
- if (unadvisedMethod != null)
- {
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- invokeStats.updateStats(unadvisedMethod, elapsed);
- }
-
- invokeStats.callOut();
-
- //invokedMethod.pop();
- }
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(oldLoader);
- }
- }
-
- /**
- * Remote Invocation entry point, as delegated from
- * ClassProxyHack (Remoting Dispatcher)
- */
- public InvocationResponse dynamicInvoke(Invocation invocation) throws Throwable
- {
- /*
- * Initialize
- */
-
- // Mark the start time
- long start = System.currentTimeMillis();
-
- // Create a pointer to a new Invocation
- EJBContainerInvocation newSi = null;
-
- // Create a pointer to the response we'll return
- InvocationResponse response = null;
-
-
- /*
- * Setup Environment (Stack/Thread)
- */
-
- // Hold a reference to the existing TCL
- ClassLoader originalLoader = Thread.currentThread().getContextClassLoader();
-
- // Set the Container's CL as TCL, required to unmarshall methods from the bean impl class
- Thread.currentThread().setContextClassLoader(this.getClassloader());
-
- // Push the ENC onto the stack
- pushEnc();
-
- try
- {
-
- /*
- * Obtain the target method (unmarshall from invocation)
- */
-
- // Cast
- assert invocation instanceof StatefulRemoteInvocation : SessionContainer.class.getName()
- + ".dynamicInoke supports only " + StatefulRemoteInvocation.class.getSimpleName()
- + ", but has been passed: " + invocation;
- MethodInvocation si = (MethodInvocation) invocation;
-
- // Get the method hash
- long methodHash = si.getMethodHash();
- log.debug("Received dynamic invocation for method with hash: " + methodHash);
-
- // Get the Method via MethodInfo from the Advisor
- Advisor advisor = this.getAdvisor();
- MethodInfo info = advisor.getMethodInfo(methodHash);
- Method unadvisedMethod = info.getMethod();
- SerializableMethod unadvisedMethodSerializable = new SerializableMethod(unadvisedMethod);
-
- try
- {
- invokeStats.callIn();
-
- /*
- * Set the invoked method
- */
- //TODO Remove when CurrentInvocation is ironed out
-
- // Get the invoked method from invocation metadata
- Object objInvokedMethod = si.getMetaData(SessionSpecRemotingMetadata.TAG_SESSION_INVOCATION,SessionSpecRemotingMetadata.KEY_INVOKED_METHOD);
- assert objInvokedMethod !=null : "Invoked Method must be set on invocation metadata";
- assert objInvokedMethod instanceof SerializableMethod : "Invoked Method set on invocation metadata is not of type " + SerializableMethod.class.getName() + ", instead: " + objInvokedMethod;
- SerializableMethod invokedMethod = (SerializableMethod)objInvokedMethod;
-
- // Set onto stack
- SessionSpecContainer.invokedMethod.push(invokedMethod);
-
- //invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
- Map responseContext = null;
- Object rtn = null;
- if (unadvisedMethod != null && isHomeMethod(unadvisedMethodSerializable))
- {
- rtn = invokeHomeMethod(info, si);
- }
- else if (info != null && unadvisedMethod != null && isEjbObjectMethod(unadvisedMethodSerializable))
- {
- rtn = invokeEJBObjectMethod(info, si);
- }
- else
- {
-
- newSi = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
- newSi.setArguments(si.getArguments());
- newSi.setMetaData(si.getMetaData());
- //newSi.setAdvisor(getAdvisor());
-
- try
- {
- rtn = newSi.invokeNext();
- responseContext = newSi.getResponseContextInfo();
- }
- catch (Throwable throwable)
- {
- responseContext = newSi.getResponseContextInfo();
- return marshallException(invocation, throwable, responseContext);
- }
- finally
- {
- SessionSpecContainer.invokedMethod.pop();
- }
- }
-
- response = marshallResponse(invocation, rtn, responseContext);
- return response;
- }
- finally
- {
- if (unadvisedMethod != null)
- {
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- invokeStats.updateStats(unadvisedMethod, elapsed);
- }
-
- invokeStats.callOut();
-
- //invokedMethod.pop();
- }
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(originalLoader);
- }
- }
-
- @Deprecated
- public InvocationResponse dynamicInvoke(Object target, Invocation invocation) throws Throwable
- {
- long start = System.currentTimeMillis();
-
- ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
- try
- {
- Thread.currentThread().setContextClassLoader(classloader);
- MethodInvocation si = (MethodInvocation) invocation;
- MethodInfo info = getAdvisor().getMethodInfo(si.getMethodHash());
- if (info == null)
- {
- throw new RuntimeException("Could not resolve beanClass method from proxy call " + invocation);
- }
-
- Method unadvisedMethod = info.getUnadvisedMethod();
- try
- {
- invokeStats.callIn();
-
- //invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
- Map responseContext = null;
- Object rtn = null;
- if (unadvisedMethod != null && isHomeMethod(unadvisedMethod))
- {
- rtn = invokeHomeMethod(info, si);
- }
- else if (info != null && unadvisedMethod != null && isEJBObjectMethod(unadvisedMethod))
- {
- rtn = invokeEJBObjectMethod(info, si);
- }
- else
- {
-
- EJBContainerInvocation newSi = null;
-
- newSi = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
- newSi.setArguments(si.getArguments());
- newSi.setMetaData(si.getMetaData());
- newSi.setAdvisor(getAdvisor());
- try
- {
- rtn = newSi.invokeNext();
- responseContext = newSi.getResponseContextInfo();
- }
- catch (Throwable throwable)
- {
- responseContext = newSi.getResponseContextInfo();
- return marshallException(invocation, throwable, responseContext);
- }
- }
-
- InvocationResponse response = marshallResponse(invocation, rtn, responseContext);
- return response;
- }
- finally
- {
- if (unadvisedMethod != null)
- {
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- invokeStats.updateStats(unadvisedMethod, elapsed);
- }
-
- invokeStats.callOut();
-
- //invokedMethod.pop();
- }
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(oldLoader);
- }
- }
-
-
- protected Object invokeEJBObjectMethod(MethodInfo info, MethodInvocation invocation) throws Throwable
- {
- Method unadvisedMethod = info.getUnadvisedMethod();
- if (unadvisedMethod.getName().equals("getHandle"))
- {
-
- StatelessHandleRemoteImpl handle = null;
- RemoteBinding binding = this.getAnnotation(RemoteBinding.class);
- BaseStatelessRemoteProxyFactory factory = this.getProxyFactory(binding);
- handle = factory.createHandle();
-
- return handle;
- }
- else if (unadvisedMethod.getName().equals("remove"))
- {
- return null;
- }
- else if (unadvisedMethod.getName().equals("getEJBHome"))
- {
- HomeHandleImpl homeHandle = null;
-
- RemoteBinding remoteBindingAnnotation = this.getAnnotation(RemoteBinding.class);
- if (remoteBindingAnnotation != null)
- homeHandle = new HomeHandleImpl(ProxyFactoryHelper.getHomeJndiName(this));
-
- return homeHandle.getEJBHome();
- }
- else if (unadvisedMethod.getName().equals("getPrimaryKey"))
- {
- return null;
- }
- else if (unadvisedMethod.getName().equals("isIdentical"))
- {
- return false;
- }
- else
- {
- return null;
- }
- }
-
- public Object localHomeInvoke(Method method, Object[] args) throws Throwable
- {
- if (method.getName().equals("create"))
- {
- LocalBinding binding = this.getAnnotation(LocalBinding.class);
-
- // FIXME: why this binding? Could be another one. (there is only one local binding, but that's another bug)
-
- StatelessLocalProxyFactory factory = this.getProxyFactory(binding);
-
- Object proxy = factory.createProxyEjb21(method.getReturnType().getName());
-
- return proxy;
- }
- else
- // remove
- {
- return null;
- }
- }
-
- protected Object invokeHomeMethod(MethodInfo info, MethodInvocation invocation) throws Throwable
- {
- Method unadvisedMethod = info.getUnadvisedMethod();
- if (unadvisedMethod.getName().equals("create"))
- {
- RemoteBinding binding = this.getRemoteBinding();
-
- BaseStatelessRemoteProxyFactory factory = this.getProxyFactory(binding);
-
- return factory.createProxyEjb21(unadvisedMethod.getReturnType().getName());
- }
- else
- // remove
- {
- return null;
- }
- }
-
- @Override
- public Object getBusinessObject(BeanContext ctx, Class intf)
- {
- assert intf != null : "intf is null";
-
- try
- {
-
- /*
- * Get all business interfaces
- */
- Set<String> businessInterfaceNames = new HashSet<String>();
- JBossSessionBeanMetaData smd= (JBossSessionBeanMetaData)this.getXml();
- businessInterfaceNames.addAll(smd.getBusinessRemotes());
- businessInterfaceNames.addAll(smd.getBusinessLocals());
-
- String interfaceName = intf.getName();
-
- if (!businessInterfaceNames.contains(interfaceName))
- throw new IllegalStateException("Cannot find BusinessObject for interface: " + interfaceName);
-
- String jndiName = this.getXml().determineResolvedJndiName(interfaceName);
- return getInitialContext().lookup(jndiName);
- }
- catch (NamingException e)
- {
- throw new RuntimeException("failed to invoke getBusinessObject", e);
- }
- }
-
- protected void removeHandle(Handle handle)
- {
- throw new RuntimeException("NYI");
- }
-
- /**
- * WS integration
- * @return
- */
- public Class getServiceImplementationClass()
- {
- return this.getBeanClass();
- }
-
- /**
- * WS Integration
- * @param method
- * @param args
- * @param invCtxCallback
- * @return
- * @throws Throwable
- */
- public Object invokeEndpoint(Method method, Object[] args, InvocationContextCallback invCtxCallback) throws Throwable
- {
- // JAX-RPC message context
- javax.xml.rpc.handler.MessageContext jaxrpcContext = invCtxCallback.get(javax.xml.rpc.handler.MessageContext.class);
-
- // JAX-WS webservice context
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- WebServiceContextFactory contextFactory = spiProvider.getSPI(WebServiceContextFactory.class);
- ExtensibleWebServiceContext jaxwsContext = contextFactory.newWebServiceContext(
- InvocationType.JAXWS_EJB3,
- invCtxCallback.get(javax.xml.ws.handler.MessageContext.class)
- );
-
- // ThreadLocal association
- WebServiceContextProxy.associateMessageContext(jaxwsContext);
-
- // EJB3 Injection Callbacks
- WSCallbackImpl ejb3Callback = new WSCallbackImpl( jaxrpcContext, jaxwsContext );
-
- // Actual invocation
- return this.localInvoke(method, args, null, ejb3Callback);
- }
-
- public String getContainerName()
- {
- String name = this.getObjectName() != null ? this.getObjectName().getCanonicalName() : null;
- return name;
- }
-
- /**
- * Returns the name under which the JNDI Registrar for this container is bound
- *
- * @return
- */
- protected String getJndiRegistrarBindName()
- {
- return isClustered() ? ClusteredObjectStoreBindings.CLUSTERED_OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SLSB
- : ObjectStoreBindings.OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SLSB;
- }
-
- static class WSCallbackImpl implements BeanContextLifecycleCallback
- {
- private ExtensibleWebServiceContext jaxwsContext;
- private javax.xml.rpc.handler.MessageContext jaxrpcMessageContext;
-
- public WSCallbackImpl(javax.xml.rpc.handler.MessageContext jaxrpc, ExtensibleWebServiceContext jaxws)
- {
- jaxrpcMessageContext = jaxrpc;
- jaxwsContext = jaxws;
- }
-
- public void attached(BeanContext beanCtx)
- {
- // JAX-RPC MessageContext
- StatelessBeanContext sbc = (StatelessBeanContext)beanCtx;
- sbc.setMessageContextJAXRPC(jaxrpcMessageContext);
-
- // JAX-WS MessageContext
- BeanProperty beanProp = sbc.getWebServiceContextProperty();
- if (beanProp != null)
- {
- EJBContext ejbCtx = beanCtx.getEJBContext();
- jaxwsContext.addAttachment(EJBContext.class, ejbCtx);
- beanProp.set(beanCtx.getInstance(), jaxwsContext);
- }
- }
-
- public void released(BeanContext beanCtx)
- {
- StatelessBeanContext sbc = (StatelessBeanContext)beanCtx;
- sbc.setMessageContextJAXRPC(null);
-
- BeanProperty beanProp = sbc.getWebServiceContextProperty();
- if (beanProp != null)
- beanProp.set(beanCtx.getInstance(), null);
- }
- }
-}
Copied: projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java (from rev 78492, projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java)
===================================================================
--- projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java (rev 0)
+++ projects/ejb3/tags/jboss-ejb3-core-1.0.0-Beta3/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2008-09-12 17:04:49 UTC (rev 78494)
@@ -0,0 +1,786 @@
+/*
+ * 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.stateless;
+
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
+
+import javax.ejb.EJBContext;
+import javax.ejb.EJBException;
+import javax.ejb.EJBObject;
+import javax.ejb.Handle;
+import javax.ejb.Timer;
+import javax.ejb.TimerService;
+import javax.naming.NamingException;
+
+import org.jboss.aop.Advisor;
+import org.jboss.aop.Domain;
+import org.jboss.aop.MethodInfo;
+import org.jboss.aop.joinpoint.Invocation;
+import org.jboss.aop.joinpoint.InvocationResponse;
+import org.jboss.aop.joinpoint.MethodInvocation;
+import org.jboss.aspects.asynch.FutureHolder;
+import org.jboss.ejb.AllowedOperationsAssociation;
+import org.jboss.ejb.AllowedOperationsFlags;
+import org.jboss.ejb3.BeanContext;
+import org.jboss.ejb3.BeanContextLifecycleCallback;
+import org.jboss.ejb3.EJBContainerInvocation;
+import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.ejb3.annotation.Clustered;
+import org.jboss.ejb3.annotation.LocalBinding;
+import org.jboss.ejb3.annotation.RemoteBinding;
+import org.jboss.ejb3.common.lang.SerializableMethod;
+import org.jboss.ejb3.proxy.ProxyUtils;
+import org.jboss.ejb3.proxy.clustered.objectstore.ClusteredObjectStoreBindings;
+import org.jboss.ejb3.proxy.container.InvokableContext;
+import org.jboss.ejb3.proxy.factory.ProxyFactoryHelper;
+import org.jboss.ejb3.proxy.factory.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.stateless.BaseStatelessRemoteProxyFactory;
+import org.jboss.ejb3.proxy.factory.stateless.StatelessClusterProxyFactory;
+import org.jboss.ejb3.proxy.factory.stateless.StatelessLocalProxyFactory;
+import org.jboss.ejb3.proxy.factory.stateless.StatelessRemoteProxyFactory;
+import org.jboss.ejb3.proxy.objectstore.ObjectStoreBindings;
+import org.jboss.ejb3.proxy.remoting.SessionSpecRemotingMetadata;
+import org.jboss.ejb3.session.SessionContainer;
+import org.jboss.ejb3.session.SessionSpecContainer;
+import org.jboss.ejb3.stateful.StatefulRemoteInvocation;
+import org.jboss.ejb3.timerservice.TimedObjectInvoker;
+import org.jboss.ejb3.timerservice.TimerServiceFactory;
+import org.jboss.injection.WebServiceContextProxy;
+import org.jboss.injection.lang.reflect.BeanProperty;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
+import org.jboss.proxy.ejb.handle.HomeHandleImpl;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.invocation.ExtensibleWebServiceContext;
+import org.jboss.wsf.spi.invocation.InvocationType;
+import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
+import org.jboss.wsf.spi.invocation.integration.InvocationContextCallback;
+import org.jboss.wsf.spi.invocation.integration.ServiceEndpointContainer;
+
+
+/**
+ * Comment
+ *
+ * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+ * @version $Revision$
+ */
+public class StatelessContainer extends SessionSpecContainer
+ implements TimedObjectInvoker, ServiceEndpointContainer, InvokableContext
+{
+ private static final Logger log = Logger.getLogger(StatelessContainer.class);
+
+ protected TimerService timerService;
+ private Method timeout;
+ private StatelessDelegateWrapper mbean = new StatelessDelegateWrapper(this);
+
+ public StatelessContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
+ Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData) throws ClassNotFoundException
+ {
+ super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData);
+
+ initializeTimeout();
+ }
+
+ @Override
+ public BeanContext<?> createBeanContext()
+ {
+ return new StatelessBeanContext(this, construct());
+ }
+
+ @Override
+ protected StatelessLocalProxyFactory getProxyFactory(LocalBinding binding)
+ {
+ StatelessLocalProxyFactory factory = (StatelessLocalProxyFactory) this.proxyDeployer.getProxyFactory(binding);
+
+ if (factory == null)
+ {
+ factory = new StatelessLocalProxyFactory(this, binding);
+ try
+ {
+ factory.init();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+ return factory;
+ }
+
+ @Override
+ protected BaseStatelessRemoteProxyFactory getProxyFactory(RemoteBinding binding)
+ {
+ BaseStatelessRemoteProxyFactory factory = (BaseStatelessRemoteProxyFactory) this.proxyDeployer
+ .getProxyFactory(binding);
+
+ if (factory == null)
+ {
+ Clustered clustered = getAnnotation(Clustered.class);
+ if (clustered != null)
+ factory = new StatelessClusterProxyFactory(this, binding, clustered);
+ else
+ factory = new StatelessRemoteProxyFactory(this, binding);
+
+ try
+ {
+ factory.init();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+ return factory;
+ }
+
+ /**
+ * Create a local proxy (EJBLocalObject) for an enterprise bean identified by id, with
+ * the specified LocalBinding
+ *
+ * @param id
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public Object createProxyLocalEjb21(LocalBinding binding, String businessInterfaceType) throws Exception
+ {
+ StatelessLocalProxyFactory proxyFactory = this.getProxyFactory(binding);
+ return proxyFactory.createProxyEjb21(businessInterfaceType);
+ }
+
+ @Override
+ public Object createProxyRemoteEjb21(RemoteBinding binding, String businessInterfaceType) throws Exception
+ {
+ BaseStatelessRemoteProxyFactory proxyFactory = this.getProxyFactory(binding);
+ return proxyFactory.createProxyEjb21(businessInterfaceType);
+ }
+
+ public Serializable createSession(Class<?> initTypes[], Object initArgs[])
+ {
+ if((initTypes != null && initTypes.length > 0) || (initArgs != null && initArgs.length > 0))
+ throw new IllegalArgumentException("stateless bean create method must take no arguments (EJB3 4.5)");
+ // a stateless bean has no sessions
+ // TODO: pool stuff
+ return null;
+ }
+
+ public boolean isClustered()
+ {
+ return isAnnotationPresent(Clustered.class);
+ }
+
+ public Object getMBean()
+ {
+ return mbean;
+ }
+
+ private void initializeTimeout()
+ {
+ JBossSessionBeanMetaData metaData = getMetaData();
+ NamedMethodMetaData timeoutMethodMetaData = null;
+ if(metaData != null)
+ timeoutMethodMetaData = metaData.getTimeoutMethod();
+ this.timeout = getTimeoutCallback(timeoutMethodMetaData, getBeanClass());
+ }
+
+ @Override
+ protected void lockedStart() throws Exception
+ {
+ try
+ {
+ super.lockedStart();
+
+ timerService = TimerServiceFactory.getInstance().createTimerService(this, this);
+
+ TimerServiceFactory.getInstance().restoreTimerService(timerService);
+ }
+ catch (Exception e)
+ {
+ try
+ {
+ this.lockedStop();
+ }
+ catch (Exception ignore)
+ {
+ log.debug("Failed to cleanup after start() failure", ignore);
+ }
+ throw e;
+ }
+ }
+
+ @Override
+ protected void lockedStop() throws Exception
+ {
+ if (timerService != null)
+ {
+ TimerServiceFactory.getInstance().removeTimerService(timerService);
+ timerService = null;
+ }
+
+ super.lockedStop();
+ }
+
+ public TimerService getTimerService()
+ {
+ return timerService;
+ }
+
+ public TimerService getTimerService(Object pKey)
+ {
+ assert timerService != null : "Timer Service not yet initialized";
+ return timerService;
+ }
+
+ public void callTimeout(Timer timer) throws Exception
+ {
+ if (timeout == null) throw new EJBException("No method has been annotated with @Timeout");
+ Object[] args = {timer};
+ ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ AllowedOperationsAssociation.pushInMethodFlag(AllowedOperationsFlags.IN_EJB_TIMEOUT);
+ try
+ {
+ MethodInfo info = super.getMethodInfo(timeout);
+ EJBContainerInvocation nextInvocation = new EJBContainerInvocation(info);
+ nextInvocation.setAdvisor(getAdvisor());
+ nextInvocation.setArguments(args);
+ nextInvocation.invokeNext();
+ }
+ catch (Throwable throwable)
+ {
+ if (throwable instanceof Exception) throw (Exception) throwable;
+ throw new RuntimeException(throwable);
+ }
+ finally
+ {
+ AllowedOperationsAssociation.popInMethodFlag();
+ }
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(oldLoader);
+ }
+ }
+
+ /**
+ * Performs a synchronous local invocation
+ */
+ public Object localInvoke(Method method, Object[] args) throws Throwable
+ {
+ return localInvoke(method, args, null);
+ }
+
+ /**
+ * Performs a synchronous or asynchronous local invocation
+ *
+ * @param provider If null a synchronous invocation, otherwise an asynchronous
+ */
+ public Object localInvoke(Method method, Object[] args, FutureHolder provider) throws Throwable
+ {
+ return localInvoke(method, args, provider, null);
+ }
+
+ public Object localInvoke(Object id, Method method, Object[] args, FutureHolder provider) throws Throwable
+ {
+ return localInvoke(method, args, provider);
+ }
+
+ public Object localInvoke(Method method, Object[] args, FutureHolder provider, BeanContextLifecycleCallback<StatelessBeanContext> callback) throws Throwable
+ {
+ long start = System.currentTimeMillis();
+
+ ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ MethodInfo info = getMethodInfo(method);
+ Method unadvisedMethod = info.getUnadvisedMethod();
+
+ try
+ {
+ invokeStats.callIn();
+
+ //invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
+
+ if (unadvisedMethod != null && isHomeMethod(unadvisedMethod))
+ {
+ return localHomeInvoke(unadvisedMethod, args);
+ }
+
+ EJBContainerInvocation<StatelessContainer, StatelessBeanContext> nextInvocation = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
+ nextInvocation.setAdvisor(getAdvisor());
+ nextInvocation.setArguments(args);
+ nextInvocation.setContextCallback(callback);
+
+ ProxyUtils.addLocalAsynchronousInfo(nextInvocation, provider);
+ return nextInvocation.invokeNext();
+ }
+ finally
+ {
+ if (unadvisedMethod != null)
+ {
+ long end = System.currentTimeMillis();
+ long elapsed = end - start;
+ invokeStats.updateStats(unadvisedMethod, elapsed);
+ }
+
+ invokeStats.callOut();
+
+ //invokedMethod.pop();
+ }
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(oldLoader);
+ }
+ }
+
+ /**
+ * Remote Invocation entry point, as delegated from
+ * ClassProxyHack (Remoting Dispatcher)
+ */
+ public InvocationResponse dynamicInvoke(Invocation invocation) throws Throwable
+ {
+ /*
+ * Initialize
+ */
+
+ // Mark the start time
+ long start = System.currentTimeMillis();
+
+ // Create a pointer to a new Invocation
+ EJBContainerInvocation newSi = null;
+
+ // Create a pointer to the response we'll return
+ InvocationResponse response = null;
+
+
+ /*
+ * Setup Environment (Stack/Thread)
+ */
+
+ // Hold a reference to the existing TCL
+ ClassLoader originalLoader = Thread.currentThread().getContextClassLoader();
+
+ // Set the Container's CL as TCL, required to unmarshall methods from the bean impl class
+ Thread.currentThread().setContextClassLoader(this.getClassloader());
+
+ // Push the ENC onto the stack
+ pushEnc();
+
+ try
+ {
+
+ /*
+ * Obtain the target method (unmarshall from invocation)
+ */
+
+ // Cast
+ assert invocation instanceof StatefulRemoteInvocation : SessionContainer.class.getName()
+ + ".dynamicInoke supports only " + StatefulRemoteInvocation.class.getSimpleName()
+ + ", but has been passed: " + invocation;
+ MethodInvocation si = (MethodInvocation) invocation;
+
+ // Get the method hash
+ long methodHash = si.getMethodHash();
+ log.debug("Received dynamic invocation for method with hash: " + methodHash);
+
+ // Get the Method via MethodInfo from the Advisor
+ Advisor advisor = this.getAdvisor();
+ MethodInfo info = advisor.getMethodInfo(methodHash);
+ Method unadvisedMethod = info.getMethod();
+ SerializableMethod unadvisedMethodSerializable = new SerializableMethod(unadvisedMethod);
+
+ try
+ {
+ invokeStats.callIn();
+
+ /*
+ * Set the invoked method
+ */
+ //TODO Remove when CurrentInvocation is ironed out
+
+ // Get the invoked method from invocation metadata
+ Object objInvokedMethod = si.getMetaData(SessionSpecRemotingMetadata.TAG_SESSION_INVOCATION,SessionSpecRemotingMetadata.KEY_INVOKED_METHOD);
+ assert objInvokedMethod !=null : "Invoked Method must be set on invocation metadata";
+ assert objInvokedMethod instanceof SerializableMethod : "Invoked Method set on invocation metadata is not of type " + SerializableMethod.class.getName() + ", instead: " + objInvokedMethod;
+ SerializableMethod invokedMethod = (SerializableMethod)objInvokedMethod;
+
+ // Set onto stack
+ SessionSpecContainer.invokedMethod.push(invokedMethod);
+
+ //invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
+ Map responseContext = null;
+ Object rtn = null;
+ if (unadvisedMethod != null && isHomeMethod(unadvisedMethodSerializable))
+ {
+ rtn = invokeHomeMethod(info, si);
+ }
+ else if (info != null && unadvisedMethod != null && isEjbObjectMethod(unadvisedMethodSerializable))
+ {
+ rtn = invokeEJBObjectMethod(info, si);
+ }
+ else
+ {
+
+ newSi = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
+ newSi.setArguments(si.getArguments());
+ newSi.setMetaData(si.getMetaData());
+ //newSi.setAdvisor(getAdvisor());
+
+ try
+ {
+ rtn = newSi.invokeNext();
+ responseContext = newSi.getResponseContextInfo();
+ }
+ catch (Throwable throwable)
+ {
+ responseContext = newSi.getResponseContextInfo();
+ return marshallException(invocation, throwable, responseContext);
+ }
+ finally
+ {
+ SessionSpecContainer.invokedMethod.pop();
+ }
+ }
+
+ response = marshallResponse(invocation, rtn, responseContext);
+ return response;
+ }
+ finally
+ {
+ if (unadvisedMethod != null)
+ {
+ long end = System.currentTimeMillis();
+ long elapsed = end - start;
+ invokeStats.updateStats(unadvisedMethod, elapsed);
+ }
+
+ invokeStats.callOut();
+
+ //invokedMethod.pop();
+ }
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(originalLoader);
+ this.popEnc();
+ }
+ }
+
+ @Deprecated
+ public InvocationResponse dynamicInvoke(Object target, Invocation invocation) throws Throwable
+ {
+ long start = System.currentTimeMillis();
+
+ ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ Thread.currentThread().setContextClassLoader(classloader);
+ MethodInvocation si = (MethodInvocation) invocation;
+ MethodInfo info = getAdvisor().getMethodInfo(si.getMethodHash());
+ if (info == null)
+ {
+ throw new RuntimeException("Could not resolve beanClass method from proxy call " + invocation);
+ }
+
+ Method unadvisedMethod = info.getUnadvisedMethod();
+ try
+ {
+ invokeStats.callIn();
+
+ //invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
+ Map responseContext = null;
+ Object rtn = null;
+ if (unadvisedMethod != null && isHomeMethod(unadvisedMethod))
+ {
+ rtn = invokeHomeMethod(info, si);
+ }
+ else if (info != null && unadvisedMethod != null && isEJBObjectMethod(unadvisedMethod))
+ {
+ rtn = invokeEJBObjectMethod(info, si);
+ }
+ else
+ {
+
+ EJBContainerInvocation newSi = null;
+
+ newSi = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
+ newSi.setArguments(si.getArguments());
+ newSi.setMetaData(si.getMetaData());
+ newSi.setAdvisor(getAdvisor());
+ try
+ {
+ rtn = newSi.invokeNext();
+ responseContext = newSi.getResponseContextInfo();
+ }
+ catch (Throwable throwable)
+ {
+ responseContext = newSi.getResponseContextInfo();
+ return marshallException(invocation, throwable, responseContext);
+ }
+ }
+
+ InvocationResponse response = marshallResponse(invocation, rtn, responseContext);
+ return response;
+ }
+ finally
+ {
+ if (unadvisedMethod != null)
+ {
+ long end = System.currentTimeMillis();
+ long elapsed = end - start;
+ invokeStats.updateStats(unadvisedMethod, elapsed);
+ }
+
+ invokeStats.callOut();
+
+ //invokedMethod.pop();
+ }
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(oldLoader);
+ }
+ }
+
+
+ protected Object invokeEJBObjectMethod(MethodInfo info, MethodInvocation invocation) throws Throwable
+ {
+ Method unadvisedMethod = info.getUnadvisedMethod();
+ if (unadvisedMethod.getName().equals("getHandle"))
+ {
+
+ StatelessHandleRemoteImpl handle = null;
+ RemoteBinding binding = this.getAnnotation(RemoteBinding.class);
+ BaseStatelessRemoteProxyFactory factory = this.getProxyFactory(binding);
+ handle = factory.createHandle();
+
+ return handle;
+ }
+ else if (unadvisedMethod.getName().equals("remove"))
+ {
+ return null;
+ }
+ else if (unadvisedMethod.getName().equals("getEJBHome"))
+ {
+ HomeHandleImpl homeHandle = null;
+
+ RemoteBinding remoteBindingAnnotation = this.getAnnotation(RemoteBinding.class);
+ if (remoteBindingAnnotation != null)
+ homeHandle = new HomeHandleImpl(ProxyFactoryHelper.getHomeJndiName(this));
+
+ return homeHandle.getEJBHome();
+ }
+ else if (unadvisedMethod.getName().equals("getPrimaryKey"))
+ {
+ return null;
+ }
+ else if (unadvisedMethod.getName().equals("isIdentical"))
+ {
+ return false;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public Object localHomeInvoke(Method method, Object[] args) throws Throwable
+ {
+ if (method.getName().equals("create"))
+ {
+ LocalBinding binding = this.getAnnotation(LocalBinding.class);
+
+ // FIXME: why this binding? Could be another one. (there is only one local binding, but that's another bug)
+
+ StatelessLocalProxyFactory factory = this.getProxyFactory(binding);
+
+ Object proxy = factory.createProxyEjb21(method.getReturnType().getName());
+
+ return proxy;
+ }
+ else
+ // remove
+ {
+ return null;
+ }
+ }
+
+ protected Object invokeHomeMethod(MethodInfo info, MethodInvocation invocation) throws Throwable
+ {
+ Method unadvisedMethod = info.getUnadvisedMethod();
+ if (unadvisedMethod.getName().equals("create"))
+ {
+ RemoteBinding binding = this.getRemoteBinding();
+
+ BaseStatelessRemoteProxyFactory factory = this.getProxyFactory(binding);
+
+ return factory.createProxyEjb21(unadvisedMethod.getReturnType().getName());
+ }
+ else
+ // remove
+ {
+ return null;
+ }
+ }
+
+ @Override
+ public Object getBusinessObject(BeanContext ctx, Class intf)
+ {
+ assert intf != null : "intf is null";
+
+ try
+ {
+
+ /*
+ * Get all business interfaces
+ */
+ Set<String> businessInterfaceNames = new HashSet<String>();
+ JBossSessionBeanMetaData smd= (JBossSessionBeanMetaData)this.getXml();
+ businessInterfaceNames.addAll(smd.getBusinessRemotes());
+ businessInterfaceNames.addAll(smd.getBusinessLocals());
+
+ String interfaceName = intf.getName();
+
+ if (!businessInterfaceNames.contains(interfaceName))
+ throw new IllegalStateException("Cannot find BusinessObject for interface: " + interfaceName);
+
+ String jndiName = this.getXml().determineResolvedJndiName(interfaceName);
+ return getInitialContext().lookup(jndiName);
+ }
+ catch (NamingException e)
+ {
+ throw new RuntimeException("failed to invoke getBusinessObject", e);
+ }
+ }
+
+ protected void removeHandle(Handle handle)
+ {
+ throw new RuntimeException("NYI");
+ }
+
+ /**
+ * WS integration
+ * @return
+ */
+ public Class getServiceImplementationClass()
+ {
+ return this.getBeanClass();
+ }
+
+ /**
+ * WS Integration
+ * @param method
+ * @param args
+ * @param invCtxCallback
+ * @return
+ * @throws Throwable
+ */
+ public Object invokeEndpoint(Method method, Object[] args, InvocationContextCallback invCtxCallback) throws Throwable
+ {
+ // JAX-RPC message context
+ javax.xml.rpc.handler.MessageContext jaxrpcContext = invCtxCallback.get(javax.xml.rpc.handler.MessageContext.class);
+
+ // JAX-WS webservice context
+ SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+ WebServiceContextFactory contextFactory = spiProvider.getSPI(WebServiceContextFactory.class);
+ ExtensibleWebServiceContext jaxwsContext = contextFactory.newWebServiceContext(
+ InvocationType.JAXWS_EJB3,
+ invCtxCallback.get(javax.xml.ws.handler.MessageContext.class)
+ );
+
+ // ThreadLocal association
+ WebServiceContextProxy.associateMessageContext(jaxwsContext);
+
+ // EJB3 Injection Callbacks
+ WSCallbackImpl ejb3Callback = new WSCallbackImpl( jaxrpcContext, jaxwsContext );
+
+ // Actual invocation
+ return this.localInvoke(method, args, null, ejb3Callback);
+ }
+
+ public String getContainerName()
+ {
+ String name = this.getObjectName() != null ? this.getObjectName().getCanonicalName() : null;
+ return name;
+ }
+
+ /**
+ * Returns the name under which the JNDI Registrar for this container is bound
+ *
+ * @return
+ */
+ protected String getJndiRegistrarBindName()
+ {
+ return isClustered() ? ClusteredObjectStoreBindings.CLUSTERED_OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SLSB
+ : ObjectStoreBindings.OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SLSB;
+ }
+
+ static class WSCallbackImpl implements BeanContextLifecycleCallback
+ {
+ private ExtensibleWebServiceContext jaxwsContext;
+ private javax.xml.rpc.handler.MessageContext jaxrpcMessageContext;
+
+ public WSCallbackImpl(javax.xml.rpc.handler.MessageContext jaxrpc, ExtensibleWebServiceContext jaxws)
+ {
+ jaxrpcMessageContext = jaxrpc;
+ jaxwsContext = jaxws;
+ }
+
+ public void attached(BeanContext beanCtx)
+ {
+ // JAX-RPC MessageContext
+ StatelessBeanContext sbc = (StatelessBeanContext)beanCtx;
+ sbc.setMessageContextJAXRPC(jaxrpcMessageContext);
+
+ // JAX-WS MessageContext
+ BeanProperty beanProp = sbc.getWebServiceContextProperty();
+ if (beanProp != null)
+ {
+ EJBContext ejbCtx = beanCtx.getEJBContext();
+ jaxwsContext.addAttachment(EJBContext.class, ejbCtx);
+ beanProp.set(beanCtx.getInstance(), jaxwsContext);
+ }
+ }
+
+ public void released(BeanContext beanCtx)
+ {
+ StatelessBeanContext sbc = (StatelessBeanContext)beanCtx;
+ sbc.setMessageContextJAXRPC(null);
+
+ BeanProperty beanProp = sbc.getWebServiceContextProperty();
+ if (beanProp != null)
+ beanProp.set(beanCtx.getInstance(), null);
+ }
+ }
+}
More information about the jboss-cvs-commits
mailing list