Author: dblevins
Date: Wed Sep 21 23:31:58 2011
New Revision: 1173903
URL: http://svn.apache.org/viewvc?rev=1173903&view=rev
Log:
Specialized JSF Support allows for optionaly not wrapping the JSF Application
if CDI is not fully installed
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CustomELAdapter.java
openejb/trunk/openejb3/container/openejb-jsf/
openejb/trunk/openejb3/container/openejb-jsf/pom.xml
openejb/trunk/openejb3/container/openejb-jsf/src/
openejb/trunk/openejb3/container/openejb-jsf/src/main/
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/jsf/
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/jsf/CustomApplicationFactory.java
openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/
openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/META-INF/
openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/META-INF/faces-config.xml
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
openejb/trunk/openejb3/container/pom.xml
openejb/trunk/openejb3/pom.xml
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
(original)
+++
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
Wed Sep 21 23:31:58 2011
@@ -107,6 +107,18 @@
</dependency>
<dependency>
<groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-jsf</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>javaee-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
<artifactId>openejb-tomcat-loader</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
@@ -321,10 +333,6 @@
<version>${myfaces.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.openwebbeans</groupId>
- <artifactId>openwebbeans-jsf</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.openejb.patch</groupId>
<artifactId>openejb-jstl</artifactId>
<version>1.2-SNAPSHOT</version>
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml
(original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml Wed
Sep 21 23:31:58 2011
@@ -45,6 +45,12 @@
<scope>compile</scope>
</dependency>
<dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-jsf</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.1.2</version>
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java
Wed Sep 21 23:31:58 2011
@@ -47,6 +47,7 @@ public class AppContext extends Deployme
private final Context globalJndiContext;
private final Context appJndiContext;
private final boolean standaloneModule;
+ private boolean cdiEnabled = false;
private WebBeansContext webBeansContext;
private final Collection<Injection> injections = new HashSet<Injection>();
private final Map<String, Object> bindings = new HashMap<String, Object>();
@@ -93,6 +94,15 @@ public class AppContext extends Deployme
return webContexts;
}
+
+ public boolean isCdiEnabled() {
+ return cdiEnabled;
+ }
+
+ public void setCdiEnabled(boolean cdiEnabled) {
+ this.cdiEnabled = cdiEnabled;
+ }
+
@Override
public String getId() {
return super.getId();
@@ -138,5 +148,4 @@ public class AppContext extends Deployme
return blockingQueue.remove(task);
}
-
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Wed Sep 21 23:31:58 2011
@@ -88,6 +88,7 @@ import org.apache.openejb.cdi.CdiAppCont
import org.apache.openejb.cdi.CdiBuilder;
import org.apache.openejb.cdi.CdiResourceInjectionService;
import org.apache.openejb.cdi.CdiScanner;
+import org.apache.openejb.cdi.CustomELAdapter;
import org.apache.openejb.cdi.ManagedSecurityService;
import org.apache.openejb.cdi.OpenEJBTransactionService;
import org.apache.openejb.core.ConnectorReference;
@@ -132,6 +133,7 @@ import org.apache.webbeans.spi.ContextsS
import org.apache.webbeans.spi.ResourceInjectionService;
import org.apache.webbeans.spi.ScannerService;
import org.apache.webbeans.spi.TransactionService;
+import org.apache.webbeans.spi.adaptor.ELAdaptor;
import org.apache.xbean.finder.ResourceFinder;
import org.apache.xbean.recipe.ObjectRecipe;
import org.apache.xbean.recipe.Option;
@@ -848,13 +850,16 @@ public class Assembler extends Assembler
final Map<Class<?>, Object> services = new HashMap<Class<?>,
Object>();
+ services.put(AppContext.class, appContext);
services.put(TransactionService.class, new
OpenEJBTransactionService());
services.put(ContextsService.class, new
CdiAppContextsService(true));
services.put(ResourceInjectionService.class, new
CdiResourceInjectionService());
services.put(ScannerService.class, new CdiScanner());
+ services.put(ELAdaptor.class, (ELAdaptor) new
CustomELAdapter(appContext));
final Properties properties = new Properties();
properties.setProperty(org.apache.webbeans.spi.SecurityService.class.getName(),
ManagedSecurityService.class.getName());
webBeansContext = new WebBeansContext(services, properties);
+ appContext.setCdiEnabled(false);
}
appContext.set(WebBeansContext.class, webBeansContext);
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CustomELAdapter.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CustomELAdapter.java?rev=1173903&view=auto
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CustomELAdapter.java
(added)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CustomELAdapter.java
Wed Sep 21 23:31:58 2011
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.openejb.cdi;
+
+import org.apache.openejb.AppContext;
+import org.apache.webbeans.el.WebBeansELResolver;
+import org.apache.webbeans.el.WrappedExpressionFactory;
+import org.apache.webbeans.spi.adaptor.ELAdaptor;
+
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CustomELAdapter implements ELAdaptor {
+
+ private final AppContext appContext;
+
+ public CustomELAdapter(AppContext appContext) {
+ this.appContext = appContext;
+
+ }
+
+ @Override
+ public ELResolver getOwbELResolver() {
+ return new WebBeansELResolver();
+ }
+
+ @Override
+ public ExpressionFactory getOwbWrappedExpressionFactory(ExpressionFactory
expressionFactory) {
+ if (!appContext.isCdiEnabled()) return expressionFactory;
+ return new WrappedExpressionFactory(expressionFactory);
+ }
+}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Wed Sep 21 23:31:58 2011
@@ -19,6 +19,8 @@
package org.apache.openejb.cdi;
import org.apache.openejb.AppContext;
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.LogCategory;
@@ -59,6 +61,10 @@ public class ThreadSingletonServiceImpl
@Override
public void initialize(StartupObject startupObject) {
+ AppContext appContext = startupObject.getAppContext();
+
+ appContext.setCdiEnabled(hasBeans(startupObject.getAppInfo()));
+
//initialize owb context, cf geronimo's OpenWebBeansGBean
Properties properties = new Properties();
Map<Class<?>, Object> services = new HashMap<Class<?>, Object>();
@@ -71,8 +77,9 @@ public class ThreadSingletonServiceImpl
properties.setProperty(OpenWebBeansConfiguration.APPLICATION_SUPPORTS_CONVERSATION,
"true");
properties.setProperty(OpenWebBeansConfiguration.IGNORED_INTERFACES,
"org.apache.aries.proxy.weaving.WovenProxy");
+ services.put(AppContext.class, appContext);
services.put(TransactionService.class, new
OpenEJBTransactionService());
- services.put(ELAdaptor.class, new EL22Adaptor());
+ services.put(ELAdaptor.class,(ELAdaptor) new
CustomELAdapter(appContext));
services.put(ContextsService.class, new CdiAppContextsService(true));
services.put(ResourceInjectionService.class, new
CdiResourceInjectionService());
services.put(ScannerService.class, new CdiScanner());
@@ -80,7 +87,7 @@ public class ThreadSingletonServiceImpl
optional(services, ConversationService.class,
"org.apache.webbeans.jsf.DefaultConversationService");
WebBeansContext webBeansContext = new WebBeansContext(services,
properties);
- startupObject.getAppContext().set(WebBeansContext.class,
webBeansContext);
+ appContext.set(WebBeansContext.class, webBeansContext);
Object old = contextEntered(webBeansContext);
try {
setConfiguration(webBeansContext.getOpenWebBeansConfiguration());
@@ -94,6 +101,13 @@ public class ThreadSingletonServiceImpl
}
}
+ private boolean hasBeans(AppInfo appInfo) {
+ for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+ if (ejbJar.beans != null) return true;
+ }
+ return false;
+ }
+
private <T> void optional(Map<Class<?>, Object> services, Class<T> type,
String implementation) {
try {
Class clazz =
this.getClass().getClassLoader().loadClass(implementation);
Added: openejb/trunk/openejb3/container/openejb-jsf/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jsf/pom.xml?rev=1173903&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jsf/pom.xml (added)
+++ openejb/trunk/openejb3/container/openejb-jsf/pom.xml Wed Sep 21 23:31:58
2011
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>container</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>4.0.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>openejb-jsf</artifactId>
+ <packaging>jar</packaging>
+ <name>OpenEJB :: Container :: JSF</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openwebbeans</groupId>
+ <artifactId>openwebbeans-impl</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.myfaces.core</groupId>
+ <artifactId>myfaces-api</artifactId>
+ <version>${myfaces.version}</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb.patch</groupId>
+ <artifactId>openejb-openwebbeans-jsf</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <netbeans.hint.license>openejb</netbeans.hint.license>
+ </properties>
+</project>
Added:
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/jsf/CustomApplicationFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/jsf/CustomApplicationFactory.java?rev=1173903&view=auto
==============================================================================
---
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/jsf/CustomApplicationFactory.java
(added)
+++
openejb/trunk/openejb3/container/openejb-jsf/src/main/java/org/apache/openejb/jsf/CustomApplicationFactory.java
Wed Sep 21 23:31:58 2011
@@ -0,0 +1,101 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.openejb.jsf;
+
+import org.apache.openejb.AppContext;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.spi.adaptor.ELAdaptor;
+
+import javax.el.ExpressionFactory;
+import javax.faces.application.Application;
+import javax.faces.application.ApplicationFactory;
+import javax.faces.application.ApplicationWrapper;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CustomApplicationFactory extends ApplicationFactory {
+
+ private final ApplicationFactory factory;
+ private final WebBeansContext webBeansContext;
+
+ private volatile Application wrappedApplication;
+
+ public CustomApplicationFactory(ApplicationFactory applicationFactory) {
+ this.factory = applicationFactory;
+ webBeansContext = WebBeansContext.getInstance();
+ }
+
+ @Override
+ public Application getApplication() {
+
+ if (!webBeansContext.getBeanManagerImpl().isInUse()) {
+ return factory.getApplication();
+ }
+
+ if (wrappedApplication == null) {
+
+ final AppContext appContext =
webBeansContext.getService(AppContext.class);
+
+ if (appContext != null && !appContext.isCdiEnabled()) {
+
+ wrappedApplication = factory.getApplication();
+
+ } else {
+
+ final Application application = factory.getApplication();
+
+ wrappedApplication = new ApplicationWrapper() {
+
+ private volatile ExpressionFactory expressionFactory;
+
+ @Override
+ public ExpressionFactory getExpressionFactory() {
+ if (expressionFactory == null) {
+ final ELAdaptor elAdaptor =
webBeansContext.getService(ELAdaptor.class);
+ expressionFactory =
elAdaptor.getOwbWrappedExpressionFactory(application.getExpressionFactory());
+ }
+ return expressionFactory;
+ }
+
+ @Override
+ public Application getWrapped() {
+ return application;
+ }
+ };
+
+ }
+ }
+
+ return wrappedApplication;
+ }
+
+ @Override
+ public void setApplication(Application application) {
+ wrappedApplication = application;
+ this.factory.setApplication(application);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.application.ApplicationFactory#getWrapped()
+ */
+ @Override
+ public ApplicationFactory getWrapped() {
+ return factory;
+ }
+
+}
Added:
openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/META-INF/faces-config.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/META-INF/faces-config.xml?rev=1173903&view=auto
==============================================================================
---
openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/META-INF/faces-config.xml
(added)
+++
openejb/trunk/openejb3/container/openejb-jsf/src/main/resources/META-INF/faces-config.xml
Wed Sep 21 23:31:58 2011
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you 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.
+-->
+<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ 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_2_0.xsd">
+
+ <name>org_apache_openwebbeans</name>
+
+ <factory>
+
<application-factory>org.apache.openejb.jsf.CustomApplicationFactory</application-factory>
+ </factory>
+
+ <application>
+
<view-handler>org.apache.webbeans.jsf.ConversationAwareViewHandler</view-handler>
+ <el-resolver>org.apache.webbeans.el.WebBeansELResolver</el-resolver>
+ </application>
+
+ <lifecycle>
+
<phase-listener>org.apache.webbeans.jsf.WebBeansPhaseListener</phase-listener>
+ </lifecycle>
+
+</faces-config>
+
+
Modified: openejb/trunk/openejb3/container/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/pom.xml?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/pom.xml (original)
+++ openejb/trunk/openejb3/container/pom.xml Wed Sep 21 23:31:58 2011
@@ -37,5 +37,6 @@
<module>openejb-osgi</module>
<module>openejb-junit</module>
<module>openejb-core-hibernate</module>
+ <module>openejb-jsf</module>
</modules>
</project>
\ No newline at end of file
Modified: openejb/trunk/openejb3/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/pom.xml?rev=1173903&r1=1173902&r2=1173903&view=diff
==============================================================================
--- openejb/trunk/openejb3/pom.xml (original)
+++ openejb/trunk/openejb3/pom.xml Wed Sep 21 23:31:58 2011
@@ -138,6 +138,7 @@
<org.apache.axis2.version>1.4.1</org.apache.axis2.version>
<org.apache.openwebbeans.version>1.1.1</org.apache.openwebbeans.version>
<geronimo.connector.version>3.1.1</geronimo.connector.version>
+ <myfaces.version>2.0.7</myfaces.version>
</properties>
<build>