From jbossws-commits at lists.jboss.org Mon Oct 18 08:35:54 2010 Content-Type: multipart/mixed; boundary="===============8683169618385938983==" MIME-Version: 1.0 From: jbossws-commits at lists.jboss.org To: jbossws-commits at lists.jboss.org Subject: [jbossws-commits] JBossWS SVN: r13147 - common/trunk/src/main/java/org/jboss/wsf/common/serviceref. Date: Mon, 18 Oct 2010 08:35:54 -0400 Message-ID: <201010181235.o9ICZsRx005087@svn01.web.mwc.hst.phx2.redhat.com> --===============8683169618385938983== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: richard.opalka(a)jboss.com Date: 2010-10-18 08:35:54 -0400 (Mon, 18 Oct 2010) New Revision: 13147 Added: common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServi= ceRefBinder.java Modified: common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServi= ceRefBinderJAXRPC.java common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServi= ceRefBinderJAXWS.java Log: refactoring - adding new SPI methods Added: common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractS= erviceRefBinder.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServ= iceRefBinder.java (rev 0) +++ common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServ= iceRefBinder.java 2010-10-18 12:35:54 UTC (rev 13147) @@ -0,0 +1,64 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2010, Red Hat Middleware LLC, and individual contributors + * as indicated by the @author tags. See the copyright.txt file 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.wsf.common.serviceref; + +import java.lang.reflect.AnnotatedElement; + +import javax.naming.Context; +import javax.naming.NamingException; +import javax.naming.Referenceable; + +import org.jboss.logging.Logger; +import org.jboss.util.naming.Util; +import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedServiceRefMetaDat= a; +import org.jboss.wsf.spi.serviceref.ServiceRefBinder; + +/** + * Abstract service ref binder. + * + * @author Richard Opalka + */ +abstract class AbstractServiceRefBinder implements ServiceRefBinder +{ + private static final Logger log =3D Logger.getLogger(AbstractServiceRef= Binder.class); + + @Deprecated + public final void setupServiceRef(final Context encCtx, final String en= cName, final AnnotatedElement ignored, + final UnifiedServiceRefMetaData serviceRef, final ClassLoader loa= der) throws NamingException + { + final Referenceable jndiReferenceable =3D this.createReferenceable(s= erviceRef, loader); + this.bind(encCtx, encName, jndiReferenceable); + } + + public abstract Referenceable createReferenceable(final UnifiedServiceR= efMetaData serviceRef, + final ClassLoader loader); + + private void bind(final Context encCtx, final String encName, final Ref= erenceable jndiReferenceable) + throws NamingException + { + final String jndiFullName =3D encCtx.getNameInNamespace() + "/" + en= cName; + + log.info("binding service reference to [jndi=3D" + jndiFullName + "]= "); + Util.bind(encCtx, encName, jndiReferenceable); + } +} Modified: common/trunk/src/main/java/org/jboss/wsf/common/serviceref/Abstra= ctServiceRefBinderJAXRPC.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServ= iceRefBinderJAXRPC.java 2010-10-18 12:32:46 UTC (rev 13146) +++ common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServ= iceRefBinderJAXRPC.java 2010-10-18 12:35:54 UTC (rev 13147) @@ -21,41 +21,27 @@ */ package org.jboss.wsf.common.serviceref; = -import java.lang.reflect.AnnotatedElement; - -import javax.naming.Context; -import javax.naming.NamingException; import javax.naming.Referenceable; = -import org.jboss.logging.Logger; -import org.jboss.util.naming.Util; import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedServiceRefMetaDat= a; -import org.jboss.wsf.spi.serviceref.ServiceRefBinder; = /** - * Binds a JAXRPC Service object in the client's ENC for every service-ref= element in the - * deployment descriptor. + * Binds a JAXRPC service object factory to the client's ENC. * * @author Richard Opalka */ -public abstract class AbstractServiceRefBinderJAXRPC implements ServiceRef= Binder +public abstract class AbstractServiceRefBinderJAXRPC extends AbstractServi= ceRefBinder { - // logging support - private static Logger log =3D Logger.getLogger(AbstractServiceRefBinder= JAXRPC.class); - - /** - * Binds a Service into the callers ENC for every service-ref element - */ - public void setupServiceRef(Context encCtx, String encName, AnnotatedEl= ement ignored, - UnifiedServiceRefMetaData serviceRef, ClassLoader loader) throws = NamingException + public final Referenceable createReferenceable(final UnifiedServiceRefM= etaData serviceRef, final ClassLoader ignored) { - String externalName =3D encCtx.getNameInNamespace() + "/" + encName; - log.info("setupServiceRef [jndi=3D" + externalName + "]"); - - // Do not use rebind, the binding should be unique - Referenceable ref =3D this.createReferenceable(serviceRef); - Util.bind(encCtx, encName, ref); + return this.createJAXRPCReferenceable(serviceRef); } = - protected abstract Referenceable createReferenceable(UnifiedServiceRefM= etaData serviceRef); + /** + * Template method for creating stack specific JAXRPC referenceables. + * = + * @param serviceRef service reference UMDM + * @return stack specific JAXRPC JNDI referenceable + */ + protected abstract Referenceable createJAXRPCReferenceable(final Unifie= dServiceRefMetaData serviceRef); } Modified: common/trunk/src/main/java/org/jboss/wsf/common/serviceref/Abstra= ctServiceRefBinderJAXWS.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServ= iceRefBinderJAXWS.java 2010-10-18 12:32:46 UTC (rev 13146) +++ common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServ= iceRefBinderJAXWS.java 2010-10-18 12:35:54 UTC (rev 13147) @@ -31,8 +31,6 @@ import java.util.List; = import javax.jws.HandlerChain; -import javax.naming.Context; -import javax.naming.NamingException; import javax.naming.Referenceable; import javax.xml.namespace.QName; import javax.xml.ws.RespectBinding; @@ -43,23 +41,18 @@ import javax.xml.ws.soap.Addressing; import javax.xml.ws.soap.MTOM; = -import org.jboss.logging.Logger; -import org.jboss.util.naming.Util; import org.jboss.wsf.spi.WSFException; import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedServiceRefMetaDat= a; import org.jboss.wsf.spi.serviceref.ServiceRefBinder; = /** - * Binds a JAXWS Service object in the client's ENC. + * Binds a JAXWS service object factory to the client's ENC. * * @author Richard Opalka */ -public abstract class AbstractServiceRefBinderJAXWS implements ServiceRefB= inder +public abstract class AbstractServiceRefBinderJAXWS extends AbstractServic= eRefBinder { - private static Logger log =3D Logger.getLogger(AbstractServiceRefBinder= JAXWS.class); - - public void setupServiceRef(Context encCtx, String encName, AnnotatedEl= ement ignored, - UnifiedServiceRefMetaData serviceRef, ClassLoader loader) throws = NamingException + public final Referenceable createReferenceable(final UnifiedServiceRefM= etaData serviceRef, final ClassLoader loader) { WebServiceRef wsref =3D null; = @@ -119,7 +112,7 @@ { for (WebServiceRef aux : wsrefList) { - if (encName.endsWith("/" + aux.name())) + if (serviceRef.getServiceRefName().endsWith("/" + aux.name())) { wsref =3D aux; break; @@ -127,7 +120,7 @@ } } = - Class targetClass =3D null; + Class targetClass =3D null; if (anElement instanceof Field) { targetClass =3D ((Field) anElement).getType(); @@ -143,9 +136,6 @@ } = String targetClassName =3D (targetClass !=3D null ? targetClass.getN= ame() : null); - String externalName =3D encCtx.getNameInNamespace() + "/" + encName; - if (log.isDebugEnabled()) - log.debug("setupServiceRef [jndi=3D" + externalName + ",target=3D= " + targetClassName + "]"); = String serviceImplClass =3D null; = @@ -195,13 +185,13 @@ } catch (MalformedURLException ex) { - Class declaringClass =3D null; + Class declaringClass =3D null; if (anElement instanceof Field) declaringClass =3D ((Field) anElement).getDeclaringClass(); else if (anElement instanceof Method) declaringClass =3D ((Method) anElement).getDeclaringClass(); else if (anElement instanceof Class) - declaringClass =3D (Class) anElement; + declaringClass =3D (Class) anElement; = handlerChain =3D declaringClass.getPackage().getName().replace= ('.', '/') + "/" + handlerChain; } @@ -214,7 +204,7 @@ { try { - Class serviceClass =3D loader.loadClass(serviceImplClass); + Class serviceClass =3D loader.loadClass(serviceImplClass); if (serviceClass.getAnnotation(WebServiceClient.class) !=3D nu= ll) { WebServiceClient clientDecl =3D (WebServiceClient) serviceC= lass.getAnnotation(WebServiceClient.class); @@ -250,11 +240,17 @@ serviceRef.setRespectBindingEnabled(respectBindingAnnotation.enab= led()); } = - Referenceable serviceReferenceable =3D this.createReferenceable(serv= iceImplClass, targetClassName, serviceRef); - Util.bind(encCtx, encName, serviceReferenceable); - + return this.createJAXWSReferenceable(serviceImplClass, targetClassNa= me, serviceRef); } = - protected abstract Referenceable createReferenceable(String serviceImpl= Class, String targetClassName, - UnifiedServiceRefMetaData serviceRef); + /** + * Template method for creating stack specific JAXWS referenceables. + * = + * @param serviceImplClass service implementation class name + * @param targetClassName target class name + * @param serviceRef service reference UMDM + * @return stack specific JAXWS JNDI referenceable + */ + protected abstract Referenceable createJAXWSReferenceable(final String = serviceImplClass, + final String targetClassName, final UnifiedServiceRefMetaData ser= viceRef); } --===============8683169618385938983==--