[jboss-cvs] JBossAS SVN: r66445 - in projects/metadata/trunk/src/main/java/org/jboss: metadata/adaptor and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 25 13:21:27 EDT 2007


Author: thomas.diesler at jboss.com
Date: 2007-10-25 13:21:27 -0400 (Thu, 25 Oct 2007)
New Revision: 66445

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/adaptor/
   projects/metadata/trunk/src/main/java/org/jboss/metadata/adaptor/ServiceReferenceMetaDataAdaptor.java
   projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefDelegate.java
   projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefObjectFactory.java
Removed:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/serviceref/
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/DDObjectFactory.java
Log:
ServiceReferenceMetaDataAdaptor

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/adaptor/ServiceReferenceMetaDataAdaptor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/adaptor/ServiceReferenceMetaDataAdaptor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/adaptor/ServiceReferenceMetaDataAdaptor.java	2007-10-25 17:21:27 UTC (rev 66445)
@@ -0,0 +1,198 @@
+/*
+ * 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.adaptor;
+
+//$Id: ServiceRefDelegate.java 65538 2007-09-21 17:29:33Z scott.stark at jboss.org $
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.metadata.javaee.jboss.JBossPortComponentRef;
+import org.jboss.metadata.javaee.jboss.JBossServiceReferenceMetaData;
+import org.jboss.metadata.javaee.jboss.StubPropertyMetaData;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.javaee.spec.PortComponentRef;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerChainMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerChainsMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlersMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
+import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainsMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedInitParamMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedPortComponentRefMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedServiceRefMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedStubPropertyMetaData;
+
+/**
+ * Adaptor for the ServiceReferenceMetaData from the metadata project to
+ * the UnifiedServiceRefMetaData from the jbossws-spi
+ * 
+ * @author tdiesler.diesler at jboss.com
+ * @since 25-Oct-2007
+ */
+public class ServiceReferenceMetaDataAdaptor
+{
+   public static UnifiedServiceRefMetaData getUnifiedServiceRefMetaData(UnifiedVirtualFile vfsRoot, ServiceReferenceMetaData sref)
+   {
+      UnifiedServiceRefMetaData result = new UnifiedServiceRefMetaData(vfsRoot);
+      result.setServiceRefName(sref.getServiceRefName());
+      result.setServiceInterface(sref.getServiceInterface());
+      result.setServiceRefType(sref.getServiceRefType());
+      result.setWsdlFile(sref.getWsdlFile());
+      result.setMappingFile(sref.getJaxrpcMappingFile());
+      result.setServiceQName(sref.getServiceQname());
+
+      // TODO: should be unbounded
+      PortComponentRef pcRef = sref.getPortComponentRef();
+      if (pcRef != null)
+      {
+         UnifiedPortComponentRefMetaData upcRef = getUnifiedPortComponentRefMetaData(result, pcRef);
+         result.addPortComponentRef(upcRef);
+      }
+
+      ServiceReferenceHandlersMetaData srHandlers = sref.getHandlers();
+      if (srHandlers != null)
+      {
+         Iterator<ServiceReferenceHandlerMetaData> it = srHandlers.iterator();
+         while (it.hasNext())
+         {
+            ServiceReferenceHandlerMetaData srHandlerMetaData = it.next();
+            UnifiedHandlerMetaData uHandlerMetaData = getUnifiedHandlerMetaData(srHandlerMetaData);
+            result.addHandler(uHandlerMetaData);
+         }
+      }
+
+      ServiceReferenceHandlerChainsMetaData srHandlerChains = sref.getHandlerChains();
+      if (srHandlerChains != null)
+      {
+         UnifiedHandlerChainsMetaData uHandlerChains = new UnifiedHandlerChainsMetaData();
+         List<ServiceReferenceHandlerChainMetaData> srHandlerChainList = srHandlerChains.getHandlers();
+         for (ServiceReferenceHandlerChainMetaData srHandlerChain : srHandlerChainList)
+         {
+            UnifiedHandlerChainMetaData uHandlerChain = new UnifiedHandlerChainMetaData();
+            // TODO: soapHeader should be a QName
+            uHandlerChain.setServiceNamePattern(new QName(srHandlerChain.getServiceNamePattern()));
+            uHandlerChain.setPortNamePattern(new QName(srHandlerChain.getPortNamePattern()));
+            //uHandlerChain.setProtocolBindings(srHandlerChain.get);
+            List<ServiceReferenceHandlerMetaData> srHandlerChainHandlers = srHandlerChain.getHandler();
+            Iterator<ServiceReferenceHandlerMetaData> it = srHandlerChainHandlers.iterator();
+            while (it.hasNext())
+            {
+               ServiceReferenceHandlerMetaData srHandlerMetaData = it.next();
+               UnifiedHandlerMetaData uHandlerMetaData = getUnifiedHandlerMetaData(srHandlerMetaData);
+               uHandlerChain.addHandler(uHandlerMetaData);
+            }
+            uHandlerChains.addHandlerChain(uHandlerChain);
+         }
+         result.setHandlerChains(uHandlerChains);
+      }
+
+      if (sref instanceof JBossServiceReferenceMetaData)
+      {
+         JBossServiceReferenceMetaData jbRef = (JBossServiceReferenceMetaData)sref;
+         result.setServiceImplClass(jbRef.getServiceClass());
+         result.setConfigName(jbRef.getConfigName());
+         result.setConfigFile(jbRef.getConfigFile());
+         result.setWsdlOverride(jbRef.getWsdlOverride());
+         result.setHandlerChain(jbRef.getHandlerChain());
+         // TODO
+         //result.setCallProperties(callProps);
+      }
+      return result;
+   }
+
+   private UnifiedHandlerMetaData getUnifiedHandlerMetaData(ServiceReferenceHandlerMetaData srhmd)
+   {
+      UnifiedHandlerMetaData uhmd = new UnifiedHandlerMetaData();
+      uhmd.setHandlerName(srhmd.getHandlerName());
+      uhmd.setHandlerClass(srhmd.getHandlerClass());
+      List<ParamValueMetaData> initParams = srhmd.getInitParam();
+      if (initParams != null)
+      {
+         for (ParamValueMetaData initParam : initParams)
+         {
+            UnifiedInitParamMetaData param = new UnifiedInitParamMetaData();
+            param.setParamName(initParam.getParamName());
+            param.setParamValue(initParam.getParamValue());
+            uhmd.addInitParam(param);
+         }
+      }
+      List<String> soapHeaders = srhmd.getSoapHeader();
+      if (soapHeaders != null)
+      {
+         for (String soapHeader : soapHeaders)
+         {
+            // TODO: soapHeader should be a QName
+            uhmd.addSoapHeader(new QName(soapHeader));
+         }
+      }
+      List<String> soapRoles = srhmd.getSoapRole();
+      if (soapRoles != null)
+      {
+         for (String soapRole : soapRoles)
+         {
+            uhmd.addSoapRole(soapRole);
+         }
+      }
+      List<String> portNames = srhmd.getPortName();
+      if (portNames != null)
+      {
+         for (String portName : portNames)
+         {
+            uhmd.addPortName(portName);
+         }
+      }
+      return uhmd;
+   }
+
+   private UnifiedPortComponentRefMetaData getUnifiedPortComponentRefMetaData(UnifiedServiceRefMetaData usref, PortComponentRef pcref)
+   {
+      UnifiedPortComponentRefMetaData result = new UnifiedPortComponentRefMetaData(usref);
+      result.setServiceEndpointInterface(pcref.getServiceEndpointInterface());
+      result.setEnableMTOM(pcref.isEnableMtom());
+      result.setPortComponentLink(pcref.getPortComponentLink());
+      if (pcref instanceof JBossPortComponentRef)
+      {
+         JBossPortComponentRef jbpcref = (JBossPortComponentRef)pcref;
+         result.setPortQName(jbpcref.getPortQname());
+         result.setConfigName(jbpcref.getConfigName());
+         result.setConfigFile(jbpcref.getConfigFile());
+         List<StubPropertyMetaData> stubProps = jbpcref.getStubProperties();
+         if (stubProps != null)
+         {
+            for (StubPropertyMetaData stubProp : stubProps)
+            {
+               UnifiedStubPropertyMetaData prop = new UnifiedStubPropertyMetaData();
+               prop.setPropName(stubProp.getPropName());
+               prop.setPropValue(stubProp.getPropValue());
+               result.addStubProperty(prop);
+            }
+         }
+      }
+      return result;
+   }
+}

