[jboss-cvs] JBossAS SVN: r61212 - in trunk: ejb3/src/main/org/jboss/injection and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 7 18:46:46 EST 2007
Author: thomas.diesler at jboss.com
Date: 2007-03-07 18:46:45 -0500 (Wed, 07 Mar 2007)
New Revision: 61212
Added:
trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerDelegate.java
Removed:
trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java
trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerFactory.java
Modified:
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java
trunk/server/src/main/org/jboss/deployment/ClientDeployer.java
trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
trunk/server/src/main/org/jboss/ejb/Container.java
trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java
trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java
trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java
trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java
trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/TomcatInjectionContainer.java
trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java
Log:
Fix duplicate <service-ref> binding in webapps
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -109,7 +109,7 @@
}
else
{
- targetRef.merge(sref);
+ targetRef.mergeJBossProperties(sref);
}
}
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -676,7 +676,7 @@
}
else
{
- targetRef.merge(sref);
+ targetRef.mergeJBossProperties(sref);
}
}
Modified: trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/ejb3/src/main/org/jboss/injection/ServiceRefInjector.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -29,8 +29,7 @@
import javax.xml.ws.WebServiceException;
import org.jboss.logging.Logger;
-import org.jboss.metadata.serviceref.ServiceRefHandler;
-import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
+import org.jboss.metadata.serviceref.ServiceRefHandlerDelegate;
import org.jboss.metadata.serviceref.ServiceRefMetaData;
import org.jboss.virtual.VirtualFile;
@@ -45,28 +44,22 @@
private static final Logger log = Logger.getLogger(ServiceRefInjector.class);
private String name;
- private AnnotatedElement anElement;
-
private ServiceRefMetaData sref;
public ServiceRefInjector(String name, AnnotatedElement anElement, ServiceRefMetaData sref)
{
this.name = name;
- this.anElement = anElement;
this.sref = sref;
+ sref.setAnnotatedElement(anElement);
}
public void inject(InjectionContainer container)
{
try
{
- Context encCtx = container.getEnc();
+ Context envCtx = container.getEnc();
VirtualFile vfsRoot = container.getRootFile();
-
- ServiceRefHandler factory = ServiceRefHandlerFactory.newInstance();
- factory.setupServiceRef(encCtx, name, anElement, vfsRoot, sref.toXMLFragmet());
-
- log.debug("ServiceRef bound [env=" + name + "]");
+ ServiceRefHandlerDelegate.bindServiceRef(envCtx, name, vfsRoot, sref);
}
catch (Exception e)
{
Modified: trunk/server/src/main/org/jboss/deployment/ClientDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/ClientDeployer.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/deployment/ClientDeployer.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -48,14 +48,12 @@
import org.jboss.metadata.ResourceEnvRefMetaData;
import org.jboss.metadata.ResourceRefMetaData;
import org.jboss.metadata.XmlFileLoader;
-import org.jboss.metadata.serviceref.ServiceRefHandler;
-import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
-import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metadata.serviceref.ServiceRefHandlerDelegate;
import org.jboss.naming.Util;
import org.jboss.util.xml.DOMUtils;
import org.jboss.virtual.VirtualFile;
-import org.w3c.dom.Element;
import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
/**
* A deployer for j2ee application client jars
@@ -270,16 +268,8 @@
}
// Bind <service-ref> elements
- ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
- if (refHandler != null)
- {
- for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
- {
- String encName = sref.getServiceRefName();
- VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
- refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
- }
- }
+ VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
+ ServiceRefHandlerDelegate.bindServiceRefs(envCtx, vfsRoot, metaData.getServiceRefs().values());
// Bind resource references
HashMap resRefs = metaData.getResourceReferences();
Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -590,7 +590,7 @@
}
else
{
- targetRef.merge(sref);
+ targetRef.mergeJBossProperties(sref);
}
}
Modified: trunk/server/src/main/org/jboss/ejb/Container.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/Container.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/ejb/Container.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -24,6 +24,7 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
+import java.rmi.MarshalException;
import java.security.AccessController;
import java.security.Policy;
import java.security.PrivilegedActionException;
@@ -33,10 +34,6 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-import java.util.Date;
-import java.util.Collection;
-import java.rmi.MarshalException;
-import java.io.Serializable;
import javax.ejb.EJBException;
import javax.ejb.EJBObject;
@@ -62,7 +59,12 @@
import org.jboss.ejb.plugins.local.BaseLocalProxyFactory;
import org.jboss.ejb.txtimer.EJBTimerService;
import org.jboss.ejb.txtimer.EJBTimerServiceImpl;
-import org.jboss.invocation.*;
+import org.jboss.invocation.Invocation;
+import org.jboss.invocation.InvocationKey;
+import org.jboss.invocation.InvocationStatistics;
+import org.jboss.invocation.InvocationType;
+import org.jboss.invocation.JBossLazyUnmarshallingException;
+import org.jboss.invocation.MarshalledInvocation;
import org.jboss.logging.Logger;
import org.jboss.metadata.ApplicationMetaData;
import org.jboss.metadata.BeanMetaData;
@@ -73,15 +75,13 @@
import org.jboss.metadata.MessageDestinationRefMetaData;
import org.jboss.metadata.ResourceEnvRefMetaData;
import org.jboss.metadata.ResourceRefMetaData;
-import org.jboss.metadata.serviceref.ServiceRefHandler;
-import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
-import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metadata.serviceref.ServiceRefHandlerDelegate;
import org.jboss.mx.util.ObjectNameConverter;
import org.jboss.mx.util.ObjectNameFactory;
+import org.jboss.naming.ENCFactory;
import org.jboss.naming.ENCThreadLocalKey;
import org.jboss.naming.NonSerializableFactory;
import org.jboss.naming.Util;
-import org.jboss.naming.ENCFactory;
import org.jboss.security.AnybodyPrincipal;
import org.jboss.security.AuthenticationManager;
import org.jboss.security.AuthorizationManager;
@@ -1224,16 +1224,8 @@
}
// Bind service references
- ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
- if (refHandler != null)
- {
- for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
- {
- String encName = sref.getServiceRefName();
- VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
- refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
- }
- }
+ VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
+ ServiceRefHandlerDelegate.bindServiceRefs(envCtx, vfsRoot, metaData.getServiceRefs().values());
// Bind resource references
{
Deleted: trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandler.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -1,45 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.metadata.serviceref;
-
-// $Id$
-
-import java.lang.reflect.AnnotatedElement;
-
-import javax.naming.Context;
-import javax.naming.NamingException;
-
-import org.jboss.virtual.VirtualFile;
-
-/**
- * Implemtent to bind web service ref
- *
- * @author Thomas.Diesler at jboss.org
- * @since 05-May-2004
- */
-public interface ServiceRefHandler
-{
- /**
- * Binds a Service into the callers ENC for every service-ref element
- */
- void setupServiceRef(Context encCtx, String encName, AnnotatedElement anElement, VirtualFile vfsRoot, String xmlFragment) throws NamingException;
-}
Copied: trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerDelegate.java (from rev 61199, trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerFactory.java)
===================================================================
--- trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerDelegate.java (rev 0)
+++ trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerDelegate.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.serviceref;
+
+// $Id$
+
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.mx.util.ObjectNameFactory;
+import org.jboss.virtual.VirtualFile;
+
+/**
+ * Factory for ServiceRefHandler
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2004
+ */
+public class ServiceRefHandlerDelegate
+{
+ // provide logging
+ private static final Logger log = Logger.getLogger(ServiceRefHandlerDelegate.class);
+
+ private static ServiceRefHandler refHandler;
+
+ // This interface is exposed from JBossWS
+ public interface ServiceRefHandler
+ {
+ void setupServiceRef(Context encCtx, String encName, AnnotatedElement anElement, VirtualFile vfsRoot, String xmlFragment) throws NamingException;
+ }
+
+ /**
+ * Bind multiple service refs to the client environment
+ */
+ public static void bindServiceRefs(Context envCtx, VirtualFile vfsRoot, Collection<ServiceRefMetaData> serviceRefs) throws NamingException
+ {
+ for (ServiceRefMetaData sref : serviceRefs)
+ {
+ String encName = sref.getServiceRefName();
+ bindServiceRef(envCtx, encName, vfsRoot, sref);
+ }
+ }
+
+ /**
+ * Bind a single service ref to the client environment
+ */
+ public static void bindServiceRef(Context envCtx, String encName, VirtualFile vfsRoot, ServiceRefMetaData sref) throws NamingException
+ {
+ ServiceRefHandler handler = getServiceRefHandler();
+ if (handler != null)
+ {
+ AnnotatedElement anElement = sref.getAnnotatedElement();
+ handler.setupServiceRef(envCtx, encName, anElement, vfsRoot, sref.toXMLFragmet());
+ log.debug(encName + ": " + sref.getServiceRefName());
+ sref.setProcessed(true);
+ }
+ }
+
+ private static ServiceRefHandler getServiceRefHandler()
+ {
+ if (refHandler == null)
+ {
+ MBeanServer server = MBeanServerLocator.locateJBoss();
+ ObjectName objectName = ObjectNameFactory.create("jboss.ws:service=ServiceRefHandler");
+
+ if (server.isRegistered(objectName))
+ {
+ refHandler = (ServiceRefHandler)MBeanProxyExt.create(ServiceRefHandler.class, objectName, server);
+ }
+ else
+ {
+ log.warn("Not registered: " + objectName);
+ }
+ }
+ return refHandler;
+ }
+}
Deleted: trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerFactory.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefHandlerFactory.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.serviceref;
-
-// $Id$
-
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
-import org.jboss.logging.Logger;
-import org.jboss.mx.util.MBeanProxyExt;
-import org.jboss.mx.util.MBeanServerLocator;
-import org.jboss.mx.util.ObjectNameFactory;
-
-/**
- * Factory for ServiceRefHandler
- *
- * @author Thomas.Diesler at jboss.org
- * @since 05-May-2004
- */
-public class ServiceRefHandlerFactory
-{
- // provide logging
- private static final Logger log = Logger.getLogger(ServiceRefHandlerFactory.class);
-
- /** Get the ServiceRefHandler MBean proxy
- */
- public static ServiceRefHandler newInstance()
- {
- MBeanServer server = MBeanServerLocator.locateJBoss();
- ObjectName objectName = ObjectNameFactory.create("jboss.ws:service=ServiceRefHandler");
-
- ServiceRefHandler refHandler = null;
- if (server.isRegistered(objectName))
- {
- refHandler = (ServiceRefHandler)MBeanProxyExt.create(ServiceRefHandler.class, objectName, server);
- }
- else
- {
- log.warn("Not registered: " + objectName);
- }
- return refHandler;
- }
-}
Modified: trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -24,6 +24,7 @@
// $Id$
import java.io.Serializable;
+import java.lang.reflect.AnnotatedElement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -51,7 +52,10 @@
{
// provide logging
private static Logger log = Logger.getLogger(ServiceRefMetaData.class);
-
+
+ private AnnotatedElement anElement;
+ private boolean processed;
+
// Standard properties
// The required <service-ref-name> element
@@ -88,15 +92,8 @@
// Arbitrary proxy properties given by <call-property>
private List<CallPropertyMetaData> callProperties = new ArrayList<CallPropertyMetaData>();
- /**
- * Default constructor, used when unmarshalling on the client side
- */
- public ServiceRefMetaData()
+ public void mergeJBossProperties(ServiceRefMetaData sref)
{
- }
-
- public void merge(ServiceRefMetaData sref)
- {
serviceImplClass = sref.serviceImplClass;
configName = sref.configName;
configFile = sref.configFile;
@@ -128,6 +125,16 @@
}
}
+ public String getServiceRefName()
+ {
+ return serviceRefName;
+ }
+
+ public void setServiceRefName(String serviceRefName)
+ {
+ this.serviceRefName = serviceRefName;
+ }
+
public String getMappingFile()
{
return mappingFile;
@@ -196,16 +203,6 @@
this.serviceQName = serviceQName;
}
- public String getServiceRefName()
- {
- return serviceRefName;
- }
-
- public void setServiceRefName(String serviceRefName)
- {
- this.serviceRefName = serviceRefName;
- }
-
public String getServiceRefType()
{
return serviceRefType;
@@ -393,6 +390,26 @@
return isValid;
}
+ public AnnotatedElement getAnnotatedElement()
+ {
+ return anElement;
+ }
+
+ public void setAnnotatedElement(AnnotatedElement anElement)
+ {
+ this.anElement = anElement;
+ }
+
+ public boolean isProcessed()
+ {
+ return processed;
+ }
+
+ public void setProcessed(boolean bindingProcessed)
+ {
+ this.processed = bindingProcessed;
+ }
+
public String toXMLFragmet()
{
Document document = DocumentHelper.createDocument();
@@ -435,4 +452,12 @@
return root.asXML();
}
+
+ public String toString()
+ {
+ StringBuilder sb = new StringBuilder("[");
+ sb.append("name=" + serviceRefName + ",si=" + serviceInterface);
+ sb.append("]");
+ return sb.toString();
+ }
}
Modified: trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -224,7 +224,7 @@
}
else
{
- targetRef.merge(sref);
+ targetRef.mergeJBossProperties(sref);
}
}
Modified: trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java
===================================================================
--- trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -37,10 +37,10 @@
import javax.naming.LinkRef;
import javax.naming.NamingException;
import javax.security.jacc.PolicyConfiguration;
-import javax.security.jacc.PolicyConfigurationFactory;
+import javax.security.jacc.PolicyConfigurationFactory;
-import org.jboss.deployers.spi.deployer.DeploymentUnit;
-import org.jboss.deployment.security.JaccPolicyMBean;
+import org.jboss.deployers.spi.deployer.DeploymentUnit;
+import org.jboss.deployment.security.JaccPolicyMBean;
import org.jboss.ejb.EjbUtil50;
import org.jboss.logging.Logger;
import org.jboss.metadata.EjbLocalRefMetaData;
@@ -51,16 +51,15 @@
import org.jboss.metadata.ResourceEnvRefMetaData;
import org.jboss.metadata.ResourceRefMetaData;
import org.jboss.metadata.WebMetaData;
-import org.jboss.metadata.serviceref.ServiceRefHandler;
-import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
-import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metadata.serviceref.ServiceRefHandlerDelegate;
import org.jboss.mx.loading.LoaderRepositoryFactory;
import org.jboss.naming.NonSerializableFactory;
import org.jboss.naming.Util;
import org.jboss.security.AuthorizationManager;
import org.jboss.security.authorization.PolicyRegistration;
import org.jboss.virtual.VirtualFile;
-import org.jboss.web.WebApplication;
+import org.jboss.web.WebApplication;
+import org.jboss.web.AbstractWebContainer.WebDescriptorParser;
import org.omg.CORBA.ORB;
/**
@@ -512,16 +511,8 @@
log.debug("linkEjbLocalRefs");
linkEjbLocalRefs(unit, ejbLocalRefs, envCtx);
log.debug("linkServiceRefs");
- ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
- if (refHandler != null)
- {
- for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
- {
- String encName = sref.getServiceRefName();
- VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
- refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
- }
- }
+ VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
+ ServiceRefHandlerDelegate.bindServiceRefs(envCtx, vfsRoot, metaData.getServiceRefs().values());
}
protected void addEnvEntries(Iterator envEntries, Context envCtx)
Modified: trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -188,7 +188,7 @@
}
else
{
- targetRef.merge(sref);
+ targetRef.mergeJBossProperties(sref);
}
}
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/TomcatInjectionContainer.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/TomcatInjectionContainer.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/TomcatInjectionContainer.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -1,24 +1,24 @@
/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.web.tomcat.tc6;
import java.io.IOException;
@@ -96,20 +96,24 @@
added = null;
}
- public Map<String, EncInjector> getAdded() { return added; }
+ public Map<String, EncInjector> getAdded()
+ {
+ return added;
+ }
-
@Override
public EncInjector put(String key, EncInjector value)
{
- if (added != null) added.put(key, value);
+ if (added != null)
+ added.put(key, value);
return super.put(key, value);
}
@Override
public void putAll(Map<? extends String, ? extends EncInjector> m)
{
- if (added != null) added.putAll(m);
+ if (added != null)
+ added.putAll(m);
super.putAll(m);
}
}
@@ -118,7 +122,6 @@
protected Map<String, Map<AccessibleObject, Injector>> encInjections = new HashMap<String, Map<AccessibleObject, Injector>>();
protected Map<String, Map<AccessibleObject, Injector>> resolvedClassInjections = new HashMap<String, Map<AccessibleObject, Injector>>();
-
protected List<PersistenceUnitDeployment> persistenceUnitDeployments = new ArrayList<PersistenceUnitDeployment>();
protected LinkedHashMap ejbContainers = new LinkedHashMap(); // will always be empty.
protected DeploymentPersistenceUnitResolver persistenceUnitResolver;
@@ -128,6 +131,7 @@
protected DeploymentUnit unit;
protected ClassLoader webLoader;
protected WebApplication appInfo;
+ protected WebDD webDD;
public TomcatInjectionContainer(WebApplication appInfo, DeploymentUnit unit)
{
@@ -138,10 +142,10 @@
persistenceUnitResolver = new DeploymentPersistenceUnitResolver(persistenceUnitDeployments, deploymentScope, ejbContainers);
ejbResolver = new WarEjbResolver(deploymentScope, unit.getSimpleName());
}
-
+
public EnvironmentRefGroup getEnvironmentRefGroup()
{
- return null;
+ return webDD;
}
public void postConstruct(Object object) throws IllegalAccessException, InvocationTargetException
@@ -233,7 +237,7 @@
log.debug("Failed to find jboss-web.xml");
}
- InputStream[] streams = {webIS, jbossWebIS};
+ InputStream[] streams = { webIS, jbossWebIS };
return streams;
}
@@ -247,16 +251,15 @@
*/
public void processMetadata()
{
- WebDD xml = null;
InputStream[] streams = getInputStreams();
if (streams[0] != null)
{
try
{
- xml = WebDDObjectFactory.parse(streams[0]);
+ webDD = WebDDObjectFactory.parse(streams[0]);
if (streams[1] != null)
{
- xml = JBossWebDDObjectFactory.parse(xml, streams[1]);
+ webDD = JBossWebDDObjectFactory.parse(webDD, streams[1]);
}
}
catch (JBossXBException e)
@@ -286,9 +289,10 @@
Thread.currentThread().setContextClassLoader(webLoader);
try
{
- for (InjectionHandler handler : handlers) handler.loadXml(xml, this);
+ for (InjectionHandler handler : handlers)
+ handler.loadXml(webDD, this);
- for (Object obj : xml.getServlets())
+ for (Object obj : webDD.getServlets())
{
Servlet servlet = (Servlet)obj;
try
@@ -307,7 +311,7 @@
}
}
- for (Object obj : xml.getFilters())
+ for (Object obj : webDD.getFilters())
{
Filter filter = (Filter)obj;
try
@@ -323,7 +327,7 @@
throw new RuntimeException("could not find filter class in classpath", e);
}
}
- for (Object obj : xml.getListeners())
+ for (Object obj : webDD.getListeners())
{
Listener listener = (Listener)obj;
try
@@ -366,7 +370,7 @@
{
return unit.getDeploymentContext().getRoot();
}
-
+
public String getIdentifier()
{
return unit.getSimpleName();
@@ -395,7 +399,7 @@
Thread.currentThread().setContextClassLoader(getClassloader());
try
{
- return (Context) new InitialContext().lookup("java:comp");
+ return (Context)new InitialContext().lookup("java:comp");
}
catch (NamingException e)
{
@@ -442,7 +446,7 @@
{
return method.getAnnotation(annotationType);
}
-
+
public <T extends Annotation> T getAnnotation(Class<T> annotationType, Method method)
{
return method.getAnnotation(annotationType);
@@ -452,7 +456,7 @@
{
return field.getAnnotation(annotationType);
}
-
+
public <T extends Annotation> T getAnnotation(Class<T> annotationType, Field field)
{
return field.getAnnotation(annotationType);
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -31,6 +31,7 @@
import java.security.CodeSource;
import java.security.cert.Certificate;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -50,6 +51,9 @@
import org.jboss.deployers.spi.deployer.DeploymentUnit;
import org.jboss.logging.Logger;
import org.jboss.metadata.WebMetaData;
+import org.jboss.metadata.serviceref.ServiceRefHandlerDelegate;
+import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metamodel.descriptor.EnvironmentRefGroup;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.naming.NonSerializableFactory;
import org.jboss.security.AuthorizationManager;
@@ -352,25 +356,24 @@
envCtx = envCtx.createSubcontext("env");
injectionContainer.populateEnc(webLoader.getClassLoader());
+ // TODO: this should be bindings in the metadata
+ currentThread.setContextClassLoader(webLoader.getClassLoader());
+ String securityDomain = metaData.getSecurityDomain();
+ log.debug("linkSecurityDomain");
+ linkSecurityDomain(securityDomain, envCtx);
+
// Bind <service-ref> elements
- /*
- ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
- if (refHandler != null)
+ VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
+ EnvironmentRefGroup envRefGroup = injectionContainer.getEnvironmentRefGroup();
+ for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
{
- for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
+ String refName = sref.getServiceRefName();
+ ServiceRefMetaData injectedRef = envRefGroup.getServiceRef(refName);
+ if (injectedRef == null || injectedRef.isProcessed() == false)
{
- String encName = sref.getServiceRefName();
- VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
- refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
+ ServiceRefHandlerDelegate.bindServiceRef(envCtx, refName, vfsRoot, sref);
}
}
- */
-
- // TODO: this should be bindings in the metadata
- currentThread.setContextClassLoader(webLoader.getClassLoader());
- String securityDomain = metaData.getSecurityDomain();
- log.debug("linkSecurityDomain");
- linkSecurityDomain(securityDomain, envCtx);
}
finally
{
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java 2007-03-07 23:43:28 UTC (rev 61211)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java 2007-03-07 23:46:45 UTC (rev 61212)
@@ -53,9 +53,9 @@
import org.jboss.deployers.spi.deployer.DeploymentUnit;
import org.jboss.logging.Logger;
import org.jboss.metadata.WebMetaData;
-import org.jboss.metadata.serviceref.ServiceRefHandler;
-import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
+import org.jboss.metadata.serviceref.ServiceRefHandlerDelegate;
import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metamodel.descriptor.EnvironmentRefGroup;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.naming.NonSerializableFactory;
import org.jboss.security.AuthorizationManager;
@@ -467,6 +467,7 @@
log.debug("Linked java:comp/UserTransaction to JNDI name: UserTransaction");
envCtx = envCtx.createSubcontext("env");
injectionContainer.populateEnc(webLoader.getClassLoader());
+
// TODO: this should be bindings in the metadata
currentThread.setContextClassLoader(webLoader.getClassLoader());
String securityDomain = metaData.getSecurityDomain();
@@ -474,18 +475,17 @@
linkSecurityDomain(securityDomain, envCtx);
// Bind <service-ref> elements
- /*
- ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
- if (refHandler != null)
+ VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
+ EnvironmentRefGroup envRefGroup = injectionContainer.getEnvironmentRefGroup();
+ for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
{
- for (ServiceRefMetaData sref : metaData.getServiceRefs().values())
+ String refName = sref.getServiceRefName();
+ ServiceRefMetaData injectedRef = envRefGroup.getServiceRef(refName);
+ if (injectedRef == null || injectedRef.isProcessed() == false)
{
- String encName = sref.getServiceRefName();
- VirtualFile vfsRoot = unit.getDeploymentContext().getRoot();
- refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
+ ServiceRefHandlerDelegate.bindServiceRef(envCtx, refName, vfsRoot, sref);
}
}
- */
}
catch (Throwable t)
{
More information about the jboss-cvs-commits
mailing list