bug 395436: Removed EJB References from Tomcat Naming Resources because OpenEJB will bind the correct JNDI References.
diff --git a/org.eclipse.virgo.web.enterprise.applistener/src/main/java/org/eclipse/virgo/web/enterprise/applistener/internal/NamingResourcesListener.java b/org.eclipse.virgo.web.enterprise.applistener/src/main/java/org/eclipse/virgo/web/enterprise/applistener/internal/NamingResourcesListener.java new file mode 100644 index 0000000..6ab67fa --- /dev/null +++ b/org.eclipse.virgo.web.enterprise.applistener/src/main/java/org/eclipse/virgo/web/enterprise/applistener/internal/NamingResourcesListener.java
@@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2012 SAP AG + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Violeta Georgieva - initial contribution + *******************************************************************************/ + +package org.eclipse.virgo.web.enterprise.applistener.internal; + +import org.apache.catalina.Context; +import org.apache.catalina.Lifecycle; +import org.apache.catalina.LifecycleEvent; +import org.apache.catalina.LifecycleListener; +import org.apache.catalina.deploy.ContextEjb; +import org.apache.catalina.deploy.ContextLocalEjb; +import org.apache.catalina.deploy.NamingResources; + +public class NamingResourcesListener implements LifecycleListener { + + @Override + public void lifecycleEvent(LifecycleEvent event) { + Object container = event.getLifecycle(); + + if (!(container instanceof Context)) { + return; + } + + if (Lifecycle.CONFIGURE_START_EVENT.equals(event.getType())) { + NamingResources namingResources = ((Context) container).getNamingResources(); + + ContextEjb[] ejbs = namingResources.findEjbs(); + for (int i = 0; ejbs != null && i < ejbs.length; i++) { + namingResources.removeEjb(ejbs[i].getName()); + } + + ContextLocalEjb[] localEjbs = namingResources.findLocalEjbs(); + for (int i = 0; localEjbs != null && i < localEjbs.length; i++) { + namingResources.removeLocalEjb(localEjbs[i].getName()); + } + } + } + +}