JBossWS SVN: r14044 - common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-08 11:50:13 -0400 (Fri, 08 Apr 2011)
New Revision: 14044
Removed:
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java
Log:
removing addressing api from common
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,272 +0,0 @@
-/*
- * 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.addressing;
-
-import javax.xml.namespace.QName;
-
-/**
- * TODO: see javax.xml.ws.addressing - merge it properly
- * Addressing constants.
- *
- * @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
- */
-public final class AddressingConstants
-{
- /**
- * Constructor.
- */
- private AddressingConstants()
- {
- // forbidden inheritance
- }
-
- /**
- * <a href="http://www.w3.org/2005/08/addressing">WSA</a> constants.
- */
- public static final class Core
- {
- /**
- * Constructor.
- */
- private Core()
- {
- // forbidden inheritance
- }
-
- // WSA namespace
- public static final String NS = "http://www.w3.org/2005/08/addressing";
-
- // WSA prefix
- public static final String NS_PREFIX = "wsa";
-
- public static final class Elements
- {
- /**
- * Constructor.
- */
- private Elements()
- {
- // forbidden inheritance
- }
-
- // WSA 'EndpointReference' element
- public static final String ENDPOINTREFERENCE = "EndpointReference";
- public static final QName ENDPOINTREFERENCE_QNAME = new QName(NS, ENDPOINTREFERENCE, NS_PREFIX);
-
- // WSA 'ReferenceParameters' element
- public static final String REFERENCEPARAMETERS = "ReferenceParameters";
- public static final QName REFERENCEPARAMETERS_QNAME = new QName(NS, REFERENCEPARAMETERS, NS_PREFIX);
-
- // WSA 'Metadata' element
- public static final String METADATA = "Metadata";
- public static final QName METADATA_QNAME = new QName(NS, METADATA, NS_PREFIX);
-
- // WSA 'Address' element
- public static final String ADDRESS = "Address";
- public static final QName ADDRESS_QNAME = new QName(NS, ADDRESS, NS_PREFIX);
-
- // WSA 'MessageID' element
- public static final String MESSAGEID = "MessageID";
- public static final QName MESSAGEID_QNAME = new QName(NS, MESSAGEID, NS_PREFIX);
-
- // WSA 'RelatesTo' element
- public static final String RELATESTO = "RelatesTo";
- public static final QName RELATESTO_QNAME = new QName(NS, RELATESTO, NS_PREFIX);
-
- // WSA 'ReplyTo' element
- public static final String REPLYTO = "ReplyTo";
- public static final QName REPLYTO_QNAME = new QName(NS, REPLYTO, NS_PREFIX);
-
- // WSA 'From' element
- public static final String FROM = "From";
- public static final QName FROM_QNAME = new QName(NS, FROM, NS_PREFIX);
-
- // WSA 'FaultTo' element
- public static final String FAULTTO = "FaultTo";
- public static final QName FAULTTO_QNAME = new QName(NS, FAULTTO, NS_PREFIX);
-
- // WSA 'To' element
- public static final String TO = "To";
- public static final QName TO_QNAME = new QName(NS, TO, NS_PREFIX);
-
- // WSA 'Action' element
- public static final String ACTION = "Action";
- public static final QName ACTION_QNAME = new QName(NS, ACTION, NS_PREFIX);
-
- // WSA 'RetryAfter' element
- public static final String RETRYAFTER = "RetryAfter";
- public static final QName RETRYAFTER_QNAME = new QName(NS, RETRYAFTER, NS_PREFIX);
-
- // WSA 'ProblemHeaderQName' element
- public static final String PROBLEMHEADERQNAME = "ProblemHeaderQName";
- public static final QName PROBLEMHEADERQNAME_QNAME = new QName(NS, PROBLEMHEADERQNAME, NS_PREFIX);
-
- // WSA 'ProblemIRI' element
- public static final String PROBLEMIRI = "ProblemIRI";
- public static final QName PROBLEMIRI_QNAME = new QName(NS, PROBLEMIRI, NS_PREFIX);
-
- // WSA 'ProblemAction' element
- public static final String PROBLEMACTION = "ProblemAction";
- public static final QName PROBLEMACTION_QNAME = new QName(NS, PROBLEMACTION, NS_PREFIX);
-
- // WSA 'SoapAction' element
- public static final String SOAPACTION = "SoapAction";
- public static final QName SOAPACTION_QNAME = new QName(NS, SOAPACTION, NS_PREFIX);
- }
-
- public static final class Attributes
- {
- /**
- * Constructor.
- */
- private Attributes()
- {
- // forbidden inheritance
- }
-
- // WSA 'RelationshipType' attribute
- public static final String RELATIONSHIPTYPE = "RelationshipType";
- public static final QName RELATIONSHIPTYPE_QNAME = new QName(NS, RELATIONSHIPTYPE, NS_PREFIX);
-
- // WSA 'IsReferenceParameter' attribute
- public static final String ISREFERENCEPARAMETER = "IsReferenceParameter";
- public static final QName ISREFERENCEPARAMETER_QNAME = new QName(NS, ISREFERENCEPARAMETER, NS_PREFIX);
-
- }
-
- public static final class Faults
- {
- /**
- * Constructor.
- */
- private Faults()
- {
- // forbidden inheritance
- }
-
- // WSA 'InvalidAddressingHeader' fault
- public static final QName INVALIDADDRESSINGHEADER_QNAME = new QName(NS, "InvalidAddressingHeader", NS_PREFIX);
-
- // WSA 'InvalidAddress' fault
- public static final QName INVALIDADDRESS_QNAME = new QName(NS, "InvalidAddress", NS_PREFIX);
-
- // WSA 'InvalidEPR' fault
- public static final QName INVALIDEPR_QNAME = new QName(NS, "InvalidEPR", NS_PREFIX);
-
- // WSA 'InvalidCardinality' fault
- public static final QName INVALIDCARDINALITY_QNAME = new QName(NS, "InvalidCardinality", NS_PREFIX);
-
- // WSA 'MissingAddressInEPR' fault
- public static final QName MISSINGADDRESSINEPR_QNAME = new QName(NS, "MissingAddressInEPR", NS_PREFIX);
-
- // WSA 'DuplicateMessageID' fault
- public static final QName DUPLICATEMESSAGEID_QNAME = new QName(NS, "DuplicateMessageID", NS_PREFIX);
-
- // WSA 'ActionMismatch' fault
- public static final QName ACTIONMISMATCH_QNAME = new QName(NS, "ActionMismatch", NS_PREFIX);
-
- // WSA 'MessageAddressingHeaderRequired' fault
- public static final QName MESSAGEADDRESSINGHEADERREQUIRED_QNAME = new QName(NS, "MessageAddressingHeaderRequired", NS_PREFIX);
-
- // WSA 'DestinationUnreachable' fault
- public static final QName DESTINATIONUNREACHABLE_QNAME = new QName(NS, "DestinationUnreachable", NS_PREFIX);
-
- // WSA 'ActionNotSupported' fault
- public static final QName ACTIONNOTSUPPORTED_QNAME = new QName(NS, "ActionNotSupported", NS_PREFIX);
-
- // WSA 'EndpointUnavailable' fault
- public static final QName ENDPOINTUNAVAILABLE_QNAME = new QName(NS, "EndpointUnavailable", NS_PREFIX);
- }
- }
-
- /**
- * <a href="http://www.w3.org/2007/05/addressing/metadata">WSAM</a> constants.
- */
- public static final class Metadata
- {
- /**
- * Constructor.
- */
- private Metadata()
- {
- // forbidden inheritance
- }
-
- // WSAM namespace
- public static final String NS = "http://www.w3.org/2007/05/addressing/metadata";
-
- // WSAM prefix
- public static final String NS_PREFIX = "wsam";
-
- public static final class Elements
- {
- /**
- * Constructor.
- */
- private Elements()
- {
- // forbidden inheritance
- }
-
- // WSAM 'ServiceName' element
- public static final String SERVICENAME = "ServiceName";
- public static final QName SERVICENAME_QNAME = new QName(NS, SERVICENAME, NS_PREFIX);
-
- // WSAM 'InterfaceName' element
- public static final String INTERFACENAME = "InterfaceName";
- public static final QName INTERFACENAME_QNAME = new QName(NS, INTERFACENAME, NS_PREFIX);
-
- // WSAM 'Addressing' element
- public static final String ADDRESSING = "Addressing";
- public static final QName ADDRESSING_QNAME = new QName(NS, ADDRESSING, NS_PREFIX);
-
- // WSAM 'AnonymousResponses' element
- public static final String ANONYMOUSRESPONSES = "AnonymousResponses";
- public static final QName ANONYMOUSRESPONSES_QNAME = new QName(NS, ANONYMOUSRESPONSES, NS_PREFIX);
-
- // WSAM 'NonAnonymousResponses' element
- public static final String NONANONYMOUSRESPONSES = "NonAnonymousResponses";
- public static final QName NONANONYMOUSRESPONSES_QNAME = new QName(NS, NONANONYMOUSRESPONSES, NS_PREFIX);
- }
-
- public static final class Attributes
- {
- /**
- * Constructor.
- */
- private Attributes()
- {
- // forbidden inheritance
- }
-
- // WSAM 'EndpointName' attribute
- public static final String ENDPOINTNAME = "EndpointName";
- public static final QName ENDPOINTNAME_QNAME = new QName(NS, ENDPOINTNAME, NS_PREFIX);
-
- // WSAM 'Action' attribute
- public static final String ACTION = "Action";
- public static final QName ACTION_QNAME = new QName(NS, ACTION, NS_PREFIX);
-
- }
- }
-
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,78 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.addressing;
-
-import java.util.List;
-import java.util.Map;
-
-import org.w3c.dom.Element;
-
-/**
- * Message Addressing Properties is a wrapper for the stack-specific JSR-261 addressing properties
- * classes implemented by JBossWS Native and CXF. It is used to localize dependence upon the WS
- * stack.
- *
- * @author Andrew Dinn (adinn(a)redhat.com)
- * @author alessio.soldano(a)jboss.com
- *
- */
-public interface MAP
-{
- public String getTo();
-
- public MAPEndpoint getFrom();
-
- public String getMessageID();
-
- public String getAction();
-
- public MAPEndpoint getFaultTo();
-
- public MAPEndpoint getReplyTo();
-
- public MAPRelatesTo getRelatesTo();
-
- public void setTo(String address);
-
- public void setFrom(MAPEndpoint epref);
-
- public void setMessageID(String messageID);
-
- public void setAction(String action);
-
- public void setReplyTo(MAPEndpoint epref);
-
- public void setFaultTo(MAPEndpoint epref);
-
- public void setRelatesTo(MAPRelatesTo relatesTo);
-
- public void addReferenceParameter(Element refParam);
-
- public List<Object> getReferenceParameters();
-
- public void initializeAsDestination(MAPEndpoint epref);
-
- public void installOutboundMapOnServerSide(Map<String, Object> requestContext, MAP map);
-
- public void installOutboundMapOnClientSide(Map<String, Object> requestContext, MAP map);
-
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,60 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.addressing;
-
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-
-/**
- * MAPBuilder is a helper used to create objects used with class MAP.
- *
- * @author Andrew Dinn (adinn(a)redhat.com)
- * @author alessio.soldano(a)jboss.com
- *
- */
-public interface MAPBuilder
-{
- public MAP newMap();
-
- /**
- * retrieve the inbound server message address properties attached to a message context
- * @param ctx the server message context
- * @return
- */
- public MAP inboundMap(Map<String, Object> ctx);
-
- /**
- * retrieve the outbound client message address properties attached to a message request map
- * @param ctx the client request properties map
- * @return
- */
- public MAP outboundMap(Map<String, Object> ctx);
-
- public MAPConstants newConstants();
-
- public MAPEndpoint newEndpoint(String address);
-
- public MAPRelatesTo newRelatesTo(String id, QName type);
-
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,40 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.addressing;
-
-import org.jboss.wsf.spi.util.ServiceLoader;
-
-/**
- *
- * @author alessio.soldano(a)jboss.com
- * @since 25-May-2009
- *
- */
-public abstract class MAPBuilderFactory
-{
- public static MAPBuilderFactory getInstance()
- {
- return (MAPBuilderFactory)ServiceLoader.loadService(MAPBuilderFactory.class.getName(), null);
- }
-
- public abstract MAPBuilder getBuilderInstance();
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.addressing;
-
-/**
- * MAPConstants is a wrapper which works with class MAP
- *
- * @author Andrew Dinn (adinn(a)redhat.com)
- * @author alessio.soldano(a)jboss.com
- *
- */
-public interface MAPConstants
-{
- public String getAnonymousURI();
-
- public String getNoneURI();
-
- public String getClientAddressingProperties();
-
- public String getClientAddressingPropertiesInbound();
-
- public String getClientAddressingPropertiesOutbound();
-
- public String getServerAddressingPropertiesInbound();
-
- public String getServerAddressingPropertiesOutbound();
-
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,43 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.addressing;
-
-import java.util.List;
-
-import org.w3c.dom.Element;
-
-/**
- * MAPEndpoint is a wrapper which works with class MAP.
- *
- * @author Andrew Dinn (adinn(a)redhat.com)
- * @author alessio.soldano(a)jboss.com
- *
- */
-public interface MAPEndpoint
-{
- public String getAddress();
-
- public void addReferenceParameter(Element element);
-
- public List<Object> getReferenceParameters();
-
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java 2011-04-08 15:49:46 UTC (rev 14043)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java 2011-04-08 15:50:13 UTC (rev 14044)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.addressing;
-
-import javax.xml.namespace.QName;
-
-/**
- * MAPRelationship is a wrapper which works with class MAP.
- *
- * @author Andrew Dinn (adinn(a)redhat.com)
- * @author alessio.soldano(a)jboss.com
- *
- */
-public interface MAPRelatesTo
-{
- public String getRelatesTo();
-
- public QName getType();
-
- public void setType(QName type);
-
-}
13 years
JBossWS SVN: r14043 - common/branches/asoldano/src/main/java/org/jboss/wsf/common.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-08 11:49:46 -0400 (Fri, 08 Apr 2011)
New Revision: 14043
Modified:
common/branches/asoldano/src/main/java/org/jboss/wsf/common/DOMUtils.java
Log:
Refactoring DOMUtils
Modified: common/branches/asoldano/src/main/java/org/jboss/wsf/common/DOMUtils.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/DOMUtils.java 2011-04-08 15:49:09 UTC (rev 14042)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/DOMUtils.java 2011-04-08 15:49:46 UTC (rev 14043)
@@ -1,6 +1,6 @@
/*
* JBoss, Home of Professional Open Source.
- * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * Copyright 2011, 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.
*
@@ -28,11 +28,6 @@
import java.io.PrintWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
@@ -52,24 +47,23 @@
import org.jboss.logging.Logger;
import org.jboss.ws.Constants;
import org.jboss.ws.core.utils.JBossWSEntityResolver;
-import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
- * DOM2 utilites
+ * DOM2 utilities: this extends the {@link org.jboss.wsf.util.DOMUtils} adding parse and creation methods.
+ * These leverage static thread-local instances of {@link org.w3c.dom.Document} and {@link javax.xml.parsers.DocumentBuilder}.
+ * The ThreadLocal attributes can be reset using the clearThreadLocals() method.
*
* @author Thomas.Diesler(a)jboss.org
* @author alessio.soldano(a)jboss.com
*/
-public final class DOMUtils
+public final class DOMUtils extends org.jboss.wsf.util.DOMUtils
{
private static Logger log = Logger.getLogger(DOMUtils.class);
@@ -187,14 +181,17 @@
{
}
- /** Initialize the DocumentBuilder
+ /**
+ * Initialize the DocumentBuilder, set the current thread association and returns it
*/
public static DocumentBuilder getDocumentBuilder()
{
return builderThreadLocal.get();
}
- /** Parse the given XML string and return the root Element
+ /**
+ * Parse the given XML string and return the root Element
+ * This uses the document builder associated with the current thread.
*/
public static Element parse(String xmlString) throws IOException
{
@@ -209,7 +206,9 @@
}
}
- /** Parse the given XML stream and return the root Element
+ /**
+ * Parse the given XML stream and return the root Element
+ * This uses the document builder associated with the current thread.
*/
public static Element parse(InputStream xmlStream) throws IOException
{
@@ -233,7 +232,9 @@
}
}
- /** Parse the given input source and return the root Element
+ /**
+ * Parse the given input source and return the root Element.
+ * This uses the document builder associated with the current thread.
*/
public static Element parse(InputSource source) throws IOException
{
@@ -266,7 +267,9 @@
}
}
- /** Create an Element for a given name
+ /**
+ * Create an Element for a given name.
+ * This uses the document builder associated with the current thread.
*/
public static Element createElement(String localPart)
{
@@ -275,7 +278,9 @@
return doc.createElement(localPart);
}
- /** Create an Element for a given name and prefix
+ /**
+ * Create an Element for a given name and prefix.
+ * This uses the document builder associated with the current thread.
*/
public static Element createElement(String localPart, String prefix)
{
@@ -284,7 +289,9 @@
return doc.createElement(prefix + ":" + localPart);
}
- /** Create an Element for a given name, prefix and uri
+ /**
+ * Create an Element for a given name, prefix and uri.
+ * This uses the document builder associated with the current thread.
*/
public static Element createElement(String localPart, String prefix, String uri)
{
@@ -301,14 +308,18 @@
}
}
- /** Create an Element for a given QName
+ /**
+ * Create an Element for a given QName.
+ * This uses the document builder associated with the current thread.
*/
public static Element createElement(QName qname)
{
return createElement(qname.getLocalPart(), qname.getPrefix(), qname.getNamespaceURI());
}
- /** Create a org.w3c.dom.Text node
+ /**
+ * Create a org.w3c.dom.Text node.
+ * This uses the document builder associated with the current thread.
*/
public static Text createTextNode(String value)
{
@@ -316,430 +327,6 @@
return doc.createTextNode(value);
}
- /** Get the qname of the given node.
- */
- public static QName getElementQName(Element el)
- {
- String qualifiedName = el.getNodeName();
- return resolveQName(el, qualifiedName);
- }
-
- /** Transform the given qualified name into a QName
- */
- public static QName resolveQName(Element el, String qualifiedName)
- {
- QName qname;
- String prefix = "";
- String namespaceURI = "";
- String localPart = qualifiedName;
-
- int colIndex = qualifiedName.indexOf(":");
- if (colIndex > 0)
- {
- prefix = qualifiedName.substring(0, colIndex);
- localPart = qualifiedName.substring(colIndex + 1);
-
- if ("xmlns".equals(prefix))
- {
- namespaceURI = "URI:XML_PREDEFINED_NAMESPACE";
- }
- else
- {
- Element nsElement = el;
- while (namespaceURI.equals("") && nsElement != null)
- {
- namespaceURI = nsElement.getAttribute("xmlns:" + prefix);
- if (namespaceURI.equals(""))
- nsElement = getParentElement(nsElement);
- }
- }
-
- if (namespaceURI.equals("") && el.getNamespaceURI() != null)
- {
- namespaceURI = el.getNamespaceURI();
- }
-
- if (namespaceURI.equals(""))
- throw new IllegalArgumentException("Cannot find namespace uri for: " + qualifiedName);
- }
- else
- {
- Element nsElement = el;
- while (namespaceURI.equals("") && nsElement != null)
- {
- namespaceURI = nsElement.getAttribute("xmlns");
- if (namespaceURI.equals(""))
- nsElement = getParentElement(nsElement);
- }
- }
-
- qname = new QName(namespaceURI, localPart, prefix);
- return qname;
- }
-
- /** Get the value from the given attribute
- *
- * @return null if the attribute value is empty or the attribute is not present
- */
- public static String getAttributeValue(Element el, String attrName)
- {
- return getAttributeValue(el, new QName(attrName));
- }
-
- /** Get the value from the given attribute
- *
- * @return null if the attribute value is empty or the attribute is not present
- */
- public static String getAttributeValue(Element el, QName attrName)
- {
- String attr = null;
- if ("".equals(attrName.getNamespaceURI()))
- attr = el.getAttribute(attrName.getLocalPart());
- else
- attr = el.getAttributeNS(attrName.getNamespaceURI(), attrName.getLocalPart());
-
- if ("".equals(attr))
- attr = null;
-
- return attr;
- }
-
- /** Get the qname value from the given attribute
- */
- public static QName getAttributeValueAsQName(Element el, String attrName)
- {
- return getAttributeValueAsQName(el, new QName(attrName));
-
- }
-
- /** Get the qname value from the given attribute
- */
- public static QName getAttributeValueAsQName(Element el, QName attrName)
- {
- QName qname = null;
-
- String qualifiedName = getAttributeValue(el, attrName);
- if (qualifiedName != null)
- {
- qname = resolveQName(el, qualifiedName);
- }
-
- return qname;
- }
-
- /** Get the boolean value from the given attribute
- */
- public static boolean getAttributeValueAsBoolean(Element el, String attrName)
- {
- return getAttributeValueAsBoolean(el, new QName(attrName));
- }
-
- /** Get the boolean value from the given attribute
- */
- public static boolean getAttributeValueAsBoolean(Element el, QName attrName)
- {
- String attrVal = getAttributeValue(el, attrName);
- boolean ret = "true".equalsIgnoreCase(attrVal) || "1".equalsIgnoreCase(attrVal);
- return ret;
- }
-
- /** Get the integer value from the given attribute
- */
- public static Integer getAttributeValueAsInteger(Element el, String attrName)
- {
- return getAttributeValueAsInteger(el, new QName(attrName));
- }
-
- /** Get the integer value from the given attribute
- */
- public static Integer getAttributeValueAsInteger(Element el, QName attrName)
- {
- String attrVal = getAttributeValue(el, attrName);
- return (attrVal != null ? new Integer(attrVal) : null);
- }
-
- /** Get the attributes as Map<QName, String>
- */
- public static Map<QName, String> getAttributes(Element el)
- {
- Map<QName, String> attmap = new HashMap<QName, String>();
- NamedNodeMap attribs = el.getAttributes();
- int len = attribs.getLength();
- for (int i = 0; i < len; i++)
- {
- Attr attr = (Attr)attribs.item(i);
- String name = attr.getName();
- QName qname = resolveQName(el, name);
- String value = attr.getNodeValue();
- attmap.put(qname, value);
- }
- return attmap;
- }
-
- /** Copy attributes between elements
- */
- public static void copyAttributes(Element destElement, Element srcElement)
- {
- NamedNodeMap attribs = srcElement.getAttributes();
- int len = attribs.getLength();
- for (int i = 0; i < len; i++)
- {
- Attr attr = (Attr)attribs.item(i);
- String uri = attr.getNamespaceURI();
- String qname = attr.getName();
- String value = attr.getNodeValue();
-
- // Prevent DOMException: NAMESPACE_ERR: An attempt is made to create or
- // change an object in a way which is incorrect with regard to namespaces.
- if (uri == null && qname.startsWith("xmlns"))
- {
- if (log.isTraceEnabled()) log.trace("Ignore attribute: [uri=" + uri + ",qname=" + qname + ",value=" + value + "]");
- }
- else
- {
- destElement.setAttributeNS(uri, qname, value);
- }
- }
- }
-
- /** True if the node has text child elements only
- */
- public static boolean hasTextChildNodesOnly(Node node)
- {
- NodeList nodeList = node.getChildNodes();
- int len = nodeList.getLength();
- if (len == 0)
- return false;
-
- for (int i = 0; i < len; i++)
- {
- Node acksToChildNode = nodeList.item(i);
- if (acksToChildNode.getNodeType() != Node.TEXT_NODE)
- return false;
- }
-
- return true;
- }
-
- /** True if the node has child elements
- */
- public static boolean hasChildElements(Node node)
- {
- NodeList nlist = node.getChildNodes();
- int len = nlist.getLength();
- for (int i = 0; i < len; i++)
- {
- Node child = nlist.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE)
- return true;
- }
- return false;
- }
-
- /** Gets child elements
- */
- public static Iterator<Element> getChildElements(Node node)
- {
- List<Element> list = new LinkedList<Element>();
- NodeList nlist = node.getChildNodes();
- int len = nlist.getLength();
- for (int i = 0; i < len; i++)
- {
- Node child = nlist.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE)
- list.add((Element)child);
- }
- return list.iterator();
- }
-
- /** Get the concatenated text content, or null.
- */
- public static String getTextContent(Node node)
- {
- boolean hasTextContent = false;
- StringBuilder buffer = new StringBuilder();
- NodeList nlist = node.getChildNodes();
- int len = nlist.getLength();
- for (int i = 0; i < len; i++)
- {
- Node child = nlist.item(i);
- if (child.getNodeType() == Node.TEXT_NODE)
- {
- buffer.append(child.getNodeValue());
- hasTextContent = true;
- }
- }
- return (hasTextContent ? buffer.toString() : null);
- }
-
- /** Gets the first child element
- */
- public static Element getFirstChildElement(Node node)
- {
- return getFirstChildElement(node, false);
- }
-
- /** Gets the first child element
- */
- public static Element getFirstChildElement(Node node, boolean recursive)
- {
- return getFirstChildElementIntern(node, null, recursive);
- }
-
- /** Gets the first child element for a given local name without namespace
- */
- public static Element getFirstChildElement(Node node, String nodeName)
- {
- return getFirstChildElement(node, nodeName, false);
- }
-
- /** Gets the first child element for a given local name without namespace
- */
- public static Element getFirstChildElement(Node node, String nodeName, boolean recursive)
- {
- return getFirstChildElementIntern(node, new QName(nodeName), recursive);
- }
-
- /** Gets the first child element for a given qname
- */
- public static Element getFirstChildElement(Node node, QName nodeName)
- {
- return getFirstChildElement(node, nodeName, false);
- }
-
- /** Gets the first child element for a given qname
- */
- public static Element getFirstChildElement(Node node, QName nodeName, boolean recursive)
- {
- return getFirstChildElementIntern(node, nodeName, recursive);
- }
-
- private static Element getFirstChildElementIntern(Node node, QName nodeName, boolean recursive)
- {
- Element childElement = null;
- Iterator<Element> it = getChildElementsIntern(node, nodeName, recursive);
- if (it.hasNext())
- {
- childElement = (Element)it.next();
- }
- return childElement;
- }
-
- /** Gets the child elements for a given local name without namespace
- */
- public static Iterator<Element> getChildElements(Node node, String nodeName)
- {
- return getChildElements(node, nodeName, false);
- }
-
- /** Gets the child elements for a given local name without namespace
- */
- public static Iterator<Element> getChildElements(Node node, String nodeName, boolean recursive)
- {
- return getChildElementsIntern(node, new QName(nodeName), recursive);
- }
-
- /** Gets the child element for a given qname
- */
- public static Iterator<Element> getChildElements(Node node, QName nodeName)
- {
- return getChildElements(node, nodeName, false);
- }
-
- /** Gets the child element for a given qname
- */
- public static Iterator<Element> getChildElements(Node node, QName nodeName, boolean recursive)
- {
- return getChildElementsIntern(node, nodeName, recursive);
- }
-
- public static List<Element> getChildElementsAsList(Node node, String nodeName)
- {
- return getChildElementsAsList(node, nodeName, false);
- }
-
- public static List<Element> getChildElementsAsList(Node node, String nodeName, boolean recursive)
- {
- return getChildElementsAsListIntern(node, new QName(nodeName), recursive);
- }
-
- public static List<Element> getChildElementsAsList(Node node, QName nodeName)
- {
- return getChildElementsAsList(node, nodeName, false);
- }
-
- public static List<Element> getChildElementsAsList(Node node, QName nodeName, boolean recursive)
- {
- return getChildElementsAsListIntern(node, nodeName, recursive);
- }
-
- private static List<Element> getChildElementsAsListIntern(Node node, QName nodeName, boolean recursive)
- {
- List<Element> list = new LinkedList<Element>();
-
- NodeList nlist = node.getChildNodes();
- int len = nlist.getLength();
- for (int i = 0; i < len; i++)
- {
- Node child = nlist.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE)
- {
- search(list, (Element)child, nodeName, recursive);
- }
- }
- return list;
- }
-
- private static void search(List<Element> list, Element baseElement, QName nodeName, boolean recursive)
- {
- if (nodeName == null)
- {
- list.add(baseElement);
- }
- else
- {
- QName qname;
- if (nodeName.getNamespaceURI().length() > 0)
- {
- qname = new QName(baseElement.getNamespaceURI(), baseElement.getLocalName());
- }
- else
- {
- qname = new QName(baseElement.getLocalName());
- }
- if (qname.equals(nodeName))
- {
- list.add(baseElement);
- }
- }
- if (recursive)
- {
- NodeList nlist = baseElement.getChildNodes();
- int len = nlist.getLength();
- for (int i = 0; i < len; i++)
- {
- Node child = nlist.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE)
- {
- search(list, (Element)child, nodeName, recursive);
- }
- }
- }
- }
-
- private static Iterator<Element> getChildElementsIntern(Node node, QName nodeName, boolean recursive)
- {
- return getChildElementsAsListIntern(node, nodeName, recursive).iterator();
- }
-
- /** Gets parent element or null if there is none
- */
- public static Element getParentElement(Node node)
- {
- Node parent = node.getParentNode();
- return (parent instanceof Element ? (Element)parent : null);
- }
-
/** Peek at the owner document without creating a new one if not set. */
public static Document peekOwnerDocument()
{
@@ -763,6 +350,14 @@
return doc;
}
+ /**
+ * Parse the contents of the provided source into an element.
+ * This uses the document builder associated with the current thread.
+ *
+ * @param source
+ * @return
+ * @throws IOException
+ */
public static Element sourceToElement(Source source) throws IOException
{
Element retElement = null;
13 years
JBossWS SVN: r14042 - spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-08 11:49:09 -0400 (Fri, 08 Apr 2011)
New Revision: 14042
Modified:
spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/ServletDelegate.java
spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/WSFServlet.java
Log:
Adding destroy() to ServletDelegate
Modified: spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/ServletDelegate.java
===================================================================
--- spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/ServletDelegate.java 2011-04-08 15:48:56 UTC (rev 14041)
+++ spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/ServletDelegate.java 2011-04-08 15:49:09 UTC (rev 14042)
@@ -38,6 +38,8 @@
public interface ServletDelegate
{
public void init(ServletConfig servletConfig) throws ServletException;
+
+ public void destroy();
public void doHead(HttpServletRequest request, HttpServletResponse response, ServletContext context)
throws ServletException, IOException;
Modified: spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/WSFServlet.java
===================================================================
--- spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/WSFServlet.java 2011-04-08 15:48:56 UTC (rev 14041)
+++ spi/branches/asoldano/src/main/java/org/jboss/wsf/spi/deployment/WSFServlet.java 2011-04-08 15:49:09 UTC (rev 14042)
@@ -75,6 +75,15 @@
ServletDelegateFactory factory = sl.iterator().next();
return factory.newServletDelegate(servletConfig.getInitParameter(STACK_SERVLET_DELEGATE_CLASS));
}
+
+ @Override
+ public void destroy()
+ {
+ if (delegate != null)
+ {
+ delegate.destroy();
+ }
+ }
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
13 years
JBossWS SVN: r14041 - in api/branches/asoldano/src/main/java/org/jboss/wsf/common: addressing and 1 other directory.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-08 11:48:56 -0400 (Fri, 08 Apr 2011)
New Revision: 14041
Added:
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java
Log:
Adding addressing api
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/AddressingConstants.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,272 @@
+/*
+ * 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.addressing;
+
+import javax.xml.namespace.QName;
+
+/**
+ * TODO: see javax.xml.ws.addressing - merge it properly
+ * Addressing constants.
+ *
+ * @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
+ */
+public final class AddressingConstants
+{
+ /**
+ * Constructor.
+ */
+ private AddressingConstants()
+ {
+ // forbidden inheritance
+ }
+
+ /**
+ * <a href="http://www.w3.org/2005/08/addressing">WSA</a> constants.
+ */
+ public static final class Core
+ {
+ /**
+ * Constructor.
+ */
+ private Core()
+ {
+ // forbidden inheritance
+ }
+
+ // WSA namespace
+ public static final String NS = "http://www.w3.org/2005/08/addressing";
+
+ // WSA prefix
+ public static final String NS_PREFIX = "wsa";
+
+ public static final class Elements
+ {
+ /**
+ * Constructor.
+ */
+ private Elements()
+ {
+ // forbidden inheritance
+ }
+
+ // WSA 'EndpointReference' element
+ public static final String ENDPOINTREFERENCE = "EndpointReference";
+ public static final QName ENDPOINTREFERENCE_QNAME = new QName(NS, ENDPOINTREFERENCE, NS_PREFIX);
+
+ // WSA 'ReferenceParameters' element
+ public static final String REFERENCEPARAMETERS = "ReferenceParameters";
+ public static final QName REFERENCEPARAMETERS_QNAME = new QName(NS, REFERENCEPARAMETERS, NS_PREFIX);
+
+ // WSA 'Metadata' element
+ public static final String METADATA = "Metadata";
+ public static final QName METADATA_QNAME = new QName(NS, METADATA, NS_PREFIX);
+
+ // WSA 'Address' element
+ public static final String ADDRESS = "Address";
+ public static final QName ADDRESS_QNAME = new QName(NS, ADDRESS, NS_PREFIX);
+
+ // WSA 'MessageID' element
+ public static final String MESSAGEID = "MessageID";
+ public static final QName MESSAGEID_QNAME = new QName(NS, MESSAGEID, NS_PREFIX);
+
+ // WSA 'RelatesTo' element
+ public static final String RELATESTO = "RelatesTo";
+ public static final QName RELATESTO_QNAME = new QName(NS, RELATESTO, NS_PREFIX);
+
+ // WSA 'ReplyTo' element
+ public static final String REPLYTO = "ReplyTo";
+ public static final QName REPLYTO_QNAME = new QName(NS, REPLYTO, NS_PREFIX);
+
+ // WSA 'From' element
+ public static final String FROM = "From";
+ public static final QName FROM_QNAME = new QName(NS, FROM, NS_PREFIX);
+
+ // WSA 'FaultTo' element
+ public static final String FAULTTO = "FaultTo";
+ public static final QName FAULTTO_QNAME = new QName(NS, FAULTTO, NS_PREFIX);
+
+ // WSA 'To' element
+ public static final String TO = "To";
+ public static final QName TO_QNAME = new QName(NS, TO, NS_PREFIX);
+
+ // WSA 'Action' element
+ public static final String ACTION = "Action";
+ public static final QName ACTION_QNAME = new QName(NS, ACTION, NS_PREFIX);
+
+ // WSA 'RetryAfter' element
+ public static final String RETRYAFTER = "RetryAfter";
+ public static final QName RETRYAFTER_QNAME = new QName(NS, RETRYAFTER, NS_PREFIX);
+
+ // WSA 'ProblemHeaderQName' element
+ public static final String PROBLEMHEADERQNAME = "ProblemHeaderQName";
+ public static final QName PROBLEMHEADERQNAME_QNAME = new QName(NS, PROBLEMHEADERQNAME, NS_PREFIX);
+
+ // WSA 'ProblemIRI' element
+ public static final String PROBLEMIRI = "ProblemIRI";
+ public static final QName PROBLEMIRI_QNAME = new QName(NS, PROBLEMIRI, NS_PREFIX);
+
+ // WSA 'ProblemAction' element
+ public static final String PROBLEMACTION = "ProblemAction";
+ public static final QName PROBLEMACTION_QNAME = new QName(NS, PROBLEMACTION, NS_PREFIX);
+
+ // WSA 'SoapAction' element
+ public static final String SOAPACTION = "SoapAction";
+ public static final QName SOAPACTION_QNAME = new QName(NS, SOAPACTION, NS_PREFIX);
+ }
+
+ public static final class Attributes
+ {
+ /**
+ * Constructor.
+ */
+ private Attributes()
+ {
+ // forbidden inheritance
+ }
+
+ // WSA 'RelationshipType' attribute
+ public static final String RELATIONSHIPTYPE = "RelationshipType";
+ public static final QName RELATIONSHIPTYPE_QNAME = new QName(NS, RELATIONSHIPTYPE, NS_PREFIX);
+
+ // WSA 'IsReferenceParameter' attribute
+ public static final String ISREFERENCEPARAMETER = "IsReferenceParameter";
+ public static final QName ISREFERENCEPARAMETER_QNAME = new QName(NS, ISREFERENCEPARAMETER, NS_PREFIX);
+
+ }
+
+ public static final class Faults
+ {
+ /**
+ * Constructor.
+ */
+ private Faults()
+ {
+ // forbidden inheritance
+ }
+
+ // WSA 'InvalidAddressingHeader' fault
+ public static final QName INVALIDADDRESSINGHEADER_QNAME = new QName(NS, "InvalidAddressingHeader", NS_PREFIX);
+
+ // WSA 'InvalidAddress' fault
+ public static final QName INVALIDADDRESS_QNAME = new QName(NS, "InvalidAddress", NS_PREFIX);
+
+ // WSA 'InvalidEPR' fault
+ public static final QName INVALIDEPR_QNAME = new QName(NS, "InvalidEPR", NS_PREFIX);
+
+ // WSA 'InvalidCardinality' fault
+ public static final QName INVALIDCARDINALITY_QNAME = new QName(NS, "InvalidCardinality", NS_PREFIX);
+
+ // WSA 'MissingAddressInEPR' fault
+ public static final QName MISSINGADDRESSINEPR_QNAME = new QName(NS, "MissingAddressInEPR", NS_PREFIX);
+
+ // WSA 'DuplicateMessageID' fault
+ public static final QName DUPLICATEMESSAGEID_QNAME = new QName(NS, "DuplicateMessageID", NS_PREFIX);
+
+ // WSA 'ActionMismatch' fault
+ public static final QName ACTIONMISMATCH_QNAME = new QName(NS, "ActionMismatch", NS_PREFIX);
+
+ // WSA 'MessageAddressingHeaderRequired' fault
+ public static final QName MESSAGEADDRESSINGHEADERREQUIRED_QNAME = new QName(NS, "MessageAddressingHeaderRequired", NS_PREFIX);
+
+ // WSA 'DestinationUnreachable' fault
+ public static final QName DESTINATIONUNREACHABLE_QNAME = new QName(NS, "DestinationUnreachable", NS_PREFIX);
+
+ // WSA 'ActionNotSupported' fault
+ public static final QName ACTIONNOTSUPPORTED_QNAME = new QName(NS, "ActionNotSupported", NS_PREFIX);
+
+ // WSA 'EndpointUnavailable' fault
+ public static final QName ENDPOINTUNAVAILABLE_QNAME = new QName(NS, "EndpointUnavailable", NS_PREFIX);
+ }
+ }
+
+ /**
+ * <a href="http://www.w3.org/2007/05/addressing/metadata">WSAM</a> constants.
+ */
+ public static final class Metadata
+ {
+ /**
+ * Constructor.
+ */
+ private Metadata()
+ {
+ // forbidden inheritance
+ }
+
+ // WSAM namespace
+ public static final String NS = "http://www.w3.org/2007/05/addressing/metadata";
+
+ // WSAM prefix
+ public static final String NS_PREFIX = "wsam";
+
+ public static final class Elements
+ {
+ /**
+ * Constructor.
+ */
+ private Elements()
+ {
+ // forbidden inheritance
+ }
+
+ // WSAM 'ServiceName' element
+ public static final String SERVICENAME = "ServiceName";
+ public static final QName SERVICENAME_QNAME = new QName(NS, SERVICENAME, NS_PREFIX);
+
+ // WSAM 'InterfaceName' element
+ public static final String INTERFACENAME = "InterfaceName";
+ public static final QName INTERFACENAME_QNAME = new QName(NS, INTERFACENAME, NS_PREFIX);
+
+ // WSAM 'Addressing' element
+ public static final String ADDRESSING = "Addressing";
+ public static final QName ADDRESSING_QNAME = new QName(NS, ADDRESSING, NS_PREFIX);
+
+ // WSAM 'AnonymousResponses' element
+ public static final String ANONYMOUSRESPONSES = "AnonymousResponses";
+ public static final QName ANONYMOUSRESPONSES_QNAME = new QName(NS, ANONYMOUSRESPONSES, NS_PREFIX);
+
+ // WSAM 'NonAnonymousResponses' element
+ public static final String NONANONYMOUSRESPONSES = "NonAnonymousResponses";
+ public static final QName NONANONYMOUSRESPONSES_QNAME = new QName(NS, NONANONYMOUSRESPONSES, NS_PREFIX);
+ }
+
+ public static final class Attributes
+ {
+ /**
+ * Constructor.
+ */
+ private Attributes()
+ {
+ // forbidden inheritance
+ }
+
+ // WSAM 'EndpointName' attribute
+ public static final String ENDPOINTNAME = "EndpointName";
+ public static final QName ENDPOINTNAME_QNAME = new QName(NS, ENDPOINTNAME, NS_PREFIX);
+
+ // WSAM 'Action' attribute
+ public static final String ACTION = "Action";
+ public static final QName ACTION_QNAME = new QName(NS, ACTION, NS_PREFIX);
+
+ }
+ }
+
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAP.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.addressing;
+
+import java.util.List;
+import java.util.Map;
+
+import org.w3c.dom.Element;
+
+/**
+ * Message Addressing Properties is a wrapper for the stack-specific JSR-261 addressing properties
+ * classes implemented by JBossWS Native and CXF. It is used to localize dependence upon the WS
+ * stack.
+ *
+ * @author Andrew Dinn (adinn(a)redhat.com)
+ * @author alessio.soldano(a)jboss.com
+ *
+ */
+public interface MAP
+{
+ public String getTo();
+
+ public MAPEndpoint getFrom();
+
+ public String getMessageID();
+
+ public String getAction();
+
+ public MAPEndpoint getFaultTo();
+
+ public MAPEndpoint getReplyTo();
+
+ public MAPRelatesTo getRelatesTo();
+
+ public void setTo(String address);
+
+ public void setFrom(MAPEndpoint epref);
+
+ public void setMessageID(String messageID);
+
+ public void setAction(String action);
+
+ public void setReplyTo(MAPEndpoint epref);
+
+ public void setFaultTo(MAPEndpoint epref);
+
+ public void setRelatesTo(MAPRelatesTo relatesTo);
+
+ public void addReferenceParameter(Element refParam);
+
+ public List<Object> getReferenceParameters();
+
+ public void initializeAsDestination(MAPEndpoint epref);
+
+ public void installOutboundMapOnServerSide(Map<String, Object> requestContext, MAP map);
+
+ public void installOutboundMapOnClientSide(Map<String, Object> requestContext, MAP map);
+
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilder.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.addressing;
+
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.handler.MessageContext;
+
+/**
+ * MAPBuilder is a helper used to create objects used with class MAP.
+ *
+ * @author Andrew Dinn (adinn(a)redhat.com)
+ * @author alessio.soldano(a)jboss.com
+ *
+ */
+public interface MAPBuilder
+{
+ public MAP newMap();
+
+ /**
+ * retrieve the inbound server message address properties attached to a message context
+ * @param ctx the server message context
+ * @return
+ */
+ public MAP inboundMap(Map<String, Object> ctx);
+
+ /**
+ * retrieve the outbound client message address properties attached to a message request map
+ * @param ctx the client request properties map
+ * @return
+ */
+ public MAP outboundMap(Map<String, Object> ctx);
+
+ public MAPConstants newConstants();
+
+ public MAPEndpoint newEndpoint(String address);
+
+ public MAPRelatesTo newRelatesTo(String id, QName type);
+
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPBuilderFactory.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,144 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, 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.addressing;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.util.ServiceLoader;
+
+/**
+ * Factory for MAPBuilder; to be used to get an instance of the proper MAPBuilder
+ * implementation which depends on the jbossws stack in use.
+ *
+ * @author alessio.soldano(a)jboss.com
+ * @since 25-May-2009
+ *
+ */
+public abstract class MAPBuilderFactory
+{
+ private static final String CLASSLOADER_PROVIDER = "org.jboss.wsf.spi.classloading.ClassLoaderProvider";
+ private static final String CLASSLOADER_PROVIDER_GET_METHOD = "getDefaultProvider";
+ private static final String CLASSLOADER_PROVIDER_GET_CL_METHOD = "getServerIntegrationClassLoader";
+ private static final String JBOSSWS_SPI_MODULE = "org.jboss.ws.spi";
+
+ /**
+ * Get the proper MAPBuilderFactory instance according to stack in use;
+ * this uses the ws server integration modular classloader if available
+ * (alternatively the current thread context classloader is used) for
+ * looking up the factory name.
+ *
+ * @return
+ */
+ public static MAPBuilderFactory getInstance()
+ {
+ return getInstance(getServerIntegrationClassLoader());
+ }
+
+ /**
+ * The same as getInstance() except the provided ClassLoader instance
+ * is used to lookup the factory name.
+ *
+ * @param loader
+ * @return
+ */
+ public static MAPBuilderFactory getInstance(ClassLoader loader)
+ {
+ return (MAPBuilderFactory)ServiceLoader.loadService(MAPBuilderFactory.class.getName(), null, loader);
+ }
+
+ public abstract MAPBuilder getBuilderInstance();
+
+ private static ClassLoader getServerIntegrationClassLoader()
+ {
+ ClassLoader cl = null;
+ try
+ {
+ //if jboss-modules is available (i.e. AS7 in-container) we get the org.jboss.ws.spi:main module first,
+ //the we use the ClassLoaderProvider facilities for getting the integration classloader.
+ //The reason for going this way is in not exposing the ClassLoaderProvider to the public API,
+ //while MAPBuilderFactory needs to work automatically (no need to specify the loader to use)
+ final ClassLoader spiLoader = getSPIClassLoader();
+ if (spiLoader != null)
+ {
+ final Class<?> clazz = spiLoader.loadClass(CLASSLOADER_PROVIDER);
+ final Object clProvider = clazz.getMethod(CLASSLOADER_PROVIDER_GET_METHOD).invoke(null);
+ cl = (ClassLoader)clazz.getMethod(CLASSLOADER_PROVIDER_GET_CL_METHOD).invoke(clProvider);
+ }
+ }
+ catch (RuntimeException re)
+ {
+ throw re;
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ return (cl != null) ? cl : getContextClassLoader();
+ }
+
+ private static ClassLoader getSPIClassLoader()
+ {
+ ClassLoader moduleClassLoader = null;
+ try {
+ Class<?> moduleClass = Class.forName("org.jboss.modules.Module");
+ Class<?> moduleIdentifierClass = Class.forName("org.jboss.modules.ModuleIdentifier");
+ Class<?> moduleLoaderClass = Class.forName("org.jboss.modules.ModuleLoader");
+ Object moduleLoader = moduleClass.getMethod("getBootModuleLoader").invoke(null);
+ Object moduleIdentifier = moduleIdentifierClass.getMethod("create", String.class).invoke(null, JBOSSWS_SPI_MODULE);
+ Object module = moduleLoaderClass.getMethod("loadModule", moduleIdentifierClass).invoke(moduleLoader, moduleIdentifier);
+ moduleClassLoader = (ClassLoader)moduleClass.getMethod("getClassLoader").invoke(module);
+ } catch (Exception e) {
+ //ignore, JBoss Modules might not be available at all
+ Logger log = Logger.getLogger(MAPBuilderFactory.class);
+ if (log.isTraceEnabled())
+ {
+ log.trace("Could not get " + JBOSSWS_SPI_MODULE + " module classloader: ", e);
+ }
+ }
+ return moduleClassLoader;
+ }
+
+ /**
+ * Get context classloader.
+ *
+ * @return the current context classloader
+ */
+ static ClassLoader getContextClassLoader()
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm == null)
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ else
+ {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+ public ClassLoader run()
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
+ }
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPConstants.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.addressing;
+
+/**
+ * MAPConstants is a wrapper which works with class MAP
+ *
+ * @author Andrew Dinn (adinn(a)redhat.com)
+ * @author alessio.soldano(a)jboss.com
+ *
+ */
+public interface MAPConstants
+{
+ public String getAnonymousURI();
+
+ public String getNoneURI();
+
+ public String getClientAddressingProperties();
+
+ public String getClientAddressingPropertiesInbound();
+
+ public String getClientAddressingPropertiesOutbound();
+
+ public String getServerAddressingPropertiesInbound();
+
+ public String getServerAddressingPropertiesOutbound();
+
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPEndpoint.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.addressing;
+
+import java.util.List;
+
+import org.w3c.dom.Element;
+
+/**
+ * MAPEndpoint is a wrapper which works with class MAP.
+ *
+ * @author Andrew Dinn (adinn(a)redhat.com)
+ * @author alessio.soldano(a)jboss.com
+ *
+ */
+public interface MAPEndpoint
+{
+ public String getAddress();
+
+ public void addReferenceParameter(Element element);
+
+ public List<Object> getReferenceParameters();
+
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/addressing/MAPRelatesTo.java 2011-04-08 15:48:56 UTC (rev 14041)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.addressing;
+
+import javax.xml.namespace.QName;
+
+/**
+ * MAPRelationship is a wrapper which works with class MAP.
+ *
+ * @author Andrew Dinn (adinn(a)redhat.com)
+ * @author alessio.soldano(a)jboss.com
+ *
+ */
+public interface MAPRelatesTo
+{
+ public String getRelatesTo();
+
+ public QName getType();
+
+ public void setType(QName type);
+
+}
13 years
JBossWS SVN: r14040 - in api/branches/asoldano/src/main/java/org/jboss/wsf: util and 1 other directory.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-08 11:47:24 -0400 (Fri, 08 Apr 2011)
New Revision: 14040
Added:
api/branches/asoldano/src/main/java/org/jboss/wsf/util/
api/branches/asoldano/src/main/java/org/jboss/wsf/util/DOMUtils.java
Log:
Adding basic (read only, no thread local hack) DOM facilities to api
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/util/DOMUtils.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/util/DOMUtils.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/util/DOMUtils.java 2011-04-08 15:47:24 UTC (rev 14040)
@@ -0,0 +1,647 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, 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.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.jboss.logging.Logger;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+/**
+ * Basic DOM2 utilities
+ *
+ * @author alessio.soldano(a)jboss.com
+ * @author Thomas.Diesler(a)jboss.org
+ *
+ */
+public abstract class DOMUtils
+{
+ private static Logger log = Logger.getLogger(DOMUtils.class);
+
+ /** Get the qname of the given node.
+ */
+ public static QName getElementQName(Element el)
+ {
+ String qualifiedName = el.getNodeName();
+ return resolveQName(el, qualifiedName);
+ }
+
+ /** Transform the given qualified name into a QName
+ */
+ public static QName resolveQName(Element el, String qualifiedName)
+ {
+ QName qname;
+ String prefix = "";
+ String namespaceURI = "";
+ String localPart = qualifiedName;
+
+ int colIndex = qualifiedName.indexOf(":");
+ if (colIndex > 0)
+ {
+ prefix = qualifiedName.substring(0, colIndex);
+ localPart = qualifiedName.substring(colIndex + 1);
+
+ if ("xmlns".equals(prefix))
+ {
+ namespaceURI = "URI:XML_PREDEFINED_NAMESPACE";
+ }
+ else
+ {
+ Element nsElement = el;
+ while (namespaceURI.equals("") && nsElement != null)
+ {
+ namespaceURI = nsElement.getAttribute("xmlns:" + prefix);
+ if (namespaceURI.equals(""))
+ nsElement = getParentElement(nsElement);
+ }
+ }
+
+ if (namespaceURI.equals("") && el.getNamespaceURI() != null)
+ {
+ namespaceURI = el.getNamespaceURI();
+ }
+
+ if (namespaceURI.equals(""))
+ throw new IllegalArgumentException("Cannot find namespace uri for: " + qualifiedName);
+ }
+ else
+ {
+ Element nsElement = el;
+ while (namespaceURI.equals("") && nsElement != null)
+ {
+ namespaceURI = nsElement.getAttribute("xmlns");
+ if (namespaceURI.equals(""))
+ nsElement = getParentElement(nsElement);
+ }
+ }
+
+ qname = new QName(namespaceURI, localPart, prefix);
+ return qname;
+ }
+
+ /** Get the value from the given attribute
+ *
+ * @return null if the attribute value is empty or the attribute is not present
+ */
+ public static String getAttributeValue(Element el, String attrName)
+ {
+ return getAttributeValue(el, new QName(attrName));
+ }
+
+ /** Get the value from the given attribute
+ *
+ * @return null if the attribute value is empty or the attribute is not present
+ */
+ public static String getAttributeValue(Element el, QName attrName)
+ {
+ String attr = null;
+ if ("".equals(attrName.getNamespaceURI()))
+ attr = el.getAttribute(attrName.getLocalPart());
+ else
+ attr = el.getAttributeNS(attrName.getNamespaceURI(), attrName.getLocalPart());
+
+ if ("".equals(attr))
+ attr = null;
+
+ return attr;
+ }
+
+ /** Get the qname value from the given attribute
+ */
+ public static QName getAttributeValueAsQName(Element el, String attrName)
+ {
+ return getAttributeValueAsQName(el, new QName(attrName));
+
+ }
+
+ /** Get the qname value from the given attribute
+ */
+ public static QName getAttributeValueAsQName(Element el, QName attrName)
+ {
+ QName qname = null;
+
+ String qualifiedName = getAttributeValue(el, attrName);
+ if (qualifiedName != null)
+ {
+ qname = resolveQName(el, qualifiedName);
+ }
+
+ return qname;
+ }
+
+ /** Get the boolean value from the given attribute
+ */
+ public static boolean getAttributeValueAsBoolean(Element el, String attrName)
+ {
+ return getAttributeValueAsBoolean(el, new QName(attrName));
+ }
+
+ /** Get the boolean value from the given attribute
+ */
+ public static boolean getAttributeValueAsBoolean(Element el, QName attrName)
+ {
+ String attrVal = getAttributeValue(el, attrName);
+ boolean ret = "true".equalsIgnoreCase(attrVal) || "1".equalsIgnoreCase(attrVal);
+ return ret;
+ }
+
+ /** Get the integer value from the given attribute
+ */
+ public static Integer getAttributeValueAsInteger(Element el, String attrName)
+ {
+ return getAttributeValueAsInteger(el, new QName(attrName));
+ }
+
+ /** Get the integer value from the given attribute
+ */
+ public static Integer getAttributeValueAsInteger(Element el, QName attrName)
+ {
+ String attrVal = getAttributeValue(el, attrName);
+ return (attrVal != null ? new Integer(attrVal) : null);
+ }
+
+ /** Get the attributes as Map<QName, String>
+ */
+ public static Map<QName, String> getAttributes(Element el)
+ {
+ Map<QName, String> attmap = new HashMap<QName, String>();
+ NamedNodeMap attribs = el.getAttributes();
+ int len = attribs.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Attr attr = (Attr) attribs.item(i);
+ String name = attr.getName();
+ QName qname = resolveQName(el, name);
+ String value = attr.getNodeValue();
+ attmap.put(qname, value);
+ }
+ return attmap;
+ }
+
+ /** Copy attributes between elements
+ */
+ public static void copyAttributes(Element destElement, Element srcElement)
+ {
+ NamedNodeMap attribs = srcElement.getAttributes();
+ int len = attribs.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Attr attr = (Attr) attribs.item(i);
+ String uri = attr.getNamespaceURI();
+ String qname = attr.getName();
+ String value = attr.getNodeValue();
+
+ // Prevent DOMException: NAMESPACE_ERR: An attempt is made to create or
+ // change an object in a way which is incorrect with regard to namespaces.
+ if (uri == null && qname.startsWith("xmlns"))
+ {
+ if (log.isTraceEnabled())
+ log.trace("Ignore attribute: [uri=" + uri + ",qname=" + qname + ",value=" + value + "]");
+ }
+ else
+ {
+ destElement.setAttributeNS(uri, qname, value);
+ }
+ }
+ }
+
+ /** True if the node has text child elements only
+ */
+ public static boolean hasTextChildNodesOnly(Node node)
+ {
+ NodeList nodeList = node.getChildNodes();
+ int len = nodeList.getLength();
+ if (len == 0)
+ return false;
+
+ for (int i = 0; i < len; i++)
+ {
+ Node acksToChildNode = nodeList.item(i);
+ if (acksToChildNode.getNodeType() != Node.TEXT_NODE)
+ return false;
+ }
+
+ return true;
+ }
+
+ /** True if the node has child elements
+ */
+ public static boolean hasChildElements(Node node)
+ {
+ NodeList nlist = node.getChildNodes();
+ int len = nlist.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Node child = nlist.item(i);
+ if (child.getNodeType() == Node.ELEMENT_NODE)
+ return true;
+ }
+ return false;
+ }
+
+ /** Gets child elements
+ */
+ public static Iterator<Element> getChildElements(Node node)
+ {
+ List<Element> list = new LinkedList<Element>();
+ NodeList nlist = node.getChildNodes();
+ int len = nlist.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Node child = nlist.item(i);
+ if (child.getNodeType() == Node.ELEMENT_NODE)
+ list.add((Element) child);
+ }
+ return list.iterator();
+ }
+
+ /** Get the concatenated text content, or null.
+ */
+ public static String getTextContent(Node node)
+ {
+ boolean hasTextContent = false;
+ StringBuilder buffer = new StringBuilder();
+ NodeList nlist = node.getChildNodes();
+ int len = nlist.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Node child = nlist.item(i);
+ if (child.getNodeType() == Node.TEXT_NODE)
+ {
+ buffer.append(child.getNodeValue());
+ hasTextContent = true;
+ }
+ }
+ return (hasTextContent ? buffer.toString() : null);
+ }
+
+ /** Gets the first child element
+ */
+ public static Element getFirstChildElement(Node node)
+ {
+ return getFirstChildElement(node, false);
+ }
+
+ /** Gets the first child element
+ */
+ public static Element getFirstChildElement(Node node, boolean recursive)
+ {
+ return getFirstChildElementIntern(node, null, recursive);
+ }
+
+ /** Gets the first child element for a given local name without namespace
+ */
+ public static Element getFirstChildElement(Node node, String nodeName)
+ {
+ return getFirstChildElement(node, nodeName, false);
+ }
+
+ /** Gets the first child element for a given local name without namespace
+ */
+ public static Element getFirstChildElement(Node node, String nodeName, boolean recursive)
+ {
+ return getFirstChildElementIntern(node, new QName(nodeName), recursive);
+ }
+
+ /** Gets the first child element for a given qname
+ */
+ public static Element getFirstChildElement(Node node, QName nodeName)
+ {
+ return getFirstChildElement(node, nodeName, false);
+ }
+
+ /** Gets the first child element for a given qname
+ */
+ public static Element getFirstChildElement(Node node, QName nodeName, boolean recursive)
+ {
+ return getFirstChildElementIntern(node, nodeName, recursive);
+ }
+
+ private static Element getFirstChildElementIntern(Node node, QName nodeName, boolean recursive)
+ {
+ Element childElement = null;
+ Iterator<Element> it = getChildElementsIntern(node, nodeName, recursive);
+ if (it.hasNext())
+ {
+ childElement = (Element) it.next();
+ }
+ return childElement;
+ }
+
+ /** Gets the child elements for a given local name without namespace
+ */
+ public static Iterator<Element> getChildElements(Node node, String nodeName)
+ {
+ return getChildElements(node, nodeName, false);
+ }
+
+ /** Gets the child elements for a given local name without namespace
+ */
+ public static Iterator<Element> getChildElements(Node node, String nodeName, boolean recursive)
+ {
+ return getChildElementsIntern(node, new QName(nodeName), recursive);
+ }
+
+ /** Gets the child element for a given qname
+ */
+ public static Iterator<Element> getChildElements(Node node, QName nodeName)
+ {
+ return getChildElements(node, nodeName, false);
+ }
+
+ /** Gets the child element for a given qname
+ */
+ public static Iterator<Element> getChildElements(Node node, QName nodeName, boolean recursive)
+ {
+ return getChildElementsIntern(node, nodeName, recursive);
+ }
+
+ public static List<Element> getChildElementsAsList(Node node, String nodeName)
+ {
+ return getChildElementsAsList(node, nodeName, false);
+ }
+
+ public static List<Element> getChildElementsAsList(Node node, String nodeName, boolean recursive)
+ {
+ return getChildElementsAsListIntern(node, new QName(nodeName), recursive);
+ }
+
+ public static List<Element> getChildElementsAsList(Node node, QName nodeName)
+ {
+ return getChildElementsAsList(node, nodeName, false);
+ }
+
+ public static List<Element> getChildElementsAsList(Node node, QName nodeName, boolean recursive)
+ {
+ return getChildElementsAsListIntern(node, nodeName, recursive);
+ }
+
+ private static List<Element> getChildElementsAsListIntern(Node node, QName nodeName, boolean recursive)
+ {
+ List<Element> list = new LinkedList<Element>();
+
+ NodeList nlist = node.getChildNodes();
+ int len = nlist.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Node child = nlist.item(i);
+ if (child.getNodeType() == Node.ELEMENT_NODE)
+ {
+ search(list, (Element) child, nodeName, recursive);
+ }
+ }
+ return list;
+ }
+
+ private static void search(List<Element> list, Element baseElement, QName nodeName, boolean recursive)
+ {
+ if (nodeName == null)
+ {
+ list.add(baseElement);
+ }
+ else
+ {
+ QName qname;
+ if (nodeName.getNamespaceURI().length() > 0)
+ {
+ qname = new QName(baseElement.getNamespaceURI(), baseElement.getLocalName());
+ }
+ else
+ {
+ qname = new QName(baseElement.getLocalName());
+ }
+ if (qname.equals(nodeName))
+ {
+ list.add(baseElement);
+ }
+ }
+ if (recursive)
+ {
+ NodeList nlist = baseElement.getChildNodes();
+ int len = nlist.getLength();
+ for (int i = 0; i < len; i++)
+ {
+ Node child = nlist.item(i);
+ if (child.getNodeType() == Node.ELEMENT_NODE)
+ {
+ search(list, (Element) child, nodeName, recursive);
+ }
+ }
+ }
+ }
+
+ private static Iterator<Element> getChildElementsIntern(Node node, QName nodeName, boolean recursive)
+ {
+ return getChildElementsAsListIntern(node, nodeName, recursive).iterator();
+ }
+
+ /** Gets parent element or null if there is none
+ */
+ public static Element getParentElement(Node node)
+ {
+ Node parent = node.getParentNode();
+ return (parent instanceof Element ? (Element) parent : null);
+ }
+
+ public static Element sourceToElement(Source source, DocumentBuilder builder) throws IOException
+ {
+ Element retElement = null;
+
+ if (source instanceof StreamSource)
+ {
+ StreamSource streamSource = (StreamSource) source;
+
+ InputStream ins = streamSource.getInputStream();
+ if (ins != null)
+ {
+ retElement = DOMUtils.parse(ins, builder);
+ }
+ Reader reader = streamSource.getReader();
+ if (reader != null)
+ {
+ retElement = DOMUtils.parse(new InputSource(reader), builder);
+ }
+ }
+ else if (source instanceof DOMSource)
+ {
+ DOMSource domSource = (DOMSource) source;
+ Node node = domSource.getNode();
+ if (node instanceof Element)
+ {
+ retElement = (Element) node;
+ }
+ else if (node instanceof Document)
+ {
+ retElement = ((Document) node).getDocumentElement();
+ }
+ }
+ else if (source instanceof SAXSource)
+ {
+ // The fact that JAXBSource derives from SAXSource is an implementation detail.
+ // Thus in general applications are strongly discouraged from accessing methods defined on SAXSource.
+ // The XMLReader object obtained by the getXMLReader method shall be used only for parsing the InputSource object returned by the getInputSource method.
+
+ final boolean hasInputSource = ((SAXSource) source).getInputSource() != null;
+ final boolean hasXMLReader = ((SAXSource) source).getXMLReader() != null;
+
+ if (hasInputSource || hasXMLReader)
+ {
+ try
+ {
+ TransformerFactory tf = TransformerFactory.newInstance();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
+ Transformer transformer = tf.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.transform(source, new StreamResult(baos));
+ retElement = DOMUtils.parse(new ByteArrayInputStream(baos.toByteArray()), builder);
+ }
+ catch (TransformerException ex)
+ {
+ throw new IOException(ex);
+ }
+ }
+ }
+ else
+ {
+ throw new RuntimeException("Source type not implemented: " + source.getClass().getName());
+ }
+
+ return retElement;
+ }
+
+ /** Parse the given XML string and return the root Element
+ */
+ public static Element parse(String xmlString, DocumentBuilder builder) throws IOException
+ {
+ try
+ {
+ return parse(new ByteArrayInputStream(xmlString.getBytes("UTF-8")), builder);
+ }
+ catch (IOException e)
+ {
+ log.error("Cannot parse: " + xmlString);
+ throw e;
+ }
+ }
+
+ /** Parse the given XML stream and return the root Element
+ */
+ public static Element parse(InputStream xmlStream, DocumentBuilder builder) throws IOException
+ {
+ try
+ {
+ Document doc;
+ synchronized (builder) //synchronize to prevent concurrent parsing on the same DocumentBuilder
+ {
+ doc = builder.parse(xmlStream);
+ }
+ return doc.getDocumentElement();
+ }
+ catch (SAXException se)
+ {
+ throw new IOException(se.toString());
+ }
+ finally
+ {
+ xmlStream.close();
+ }
+ }
+
+ /** Parse the given input source and return the root Element
+ */
+ public static Element parse(InputSource source, DocumentBuilder builder) throws IOException
+ {
+ try
+ {
+ Document doc;
+ synchronized (builder) //synchronize to prevent concurrent parsing on the same DocumentBuilder
+ {
+ doc = builder.parse(source);
+ }
+ return doc.getDocumentElement();
+ }
+ catch (SAXException se)
+ {
+ throw new IOException(se.toString());
+ }
+ finally
+ {
+ InputStream is = source.getByteStream();
+ if (is != null)
+ {
+ is.close();
+ }
+ Reader r = source.getCharacterStream();
+ if (r != null)
+ {
+ r.close();
+ }
+ }
+ }
+
+ /** Create an Element for a given name, prefix and uri
+ */
+ public static Element createElement(String localPart, String prefix, String uri, Document doc)
+ {
+ if (prefix == null || prefix.length() == 0)
+ {
+ if (log.isTraceEnabled())
+ log.trace("createElement {" + uri + "}" + localPart);
+ return doc.createElementNS(uri, localPart);
+ }
+ else
+ {
+ if (log.isTraceEnabled())
+ log.trace("createElement {" + uri + "}" + prefix + ":" + localPart);
+ return doc.createElementNS(uri, prefix + ":" + localPart);
+ }
+ }
+}
Property changes on: api/branches/asoldano/src/main/java/org/jboss/wsf/util/DOMUtils.java
___________________________________________________________________
Added: svn:executable
+ *
13 years
JBossWS SVN: r14039 - shared-testsuite/branches.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-08 05:05:41 -0400 (Fri, 08 Apr 2011)
New Revision: 14039
Added:
shared-testsuite/branches/asoldano/
Log:
Branching for working on classloading changes related to avoidind exposing ws implementation classes to user classpath on AS7
13 years
JBossWS SVN: r14038 - stack/native/trunk/modules/dist.
by jbossws-commits@lists.jboss.org
Author: richard.opalka(a)jboss.com
Date: 2011-04-08 04:21:52 -0400 (Fri, 08 Apr 2011)
New Revision: 14038
Modified:
stack/native/trunk/modules/dist/pom.xml
Log:
fixing typo
Modified: stack/native/trunk/modules/dist/pom.xml
===================================================================
--- stack/native/trunk/modules/dist/pom.xml 2011-04-07 14:51:16 UTC (rev 14037)
+++ stack/native/trunk/modules/dist/pom.xml 2011-04-08 08:21:52 UTC (rev 14038)
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <name>JBoss Web Services - Stack Native Distrubiton</name>
+ <name>JBoss Web Services - Stack Native Distribution</name>
<artifactId>jbossws-native-dist</artifactId>
<packaging>pom</packaging>
<version>4.0.0-SNAPSHOT</version>
13 years
JBossWS SVN: r14037 - common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-07 10:51:16 -0400 (Thu, 07 Apr 2011)
New Revision: 14037
Removed:
common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java
common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java
Log:
Moving Generic*Handler from jbws-common to jbws-api
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java 2011-04-07 14:50:31 UTC (rev 14036)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java 2011-04-07 14:51:16 UTC (rev 14037)
@@ -1,79 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.handler;
-
-import javax.xml.ws.handler.Handler;
-import javax.xml.ws.handler.MessageContext;
-
-/**
- * A generic jaxws handler
- *
- * @author Thomas.Diesler(a)jboss.org
- * @since 13-Aug-2006
- */
-public abstract class GenericHandler implements Handler
-{
- private String handlerName;
-
- public String getHandlerName()
- {
- return handlerName;
- }
-
- public void setHandlerName(String handlerName)
- {
- this.handlerName = handlerName;
- }
-
- public boolean handleMessage(MessageContext msgContext)
- {
- Boolean outbound = (Boolean)msgContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
- if (outbound == null)
- throw new IllegalStateException("Cannot obtain required property: " + MessageContext.MESSAGE_OUTBOUND_PROPERTY);
-
- return outbound ? handleOutbound(msgContext) : handleInbound(msgContext);
- }
-
- protected boolean handleOutbound(MessageContext msgContext)
- {
- return true;
- }
-
- protected boolean handleInbound(MessageContext msgContext)
- {
- return true;
- }
-
- public boolean handleFault(MessageContext messagecontext)
- {
- return true;
- }
-
- public void close(MessageContext messageContext)
- {
- }
-
- public String toString()
- {
- return (handlerName != null ? handlerName : super.toString());
- }
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java 2011-04-07 14:50:31 UTC (rev 14036)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java 2011-04-07 14:51:16 UTC (rev 14037)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.handler;
-
-import javax.xml.ws.handler.LogicalHandler;
-import javax.xml.ws.handler.LogicalMessageContext;
-
-/**
- * A generic jaxws logical handler
- *
- * @author Thomas.Diesler(a)jboss.org
- * @since 13-Aug-2006
- */
-public class GenericLogicalHandler<C extends LogicalMessageContext> extends GenericHandler implements LogicalHandler
-{
-}
Deleted: common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java
===================================================================
--- common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java 2011-04-07 14:50:31 UTC (rev 14036)
+++ common/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java 2011-04-07 14:51:16 UTC (rev 14037)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, 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.handler;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.handler.LogicalMessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-
-/**
- * A generic jaxws soap handler
- *
- * @author Thomas.Diesler(a)jboss.org
- * @since 13-Aug-2006
- */
-public abstract class GenericSOAPHandler<C extends LogicalMessageContext> extends GenericHandler implements SOAPHandler
-{
- // The header blocks that can be processed by this Handler instance
- private Set<QName> headers = new HashSet<QName>();
-
- /** Gets the header blocks that can be processed by this Handler instance.
- */
- public Set<QName> getHeaders()
- {
- return headers;
- }
-
- /** Sets the header blocks that can be processed by this Handler instance.
- */
- public void setHeaders(Set<QName> headers)
- {
- this.headers = headers;
- }
-}
13 years, 1 month
JBossWS SVN: r14036 - in api/branches/asoldano/src/main/java/org/jboss/wsf: common and 1 other directories.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-07 10:50:31 -0400 (Thu, 07 Apr 2011)
New Revision: 14036
Added:
api/branches/asoldano/src/main/java/org/jboss/wsf/common/
api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/
api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java
api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java
Log:
Moving Generic*Handler from jbws common to jbws api
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericHandler.java 2011-04-07 14:50:31 UTC (rev 14036)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.handler;
+
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.handler.MessageContext;
+
+/**
+ * A generic jaxws handler
+ *
+ * @author Thomas.Diesler(a)jboss.org
+ * @since 13-Aug-2006
+ */
+public abstract class GenericHandler implements Handler
+{
+ private String handlerName;
+
+ public String getHandlerName()
+ {
+ return handlerName;
+ }
+
+ public void setHandlerName(String handlerName)
+ {
+ this.handlerName = handlerName;
+ }
+
+ public boolean handleMessage(MessageContext msgContext)
+ {
+ Boolean outbound = (Boolean)msgContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+ if (outbound == null)
+ throw new IllegalStateException("Cannot obtain required property: " + MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+
+ return outbound ? handleOutbound(msgContext) : handleInbound(msgContext);
+ }
+
+ protected boolean handleOutbound(MessageContext msgContext)
+ {
+ return true;
+ }
+
+ protected boolean handleInbound(MessageContext msgContext)
+ {
+ return true;
+ }
+
+ public boolean handleFault(MessageContext messagecontext)
+ {
+ return true;
+ }
+
+ public void close(MessageContext messageContext)
+ {
+ }
+
+ public String toString()
+ {
+ return (handlerName != null ? handlerName : super.toString());
+ }
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericLogicalHandler.java 2011-04-07 14:50:31 UTC (rev 14036)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.handler;
+
+import javax.xml.ws.handler.LogicalHandler;
+import javax.xml.ws.handler.LogicalMessageContext;
+
+/**
+ * A generic jaxws logical handler
+ *
+ * @author Thomas.Diesler(a)jboss.org
+ * @since 13-Aug-2006
+ */
+public class GenericLogicalHandler<C extends LogicalMessageContext> extends GenericHandler implements LogicalHandler
+{
+}
Added: api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java
===================================================================
--- api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java (rev 0)
+++ api/branches/asoldano/src/main/java/org/jboss/wsf/common/handler/GenericSOAPHandler.java 2011-04-07 14:50:31 UTC (rev 14036)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, 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.handler;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.handler.LogicalMessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+
+/**
+ * A generic jaxws soap handler
+ *
+ * @author Thomas.Diesler(a)jboss.org
+ * @since 13-Aug-2006
+ */
+public abstract class GenericSOAPHandler<C extends LogicalMessageContext> extends GenericHandler implements SOAPHandler
+{
+ // The header blocks that can be processed by this Handler instance
+ private Set<QName> headers = new HashSet<QName>();
+
+ /** Gets the header blocks that can be processed by this Handler instance.
+ */
+ public Set<QName> getHeaders()
+ {
+ return headers;
+ }
+
+ /** Sets the header blocks that can be processed by this Handler instance.
+ */
+ public void setHeaders(Set<QName> headers)
+ {
+ this.headers = headers;
+ }
+}
13 years, 1 month
JBossWS SVN: r14035 - in stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf: transport and 1 other directory.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2011-04-07 09:41:58 -0400 (Thu, 07 Apr 2011)
New Revision: 14035
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java
Log:
Refactor WebServiceContextFactory lookup in cxf invokers + use server integration classloader for SPI lookups in endpoint at runtime (ServletControllerExt and ServletHelper)
Modified: stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java
===================================================================
--- stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java 2011-04-07 13:40:02 UTC (rev 14034)
+++ stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java 2011-04-07 13:41:58 UTC (rev 14035)
@@ -73,10 +73,14 @@
import org.apache.cxf.service.Service;
import org.apache.cxf.service.invoker.Invoker;
import org.apache.cxf.service.model.BindingOperationInfo;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.invocation.Invocation;
import org.jboss.wsf.spi.invocation.InvocationContext;
import org.jboss.wsf.spi.invocation.InvocationHandler;
+import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
/**
* An abstract CXF invoker
@@ -91,6 +95,7 @@
{
private static final Object[] NO_ARGS = new Object[]{};
private Object targetBean;
+ private WebServiceContextFactory contextFactory;
public void setTargetBean(Object targetBean)
{
@@ -327,5 +332,16 @@
ctx.put(key.getKey(), key.getValue(), Scope.HANDLER);
}
}
+
+ protected WebServiceContextFactory getWebServiceContextFactory()
+ {
+ if (contextFactory == null)
+ {
+ ClassLoader cl = ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader();
+ SPIProvider spiProvider = SPIProviderResolver.getInstance(cl).getProvider();
+ contextFactory = spiProvider.getSPI(WebServiceContextFactory.class, cl);
+ }
+ return contextFactory;
+ }
}
Modified: stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java
===================================================================
--- stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java 2011-04-07 13:40:02 UTC (rev 14034)
+++ stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java 2011-04-07 13:41:58 UTC (rev 14035)
@@ -24,10 +24,7 @@
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.invocation.InvocationType;
-import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
/**
* An XFire invoker for EJB3
@@ -40,8 +37,6 @@
{
protected WebServiceContext getWebServiceContext(MessageContext msgCtx)
{
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- WebServiceContextFactory contextFactory = spiProvider.getSPI(WebServiceContextFactory.class);
- return contextFactory.newWebServiceContext(InvocationType.JAXWS_EJB3, msgCtx);
+ return getWebServiceContextFactory().newWebServiceContext(InvocationType.JAXWS_EJB3, msgCtx);
}
}
Modified: stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java
===================================================================
--- stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java 2011-04-07 13:40:02 UTC (rev 14034)
+++ stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java 2011-04-07 13:41:58 UTC (rev 14035)
@@ -24,10 +24,7 @@
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.invocation.InvocationType;
-import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
/**
* An CXF invoker for JSE
@@ -40,8 +37,6 @@
{
protected WebServiceContext getWebServiceContext(MessageContext msgCtx)
{
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- WebServiceContextFactory contextFactory = spiProvider.getSPI(WebServiceContextFactory.class);
- return contextFactory.newWebServiceContext(InvocationType.JAXWS_JSE, msgCtx);
+ return getWebServiceContextFactory().newWebServiceContext(InvocationType.JAXWS_JSE, msgCtx);
}
}
Modified: stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java
===================================================================
--- stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java 2011-04-07 13:40:02 UTC (rev 14034)
+++ stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java 2011-04-07 13:41:58 UTC (rev 14035)
@@ -41,6 +41,7 @@
import org.apache.cxf.transports.http.QueryHandlerRegistry;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.management.EndpointMetrics;
import org.jboss.wsf.spi.management.ServerConfig;
@@ -63,8 +64,9 @@
super(cxfTransport, config, servletCtx, bus);
this.cxfTransport = cxfTransport;
this.bus = bus;
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- serverConfig = spiProvider.getSPI(ServerConfigFactory.class).getServerConfig();
+ ClassLoader cl = ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader();
+ SPIProvider spiProvider = SPIProviderResolver.getInstance(cl).getProvider();
+ serverConfig = spiProvider.getSPI(ServerConfigFactory.class, cl).getServerConfig();
}
/**
Modified: stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java
===================================================================
--- stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java 2011-04-07 13:40:02 UTC (rev 14034)
+++ stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java 2011-04-07 13:41:58 UTC (rev 14035)
@@ -45,6 +45,7 @@
import org.jboss.wsf.common.injection.InjectionHelper;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
import org.jboss.wsf.spi.invocation.EndpointAssociation;
@@ -66,8 +67,9 @@
public static Endpoint initEndpoint(ServletConfig servletConfig, String servletName)
{
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- EndpointRegistry epRegistry = spiProvider.getSPI(EndpointRegistryFactory.class).getEndpointRegistry();
+ ClassLoader cl = ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader();
+ SPIProvider spiProvider = SPIProviderResolver.getInstance(cl).getProvider();
+ EndpointRegistry epRegistry = spiProvider.getSPI(EndpointRegistryFactory.class, cl).getEndpointRegistry();
ServletContext context = servletConfig.getServletContext();
String contextPath = context.getContextPath();
13 years, 1 month