[webbeans-commits] Webbeans SVN: r3764 - examples/trunk/wicket/numberguess.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 11:10:33 -0400 (Wed, 23 Sep 2009)
New Revision: 3764
Modified:
examples/trunk/wicket/numberguess/pom.xml
Log:
move versions to version matrix
Modified: examples/trunk/wicket/numberguess/pom.xml
===================================================================
--- examples/trunk/wicket/numberguess/pom.xml 2009-09-23 15:10:17 UTC (rev 3763)
+++ examples/trunk/wicket/numberguess/pom.xml 2009-09-23 15:10:33 UTC (rev 3764)
@@ -25,51 +25,45 @@
<dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-wicket</artifactId>
- <!-- TODO Move to version matrix -->
- <version>1.0.0.BETA1</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket</artifactId>
- <!-- TODO Move to version matrix -->
- <version>${wicket.version}</version>
</dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <!-- TODO Move to version matrix -->
- <version>1.4.2</version>
- </dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <!-- TODO Move to version matrix -->
- <version>1.2.14</version>
- </dependency>
-
- <dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
- </dependency>
+ </dependency>
+ <!-- JETTY DEPENDENCIES FOR IN IDE TESTING -->
- <!-- JETTY DEPENDENCIES FOR TESTING -->
-
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
- <!-- TODO Move to version matrix -->
- <version>${jetty.version}</version>
- <scope>provided</scope>
+ <scope>test</scope>
</dependency>
+
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<finalName>webbeans-numberguess-wicket</finalName>
+
+ <!-- Override the resource filtering to support storing html alongside classes -->
<resources>
<resource>
<filtering>false</filtering>
@@ -98,37 +92,31 @@
</excludes>
</testResource>
</testResources>
+
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
- <!-- TODO Move to version matrix -->
- <version>${jetty.version}</version>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <webResources>
- <resource>
- <directory>src/main/webapp/WEB-INF</directory>
- <targetPath>WEB-INF</targetPath>
- <includes>
- <include>**/beans.xml</include>
- <include>**/web.xml</include>
- </includes>
- </resource>
- </webResources>
- </configuration>
- </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp/WEB-INF</directory>
+ <targetPath>WEB-INF</targetPath>
+ <includes>
+ <include>**/beans.xml</include>
+ <include>**/web.xml</include>
+ </includes>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
</plugins>
</build>
- <properties>
- <wicket.version>1.3.5.jboss1</wicket.version>
- <jetty.version>6.1.16</jetty.version>
- </properties>
-
<profiles>
<profile>
<id>jetty</id>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3763 - ri/trunk/version-matrix.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 11:10:17 -0400 (Wed, 23 Sep 2009)
New Revision: 3763
Modified:
ri/trunk/version-matrix/pom.xml
Log:
move versions to version matrix
Modified: ri/trunk/version-matrix/pom.xml
===================================================================
--- ri/trunk/version-matrix/pom.xml 2009-09-23 15:10:06 UTC (rev 3762)
+++ ri/trunk/version-matrix/pom.xml 2009-09-23 15:10:17 UTC (rev 3763)
@@ -51,11 +51,32 @@
<webbeans.version>1.0.0-SNAPSHOT</webbeans.version>
<webbeans.servlet.version>1.0.0-SNAPSHOT</webbeans.servlet.version>
<webbeans.se.version>1.0.0-SNAPSHOT</webbeans.se.version>
+ <webbeans.wicket.version>1.0.0-SNAPSHOT</webbeans.wicket.version>
<jboss.test.harness.version>1.0.0-SNAPSHOT</jboss.test.harness.version>
+ <jetty.version>6.1.21</jetty.version>
+ <wicket.version>1.3.5.jboss1</wicket.version>
</properties>
<dependencyManagement>
<dependencies>
+
+ <dependency>
+ <groupId>org.apache.wicket</groupId>
+ <artifactId>wicket</artifactId>
+ <version>${wicket.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-plus</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
<dependency>
<groupId>org.testng</groupId>
@@ -147,6 +168,12 @@
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.4.2</version>
+ </dependency>
<dependency>
<groupId>jaxen</groupId>
@@ -293,13 +320,6 @@
<artifactId>webbeans-se</artifactId>
<version>${webbeans.se.version}</version>
</dependency>
-
- <!-- Deprecated -->
- <dependency>
- <groupId>org.jboss.webbeans</groupId>
- <artifactId>se-module</artifactId>
- <version>${webbeans.se.version}</version>
- </dependency>
<dependency>
<groupId>org.jboss.webbeans.servlet</groupId>
@@ -312,6 +332,12 @@
<artifactId>webbeans-servlet</artifactId>
<version>${webbeans.servlet.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-wicket</artifactId>
+ <version>${webbeans.wicket.version}</version>
+ </dependency>
<dependency>
<groupId>org.jboss.jsr299.tck</groupId>
@@ -505,7 +531,7 @@
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
- <version>6.1.16</version>
+ <version>${jetty.version}</version>
</plugin>
<plugin>
<groupId>org.twdata.maven</groupId>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3762 - in examples/trunk/jsf/numberguess: jetty and 4 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 11:10:06 -0400 (Wed, 23 Sep 2009)
New Revision: 3762
Added:
examples/trunk/jsf/numberguess/jetty/
examples/trunk/jsf/numberguess/jetty/java/
examples/trunk/jsf/numberguess/jetty/java/Start.java
Modified:
examples/trunk/jsf/numberguess/pom.xml
examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/jetty-env.xml
examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/web.xml
examples/trunk/jsf/numberguess/src/main/webapp-tomcat/META-INF/context.xml
examples/trunk/jsf/numberguess/src/main/webapp-tomcat/WEB-INF/web.xml
Log:
various fixes for jetty (not working)
Added: examples/trunk/jsf/numberguess/jetty/java/Start.java
===================================================================
--- examples/trunk/jsf/numberguess/jetty/java/Start.java (rev 0)
+++ examples/trunk/jsf/numberguess/jetty/java/Start.java 2009-09-23 15:10:06 UTC (rev 3762)
@@ -0,0 +1,45 @@
+
+
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.bio.SocketConnector;
+import org.mortbay.jetty.webapp.WebAppContext;
+
+public class Start {
+
+ public static void main(String[] args) throws Exception {
+ Server server = new Server();
+ SocketConnector connector = new SocketConnector();
+ connector.setPort(8080);
+ server.setConnectors(new Connector[] { connector });
+
+ WebAppContext bb = new WebAppContext();
+ bb.setServer(server);
+ bb.setContextPath("/");
+ bb.setWar("src/main/webapp");
+ bb.setDescriptor("src/main/webapp-jetty/WEB-INF/web.xml");
+
+ // Disable for now
+// Resource jettyEnv = Resource.newResource("src/main/webapp-jetty/WEB-INF/jetty-env.xml");
+// if (jettyEnv.exists() && !jettyEnv.isDirectory())
+// {
+// XmlConfiguration configuration = new XmlConfiguration(jettyEnv.getURL());
+// configuration.configure(bb);
+// }
+
+ server.addHandler(bb);
+
+ try {
+ System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
+ server.start();
+ while (System.in.available() == 0) {
+ Thread.sleep(500);
+ }
+ server.stop();
+ server.join();
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(100);
+ }
+ }
+}
Property changes on: examples/trunk/jsf/numberguess/jetty/java/Start.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Modified: examples/trunk/jsf/numberguess/pom.xml
===================================================================
--- examples/trunk/jsf/numberguess/pom.xml 2009-09-23 11:19:41 UTC (rev 3761)
+++ examples/trunk/jsf/numberguess/pom.xml 2009-09-23 15:10:06 UTC (rev 3762)
@@ -148,6 +148,7 @@
</plugins>
</build>
</profile>
+
<profile>
<id>jetty</id>
<dependencies>
@@ -192,6 +193,77 @@
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>jetty-ide</id>
+ <dependencies>
+
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>jsr250-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans.servlet</groupId>
+ <artifactId>webbeans-servlet</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- JETTY DEPENDENCIES FOR IN IDE TESTING -->
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-plus</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp-jetty</directory>
+ <filtering>false</filtering>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
<build>
@@ -216,6 +288,9 @@
<includes>
<include>WEB-INF/classes/**</include>
<include>WEB-INF/lib/**</include>
+ <include>META-INF/context.xml</include>
+ <include>WEB-INF/web.xml</include>
+ <include>WEB-INF/jetty-env.xml</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
Modified: examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/jetty-env.xml
===================================================================
--- examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/jetty-env.xml 2009-09-23 11:19:41 UTC (rev 3761)
+++ examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/jetty-env.xml 2009-09-23 15:10:06 UTC (rev 3762)
@@ -4,10 +4,10 @@
<Configure id="webAppCtx" class="org.mortbay.jetty.webapp.WebAppContext">
<New id="appManager" class="org.mortbay.jetty.plus.naming.Resource">
<Arg><Ref id="webAppCtx"/></Arg>
- <Arg>app/Manager</Arg>
+ <Arg>BeanManager</Arg>
<Arg>
<New class="javax.naming.Reference">
- <Arg>javax.inject.manager.Manager</Arg>
+ <Arg>javax.enterprise.inject.spi.BeanManager</Arg>
<Arg>org.jboss.webbeans.resources.ManagerObjectFactory</Arg>
<Arg/>
</New>
Modified: examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/web.xml
===================================================================
--- examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/web.xml 2009-09-23 11:19:41 UTC (rev 3761)
+++ examples/trunk/jsf/numberguess/src/main/webapp-jetty/WEB-INF/web.xml 2009-09-23 15:10:06 UTC (rev 3762)
@@ -31,9 +31,9 @@
</session-config>
<resource-env-ref>
- <description>Object factory for the JCDI Manager</description>
- <resource-env-ref-name>app/Manager</resource-env-ref-name>
- <resource-env-ref-type>javax.inject.manager.Manager</resource-env-ref-type>
+ <description>Object factory for the CDI Bean Manager</description>
+ <resource-env-ref-name>BeanManager</resource-env-ref-name>
+ <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>
</web-app>
Modified: examples/trunk/jsf/numberguess/src/main/webapp-tomcat/META-INF/context.xml
===================================================================
--- examples/trunk/jsf/numberguess/src/main/webapp-tomcat/META-INF/context.xml 2009-09-23 11:19:41 UTC (rev 3761)
+++ examples/trunk/jsf/numberguess/src/main/webapp-tomcat/META-INF/context.xml 2009-09-23 15:10:06 UTC (rev 3762)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Manager pathname=""/> <!-- disables storage of sessions across restarts -->
- <Resource name="app/Manager"
+ <Resource name="BeanManager"
auth="Container"
- type="javax.inject.manager.Manager"
+ type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.webbeans.resources.ManagerObjectFactory"/>
<!-- Uncomment to enable injection into Servlet -->
<!-- <Listener className="org.jboss.webbeans.environment.tomcat.WebBeansLifecycleListener"/> -->
Modified: examples/trunk/jsf/numberguess/src/main/webapp-tomcat/WEB-INF/web.xml
===================================================================
--- examples/trunk/jsf/numberguess/src/main/webapp-tomcat/WEB-INF/web.xml 2009-09-23 11:19:41 UTC (rev 3761)
+++ examples/trunk/jsf/numberguess/src/main/webapp-tomcat/WEB-INF/web.xml 2009-09-23 15:10:06 UTC (rev 3762)
@@ -31,9 +31,9 @@
</session-config>
<resource-env-ref>
- <description>Object factory for the JCDI Manager</description>
- <resource-env-ref-name>app/Manager</resource-env-ref-name>
- <resource-env-ref-type>javax.inject.manager.Manager</resource-env-ref-type>
+ <description>Object factory for the CDI Bean Manager</description>
+ <resource-env-ref-name>BeanManager</resource-env-ref-name>
+ <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>
</web-app>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3761 - in examples/trunk: jsf/numberguess and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 07:19:41 -0400 (Wed, 23 Sep 2009)
New Revision: 3761
Modified:
examples/trunk/jsf/numberguess/pom.xml
examples/trunk/pom.xml
Log:
fixes for tomcat
Modified: examples/trunk/jsf/numberguess/pom.xml
===================================================================
--- examples/trunk/jsf/numberguess/pom.xml 2009-09-23 11:19:27 UTC (rev 3760)
+++ examples/trunk/jsf/numberguess/pom.xml 2009-09-23 11:19:41 UTC (rev 3761)
@@ -119,6 +119,12 @@
</dependency>
<dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.webbeans.servlet</groupId>
<artifactId>webbeans-servlet</artifactId>
<scope>runtime</scope>
@@ -206,7 +212,7 @@
<filesets>
<fileset>
<!-- clean up files from war:inplace -->
- <directory>WebContent</directory>
+ <directory>src/main/webapp</directory>
<includes>
<include>WEB-INF/classes/**</include>
<include>WEB-INF/lib/**</include>
Modified: examples/trunk/pom.xml
===================================================================
--- examples/trunk/pom.xml 2009-09-23 11:19:27 UTC (rev 3760)
+++ examples/trunk/pom.xml 2009-09-23 11:19:41 UTC (rev 3761)
@@ -76,9 +76,25 @@
<module>jsf/login</module>
<module>se/numberguess</module>
<module>se/hello-world</module>
- <module>jsf/servlet-numberguess</module>
<module>wicket/numberguess</module>
</modules>
+
+ <dependencyManagement>
+ <dependencies>
+
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>2.0.0-RC</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <version>2.0.0-RC</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
<build>
<plugins>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3760 - in extensions/trunk: servlet and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 07:19:27 -0400 (Wed, 23 Sep 2009)
New Revision: 3760
Modified:
extensions/trunk/logger/
extensions/trunk/servlet/
Log:
ignores
Property changes on: extensions/trunk/logger
___________________________________________________________________
Name: svn:ignore
-
target
.project
.classpath
temp-testng-customsuite.xml
.settings
test-output
bin
+
target
.project
.classpath
temp-testng-customsuite.xml
.settings
test-output
bin
Property changes on: extensions/trunk/servlet
___________________________________________________________________
Name: svn:ignore
- target
local.build.properties
.settings
.project
.classpath
+
target
local.build.properties
.settings
.project
.classpath
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3759 - in extensions/trunk: logger and 10 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 07:17:06 -0400 (Wed, 23 Sep 2009)
New Revision: 3759
Added:
extensions/trunk/pom.xml
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplication.java
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplicationFactory.java
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplication.java
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplicationFactory.java
extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/ForwardingJspApplicationContextImpl.java
extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/JspInitialization.java
extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/util/
extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/util/Reflections.java
Modified:
extensions/trunk/logger/
extensions/trunk/servlet/build/pom.xml
extensions/trunk/servlet/int/pom.xml
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/Listener.java
extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/util/Reflections.java
extensions/trunk/servlet/int/src/main/resources/META-INF/
extensions/trunk/servlet/int/src/main/resources/META-INF/faces-config.xml
extensions/trunk/servlet/pom.xml
extensions/trunk/servlet/support/pom.xml
extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/WebBeansLifecycleListener.java
Log:
add JSP and JSF support to servlet/tomcat
Property changes on: extensions/trunk/logger
___________________________________________________________________
Name: svn:ignore
- target
.project
.classpath
temp-testng-customsuite.xml
.settings
test-output
+
target
.project
.classpath
temp-testng-customsuite.xml
.settings
test-output
bin
Added: extensions/trunk/pom.xml
===================================================================
--- extensions/trunk/pom.xml (rev 0)
+++ extensions/trunk/pom.xml 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,24 @@
+<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">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-extensions-parent</artifactId>
+ <packaging>pom</packaging>
+ <version>1.0.0-SNAPSHOT</version>
+
+ <parent>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-version-matrix</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+
+ <name>Web Beans Extensions aggregator</name>
+ <url>http://www.seamframework.org/WebBeans</url>
+
+ <modules>
+ <module>servlet</module>
+ <module>se</module>
+ <module>logger</module>
+ <module>wicket</module>
+ </modules>
+
+</project>
Modified: extensions/trunk/servlet/build/pom.xml
===================================================================
--- extensions/trunk/servlet/build/pom.xml 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/build/pom.xml 2009-09-23 11:17:06 UTC (rev 3759)
@@ -67,6 +67,8 @@
<exclude>org.apache.tomcat:servlet-api</exclude>
<exclude>org.apache.tomcat:juli</exclude>
<exclude>org.apache.tomcat:annotations-api</exclude>
+ <exclude>javax.faces:jsf-api</exclude>
+ <exclude>javax.el:el-api</exclude>
</excludes>
</artifactSet>
</configuration>
Modified: extensions/trunk/servlet/int/pom.xml
===================================================================
--- extensions/trunk/servlet/int/pom.xml 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/int/pom.xml 2009-09-23 11:17:06 UTC (rev 3759)
@@ -57,6 +57,17 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
</dependencies>
</project>
Modified: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/Listener.java
===================================================================
--- extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/Listener.java 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/Listener.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -16,7 +16,10 @@
*/
package org.jboss.webbeans.environment.servlet;
+import javax.el.ELContextListener;
import javax.servlet.ServletContextEvent;
+import javax.servlet.jsp.JspApplicationContext;
+import javax.servlet.jsp.JspFactory;
import org.jboss.webbeans.bootstrap.api.Bootstrap;
import org.jboss.webbeans.bootstrap.api.Environments;
@@ -46,6 +49,7 @@
private static final String BOOTSTRAP_IMPL_CLASS_NAME = "org.jboss.webbeans.bootstrap.WebBeansBootstrap";
private static final String WEB_BEANS_LISTENER_CLASS_NAME = "org.jboss.webbeans.servlet.WebBeansListener";
private static final String APPLICATION_BEAN_STORE_ATTRIBUTE_NAME = Listener.class.getName() + ".applicationBeanStore";
+ private static final String EXPRESSION_FACTORY_NAME = "org.jboss.webbeans.el.ExpressionFactory";
private final transient Bootstrap bootstrap;
private final transient ServletListener webBeansListener;
@@ -55,17 +59,17 @@
{
try
{
- bootstrap = Reflections.newInstance(BOOTSTRAP_IMPL_CLASS_NAME, Bootstrap.class);
+ bootstrap = Reflections.newInstance(BOOTSTRAP_IMPL_CLASS_NAME);
}
- catch (Exception e)
+ catch (IllegalArgumentException e)
{
throw new IllegalStateException("Error loading Web Beans bootstrap, check that Web Beans is on the classpath", e);
}
try
{
- webBeansListener = Reflections.newInstance(WEB_BEANS_LISTENER_CLASS_NAME, ServletListener.class);
+ webBeansListener = Reflections.newInstance(WEB_BEANS_LISTENER_CLASS_NAME);
}
- catch (Exception e)
+ catch (IllegalArgumentException e)
{
throw new IllegalStateException("Error loading Web Beans listener, check that Web Beans is on the classpath", e);
}
@@ -105,25 +109,20 @@
boolean tomcat = true;
try
{
- Reflections.loadClass("org.apache.AnnotationProcessor", Object.class);
+ Reflections.classForName("org.apache.AnnotationProcessor");
}
- catch (ClassNotFoundException e)
+ catch (IllegalArgumentException e)
{
log.info("JSR-299 injection will not be available in Servlets, Filters etc. This facility is only available in Tomcat");
tomcat = false;
}
- catch (NoClassDefFoundError e)
- {
- log.info("JSR-299 injection will not be available in Servlets, Filters etc. This facility is only available in Tomcat");
- tomcat = false;
- }
if (tomcat)
{
// Try pushing a Tomcat AnnotationProcessor into the servlet context
try
{
- Class<?> clazz = Reflections.loadClass(WebBeansAnnotationProcessor.class.getName(), Object.class);
+ Class<?> clazz = Reflections.classForName(WebBeansAnnotationProcessor.class.getName());
Object annotationProcessor = clazz.getConstructor(WebBeansManager.class).newInstance(manager);
sce.getServletContext().setAttribute(WebBeansAnnotationProcessor.class.getName(), annotationProcessor);
}
@@ -133,7 +132,20 @@
}
}
+ // Push the manager into the servlet context so we can access in JSF
+ sce.getServletContext().setAttribute(WebBeansManager.class.getName(), manager);
+ JspApplicationContext jspApplicationContext = JspFactory.getDefaultFactory().getJspApplicationContext(sce.getServletContext());
+
+ // Register the ELResolver with JSP
+ jspApplicationContext.addELResolver(manager.getELResolver());
+
+ // Register ELContextListener with JSP
+ jspApplicationContext.addELContextListener(Reflections.<ELContextListener>newInstance("org.jboss.webbeans.el.WebBeansELContextListener"));
+
+ // Push the wrapped expression factory into the servlet context so that Tomcat or Jetty can hook it in using a container code
+ sce.getServletContext().setAttribute(EXPRESSION_FACTORY_NAME, manager.wrapExpressionFactory(jspApplicationContext.getExpressionFactory()));
+
bootstrap.deployBeans().validateBeans().endInitialization();
super.contextInitialized(sce);
}
Added: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplication.java
===================================================================
--- extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplication.java (rev 0)
+++ extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplication.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,457 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.servlet.jsf;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.el.ELContextListener;
+import javax.el.ELException;
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+import javax.el.ValueExpression;
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.faces.application.NavigationHandler;
+import javax.faces.application.ProjectStage;
+import javax.faces.application.Resource;
+import javax.faces.application.ResourceHandler;
+import javax.faces.application.StateManager;
+import javax.faces.application.ViewHandler;
+import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.Behavior;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.el.MethodBinding;
+import javax.faces.el.PropertyResolver;
+import javax.faces.el.ReferenceSyntaxException;
+import javax.faces.el.ValueBinding;
+import javax.faces.el.VariableResolver;
+import javax.faces.event.ActionListener;
+import javax.faces.event.SystemEvent;
+import javax.faces.event.SystemEventListener;
+import javax.faces.validator.Validator;
+
+/**
+ * @author pmuir
+ *
+ */
+public abstract class ForwardingApplication extends Application
+{
+
+ protected abstract Application delegate();
+
+ public void addBehavior(String behaviorId, String behaviorClass)
+ {
+ delegate().addBehavior(behaviorId, behaviorClass);
+ }
+
+ public void addComponent(String componentType, String componentClass)
+ {
+ delegate().addComponent(componentType, componentClass);
+ }
+
+ public void addConverter(String converterId, String converterClass)
+ {
+ delegate().addConverter(converterId, converterClass);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public void addConverter(Class targetClass, String converterClass)
+ {
+ delegate().addConverter(targetClass, converterClass);
+ }
+
+ @Override
+ public void addDefaultValidatorId(String validatorId)
+ {
+ delegate().addDefaultValidatorId(validatorId);
+ }
+
+ @Override
+ public void addELContextListener(ELContextListener listener)
+ {
+ delegate().addELContextListener(listener);
+ }
+
+ @Override
+ public void addELResolver(ELResolver resolver)
+ {
+ delegate().addELResolver(resolver);
+ }
+
+ @Override
+ public void addValidator(String validatorId, String validatorClass)
+ {
+ delegate().addValidator(validatorId, validatorClass);
+ }
+
+ @Override
+ public Behavior createBehavior(String behaviorId) throws FacesException
+ {
+ return delegate().createBehavior(behaviorId);
+ }
+
+ @Override
+ public UIComponent createComponent(FacesContext context, Resource componentResource)
+ {
+ return delegate().createComponent(context, componentResource);
+ }
+
+ @Override
+ public UIComponent createComponent(FacesContext context, String componentType, String rendererType)
+ {
+ return delegate().createComponent(context, componentType, rendererType);
+ }
+
+ @Override
+ public UIComponent createComponent(ValueExpression componentExpression, FacesContext context, String componentType) throws FacesException
+ {
+ return delegate().createComponent(componentExpression, context, componentType);
+ }
+
+ @Override
+ public UIComponent createComponent(ValueExpression componentExpression, FacesContext context, String componentType, String rendererType)
+ {
+ return delegate().createComponent(componentExpression, context, componentType, rendererType);
+ }
+
+ @Override
+ public UIComponent createComponent(String componentType) throws FacesException
+ {
+ return delegate().createComponent(componentType);
+ }
+
+ @Override
+ @Deprecated
+ public UIComponent createComponent(ValueBinding componentBinding, FacesContext context, String componentType) throws FacesException
+ {
+ return delegate().createComponent(componentBinding, context, componentType);
+ }
+
+ @Override
+ public Converter createConverter(String converterId)
+ {
+ return delegate().createConverter(converterId);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Converter createConverter(Class targetClass)
+ {
+ return delegate().createConverter(targetClass);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Deprecated
+ @Override
+ public MethodBinding createMethodBinding(String ref, Class[] params) throws ReferenceSyntaxException
+ {
+ return delegate().createMethodBinding(ref, params);
+ }
+
+ @Override
+ public Validator createValidator(String validatorId) throws FacesException
+ {
+ return delegate().createValidator(validatorId);
+ }
+
+ @Override
+ @Deprecated
+ public ValueBinding createValueBinding(String ref) throws ReferenceSyntaxException
+ {
+ return delegate().createValueBinding(ref);
+ }
+
+ @Override
+ public <T> T evaluateExpressionGet(FacesContext context, String expression, Class<? extends T> expectedType) throws ELException
+ {
+ return delegate().evaluateExpressionGet(context, expression, expectedType);
+ }
+
+ @Override
+ public ActionListener getActionListener()
+ {
+ return delegate().getActionListener();
+ }
+
+ @Override
+ public Iterator<String> getBehaviorIds()
+ {
+ return delegate().getBehaviorIds();
+ }
+
+
+
+ @Override
+ public Iterator<String> getComponentTypes()
+ {
+ return delegate().getComponentTypes();
+ }
+
+ @Override
+ public Iterator<String> getConverterIds()
+ {
+ return delegate().getConverterIds();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterator<Class<?>> getConverterTypes()
+ {
+ return delegate().getConverterTypes();
+ }
+
+ @Override
+ public Locale getDefaultLocale()
+ {
+ return delegate().getDefaultLocale();
+ }
+
+ @Override
+ public String getDefaultRenderKitId()
+ {
+ return delegate().getDefaultRenderKitId();
+ }
+
+ @Override
+ public Map<String, String> getDefaultValidatorInfo()
+ {
+ return delegate().getDefaultValidatorInfo();
+ }
+
+ @Override
+ public ELContextListener[] getELContextListeners()
+ {
+ return delegate().getELContextListeners();
+ }
+
+ @Override
+ public ELResolver getELResolver()
+ {
+ return delegate().getELResolver();
+ }
+
+ @Override
+ public ExpressionFactory getExpressionFactory()
+ {
+ return delegate().getExpressionFactory();
+ }
+
+ @Override
+ public String getMessageBundle()
+ {
+ return delegate().getMessageBundle();
+ }
+
+ @Override
+ public NavigationHandler getNavigationHandler()
+ {
+ return delegate().getNavigationHandler();
+ }
+
+ @Override
+ @Deprecated
+ public PropertyResolver getPropertyResolver()
+ {
+ return delegate().getPropertyResolver();
+ }
+
+ @Override
+ public ProjectStage getProjectStage()
+ {
+ return delegate().getProjectStage();
+ }
+
+ @Override
+ public ResourceBundle getResourceBundle(FacesContext ctx, String name)
+ {
+ return delegate().getResourceBundle(ctx, name);
+ }
+
+ @Override
+ public ResourceHandler getResourceHandler()
+ {
+ return delegate().getResourceHandler();
+ }
+
+ @Override
+ public StateManager getStateManager()
+ {
+ return delegate().getStateManager();
+ }
+
+ @Override
+ public Iterator<Locale> getSupportedLocales()
+ {
+ return delegate().getSupportedLocales();
+ }
+
+ @Override
+ public Iterator<String> getValidatorIds()
+ {
+ return delegate().getValidatorIds();
+ }
+
+ @Override
+ @Deprecated
+ public VariableResolver getVariableResolver()
+ {
+ return delegate().getVariableResolver();
+ }
+
+ @Override
+ public ViewHandler getViewHandler()
+ {
+ return delegate().getViewHandler();
+ }
+
+ @Override
+ public void publishEvent(FacesContext context, Class<? extends SystemEvent> systemEventClass, Class<?> sourceBaseType, Object source)
+ {
+ delegate().publishEvent(context, systemEventClass, sourceBaseType, source);
+ }
+
+ @Override
+ public void publishEvent(FacesContext context, Class<? extends SystemEvent> systemEventClass, Object source)
+ {
+ delegate().publishEvent(context, systemEventClass, source);
+ }
+
+ @Override
+ public void removeELContextListener(ELContextListener listener)
+ {
+ delegate().removeELContextListener(listener);
+ }
+
+ @Override
+ public void setActionListener(ActionListener listener)
+ {
+ delegate().setActionListener(listener);
+ }
+
+ @Override
+ public void setDefaultLocale(Locale locale)
+ {
+ delegate().setDefaultLocale(locale);
+ }
+
+ @Override
+ public void setDefaultRenderKitId(String renderKitId)
+ {
+ delegate().setDefaultRenderKitId(renderKitId);
+ }
+
+ @Override
+ public void setMessageBundle(String bundle)
+ {
+ delegate().setMessageBundle(bundle);
+ }
+
+ @Override
+ public void setNavigationHandler(NavigationHandler handler)
+ {
+ delegate().setNavigationHandler(handler);
+ }
+
+
+ @Override
+ @Deprecated
+ public void setPropertyResolver(PropertyResolver resolver)
+ {
+ delegate().setPropertyResolver(resolver);
+ }
+
+ @Override
+ public void setResourceHandler(ResourceHandler resourceHandler)
+ {
+ delegate().setResourceHandler(resourceHandler);
+ }
+
+ @Override
+ public void setStateManager(StateManager manager)
+ {
+ delegate().setStateManager(manager);
+ }
+
+ @Override
+ public void setSupportedLocales(Collection<Locale> locales)
+ {
+ delegate().setSupportedLocales(locales);
+
+ }
+
+ @Override
+ @Deprecated
+ public void setVariableResolver(VariableResolver resolver)
+ {
+ delegate().setVariableResolver(resolver);
+ }
+
+ @Override
+ public void setViewHandler(ViewHandler handler)
+ {
+ delegate().setViewHandler(handler);
+ }
+
+ @Override
+ public void subscribeToEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener)
+ {
+ delegate().subscribeToEvent(systemEventClass, sourceClass, listener);
+ }
+
+ @Override
+ public void subscribeToEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener)
+ {
+ delegate().subscribeToEvent(systemEventClass, listener);
+ }
+
+ @Override
+ public void unsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener)
+ {
+ delegate().unsubscribeFromEvent(systemEventClass, sourceClass, listener);
+ }
+
+ @Override
+ public void unsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener)
+ {
+ delegate().unsubscribeFromEvent(systemEventClass, listener);
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ return delegate().equals(obj);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return delegate().hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ return delegate().toString();
+ }
+
+}
Property changes on: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplication.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplicationFactory.java
===================================================================
--- extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplicationFactory.java (rev 0)
+++ extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplicationFactory.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.servlet.jsf;
+
+import javax.faces.application.Application;
+import javax.faces.application.ApplicationFactory;
+
+/**
+ * @author pmuir
+ *
+ */
+public abstract class ForwardingApplicationFactory extends ApplicationFactory
+{
+
+ protected abstract ApplicationFactory delegate();
+
+ @Override
+ public Application getApplication()
+ {
+ return delegate().getApplication();
+ }
+
+ @Override
+ public void setApplication(Application application)
+ {
+ delegate().setApplication(application);
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ return delegate().equals(obj);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return delegate().hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ return delegate().toString();
+ }
+
+}
Property changes on: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/ForwardingApplicationFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplication.java
===================================================================
--- extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplication.java (rev 0)
+++ extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplication.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.servlet.jsf;
+
+import javax.el.ELContextListener;
+import javax.el.ExpressionFactory;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.faces.application.Application;
+import javax.faces.context.FacesContext;
+import javax.servlet.ServletContext;
+
+import org.jboss.webbeans.environment.servlet.util.Reflections;
+import org.jboss.webbeans.manager.api.WebBeansManager;
+
+/**
+ * @author pmuir
+ *
+ */
+public class WebBeansApplication extends ForwardingApplication
+{
+
+ private static final ELContextListener[] EMPTY_LISTENERS = {};
+
+ private final Application application;
+ private ExpressionFactory expressionFactory;
+
+ public WebBeansApplication(Application application)
+ {
+ this.application = application;
+ BeanManager beanManager = getBeanManager();
+ if (beanManager != null)
+ {
+ application.addELContextListener(Reflections.<ELContextListener>newInstance("org.jboss.webbeans.el.WebBeansELContextListener"));
+ application.addELResolver(beanManager.getELResolver());
+ }
+ }
+
+ @Override
+ protected Application delegate()
+ {
+ return application;
+ }
+
+ @Override
+ public ExpressionFactory getExpressionFactory()
+ {
+ // Application is multi-threaded, but no need to guard against races (re-
+ // creating the cached expression factory doesn't matter) or liveness
+ // (the value read by all threads will be the same)
+ // We have to do this lazily as Mojarra hasn't set the ExpressionFactory
+ // when the object is created
+ if (this.expressionFactory == null)
+ {
+ BeanManager beanManager = getBeanManager();
+ if (beanManager != null)
+ {
+ this.expressionFactory = beanManager.wrapExpressionFactory(delegate().getExpressionFactory());
+ }
+ else
+ {
+ // WB failed to initialize properly
+ this.expressionFactory = delegate().getExpressionFactory();
+ }
+ }
+ return expressionFactory;
+ }
+
+ private static WebBeansManager getBeanManager()
+ {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ if (!(facesContext.getExternalContext().getContext() instanceof ServletContext))
+ {
+ throw new IllegalStateException("Not in a servlet environment!");
+ }
+ ServletContext ctx = (ServletContext) facesContext.getExternalContext().getContext();
+ if (ctx.getAttribute(WebBeansManager.class.getName()) == null)
+ {
+ throw new IllegalStateException("BeanManager has not been pushed into the ServletContext");
+ }
+ return (WebBeansManager) ctx.getAttribute(WebBeansManager.class.getName());
+ }
+
+}
Property changes on: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplication.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplicationFactory.java
===================================================================
--- extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplicationFactory.java (rev 0)
+++ extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplicationFactory.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.servlet.jsf;
+
+import javax.faces.application.Application;
+import javax.faces.application.ApplicationFactory;
+
+
+/**
+ * @author pmuir
+ *
+ */
+public class WebBeansApplicationFactory extends ForwardingApplicationFactory
+{
+
+ private final ApplicationFactory applicationFactory;
+
+ private Application application;
+
+ public WebBeansApplicationFactory(ApplicationFactory applicationFactory)
+ {
+ this.applicationFactory = applicationFactory;
+ }
+
+ @Override
+ protected ApplicationFactory delegate()
+ {
+ return applicationFactory;
+ }
+
+ @Override
+ public Application getApplication()
+ {
+ if (application == null)
+ {
+ application = new WebBeansApplication(delegate().getApplication());
+ }
+ return application;
+ }
+
+}
Property changes on: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/jsf/WebBeansApplicationFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/util/Reflections.java
===================================================================
--- extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/util/Reflections.java 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/int/src/main/java/org/jboss/webbeans/environment/servlet/util/Reflections.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -16,6 +16,7 @@
*/
package org.jboss.webbeans.environment.servlet.util;
+
/**
* Reflection utilities
*
@@ -27,24 +28,57 @@
private Reflections()
{
- // TODO Auto-generated constructor stub
}
- public static <T> T newInstance(String className, Class<T> expectedType) throws InstantiationException, IllegalAccessException, ClassNotFoundException
+ public static <T> T newInstance(String className)
{
- return loadClass(className, expectedType).newInstance();
+ try
+ {
+ return Reflections.<T>classForName(className).newInstance();
+ }
+ catch (InstantiationException e)
+ {
+ throw new IllegalArgumentException("Cannot instantiate instance of " + className + " with no-argument constructor", e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new IllegalArgumentException("Cannot instantiate instance of " + className + " with no-argument constructor", e);
+ }
}
- public static <T> Class<? extends T> loadClass(String className, Class<T> expectedType) throws ClassNotFoundException
+
+ public static <T> Class<T> classForName(String name)
{
- if (Thread.currentThread().getContextClassLoader() != null)
+
+ try
{
- return Thread.currentThread().getContextClassLoader().loadClass(className).asSubclass(expectedType);
+ if (Thread.currentThread().getContextClassLoader() != null)
+ {
+ Class<?> c = Thread.currentThread().getContextClassLoader().loadClass(name);
+
+ @SuppressWarnings("unchecked")
+ Class<T> clazz = (Class<T>) c;
+
+ return clazz;
+ }
+ else
+ {
+ Class<?> c = Class.forName(name);
+
+ @SuppressWarnings("unchecked")
+ Class<T> clazz = (Class<T>) c;
+
+ return clazz;
+ }
}
- else
+ catch (ClassNotFoundException e)
{
- return Class.forName(className).asSubclass(expectedType);
+ throw new IllegalArgumentException("Cannot load class for " + name, e);
}
+ catch (NoClassDefFoundError e)
+ {
+ throw new IllegalArgumentException("Cannot load class for " + name, e);
+ }
}
public static ClassLoader getClassLoader()
Property changes on: extensions/trunk/servlet/int/src/main/resources/META-INF
___________________________________________________________________
Name: svn:ignore
+ .faces-config.xml.jsfdia
Modified: extensions/trunk/servlet/int/src/main/resources/META-INF/faces-config.xml
===================================================================
--- extensions/trunk/servlet/int/src/main/resources/META-INF/faces-config.xml 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/int/src/main/resources/META-INF/faces-config.xml 2009-09-23 11:17:06 UTC (rev 3759)
@@ -4,12 +4,16 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+ <factory>
+ <application-factory>org.jboss.webbeans.environment.servlet.jsf.WebBeansApplicationFactory</application-factory>
+ </factory>
+
<application>
- <el-resolver>org.jboss.webbeans.el.WebBeansELResolver</el-resolver>
<view-handler>org.jboss.webbeans.jsf.ConversationAwareViewHandler</view-handler>
</application>
- <lifecycle>
- <phase-listener>org.jboss.webbeans.jsf.WebBeansPhaseListener</phase-listener>
- </lifecycle>
+
+ <lifecycle>
+ <phase-listener>org.jboss.webbeans.jsf.WebBeansPhaseListener</phase-listener>
+ </lifecycle>
</faces-config>
Modified: extensions/trunk/servlet/pom.xml
===================================================================
--- extensions/trunk/servlet/pom.xml 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/pom.xml 2009-09-23 11:17:06 UTC (rev 3759)
@@ -100,7 +100,11 @@
<dependencyManagement>
<dependencies>
-
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>2.0.0-RC</version>
+ </dependency>
</dependencies>
</dependencyManagement>
Modified: extensions/trunk/servlet/support/pom.xml
===================================================================
--- extensions/trunk/servlet/support/pom.xml 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/support/pom.xml 2009-09-23 11:17:06 UTC (rev 3759)
@@ -43,7 +43,19 @@
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
- </dependency>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>jasper</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
Added: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/ForwardingJspApplicationContextImpl.java
===================================================================
--- extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/ForwardingJspApplicationContextImpl.java (rev 0)
+++ extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/ForwardingJspApplicationContextImpl.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.tomcat;
+
+import javax.el.ELContextListener;
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+import javax.servlet.jsp.JspContext;
+
+import org.apache.jasper.el.ELContextImpl;
+import org.apache.jasper.runtime.JspApplicationContextImpl;
+
+/**
+ * @author pmuir
+ *
+ */
+public abstract class ForwardingJspApplicationContextImpl extends JspApplicationContextImpl
+{
+
+ protected abstract JspApplicationContextImpl delegate();
+
+ @Override
+ public void addELContextListener(ELContextListener listener)
+ {
+ delegate().addELContextListener(listener);
+ }
+
+ @Override
+ public void addELResolver(ELResolver resolver) throws IllegalStateException
+ {
+ delegate().addELResolver(resolver);
+ }
+
+ @Override
+ public ELContextImpl createELContext(JspContext arg0)
+ {
+ return delegate().createELContext(arg0);
+ }
+
+ @Override
+ public ExpressionFactory getExpressionFactory()
+ {
+ return delegate().getExpressionFactory();
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ return this == obj || delegate().equals(obj);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return delegate().hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ return delegate().toString();
+ }
+
+}
Property changes on: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/ForwardingJspApplicationContextImpl.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/JspInitialization.java
===================================================================
--- extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/JspInitialization.java (rev 0)
+++ extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/JspInitialization.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,86 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Use is subject to license terms.
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.tomcat;
+
+import javax.el.ELContextListener;
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+import javax.servlet.ServletContext;
+import javax.servlet.jsp.JspApplicationContext;
+import javax.servlet.jsp.JspFactory;
+
+import org.apache.jasper.runtime.JspApplicationContextImpl;
+import org.jboss.webbeans.environment.tomcat.util.Reflections;
+
+/**
+ * The Web Beans JSP initialization listener
+ *
+ *
+ * @author Pete Muir
+ *
+ */
+public class JspInitialization
+{
+
+ private static final String EXPRESSION_FACTORY_NAME = "org.jboss.webbeans.el.ExpressionFactory";
+
+ private static class WebBeansJspApplicationContextImpl extends ForwardingJspApplicationContextImpl
+ {
+ private final JspApplicationContextImpl delegate;
+ private final ExpressionFactory expressionFactory;
+
+ public WebBeansJspApplicationContextImpl(JspApplicationContextImpl delegate, ExpressionFactory expressionFactory)
+ {
+ this.delegate = delegate;
+ this.expressionFactory = expressionFactory;
+ }
+
+ @Override
+ protected JspApplicationContextImpl delegate()
+ {
+ return delegate;
+ }
+
+ @Override
+ public ExpressionFactory getExpressionFactory()
+ {
+ return expressionFactory;
+ }
+
+ }
+
+ public void initialize(ServletContext context)
+ {
+ // get JspApplicationContext.
+ JspApplicationContext jspAppContext = JspFactory.getDefaultFactory().getJspApplicationContext(context);
+
+ if (context.getAttribute(EXPRESSION_FACTORY_NAME) != null)
+ {
+ ExpressionFactory expressionFactory = (ExpressionFactory) context.getAttribute(EXPRESSION_FACTORY_NAME);
+ // Hack into JBoss Web/Catalina to replace the ExpressionFactory
+ JspApplicationContextImpl wrappedJspApplicationContextImpl = new WebBeansJspApplicationContextImpl(JspApplicationContextImpl.getInstance(context), expressionFactory);
+ context.setAttribute(JspApplicationContextImpl.class.getName(), wrappedJspApplicationContextImpl);
+ }
+ // otherwise something went wrong starting WB, so don't register with JSP
+ }
+}
Property changes on: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/JspInitialization.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/WebBeansLifecycleListener.java
===================================================================
--- extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/WebBeansLifecycleListener.java 2009-09-23 11:12:01 UTC (rev 3758)
+++ extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/WebBeansLifecycleListener.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -30,6 +30,8 @@
{
StandardContext context = (StandardContext) event.getLifecycle();
final ServletContext servletContext = context.getServletContext();
+
+ // Initialize servlet injection
final AnnotationProcessor originalAnnotationProcessor = context.getAnnotationProcessor();
context.setAnnotationProcessor(new ForwardingAnnotationProcessor()
{
Added: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/util/Reflections.java
===================================================================
--- extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/util/Reflections.java (rev 0)
+++ extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/util/Reflections.java 2009-09-23 11:17:06 UTC (rev 3759)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.environment.tomcat.util;
+
+
+/**
+ * @author pmuir
+ *
+ */
+public class Reflections
+{
+
+
+ public static <T> T newInstance(String className)
+ {
+ try
+ {
+ return Reflections.<T>classForName(className).newInstance();
+ }
+ catch (InstantiationException e)
+ {
+ throw new IllegalArgumentException("Cannot instantiate instance of " + className + " with no-argument constructor", e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new IllegalArgumentException("Cannot instantiate instance of " + className + " with no-argument constructor", e);
+ }
+ }
+
+
+ public static <T> Class<T> classForName(String name)
+ {
+
+ try
+ {
+ if (Thread.currentThread().getContextClassLoader() != null)
+ {
+ Class<?> c = Thread.currentThread().getContextClassLoader().loadClass(name);
+
+ @SuppressWarnings("unchecked")
+ Class<T> clazz = (Class<T>) c;
+
+ return clazz;
+ }
+ else
+ {
+ Class<?> c = Class.forName(name);
+
+ @SuppressWarnings("unchecked")
+ Class<T> clazz = (Class<T>) c;
+
+ return clazz;
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new IllegalArgumentException("Cannot load class for " + name, e);
+ }
+ catch (NoClassDefFoundError e)
+ {
+ throw new IllegalArgumentException("Cannot load class for " + name, e);
+ }
+ }
+
+}
Property changes on: extensions/trunk/servlet/support/src/main/java/org/jboss/webbeans/environment/tomcat/util/Reflections.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3758 - ri/trunk/impl/src/main/java/org/jboss/webbeans/context.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 07:12:01 -0400 (Wed, 23 Sep 2009)
New Revision: 3758
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java
Log:
fix cleanup order
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java 2009-09-23 11:11:51 UTC (rev 3757)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java 2009-09-23 11:12:01 UTC (rev 3758)
@@ -116,11 +116,11 @@
public void cleanup()
{
+ dependentContext.cleanup();
+ requestContext.cleanup();
+ conversationContext.cleanup();
+ sessionContext.cleanup();
applicationContext.cleanup();
- sessionContext.cleanup();
- conversationContext.cleanup();
- requestContext.cleanup();
- dependentContext.cleanup();
}
public ApplicationContext getApplicationContext()
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3757 - ri/trunk/version-matrix.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-23 07:11:51 -0400 (Wed, 23 Sep 2009)
New Revision: 3757
Modified:
ri/trunk/version-matrix/pom.xml
Log:
add some versions for tomcat
Modified: ri/trunk/version-matrix/pom.xml
===================================================================
--- ri/trunk/version-matrix/pom.xml 2009-09-23 03:34:49 UTC (rev 3756)
+++ ri/trunk/version-matrix/pom.xml 2009-09-23 11:11:51 UTC (rev 3757)
@@ -129,6 +129,12 @@
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
<dependency>
<groupId>javax.transaction</groupId>
@@ -356,6 +362,12 @@
</dependency>
<dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>jasper</artifactId>
+ <version>6.0.20</version>
+ </dependency>
+
+ <dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.1</version>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3756 - tck/trunk/impl/src/main/resources.
by webbeans-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-09-22 23:34:49 -0400 (Tue, 22 Sep 2009)
New Revision: 3756
Modified:
tck/trunk/impl/src/main/resources/tck-audit-cdi.xml
Log:
section 12 assertions
Modified: tck/trunk/impl/src/main/resources/tck-audit-cdi.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit-cdi.xml 2009-09-22 22:46:04 UTC (rev 3755)
+++ tck/trunk/impl/src/main/resources/tck-audit-cdi.xml 2009-09-23 03:34:49 UTC (rev 3756)
@@ -5393,7 +5393,7 @@
</assertion>
<group>
- <text>In an application deployed as an ear, the container searches every bean deployment archive belonging to the ear, including bean deployment archives contained inside wars. The bean deployment archives might be library jars, EJB jars, rars or war |WEB-INF/classes| directories.</text>
+ <text>In an application deployed as an ear, the container searches every bean deployment archive bundled with or referenced by the ear, including bean deployment archives bundled with or referenced by wars and EJB jars contained in the ear. The bean deployment archives might be library jars, EJB jars, rars or war |WEB-INF/classes| directories.</text>
<assertion id="bba">
<text>Check an EJB jar in an EAR</text>
</assertion>
@@ -5415,7 +5415,7 @@
</group>
<group>
- <text>In an application deployed as a war, the container searches every bean deployment archive contained in the war. The bean deployment archives might be library jars or the |WEB-INF/classes| directory.</text>
+ <text>In an application deployed as a war, the container searches every bean deployment archive bundled with or referenced by the war. The bean deployment archives might be library jars or the |WEB-INF/classes| directory.</text>
<assertion id="bca">
<text>Check classes in the war</text>
</assertion>
@@ -5426,6 +5426,14 @@
<text>Check for a jar installed as a library</text>
</assertion>
</group>
+
+ <group>
+ <text>In an application deployed as an EJB jar, the container searches the EJB jar, if it is a bean deployment archive, and every bean deployment archive referenced by the EJB jar.</text>
+
+ <assertion id="bcd">
+ <text>Check classes in the jar.</text>
+ </assertion>
+ </group>
<group>
<text>An embeddable EJB container searches each bean deployment archive in the JVM classpath that is listed in the value of the embeddable container initialization property |javax.ejb.embeddable.modules|, or every bean deployment archive in the JVM classpath if the property is not specified. The bean deployment archives might be directories, library jars or EJB jars.</text>
@@ -5637,7 +5645,7 @@
</assertion>
<group>
- <text>The container determines which policies, interceptors and decorators are enabled, according to the rules defined in Section 5.2, "Policy enablement", Section 9.4, "Interceptor enablement and ordering" and Section 8.2, "Decorator enablement and ordering", taking into account any |<enable>|, |<interceptors>| and |<Decorators>| declarations in the |beans.xml| files, and registers the |Bean| and |ObserverMethod| objects.</text>
+ <text>The container determines which alternatives, interceptors and decorators are enabled, according to the rules defined in Section 5.2.2, "Enabled and disabled beans", Section 9.4, "Interceptor enablement and ordering" and Section 8.2, "Decorator enablement and ordering", taking into account any |<enable>|, |<interceptors>| and |<decorators>| declarations in the |beans.xml| files, and registers the |Bean| and |ObserverMethod| objects.</text>
<assertion id="ka">
<text>Check only beans for enabled policies registered</text>
</assertion>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r3755 - tck/trunk/impl/src/main/resources.
by webbeans-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-09-22 18:46:04 -0400 (Tue, 22 Sep 2009)
New Revision: 3755
Modified:
tck/trunk/impl/src/main/resources/tck-audit-cdi.xml
Log:
section 11 assertions
Modified: tck/trunk/impl/src/main/resources/tck-audit-cdi.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit-cdi.xml 2009-09-22 21:57:30 UTC (rev 3754)
+++ tck/trunk/impl/src/main/resources/tck-audit-cdi.xml 2009-09-22 22:46:04 UTC (rev 3755)
@@ -2386,7 +2386,7 @@
<text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Constructor| object in the case of constructor parameter injection.</text>
</assertion>
- <assertion id="daa"> <text>When the container invokes a method of a bean, the invocation may or may not be treated as a business method invocation
+ <assertion id="daa">
<text>The |getAnnotated()| method returns an instance of |javax.enterprise.inject.spi.AnnotatedField| or |javax.enterprise.inject.spi.AnnotatedParameter|, depending upon whether the injection point is an injected field or a constructor/method parameter.</text>
</assertion>
@@ -4408,7 +4408,14 @@
</section>
<section id="10.4.2" title="Declaring an observer method">
- <assertion id="a">
+ <assertion id="a"> <assertion id="ea">
+ <text>For a Producer that represents a producer _method_ or field, |produce()| _calls the producer method on_, or accesses the producer field of, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
+ </assertion>
+
+ <assertion id="eb">
+ <text>For a Producer that represents a producer method or _field_, |produce()| calls the producer method on, _or accesses the producer field of_, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
+ </assertion>
+
<text>An observer method may be declared by annotating a parameter |(a)javax.enterprise.event.Observes|. That parameter is the event parameter. The declared type of the parameter is the observed event type.</text>
</assertion>
@@ -4583,7 +4590,7 @@
</assertion>
<assertion id="ba">
- <text>|getTypes()|, |getQualifiers()|, |getScope()|, |getName()| and |getStereotypes()| must return the bean types, bindings, scope type, EL name and stereotypes of the bean, as defined in Chapter 2, Concepts.</text>
+ <text>|getTypes()|, |getQualifiers()|, |getScope()|, |getName()| and |getStereotypes()| must return the bean types, qualifiers, scope type, EL name and stereotypes of the bean, as defined in Chapter 2, Concepts.</text>
</assertion>
<assertion id="bb">
@@ -4591,7 +4598,7 @@
</assertion>
<assertion id="bc">
- <text>|isPolicy()| must return |true| if the bean is a policy, and |false| otherwise.</text>
+ <text>|isAlternative()| must return |true| if the bean is an alternative, and |false| otherwise.</text>
</assertion>
<assertion id="bd">
@@ -4669,7 +4676,7 @@
</assertion>
<assertion id="d">
- <text>|getNotify()| returns |IF_EXISTS| for a conditional observer and |ALWAYS| otherwise.</text>
+ <text>|getReception()| returns |IF_EXISTS| for a conditional observer and |ALWAYS| otherwise.</text>
</assertion>
<assertion id="e">
@@ -4680,8 +4687,8 @@
<text>|notify()| calls the observer method, as defined in Section 5.6.8 "Invocation of observer methods".</text>
</assertion>
- <assertion id="g">
- <text>An instance of |Bean| exists for every observer method of every enabled bean.</text>
+ <assertion id="ga">
+ <text>An instance of |ObserverMethod| exists for every observer method of every enabled bean.</text>
</assertion>
</section>
@@ -4694,11 +4701,7 @@
<assertion id="ba">
<text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Inject| if it exists, or the constructor with no parameters otherwise, as defined in Section 5.6.3, "Injection using the bean constructor".</text>
</assertion>
-
- <assertion id="bb">
- <text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Inject| if it exists, or the constructor with no parameters otherwise, as defined in Section 5.6.3, "Injection using the bean constructor".</text>
- </assertion>
-
+
<assertion id="c">
<text>For a |Producer| that represents a class, |dispose()| does nothing.</text>
</assertion>
@@ -4714,23 +4717,31 @@
<assertion id="dc">
<text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all injected fields, bean constructor parameters and _initializer method parameters_.</text>
</assertion>
+
+ <group>
+ <text>For a |Producer| that represents a producer method or field, |produce()| calls the producer method on, or accesses the producer field of, a contextual instance of the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
+
+ <assertion id="eaa">
+ <text>Test with producer method.</text>
+ </assertion>
+
+ <assertion id="eba">
+ <text>Test with producer field.</text>
+ </assertion>
+ </group>
+
+ <group>
+ <text>For a Producer that represents a producer method or field, |dispose()| calls the disposer method, if any, on a contextual instance of the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
+
+ <assertion id="faa">
+ <text>Test with producer method.</text>
+ </assertion>
+
+ <assertion id="fba">
+ <text>Test with producer field.</text>
+ </assertion>
+ </group>
- <assertion id="ea">
- <text>For a Producer that represents a producer _method_ or field, |produce()| _calls the producer method on_, or accesses the producer field of, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
- </assertion>
-
- <assertion id="eb">
- <text>For a Producer that represents a producer method or _field_, |produce()| calls the producer method on, _or accesses the producer field of_, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
- </assertion>
-
- <assertion id="fa">
- <text>For a Producer that represents a producer _method_ or field, |dispose()| calls the disposer method, if any, on a contextual instance of the most specialized bean that specializes the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
- </assertion>
-
- <assertion id="fb">
- <text>For a Producer that represents a producer method or _field_, |dispose()| calls the disposer method, if any, on a contextual instance of the most specialized bean that specializes the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
- </assertion>
-
<assertion id="g">
<text>For a Producer that represents a producer method, |getInjectionPoints()| returns the set of |InjectionPoint| objects representing all parameters of the producer method.</text>
</assertion>
@@ -4753,18 +4764,22 @@
</assertion>
</section>
- <section id="11.3" title="The BeanManager object">
- <assertion id="aa">
- <text>The container provides a built-in bean with bean type |BeanManager|~, scope |@Dependent| and binding |@Current|~.</text>
- </assertion>
+ <section id="11.3" title="The BeanManager object">
+ <group>
+ <text>The container provides a built-in bean with bean type |BeanManager|, scope |@Dependent| and qualifier |@Default|.</text>
+
+ <assertion id="aa">
+ <text>Test the bean type.</text>
+ </assertion>
- <assertion id="ab">
- <text>The container provides a built-in bean with ~bean type |BeanManager|,~ scope |@Dependent|~ and binding |@Current|~.</text>
- </assertion>
+ <assertion id="ab">
+ <text>Test the scope.</text>
+ </assertion>
- <assertion id="ac">
- <text>The container provides a built-in bean with ~bean type |BeanManager|, scope |@Dependent| and~ binding |@Current|.</text>
- </assertion>
+ <assertion id="ac">
+ <text>Test the qualifier.</text>
+ </assertion>
+ </group>
<assertion id="b">
<text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
@@ -4819,21 +4834,25 @@
<section id="11.3.3" title="Obtaining a CreationalContext">
<assertion id="a">
- <text>An instance of |CreationalContext| may be obtained by calling |BeanManager.createCreationalContext()|.</text>
+ <text>An instance of |CreationalContext| for a certain instance of |Contextual| may be obtained by calling |BeanManager.createCreationalContext()|.</text>
+ </assertion>
+
+ <assertion id="b">
+ <text>An instance of |CreationalContext| for a non-contextual object may be obtained by passing a null value to |createCreationalContext()|.</text>
</assertion>
</section>
<section id="11.3.4" title="Obtaining a Bean by type">
<assertion id="aa">
- <text>The method |BeanManager.getBeans()| returns the set of beans which match the given required type and bindings and are accessible to the class into which the |BeanManager| was injected, or to the Java EE component from whose JNDI environment namespace the |BeanManager| was obtained, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".</text>
+ <text>The method |BeanManager.getBeans()| returns the set of beans which match the given required type and qualifiers and are accessible to the class into which the |BeanManager| was injected, or to the Java EE component from whose JNDI environment namespace the |BeanManager| was obtained, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".</text>
</assertion>
<assertion id="b">
- <text>The first parameter is a required bean type. The remaining parameters are required bindings.</text>
+ <text>The first parameter is a required bean type. The remaining parameters are required qualifiers.</text>
</assertion>
<assertion id="c">
- <text>If no bindings are passed to |getBeans()|, the default binding |@Current| is assumed.</text>
+ <text>If no qualifiers are passed to |getBeans()|, the default qualifier |@Default| is assumed.</text>
</assertion>
<assertion id="da">
@@ -4841,11 +4860,11 @@
</assertion>
<assertion id="e">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier type are given, an |IllegalArgumentException| is thrown.</text>
</assertion>
<assertion id="f">
- <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
</section>
@@ -4858,22 +4877,16 @@
<text>The parameter is an EL name.</text>
</assertion>
</section>
-
- <section id="11.3.6" title="Obtaining the most specialized bean">
- <assertion id="a">
- <text>The method |BeanManager.getMostSpecializedBean()| returns the |Bean| object representing the most specialized enabled bean that specializes the given bean, as defined in Section 4.3.2, "Most specialized enabled bean for a bean".</text>
- </assertion>
- </section>
- <section id="11.3.7" title="Obtaining a passivation capable bean by identifier">
+ <section id="11.3.6" title="Obtaining a passivation capable bean by identifier">
<assertion id="a">
<text>The method |BeanManager.getPassivationCapableBean()| returns the |PassivationCapableBean| with the given identifier.</text>
</assertion>
</section>
- <section id="11.3.8" title="Resolving an ambiguous dependency">
+ <section id="11.3.7" title="Resolving an ambiguous dependency">
<assertion id="a">
- <text>The method |BeanManager.resolve()| applies the ambiguous dependency resolution rules defined in Section 5.3.1, "Unsatisfied and ambiguous dependencies" to a set of |Beans|.</text>
+ <text>The method |BeanManager.resolve()| applies the ambiguous dependency resolution rules defined in Section 5.3.1, "Unsatisfied and ambiguous dependencies" to a set of |Bean|s.</text>
</assertion>
<assertion id="b">
@@ -4881,7 +4894,7 @@
</assertion>
</section>
- <section id="11.3.9" title="Validating a dependency">
+ <section id="11.3.8" title="Validating a dependency">
<assertion id="a">
<text>The |BeanManager.validate()| operation validates a dependency.</text>
<note>Statement of intent</note>
@@ -4892,13 +4905,13 @@
</assertion>
</section>
- <section id="11.3.10" title="Firing an event">
+ <section id="11.3.9" title="Firing an event">
<assertion id="a">
<text>The method |BeanManager.fireEvent()| fires an event and notifies observers, according to Section 10.5, "Observer notification".</text>
</assertion>
<assertion id="b">
- <text>The first argument is the event object. The remaining parameters are event bindings.</text>
+ <text>The first argument is the event object. The remaining parameters are event qualifiers.</text>
</assertion>
<assertion id="c">
@@ -4906,21 +4919,21 @@
</assertion>
<assertion id="d">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier type are given, an |IllegalArgumentException| is thrown.</text>
</assertion>
<assertion id="e">
- <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
</section>
- <section id="11.3.11" title="Observer method resolution">
+ <section id="11.3.10" title="Observer method resolution">
<assertion id="a">
<text>The method |BeanManager.resolveObserverMethods()| resolves observer methods for an event according to the rules of observer resolution defined in Section 10.2, "Observer resolution".</text>
</assertion>
<assertion id="b">
- <text>The first parameter of |resolveObserverMethods()| is the event object. The remaining parameters are event bindings.</text>
+ <text>The first parameter of |resolveObserverMethods()| is the event object. The remaining parameters are event qualifiers.</text>
</assertion>
<assertion id="c">
@@ -4928,29 +4941,29 @@
</assertion>
<assertion id="d">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier type are given, an |IllegalArgumentException| is thrown.</text>
</assertion>
<assertion id="e">
- <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
</section>
- <section id="11.3.12" title="Decorator resolution">
+ <section id="11.3.11" title="Decorator resolution">
<assertion id="a">
- <text>The method |BeanManager.resolveDecorators()| returns the ordered list of decorators for a set of bean types and a set of bindings, as defined in Section 8.3, "Decorator resolution".</text>
+ <text>The method |BeanManager.resolveDecorators()| returns the ordered list of decorators for a set of bean types and a set of qualifiers, as defined in Section 8.3, "Decorator resolution".</text>
</assertion>
<assertion id="b">
- <text>The first argument is the set of bean types of the decorated bean. The annotations are bindings declared by the decorated bean.</text>
+ <text>The first argument is the set of bean types of the decorated bean. The annotations are qualifiers declared by the decorated bean.</text>
</assertion>
<assertion id="c">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier type are given, an |IllegalArgumentException| is thrown.</text>
</assertion>
<assertion id="d">
- <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
<assertion id="e">
@@ -4958,7 +4971,7 @@
</assertion>
</section>
- <section id="11.3.13" title="Interceptor resolution">
+ <section id="11.3.12" title="Interceptor resolution">
<assertion id="a">
<text>The method |BeanManager.resolveInterceptors()| returns the ordered list of interceptors for a set of interceptor bindings, as defined in Section 9.5, "Interceptor resolution".</text>
</assertion>
@@ -4976,46 +4989,60 @@
</assertion>
</section>
- <section id="11.3.14" title="Determining if an annotation is a binding type, scope type, stereotype or interceptor binding type">
- <assertion id="aa">
- <text>A portable extension may test an annotation to determine if it is a _binding type_, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
- </assertion>
+ <section id="11.3.13" title="Determining if an annotation is a qualifier type, scope type, stereotype or interceptor binding type">
+ <group>
+ <text>A portable extension may test an annotation to determine if it is a qualifier type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or determine if a scope type is a normal or passivating scope.</text>
- <assertion id="ab">
- <text>A portable extension may test an annotation to determine if it is a binding type, _scope type_, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
- </assertion>
+ <assertion id="aa">
+ <text>Test qualifier type.</text>
+ </assertion>
- <assertion id="ac">
- <text>A portable extension may test an annotation to determine if it is a binding type, scope type, _stereotype_ or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
- </assertion>
+ <assertion id="ab">
+ <text>Test scope type.</text>
+ </assertion>
- <assertion id="ad">
- <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or _interceptor binding type_, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
- </assertion>
+ <assertion id="ac">
+ <text>Test stereotype.</text>
+ </assertion>
- <assertion id="ae">
- <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a _stereotype_ or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
- </assertion>
+ <assertion id="ad">
+ <text>Test interceptor binding type.</text>
+ </assertion>
- <assertion id="af">
- <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or _interceptor binding type_, or obtain a |ScopeType| representing a scope type.</text>
- </assertion>
+ <assertion id="ae">
+ <text>Test meta-annotations for stereotype.</text>
+ </assertion>
- <assertion id="ag">
- <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a _|ScopeType| representing a scope type_.</text>
- </assertion>
+ <assertion id="af">
+ <text>Test meta-annotations for interceptor binding type.</text>
+ </assertion>
+
+ <assertion id="ag">
+ <text>Test obtaining a |ScopeType|.</text>
+ </assertion>
+ </group>
</section>
- <section id="11.3.15" title="Obtaining the active Context for a scope">
+ <section id="11.3.14" title="Obtaining the active Context for a scope">
<assertion id="a">
<text>The method |BeanManager.getContext()| retrieves an active context object associated with the a given scope, as defined in Section 6.5.1, "The active context object for a scope".</text>
</assertion>
</section>
- <section id="11.3.16" title="Obtaining the ELResolver">
+ <section id="11.3.15" title="Obtaining the ELResolver">
<assertion id="a">
<text>The method |BeanManager.getELResolver()| returns the |javax.el.ELResolver| specified in Section 5.8, "Integration with Unified EL".</text>
</assertion>
+ </section>
+
+ <section id="11.3.16" title="Wrapping a Unified EL ExpressionFactory">
+ <assertion id="a">
+ <text>The method |BeanManager.wrapExpressionFactory()| returns a wrapper |javax.el.ExpressionFactory| that delegates |MethodExpression| and |ValueExpression| creation to the given |ExpressionFactory|.</text>
+ </assertion>
+
+ <assertion id="b">
+ <text>When a Unified EL expression is evaluated using a |MethodExpression| or |ValueExpression| returned by the wrapper |ExpressionFactory|, the rules defined in Section 6.4.3, "Dependent pseudo-scope and Unified EL" are enforced by the container.</text>
+ </assertion>
</section>
<section id="11.3.17" title="Obtaining an AnnotatedType for a class">
@@ -5090,7 +5117,7 @@
</assertion>
<assertion id="e">
- <text>For each service provider, the container must provide a bean of scope |@ApplicationScoped| and binding |@Current|, supporting injection of a reference to the service provider instance. The bean types of this bean include the class of the service
+ <text>For each service provider, the container must provide a bean of scope |@ApplicationScoped| and binding |@Default|, supporting injection of a reference to the service provider instance. The bean types of this bean include the class of the service
provider and all superclases and interfaces.</text>
</assertion>
</section>
@@ -5101,11 +5128,11 @@
</assertion>
<assertion id="ab">
- <text>|addBindingType()| declares an annotation type as a binding type.</text>
+ <text>|addQualifier()| declares an annotation type as a qualifier type.</text>
</assertion>
<assertion id="ac">
- <text>|addScopeType()| declares an annotation type as a scope type.</text>
+ <text>|addScope()| declares an annotation type as a scope type.</text>
</assertion>
<assertion id="ad">
@@ -5113,7 +5140,7 @@
</assertion>
<assertion id="ae">
- <text>|addInterceptorBindingType()| declares an annotation type as an interceptor binding type, and specifies its meta-annotations.</text>
+ <text>|addInterceptorBinding()| declares an annotation type as an interceptor binding type, and specifies its meta-annotations.</text>
</assertion>
<assertion id="af">
@@ -5241,8 +5268,8 @@
<text>The container must fire an event for each producer method or field, including resources.</text>
</assertion>
- <assertion id="b">
- <text>The event object must be of type |javax.enterprise.inject.spi.ProcessProducer<X, T>|, where X is bean class and T is the return type of the producer method or the type of the producer field.</text>
+ <assertion id="ba">
+ <text>The event object must be of type |javax.enterprise.inject.spi.ProcessProducer<T, X>|, where |T| is the bean class of the bean that declares the producer method or field and |X| is the return type of the producer method or the type of the producer field.</text>
</assertion>
<assertion id="c">
@@ -5283,12 +5310,12 @@
<text>For a session bean with bean class |X|, the container must raise an event of type |ProcessSessionBean<X>|.</text>
</assertion>
- <assertion id="ea">
- <text>For a producer method if a bean class |X| with method return type |T|, the container must raise an event of type |ProcessProducerMethod<X, T>|.</text>
+ <assertion id="eaa">
+ <text>For a producer method with method return type |X| of a bean with bean class |T|, the container must raise an event of type |ProcessProducerMethod<T, X>|.</text>
</assertion>
<assertion id="eb">
- <text>For a producer field of a bean class |X| with field type |T|, the container must raise an event of type |ProcessProducerField<X>|.</text>
+ <text>For a producer field with field type |X| of a bean with bean class |T|, the container must raise an event of type |ProcessProducerField<T, X>|.</text>
</assertion>
<assertion id="ec">
@@ -5325,12 +5352,12 @@
</section>
<section id="11.5.9" title="ProcessObserverMethod event">
- <assertion id="aa">
- <text>The container must fire an event for each observer method. The event object must be of type |javax.enterprise.inject.spi.ProcessObserverMethod<X, T>| where |X| is bean class and |T| is the observed event type of the observer method.</text>
+ <assertion id="aaa">
+ <text>The container must fire an event for each observer method. The event object must be of type |javax.enterprise.inject.spi.ProcessObserverMethod<T, X>| where |T| is the bean class of the bean that declares the observer method and |X| is the observed event type of the observer method.</text>
</assertion>
- <assertion id="ab">
- <text>|getAnnotatedMethod()| returns the |AnnotatedMethod| representing the observer method.</text>
+ <assertion id="aba">
+ <text>|getAnnotatedEventParameter()| returns the |AnnotatedParameter| representing the event parameter.</text>
</assertion>
<assertion id="ba">
15 years, 5 months