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==--