Modified: projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/DDObjectFactory.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/DDObjectFactory.java	2007-10-25 16:27:04 UTC (rev 66444)
+++ projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/DDObjectFactory.java	2007-10-25 17:21:27 UTC (rev 66445)
@@ -23,8 +23,6 @@
 
 import javax.persistence.PersistenceContextType;
 
-import org.jboss.metadata.serviceref.ServiceRefDelegate;
-import org.jboss.metadata.serviceref.ServiceRefObjectFactory;
 import org.jboss.xb.binding.ObjectModelFactory;
 import org.jboss.xb.binding.UnmarshallingContext;
 import org.xml.sax.Attributes;

Copied: projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefDelegate.java (from rev 66421, projects/metadata/trunk/src/main/java/org/jboss/metadata/serviceref/ServiceRefDelegate.java)
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefDelegate.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefDelegate.java	2007-10-25 17:21:27 UTC (rev 66445)
@@ -0,0 +1,150 @@
+/*
+ * 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.metamodel.descriptor;
+
+// $Id$
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
+import org.jboss.wsf.spi.serviceref.ServiceRefElement;
+import org.jboss.wsf.spi.serviceref.ServiceRefHandler;
+import org.jboss.wsf.spi.serviceref.ServiceRefHandlerFactory;
+import org.jboss.wsf.spi.serviceref.ServiceRefMetaData;
+import org.jboss.xb.binding.UnmarshallingContext;
+import org.w3c.dom.Element;
+import org.xml.sax.Attributes;
+
+/**
+ * Factory for ServiceRefHandler
+ * 
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2004
+ */
+ at Deprecated
+class ServiceRefDelegate implements ServiceRefHandler
+{
+   // provide logging
+   private static final Logger log = Logger.getLogger(ServiceRefDelegate.class);
+
+   private static ServiceRefHandler delegate;
+
+   public ServiceRefDelegate()
+   {
+      if (delegate == null)
+      {
+         SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+         delegate = spiProvider.getSPI(ServiceRefHandlerFactory.class).getServiceRefHandler();
+      }
+
+      if (delegate == null)
+         log.warn("ServiceRefHandler not available");
+   }
+
+   public ServiceRefMetaData newServiceRefMetaData()
+   {
+      ServiceRefMetaData sref;
+      if (delegate != null)
+         sref = delegate.newServiceRefMetaData();
+      else
+         sref = new DummyServiceRef();
+      return sref;
+   }
+
+   public Object newChild(ServiceRefElement ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+   {
+      Object child = null;
+      if (delegate != null)
+         child = delegate.newChild(ref, navigator, namespaceURI, localName, attrs);
+      return child;
+   }
+
+   public void setValue(ServiceRefElement ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+   {
+      if (delegate != null)
+         delegate.setValue(ref, navigator, namespaceURI, localName, value);
+   }
+
+   public void bindServiceRef(Context encCtx, String encName, UnifiedVirtualFile vfsRoot, ClassLoader loader, ServiceRefMetaData sref) throws NamingException
+   {
+      if (delegate != null)
+         delegate.bindServiceRef(encCtx, encName, vfsRoot, loader, sref);
+   }
+
+   public static class DummyServiceRef extends ServiceRefMetaData
+   {
+      private String refName;
+
+      @Override
+      public void setServiceRefName(String name)
+      {
+         this.refName = name;
+      }
+
+      @Override
+      public String getServiceRefName()
+      {
+         return refName;
+      }
+
+      @Override
+      public Object getAnnotatedElement()
+      {
+         return null;
+      }
+
+      @Override
+      public void setAnnotatedElement(Object anElement)
+      {
+      }
+
+      @Override
+      public void importJBossXml(Element element)
+      {
+      }
+
+      @Override
+      public void importStandardXml(Element element)
+      {
+      }
+
+      @Override
+      public boolean isProcessed()
+      {
+         return false;
+      }
+
+      @Override
+      public void setProcessed(boolean flag)
+      {
+      }
+
+      @Override
+      public void merge(ServiceRefMetaData serviceRef)
+      {
+      }
+   }
+}

Copied: projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefObjectFactory.java (from rev 66421, projects/metadata/trunk/src/main/java/org/jboss/metadata/serviceref/ServiceRefObjectFactory.java)
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefObjectFactory.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metamodel/descriptor/ServiceRefObjectFactory.java	2007-10-25 17:21:27 UTC (rev 66445)
@@ -0,0 +1,81 @@
+/*
+ * 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.metamodel.descriptor;
+
+// $Id$
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.serviceref.ServiceRefElement;
+import org.jboss.xb.binding.ObjectModelFactory;
+import org.jboss.xb.binding.UnmarshallingContext;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
+import org.xml.sax.Attributes;
+
+/**
+ * A object model factory for <service-ref>
+ * 
+ * @author Thomas.Diesler at jboss.com
+ */
+ at Deprecated
+abstract class ServiceRefObjectFactory implements ObjectModelFactory
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(ServiceRefObjectFactory.class);
+   
+
+   public Object newChild(ServiceRefElement ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+   {
+      return new ServiceRefDelegate().newChild(ref, navigator, namespaceURI, localName, attrs);
+   }
+
+   public void setValue(ServiceRefElement ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+   {
+      new ServiceRefDelegate().setValue(ref, navigator, namespaceURI, localName, value);
+   }
+   
+   public static boolean isJ2EE14Descriptor(Element element)
+   {
+      // Verify J2EE-1.4
+      String nsURI = element.getOwnerDocument().getDocumentElement().getNamespaceURI();
+      boolean isValid = "http://java.sun.com/xml/ns/j2ee".equals(nsURI);
+
+      // Verify JBoss-4.0
+      DocumentType doctype = element.getOwnerDocument().getDoctype();
+      if (isValid == false && doctype != null)
+      {
+         String publicId = doctype.getPublicId();
+         isValid |= "-//JBoss//DTD JBOSS 4.0//EN".equals(publicId);
+         isValid |= "-//JBoss//DTD JBOSS 4.2//EN".equals(publicId);
+         isValid |= "-//JBoss//DTD Web Application 2.4//EN".equals(publicId);
+         isValid |= "-//JBoss//DTD Application Client 4.0//EN".equals(publicId);
+         isValid |= "-//JBoss//DTD Application Client 4.2//EN".equals(publicId);
+      }
+
+      if (isValid == false)
+      {
+         String dtstr = (doctype != null ? "[public=" + doctype.getPublicId() + ",system=" + doctype.getSystemId() + "]" : null);
+         log.debug("Skip <service-ref> for: nsURI=" + nsURI + ",doctype=" + dtstr);
+      }
+      return isValid;
+   }
+}




More information about the jboss-cvs-commits mailing list