Author: richard.opalka(a)jboss.com
Date: 2007-12-05 05:10:32 -0500 (Wed, 05 Dec 2007)
New Revision: 5187
Removed:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMAddressingType.java
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMException.java
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMProvider.java
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMSequence.java
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/transport/backchannel/RMCallbackHandlerImpl.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAbstractOneWayTest.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAddressableOneWayTestCase.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAnonymousOneWayTestCase.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAbstractReqResTest.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAddressableReqResTestCase.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAnonymousReqResTestCase.java
Log:
wsrm API enhancement - added javadoc
Modified: stack/native/trunk/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -70,7 +70,6 @@
import org.jboss.ws.extensions.addressing.AddressingClientUtil;
import org.jboss.ws.extensions.wsrm.RMConstant;
import org.jboss.ws.extensions.wsrm.RMSequenceImpl;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.ws.extensions.wsrm.api.RMException;
import org.jboss.ws.extensions.wsrm.common.RMHelper;
import org.jboss.ws.extensions.wsrm.spi.RMConstants;
@@ -508,21 +507,19 @@
// WS-RM support //
///////////////////
@SuppressWarnings("unchecked")
- public org.jboss.ws.extensions.wsrm.api.RMSequence createSequence(RMAddressingType
addrType) throws RMException
+ public org.jboss.ws.extensions.wsrm.api.RMSequence createSequence(boolean
addressableClient) throws RMException
{
if (this.wsrmSequence != null)
throw new IllegalStateException("Sequence already registered with proxy
instance");
- if (addrType == null)
- throw new IllegalArgumentException("Addressing type cannot be null");
try
{
// set up addressing data
- RMSequenceImpl candidateSequence = new RMSequenceImpl(addrType,
getEndpointMetaData().getConfig().getRMMetaData());
+ RMSequenceImpl candidateSequence = new RMSequenceImpl(addressableClient,
getEndpointMetaData().getConfig().getRMMetaData());
String address = getEndpointMetaData().getEndpointAddress();
String action = RMConstant.CREATE_SEQUENCE_WSA_ACTION;
AddressingProperties addressingProps = null;
- if (addrType == RMAddressingType.ADDRESSABLE)
+ if (addressableClient)
{
addressingProps = AddressingClientUtil.createDefaultProps(action, address);
addressingProps.setReplyTo(AddressingBuilder.getAddressingBuilder().newEndpointReference(candidateSequence.getBackPort()));
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -45,7 +45,6 @@
import org.jboss.ws.core.utils.UUIDGenerator;
import org.jboss.ws.extensions.addressing.AddressingClientUtil;
import org.jboss.ws.extensions.wsrm.config.RMConfig;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.ws.extensions.wsrm.api.RMException;
import org.jboss.ws.extensions.wsrm.api.RMSequence;
import org.jboss.ws.extensions.wsrm.spi.RMConstants;
@@ -68,7 +67,7 @@
private static final RMConstants wsrmConstants = RMProvider.get().getConstants();
private final RMConfig wsrmConfig;
- private final RMAddressingType addrType;
+ private final boolean addressableClient;
private final Set<Long> acknowledgedOutboundMessages = new
TreeSet<Long>();
private final Set<Long> receivedInboundMessages = new TreeSet<Long>();
private RMIncompleteSequenceBehavior behavior =
RMIncompleteSequenceBehavior.NO_DISCARD;
@@ -91,13 +90,13 @@
logger.debug("Unassigned message available in callback handler");
}
- public RMSequenceImpl(RMAddressingType addrType, RMConfig wsrmConfig)
+ public RMSequenceImpl(boolean addrType, RMConfig wsrmConfig)
{
super();
- if ((addrType == null) || (wsrmConfig == null))
+ if (wsrmConfig == null)
throw new IllegalArgumentException();
- this.addrType = addrType;
+ this.addressableClient = addrType;
this.wsrmConfig = wsrmConfig;
try
{
@@ -180,7 +179,7 @@
public final URI getBackPort()
{
// no need for synchronization
- return (this.addrType == RMAddressingType.ADDRESSABLE) ? this.backPort : null;
+ return (this.addressableClient) ? this.backPort : null;
}
public final long newMessageNumber()
Deleted:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMAddressingType.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMAddressingType.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMAddressingType.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ws.extensions.wsrm.api;
-
-/**
- * This enumeration specifies client type that will be used for WS-RM exchange
- *
- * @author richard.opalka(a)jboss.com
- *
- * @since Nov 28, 2007
- */
-public enum RMAddressingType
-{
- /**
- * Specifies that client is anonymous
- */
- ANONYMOUS,
- /**
- * Specifies that client is addressable
- */
- ADDRESSABLE
-}
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMException.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMException.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMException.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -24,8 +24,13 @@
import javax.xml.ws.WebServiceException;
/**
- * Reliable messaging exception
+ * WS-RM exception
+ *
* @author richard.opalka(a)jboss.com
+ *
+ * @since Oct 22, 2007
+ * @see org.jboss.ws.extensions.wsrm.api.RMProvider
+ * @see org.jboss.ws.extensions.wsrm.api.RMSequence
*/
public class RMException extends WebServiceException
{
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMProvider.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMProvider.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMProvider.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -22,11 +22,24 @@
package org.jboss.ws.extensions.wsrm.api;
/**
- * TODO: add comment
+ * WS-RM provider used for sequence creation. Typical usecase is:
+ *
+ * <p><blockquote><pre>
+ * boolean addressableClient = true;
+ * SEI sei = (SEI)service.getPort(SEI.class)
+ * RMSequence sequence = ((RMProvider)sei).createSequence(addressableClient);
+ * ...
+ * sei.callMethod1();
+ * sei.callMethod2();
+ * ...
+ * sequence.close();
+ * </pre></blockquote></p>
*
* @author richard.opalka(a)jboss.com
*
* @since Oct 22, 2007
+ * @see org.jboss.ws.extensions.wsrm.api.RMSequence
+ * @see org.jboss.ws.extensions.wsrm.api.RMException
*/
public interface RMProvider
{
@@ -34,7 +47,7 @@
* Creates new WS-RM sequence
* @param addressableClient
* @return created sequence
- * @throws RMException
+ * @throws unchecked RMException if sequence creation error occurs
*/
- RMSequence createSequence(RMAddressingType addrType);
+ RMSequence createSequence(boolean addressableClient);
}
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMSequence.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMSequence.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/api/RMSequence.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -21,7 +21,23 @@
*/
package org.jboss.ws.extensions.wsrm.api;
+/**
+ * WS-RM sequence. User can only create sequence using <b>RMProvider</b>
+ * interface and close sequence using <b>RMSequence</b> interface
+ *
+ * @author richard.opalka(a)jboss.com
+ *
+ * @since Oct 22, 2007
+ * @see org.jboss.ws.extensions.wsrm.api.RMProvider
+ * @see org.jboss.ws.extensions.wsrm.api.RMException
+ */
public interface RMSequence
{
+
+ /**
+ * Close the sequence
+ * @throws unchecked RMException if sequence termination failed
+ */
void close();
+
}
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/transport/backchannel/RMCallbackHandlerImpl.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/transport/backchannel/RMCallbackHandlerImpl.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/transport/backchannel/RMCallbackHandlerImpl.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -35,7 +35,7 @@
import org.jboss.ws.extensions.wsrm.transport.RMUnassignedMessageListener;
/**
- * TODO: Add comment
+ * Reliable messaging callback handler listens for incomming requests on specified path
*
* @author richard.opalka(a)jboss.com
*
@@ -50,6 +50,10 @@
private List<RMMessage> arrivedUnassignedMessages = new
LinkedList<RMMessage>();
private RMUnassignedMessageListener listener;
+ /**
+ * Request path to listen for incomming messages
+ * @param handledPath
+ */
public RMCallbackHandlerImpl(String handledPath)
{
super();
@@ -59,7 +63,7 @@
public Throwable getFault(String messageId)
{
- // TODO Auto-generated method stub
+ // TODO implement
return null;
}
@@ -75,7 +79,9 @@
{
logger.debug("Setting response object");
MessageTrace.traceMessage("Incoming RM Response Message",
requestMessage.getBytes());
- RMMessage message = RMMessageFactory.newMessage(requestMessage.getBytes(), new
RMMetadata(new java.util.HashMap<String, Object>())); // TODO create map metadata
+ // TODO: is it necessary to initialize metadata from request message?
+ RMMetadata metadata = new RMMetadata(new java.util.HashMap<String,
Object>());
+ RMMessage message = RMMessageFactory.newMessage(requestMessage.getBytes(),
metadata);
String startPattern = "<wsa:RelatesTo>"; // TODO: remove this
with XML content inspection
String endPattern = "</wsa:RelatesTo>";
int begin = requestMessage.indexOf(startPattern) + startPattern.length();
@@ -118,12 +124,12 @@
{
try
{
- logger.debug("waiting for response object associated with message id:
" + messageId);
+ logger.debug("waiting for response with message id: " +
messageId);
instanceLock.wait(100);
}
- catch (InterruptedException ignore)
+ catch (InterruptedException ie)
{
- // TODO: never ignore exceptions - LOG it using logger
+ logger.warn(ie.getMessage(), ie);
}
}
return this.arrivedMessages.get(messageId);
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAbstractOneWayTest.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAbstractOneWayTest.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAbstractOneWayTest.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -32,7 +32,6 @@
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.ws.extensions.wsrm.api.RMProvider;
import org.jboss.ws.extensions.wsrm.api.RMSequence;
import org.jboss.wsf.test.JBossWSTest;
@@ -88,7 +87,7 @@
RMSequence sequence = null;
if (emulatorOn)
{
- sequence = ((RMProvider)proxy).createSequence(getAddressingType());
+ sequence = ((RMProvider)proxy).createSequence(isClientAddressable());
}
setAddrProps(proxy, "http://useless/action1", serviceURL);
proxy.method1();
@@ -107,6 +106,6 @@
return props.getProperty("archives");
}
- protected abstract RMAddressingType getAddressingType();
+ protected abstract boolean isClientAddressable();
}
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAddressableOneWayTestCase.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAddressableOneWayTestCase.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAddressableOneWayTestCase.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -23,7 +23,6 @@
import junit.framework.Test;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.wsf.test.JBossWSTestSetup;
/**
@@ -41,9 +40,9 @@
return new JBossWSTestSetup(RMAddressableOneWayTestCase.class, getClasspath());
}
- public final RMAddressingType getAddressingType()
+ public final boolean isClientAddressable()
{
- return RMAddressingType.ADDRESSABLE;
+ return true;
}
}
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAnonymousOneWayTestCase.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAnonymousOneWayTestCase.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/oneway/RMAnonymousOneWayTestCase.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -21,14 +21,8 @@
*/
package org.jboss.test.ws.jaxws.wsrm.oneway;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Properties;
-
import junit.framework.Test;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.wsf.test.JBossWSTestSetup;
/**
@@ -46,9 +40,9 @@
return new JBossWSTestSetup(RMAnonymousOneWayTestCase.class, getClasspath());
}
- public final RMAddressingType getAddressingType()
+ public final boolean isClientAddressable()
{
- return RMAddressingType.ANONYMOUS;
+ return false;
}
}
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAbstractReqResTest.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAbstractReqResTest.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAbstractReqResTest.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -39,7 +39,6 @@
import org.jboss.wsf.test.JBossWSTest;
import org.jboss.test.ws.jaxws.wsrm.ReqResServiceIface;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.ws.extensions.wsrm.api.RMProvider;
import org.jboss.ws.extensions.wsrm.api.RMSequence;
@@ -170,7 +169,7 @@
RMSequence sequence = null;
if (emulatorOn)
{
- sequence = ((RMProvider)proxyObject).createSequence(getAddressingType());
+ sequence = ((RMProvider)proxyObject).createSequence(isClientAddressable());
}
setAddrProps(proxy, "http://useless/action", serviceURL);
invokeWebServiceMethod(invocationType);
@@ -189,6 +188,6 @@
return props.getProperty("archives");
}
- protected abstract RMAddressingType getAddressingType();
+ protected abstract boolean isClientAddressable();
}
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAddressableReqResTestCase.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAddressableReqResTestCase.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAddressableReqResTestCase.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -23,7 +23,6 @@
import junit.framework.Test;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.wsf.test.JBossWSTestSetup;
/**
@@ -41,9 +40,9 @@
return new JBossWSTestSetup(RMAddressableReqResTestCase.class, getClasspath());
}
- public final RMAddressingType getAddressingType()
+ public final boolean isClientAddressable()
{
- return RMAddressingType.ADDRESSABLE;
+ return true;
}
}
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAnonymousReqResTestCase.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAnonymousReqResTestCase.java 2007-12-05
09:14:23 UTC (rev 5186)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/reqres/RMAnonymousReqResTestCase.java 2007-12-05
10:10:32 UTC (rev 5187)
@@ -23,7 +23,6 @@
import junit.framework.Test;
-import org.jboss.ws.extensions.wsrm.api.RMAddressingType;
import org.jboss.wsf.test.JBossWSTestSetup;
/**
@@ -41,9 +40,9 @@
return new JBossWSTestSetup(RMAnonymousReqResTestCase.class, getClasspath());
}
- public final RMAddressingType getAddressingType()
+ public final boolean isClientAddressable()
{
- return RMAddressingType.ANONYMOUS;
+ return false;
}
}