You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2017/04/16 22:32:46 UTC
[55/72] [abbrv] flex-blazeds git commit: - Moved the integration
tests to the remoting module as they require remoting to run (not ideal
solution) - Enabled the integation tests again - Implemented a new
serialization option "allow-xml" which is disabled
- Moved the integration tests to the remoting module as they require remoting to run (not ideal solution)
- Enabled the integation tests again
- Implemented a new serialization option "allow-xml" which is disabled per default which completely disables deserialization of xml documents.
Project: http://git-wip-us.apache.org/repos/asf/flex-blazeds/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-blazeds/commit/a09196c2
Tree: http://git-wip-us.apache.org/repos/asf/flex-blazeds/tree/a09196c2
Diff: http://git-wip-us.apache.org/repos/asf/flex-blazeds/diff/a09196c2
Branch: refs/heads/master
Commit: a09196c2c4c425cbc9bd46bdf849cd9d0518dfc1
Parents: 94728dd
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Fri Feb 17 11:35:32 2017 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Fri Feb 17 11:35:32 2017 +0100
----------------------------------------------------------------------
core/pom.xml | 14 -
.../messaging/endpoints/AbstractEndpoint.java | 2 +
.../flex/messaging/io/SerializationContext.java | 2 +
.../java/flex/messaging/io/amf/Amf0Input.java | 14 +-
.../java/flex/messaging/io/amf/Amf3Input.java | 11 +-
.../messaging/io/amf/client/AMFConnection.java | 31 +-
.../test/java/amfclient/ClientCustomType.java | 45 --
.../io/amf/client/AMFConnectionIT.java | 778 -------------------
.../messaging/io/amf/client/AMFDataTypeIT.java | 479 ------------
.../java/flex/messaging/util/TestServer.java | 53 --
.../flex/messaging/util/TestServerWrapper.java | 78 --
.../resources/WEB-INF/flex/remoting-config.xml | 58 --
.../resources/WEB-INF/flex/services-config.xml | 49 --
pom.xml | 5 +-
remoting/pom.xml | 14 +
.../test/java/amfclient/ClientCustomType.java | 45 ++
.../io/amf/client/AMFConnectionIT.java | 778 +++++++++++++++++++
.../messaging/io/amf/client/AMFDataTypeIT.java | 534 +++++++++++++
.../java/flex/messaging/util/TestServer.java | 58 ++
.../flex/messaging/util/TestServerWrapper.java | 78 ++
.../resources/WEB-INF/flex/remoting-config.xml | 58 ++
.../resources/WEB-INF/flex/services-config.xml | 54 ++
22 files changed, 1669 insertions(+), 1569 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 5a642bf..54761cd 100755
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -60,20 +60,6 @@ limitations under the License.
</dependency>
<dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-server</artifactId>
- <version>9.1.0.v20131115</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-servlet</artifactId>
- <version>9.1.0.v20131115</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/main/java/flex/messaging/endpoints/AbstractEndpoint.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/flex/messaging/endpoints/AbstractEndpoint.java b/core/src/main/java/flex/messaging/endpoints/AbstractEndpoint.java
index c265ea9..6bc8c88 100644
--- a/core/src/main/java/flex/messaging/endpoints/AbstractEndpoint.java
+++ b/core/src/main/java/flex/messaging/endpoints/AbstractEndpoint.java
@@ -109,6 +109,7 @@ public abstract class AbstractEndpoint extends ManageableComponent
private static final String LEGACY_THROWABLE = "legacy-throwable";
private static final String LEGACY_BIG_NUMBERS = "legacy-big-numbers";
private static final String LEGACY_EXTERNALIZABLE = "legacy-externalizable";
+ private static final String ALLOW_XML = "allow-xml";
private static final String ALLOW_XML_DOCTYPE_DECLARATION = "allow-xml-doctype-declaration";
private static final String ALLOW_XML_EXTERNAL_ENTITY_EXPANSION = "allow-xml-external-entity-expansion";
@@ -279,6 +280,7 @@ public abstract class AbstractEndpoint extends ManageableComponent
serializationContext.legacyThrowable = serialization.getPropertyAsBoolean(LEGACY_THROWABLE, false);
serializationContext.legacyBigNumbers = serialization.getPropertyAsBoolean(LEGACY_BIG_NUMBERS, false);
serializationContext.legacyExternalizable = serialization.getPropertyAsBoolean(LEGACY_EXTERNALIZABLE, false);
+ serializationContext.allowXml = serialization.getPropertyAsBoolean(ALLOW_XML, false);
serializationContext.allowXmlDoctypeDeclaration = serialization.getPropertyAsBoolean(ALLOW_XML_DOCTYPE_DECLARATION, false);
serializationContext.allowXmlExternalEntityExpansion = serialization.getPropertyAsBoolean(ALLOW_XML_EXTERNAL_ENTITY_EXPANSION, false);
serializationContext.maxObjectNestLevel = (int)serialization.getPropertyAsLong(MAX_OBJECT_NEST_LEVEL, 512);
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/main/java/flex/messaging/io/SerializationContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/flex/messaging/io/SerializationContext.java b/core/src/main/java/flex/messaging/io/SerializationContext.java
index 9ffe17c..79bb2d7 100644
--- a/core/src/main/java/flex/messaging/io/SerializationContext.java
+++ b/core/src/main/java/flex/messaging/io/SerializationContext.java
@@ -80,6 +80,7 @@ public class SerializationContext implements Serializable, Cloneable
// Similarly like how many dimensional matrix that we support for serialization.
public int maxCollectionNestLevel = 15;
+ public boolean allowXml = false;
public boolean allowXmlDoctypeDeclaration = false;
public boolean allowXmlExternalEntityExpansion = false;
@@ -228,6 +229,7 @@ public class SerializationContext implements Serializable, Cloneable
context.deserializationValidator = deserializationValidator;
context.maxObjectNestLevel = maxObjectNestLevel;
context.maxCollectionNestLevel = maxCollectionNestLevel;
+ context.allowXml = allowXml;
context.allowXmlDoctypeDeclaration = allowXmlDoctypeDeclaration;
context.allowXmlExternalEntityExpansion = allowXmlExternalEntityExpansion;
context.preferVectors = preferVectors;
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/main/java/flex/messaging/io/amf/Amf0Input.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/flex/messaging/io/amf/Amf0Input.java b/core/src/main/java/flex/messaging/io/amf/Amf0Input.java
index fa66ae9..619f453 100644
--- a/core/src/main/java/flex/messaging/io/amf/Amf0Input.java
+++ b/core/src/main/java/flex/messaging/io/amf/Amf0Input.java
@@ -29,6 +29,8 @@ import flex.messaging.io.PropertyProxy;
import flex.messaging.io.SerializationContext;
import flex.messaging.io.SerializationException;
import flex.messaging.io.UnknownTypeException;
+import flex.messaging.log.Log;
+import flex.messaging.log.LogCategories;
import flex.messaging.util.ClassUtil;
/**
@@ -510,10 +512,18 @@ public class Amf0Input extends AbstractAmfInput implements AmfTypes
{
String xml = readLongUTF();
- if (isDebug)
+ if (isDebug) {
trace.write(xml);
+ }
- return stringToDocument(xml);
+ // Only deserialize xml if this is enabled.
+ if (context.allowXml) {
+ return stringToDocument(xml);
+ } else {
+ Log.getLogger(LogCategories.CONFIGURATION).warn(
+ "Xml deserialization is disabled, please enable by setting allowXml to 'true'");
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/main/java/flex/messaging/io/amf/Amf3Input.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/flex/messaging/io/amf/Amf3Input.java b/core/src/main/java/flex/messaging/io/amf/Amf3Input.java
index 0e62b88..33109f6 100644
--- a/core/src/main/java/flex/messaging/io/amf/Amf3Input.java
+++ b/core/src/main/java/flex/messaging/io/amf/Amf3Input.java
@@ -33,6 +33,8 @@ import flex.messaging.io.SerializationContext;
import flex.messaging.io.SerializationException;
import flex.messaging.io.UnknownTypeException;
import flex.messaging.io.amf.AmfTrace.VectorType;
+import flex.messaging.log.Log;
+import flex.messaging.log.LogCategories;
import flex.messaging.util.ClassUtil;
import flex.messaging.util.Trace;
@@ -982,7 +984,14 @@ public class Amf3Input extends AbstractAmfInput implements Amf3Types
trace.write(xml);
}
- return stringToDocument(xml);
+ // Only deserialize xml if this is enabled.
+ if (context.allowXml) {
+ return stringToDocument(xml);
+ } else {
+ Log.getLogger(LogCategories.CONFIGURATION).warn(
+ "Xml deserialization is disabled, please enable by setting allowXml to 'true'");
+ return null;
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/main/java/flex/messaging/io/amf/client/AMFConnection.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/flex/messaging/io/amf/client/AMFConnection.java b/core/src/main/java/flex/messaging/io/amf/client/AMFConnection.java
index eae4ca3..134a431 100644
--- a/core/src/main/java/flex/messaging/io/amf/client/AMFConnection.java
+++ b/core/src/main/java/flex/messaging/io/amf/client/AMFConnection.java
@@ -565,6 +565,27 @@ public class AMFConnection
*/
public void connect(String connectUrl) throws ClientStatusException
{
+ SerializationContext serializationContext = new SerializationContext();
+ serializationContext.createASObjectForMissingType = true;
+ // Make sure collections are written out as Arrays (vs. ArrayCollection),
+ // in case the server does not recognize ArrayCollections.
+ serializationContext.legacyCollection = true;
+ // When legacyMap is true, Java Maps are serialized as ECMA arrays
+ // instead of anonymous Object.
+ serializationContext.legacyMap = true;
+ connect(connectUrl, serializationContext);
+ }
+
+ /**
+ * Connects to the URL provided. Any previous connections are closed.
+ *
+ * @param connectUrl The url to connect to.
+ * @param serializationContext The serialization context used to configure the serialization.
+ *
+ * @throws ClientStatusException If there is a client side exception.
+ */
+ public void connect(String connectUrl, SerializationContext serializationContext) throws ClientStatusException
+ {
if (connected)
close();
@@ -586,15 +607,7 @@ public class AMFConnection
try
{
urlObject = new URL(encodedUrl != null? encodedUrl : url);
-
- serializationContext = new SerializationContext();
- serializationContext.createASObjectForMissingType = true;
- // Make sure collections are written out as Arrays (vs. ArrayCollection),
- // in case the server does not recognize ArrayCollections.
- serializationContext.legacyCollection = true;
- // When legacyMap is true, Java Maps are serialized as ECMA arrays
- // instead of anonymous Object.
- serializationContext.legacyMap = true;
+ this.serializationContext = serializationContext;
internalConnect();
}
catch (IOException e)
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/java/amfclient/ClientCustomType.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/amfclient/ClientCustomType.java b/core/src/test/java/amfclient/ClientCustomType.java
deleted file mode 100644
index 0e5bd46..0000000
--- a/core/src/test/java/amfclient/ClientCustomType.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package amfclient;
-
-/**
- * The client side object used by the AMFConnectionIT. There is a corresponding
- * server side object.
- */
-public class ClientCustomType
-{
- private int id;
-
- public ClientCustomType()
- {
- }
-
- public int getId()
- {
- return id;
- }
-
- public void setId(int id)
- {
- this.id = id;
- }
-
- public String toString()
- {
- return "ClientCustomType: " + id;
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/java/flex/messaging/io/amf/client/AMFConnectionIT.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/flex/messaging/io/amf/client/AMFConnectionIT.java b/core/src/test/java/flex/messaging/io/amf/client/AMFConnectionIT.java
deleted file mode 100644
index 134315c..0000000
--- a/core/src/test/java/flex/messaging/io/amf/client/AMFConnectionIT.java
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flex.messaging.io.amf.client;
-
-import java.net.HttpURLConnection;
-import java.net.InetSocketAddress;
-import java.net.Proxy;
-
-import flex.messaging.util.TestServerWrapper;
-import junit.extensions.TestSetup;
-import org.junit.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import amfclient.ClientCustomType;
-
-import flex.messaging.MessageException;
-import flex.messaging.messages.RemotingMessage;
-import flex.messaging.io.amf.ASObject;
-import flex.messaging.io.amf.AmfTrace;
-import flex.messaging.io.amf.client.AMFConnection.HttpResponseInfo;
-import flex.messaging.io.amf.client.exceptions.ClientStatusException;
-import flex.messaging.io.amf.client.exceptions.ServerStatusException;
-import flex.messaging.io.MessageIOConstants;
-
-
-/**
- * JUnit tests for AMFConnection. Note that most of the tests require a running
- * server with the specified destination.
- */
-public class AMFConnectionIT extends TestCase
-{
- private static final String DEFAULT_DESTINATION_ID = "amfConnectionTestService";
- private static final String DEFAULT_METHOD_NAME = "echoString";
- private static final String DEFAULT_METHOD_ARG = "echo me";
- private static final String DEFAULT_URL = "http://localhost:%s/qa-regress/messagebroker/amf";
- private static final String DEFAULT_AMF_OPERATION = getOperationCall(DEFAULT_METHOD_NAME);
- private static final String FOO_STRING = "foo";
- private static final String BAR_STRING = "bar";
- private static final String UNEXPECTED_EXCEPTION_STRING = "Unexpected exception: ";
-
- private static TestServerWrapper serverWrapper;
- private static int serverPort;
-
- /**
- * Given a remote method name, returns the AMF connection call needed using
- * the default destination id.
- */
- private static String getOperationCall(String method)
- {
- return DEFAULT_DESTINATION_ID + "." + method;
- }
-
- protected String getConnectionUrl() {
- return String.format(DEFAULT_URL, serverPort);
- }
-
-
- public AMFConnectionIT(String name)
- {
- super(name);
- }
-
- public static Test suite()
- {
- //TestSuite suite = new TestSuite(AMFConnectionIT.class);
- TestSuite suite = new TestSuite();
- suite.addTest(new AMFConnectionIT("testConnect"));
- suite.addTest(new AMFConnectionIT("testConnectAndClose"));
- suite.addTest(new AMFConnectionIT("testConnectBadUrl"));
- suite.addTest(new AMFConnectionIT("testCallMultipleTimes"));
- suite.addTest(new AMFConnectionIT("testCallNoConnect"));
- suite.addTest(new AMFConnectionIT("testCallNoConnectStringMsg"));
- suite.addTest(new AMFConnectionIT("testCallUnreachableConnectUrl"));
- suite.addTest(new AMFConnectionIT("testCallNonexistantMethod"));
- suite.addTest(new AMFConnectionIT("testHttpResponseInfoWithNonexistantMethod"));
- suite.addTest(new AMFConnectionIT("testCloseNoConnect"));
- suite.addTest(new AMFConnectionIT("testSetGetObjectEncoding"));
- suite.addTest(new AMFConnectionIT("testSetGetDefaultObjectEncoding"));
- suite.addTest(new AMFConnectionIT("testSetGetAMFHeaderProcessor"));
- suite.addTest(new AMFConnectionIT("testAddRemoveAMFHeaderTwoParam"));
- suite.addTest(new AMFConnectionIT("testAddRemoveAMFHeader"));
- suite.addTest(new AMFConnectionIT("testAddRemoveAllAMFHeaders"));
- suite.addTest(new AMFConnectionIT("testAddRemoveHTTPRequestHeader"));
- suite.addTest(new AMFConnectionIT("testAddRemoveAllHTTPRequestHeaders"));
- suite.addTest(new AMFConnectionIT("testRemoveAMFHeader"));
- suite.addTest(new AMFConnectionIT("testRemoveAllAMFHeaders"));
- suite.addTest(new AMFConnectionIT("testRemoveHTTPRequestHeader"));
- suite.addTest(new AMFConnectionIT("testRemoveAllHTTPRequestHeaders"));
- suite.addTest(new AMFConnectionIT("testInstantiateTypes"));
- suite.addTest(new AMFConnectionIT("testSetGetAMFTrace"));
- suite.addTest(new AMFConnectionIT("testHTTPProxy"));
-
- return new TestSetup(suite) {
- protected void setUp() throws Exception {
- serverWrapper = new TestServerWrapper();
- serverPort = serverWrapper.startServer("classpath:/WEB-INF/flex/services-config.xml");
- if(serverPort == -1) {
- Assert.fail("Couldn't start server process");
- }
- AMFConnection.registerAlias(
- "remoting.amfclient.ServerCustomType" /* server type */,
- "amfclient.ClientCustomType" /* client type */);
- }
- protected void tearDown() throws Exception {
- serverWrapper.stopServer();
- serverWrapper = null;
- }
- };
- }
-
- // Not a test, just an example to show how to use AMFConnection.
- public void example()
- {
- // Create the AMF connection.
- AMFConnection amfConnection = new AMFConnection();
-
- // Connect to the remote url.
- try
- {
- amfConnection.connect(getConnectionUrl());
- }
- catch (ClientStatusException cse)
- {
- return;
- }
-
- // Make a remoting call and retrieve the result.
- try
- {
- Object result = amfConnection.call(DEFAULT_AMF_OPERATION, DEFAULT_METHOD_ARG);
- Assert.assertEquals(DEFAULT_METHOD_ARG, result);
- }
- catch (ClientStatusException cse)
- {
- // Ignore.
- }
- catch (ServerStatusException sse)
- {
- // Ignore.
- }
-
- // Close the connection.
- amfConnection.close();
- }
-
- public void testConnect()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testConnectAndClose()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- Assert.assertEquals(null, amfConnection.getUrl());
- }
- }
-
- public void testConnectBadUrl()
- {
- String badUrl = "badUrl";
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(badUrl);
- fail("ClientStatusException expected");
- }
- catch (ClientStatusException cse)
- {
- Assert.assertEquals(ClientStatusException.AMF_CONNECT_FAILED_CODE, cse.getCode());
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testCallMultipleTimes()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- // Make a remoting call and retrieve the result.
- try
- {
- for (int i = 1; i < 4; i++)
- {
- String stringToEcho = DEFAULT_METHOD_ARG + i;
- Object result = amfConnection.call(DEFAULT_AMF_OPERATION, stringToEcho);
- Assert.assertEquals(stringToEcho, result);
- }
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testCallNoConnect()
- {
- AMFConnection amfConnection = new AMFConnection();
- // Make a remoting call without connect.
- try
- {
- Object result = amfConnection.call(DEFAULT_AMF_OPERATION, DEFAULT_METHOD_ARG);
- Assert.assertEquals(DEFAULT_METHOD_ARG, result);
- }
- catch (ClientStatusException cse)
- {
- Assert.assertEquals(ClientStatusException.AMF_CALL_FAILED_CODE, cse.getCode());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testCallNoConnectStringMsg()
- {
- AMFConnection amfConnection = new AMFConnection();
- // Make a remoting call without connect.
- try
- {
- Object result = amfConnection.call(DEFAULT_AMF_OPERATION, DEFAULT_METHOD_ARG);
- Assert.assertEquals(DEFAULT_METHOD_ARG, result);
- }
- catch (ClientStatusException cse)
- {
- Assert.assertEquals(ClientStatusException.AMF_CALL_FAILED_CODE, cse.getCode());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testCallUnreachableConnectUrl()
- {
- String unreachableUrl = "http://localhost:8400/team/messagebroker/unreachable";
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- // Connect does not actually connect but simply sets the url.
- amfConnection.connect(unreachableUrl);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- // Make a remoting call and retrieve the result.
- try
- {
- Object result = amfConnection.call(DEFAULT_AMF_OPERATION, DEFAULT_METHOD_ARG);
- Assert.assertEquals(DEFAULT_METHOD_ARG, result);
- }
- catch (ClientStatusException cse)
- {
- Assert.assertEquals(ClientStatusException.AMF_CALL_FAILED_CODE, cse.getCode());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testCallNonexistantMethod()
- {
- String method = "nonExistantMethod";
- final ClientCustomType methodArg = new ClientCustomType();
- methodArg.setId(1);
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- fail("Unexcepted result: " + result);
- }
- });
- }
- catch (ServerStatusException sse)
- {
- ASObject status = (ASObject)sse.getData();
- String code = (String)status.get("code");
- Assert.assertEquals(MessageException.CODE_SERVER_RESOURCE_UNAVAILABLE, code);
- HttpResponseInfo info = sse.getHttpResponseInfo();
- // AMF status messages are reported as HTTP_OK still.
- Assert.assertEquals(HttpURLConnection.HTTP_OK, info.getResponseCode());
- Assert.assertEquals("OK", info.getResponseMessage());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testHttpResponseInfoWithNonexistantMethod()
- {
- String method = "nonExistantMethod";
- final ClientCustomType methodArg = new ClientCustomType();
- methodArg.setId(1);
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- fail("Unexcepted result: " + result);
- }
- });
- }
- catch (ServerStatusException sse)
- {
- HttpResponseInfo info = sse.getHttpResponseInfo();
- // AMF status messages are reported as HTTP_OK still.
- Assert.assertEquals(HttpURLConnection.HTTP_OK, info.getResponseCode());
- Assert.assertEquals("OK", info.getResponseMessage());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
- public void testCloseNoConnect()
- {
- AMFConnection amfConnection = new AMFConnection();
- // Closing with no connection or call.
- try
- {
- amfConnection.close();
- Assert.assertEquals(null, amfConnection.getUrl());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testSetGetObjectEncoding()
- {
- int retAMF;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.setObjectEncoding(MessageIOConstants.AMF0);
- retAMF = amfConnection.getObjectEncoding();
- Assert.assertEquals(MessageIOConstants.AMF0, retAMF);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testSetGetDefaultObjectEncoding()
- {
- int retAMF;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- AMFConnection.setDefaultObjectEncoding(MessageIOConstants.AMF3);
- retAMF = AMFConnection.getDefaultObjectEncoding();
- Assert.assertEquals(MessageIOConstants.AMF3, retAMF);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- /**
- * There doesn't seem to be a single implementation of AMFHeaderProcessor therefore this test
- * is pretty useless.
- */
- public void testSetGetAMFHeaderProcessor()
- {
- AMFHeaderProcessor setAMF = null;
- AMFHeaderProcessor retAMF;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.setAMFHeaderProcessor(setAMF);
- retAMF = amfConnection.getAMFHeaderProcessor();
- Assert.assertEquals(setAMF, retAMF);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testAddRemoveAMFHeaderTwoParam()
- {
- boolean retAMF;
- Object val = 1;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.addAmfHeader(FOO_STRING,val);
- retAMF = amfConnection.removeAmfHeader(FOO_STRING);
- Assert.assertTrue(retAMF);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testAddRemoveAMFHeader()
- {
- boolean retAMF;
- Object val = 1;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.addAmfHeader(FOO_STRING,true,val);
- retAMF = amfConnection.removeAmfHeader(FOO_STRING);
- Assert.assertTrue(retAMF);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testAddRemoveAllAMFHeaders()
- {
- Object val1 = 1;
- Object val2 = 2;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.addAmfHeader(FOO_STRING,true,val1);
- amfConnection.addAmfHeader(BAR_STRING,true,val2);
- amfConnection.removeAllAmfHeaders();
- Assert.assertTrue(true);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testAddRemoveHTTPRequestHeader()
- {
- boolean retHttp;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.addHttpRequestHeader(FOO_STRING,BAR_STRING);
- retHttp = amfConnection.removeHttpRequestHeader(FOO_STRING);
- Assert.assertTrue(retHttp);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testAddRemoveAllHTTPRequestHeaders()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.addHttpRequestHeader(FOO_STRING,BAR_STRING);
- amfConnection.addHttpRequestHeader(BAR_STRING,FOO_STRING);
- amfConnection.removeAllHttpRequestHeaders();
- Assert.assertTrue(true);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testRemoveAMFHeader()
- {
- boolean retAMF;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- retAMF = amfConnection.removeAmfHeader(FOO_STRING);
- Assert.assertFalse(retAMF);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testRemoveAllAMFHeaders()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.removeAllAmfHeaders();
- Assert.assertTrue(true);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testRemoveHTTPRequestHeader()
- {
- boolean retHttp;
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- retHttp = amfConnection.removeHttpRequestHeader(FOO_STRING);
- Assert.assertFalse(retHttp);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testRemoveAllHTTPRequestHeaders()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- amfConnection.connect(getConnectionUrl());
- Assert.assertEquals(getConnectionUrl(), amfConnection.getUrl());
- amfConnection.removeAllHttpRequestHeaders();
- Assert.assertTrue(true);
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
-
- public void testInstantiateTypes()
- {
- String method = "getObject2";
- try
- {
- AMFConnection amfConnection = new AMFConnection();
- amfConnection.connect(getConnectionUrl());
-
- // First, make sure we get the strong type.
- Object result = amfConnection.call(getOperationCall(method));
- Assert.assertTrue(result instanceof ClientCustomType);
-
- // Now, call again with instantiateTypes=false and expect an Object.
- amfConnection.setInstantiateTypes(false);
- result = amfConnection.call(getOperationCall(method));
- Assert.assertTrue(!(result instanceof ClientCustomType));
- amfConnection.close();
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testSetGetAMFTrace()
- {
- AMFConnection amfConnection = new AMFConnection();
- try
- {
- AmfTrace trace = new AmfTrace();
- amfConnection.connect(getConnectionUrl());
- amfConnection.setAmfTrace(trace);
-
- String stringToEcho = DEFAULT_METHOD_ARG + 1;
- Object result = amfConnection.call(DEFAULT_AMF_OPERATION, stringToEcho);
- Assert.assertEquals(stringToEcho, result);
-
- if (trace.toString().length() > 0) Assert.assertTrue(true);
- else fail("AmfTrace did not get anything: " + trace.toString() + " " + trace.toString().length());
-
- amfConnection.close();
-
- }
- catch (ClientStatusException cse)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + cse);
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- finally
- {
- amfConnection.close();
- }
- }
-
- public void testHTTPProxy()
- {
- AMFConnection amfconn = new AMFConnection();
- try
- {
- amfconn.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("localhost", 8888)));
- amfconn.connect("http://localhost:8400/team/messagebroker/amf");
- RemotingMessage call = new RemotingMessage();
- call.setHeader("DSId", "" + System.identityHashCode(amfconn));
- call.setClientId("ro");
- call.setDestination("remoting_AMF");
- call.setMessageId("12345");
- call.setOperation("echo");
- call.setBody("hello");
- amfconn.call("foo", call);
- fail("ClientStatusException expected");
- }
- catch (ClientStatusException cse)
- {
- Assert.assertEquals(ClientStatusException.AMF_CALL_FAILED_CODE, cse.getCode());
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- finally
- {
- amfconn.close();
- }
- }
-
- // A simple interface to handle AMF call results.
- private interface CallResultHandler
- {
- void onResult(Object result);
- }
-
- // Helper method used by JUnit tests to pass in an operation and method argument
- // When the AMF call returns, CallResultHandler.onResult is called to Assert things.
- private void internalTestCall(String operation, Object methodArg, CallResultHandler resultHandler) throws ClientStatusException, ServerStatusException
- {
- AMFConnection amfConnection = new AMFConnection();
- // Connect.
- amfConnection.connect(getConnectionUrl());
- // Make a remoting call and retrieve the result.
- Object result;
- if (methodArg == null)
- result = amfConnection.call(operation);
- else
- result = amfConnection.call(operation, methodArg);
- resultHandler.onResult(result);
- amfConnection.close();
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/java/flex/messaging/io/amf/client/AMFDataTypeIT.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/flex/messaging/io/amf/client/AMFDataTypeIT.java b/core/src/test/java/flex/messaging/io/amf/client/AMFDataTypeIT.java
deleted file mode 100644
index e7706b0..0000000
--- a/core/src/test/java/flex/messaging/io/amf/client/AMFDataTypeIT.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.io.amf.client;
-
-import java.util.Date;
-import java.util.List;
-
-import flex.messaging.util.TestServerWrapper;
-import junit.extensions.TestSetup;
-import org.w3c.dom.Document;
-
-import org.junit.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import amfclient.ClientCustomType;
-
-import flex.messaging.io.amf.client.exceptions.ClientStatusException;
-import flex.messaging.io.amf.client.exceptions.ServerStatusException;
-import flex.messaging.util.XMLUtil;
-
-/**
- * JUnit tests for AMFConnection. Note that most of the tests require a running
- * server with the specified destination.
- */
-public class AMFDataTypeIT extends TestCase
-{
- private static final String DEFAULT_DESTINATION_ID = "amfConnectionTestService";
- private static final String DEFAULT_METHOD_NAME = "echoString";
- private static final String DEFAULT_METHOD_ARG = "echo me";
- private static final String DEFAULT_URL = "http://localhost:%s/qa-regress/messagebroker/amf";
- private static final String DEFAULT_AMF_OPERATION = getOperationCall(DEFAULT_METHOD_NAME);
- private static final String UNEXPECTED_EXCEPTION_STRING = "Unexpected exception: ";
-
- private static TestServerWrapper serverWrapper;
- private static int serverPort;
-
- /**
- * Given a remote method name, returns the AMF connection call needed using
- * the default destination id.
- */
- private static String getOperationCall(String method)
- {
- return DEFAULT_DESTINATION_ID + "." + method;
- }
-
- protected String getConnectionUrl() {
- return String.format(DEFAULT_URL, serverPort);
- }
-
-
- public AMFDataTypeIT(String name)
- {
- super(name);
- }
-
- public static Test suite()
- {
- //TestSuite suite = new TestSuite(AMFDataTypeIT.class);
- TestSuite suite = new TestSuite();
- suite.addTest(new AMFDataTypeIT("testCallStringArgStringReturn"));
- suite.addTest(new AMFDataTypeIT("testCallIntArgIntReturn"));
- suite.addTest(new AMFDataTypeIT("testCallBooleanArgBooleanReturn"));
- suite.addTest(new AMFDataTypeIT("testCallObjectArgObjectReturn"));
- suite.addTest(new AMFDataTypeIT("testCallObjectArgCustomReturn"));
- suite.addTest(new AMFDataTypeIT("testCallCustomArgObjectReturn"));
- suite.addTest(new AMFDataTypeIT("testCallCustomArgCustomReturn"));
- suite.addTest(new AMFDataTypeIT("testCallNoArgObjectReturn"));
- suite.addTest(new AMFDataTypeIT("testCallNoArgCustomReturn"));
- suite.addTest(new AMFDataTypeIT("testCallNoArgObjectArrayReturn"));
- suite.addTest(new AMFDataTypeIT("testCallDateArgDateReturn"));
- suite.addTest(new AMFDataTypeIT("testCallShortArgShortReturn"));
- suite.addTest(new AMFDataTypeIT("testCallDoubleArgDoubleReturn"));
- suite.addTest(new AMFDataTypeIT("testCallIntArrayArgIntArrayReturn"));
- suite.addTest(new AMFDataTypeIT("testCallObjectArrayArgObjectArrayReturn"));
- suite.addTest(new AMFDataTypeIT("testXMLDocument"));
-
- return new TestSetup(suite) {
- protected void setUp() throws Exception {
- serverWrapper = new TestServerWrapper();
- serverPort = serverWrapper.startServer("classpath:/WEB-INF/flex/services-config.xml");
- if(serverPort == -1) {
- Assert.fail("Couldn't start server process");
- }
- AMFConnection.registerAlias(
- "remoting.amfclient.ServerCustomType" /* server type */,
- "amfclient.ClientCustomType" /* client type */);
- }
- protected void tearDown() throws Exception {
- serverWrapper.stopServer();
- serverWrapper = null;
- }
- };
- }
-
- public void testCallStringArgStringReturn()
- {
- try
- {
- internalTestCall(DEFAULT_AMF_OPERATION, DEFAULT_METHOD_ARG, new CallResultHandler(){
- public void onResult(Object result)
- {
- Assert.assertEquals(DEFAULT_METHOD_ARG, result);
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallIntArgIntReturn()
- {
- String method = "echoInt";
- final int methodArg = 1;
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- Assert.assertEquals(methodArg, ((Double)result).intValue());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallBooleanArgBooleanReturn()
- {
- try
- {
- String method = "echoBoolean";
- final boolean methodArg = true;
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- Assert.assertEquals(methodArg, result);
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallDateArgDateReturn()
- {
- String method = "echoDate";
- final Date methodArg = new Date(999991);
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- Assert.assertEquals(methodArg, result);
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallShortArgShortReturn()
- {
- String method = "echoShort";
- final short methodArg = 32000;
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- Assert.assertEquals(methodArg, ((Double)result).shortValue());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallDoubleArgDoubleReturn()
- {
- String method = "echoDouble";
- final double methodArg = -95.25;
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- Assert.assertEquals(methodArg, result);
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallObjectArgObjectReturn()
- {
- String method = "echoObject1";
- ClientCustomType temp = new ClientCustomType();
- temp.setId(1);
- final Object methodArg = temp;
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- ClientCustomType temp2 = (ClientCustomType)result;
- Assert.assertEquals(1, temp2.getId());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallObjectArgCustomReturn()
- {
- String method = "echoObject2";
- ClientCustomType temp = new ClientCustomType();
- temp.setId(1);
- final Object methodArg = temp;
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- ClientCustomType temp2 = (ClientCustomType)result;
- Assert.assertEquals(1, temp2.getId());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallCustomArgObjectReturn()
- {
- String method = "echoObject3";
- final ClientCustomType methodArg = new ClientCustomType();
- methodArg.setId(1);
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- ClientCustomType temp2 = (ClientCustomType)result;
- Assert.assertEquals(1, temp2.getId());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallCustomArgCustomReturn()
- {
- String method = "echoObject4";
- final ClientCustomType methodArg = new ClientCustomType();
- methodArg.setId(1);
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- ClientCustomType temp2 = (ClientCustomType)result;
- Assert.assertEquals(1, temp2.getId());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallNoArgObjectReturn()
- {
- String method = "getObject1";
- try
- {
- internalTestCall(getOperationCall(method), null, new CallResultHandler(){
- public void onResult(Object result)
- {
- ClientCustomType temp2 = (ClientCustomType)result;
- Assert.assertEquals(1, temp2.getId());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallNoArgCustomReturn()
- {
- String method = "getObject2";
- try
- {
- internalTestCall(getOperationCall(method), null, new CallResultHandler(){
- public void onResult(Object result)
- {
- ClientCustomType temp2 = (ClientCustomType)result;
- Assert.assertEquals(1, temp2.getId());
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallNoArgObjectArrayReturn()
- {
- String method = "getObjectArray1";
- try
- {
- internalTestCall(getOperationCall(method), null, new CallResultHandler(){
- public void onResult(Object result)
- {
- List temp = (List)result;
- for (int i = 0; i < temp.size(); i++)
- {
- ClientCustomType temp2 = (ClientCustomType)temp.get(i);
- Assert.assertEquals(i, temp2.getId());
- }
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallIntArrayArgIntArrayReturn()
- {
- String method = "echoObject5";
- final int[] methodArg = new int[] {0,1,2,3};
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- List temp = (List)result;
- for (int i = 0; i < temp.size(); i++)
- {
- Assert.assertEquals(i, ((Integer)temp.get(i)).intValue());
- }
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- public void testCallObjectArrayArgObjectArrayReturn()
- {
- String method = "echoObject1";
- Object[] temp = new Object[3];
- for (int i = 0; i < temp.length; i++)
- {
- ClientCustomType cct = new ClientCustomType();
- cct.setId(i);
- temp[i] = cct;
- }
- final Object[] methodArg = temp;
- try
- {
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- List temp = (List)result;
- for (int i = 0; i < temp.size(); i++)
- {
- ClientCustomType temp2 = (ClientCustomType)temp.get(i);
- Assert.assertEquals(i, temp2.getId());
- }
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
-
- public void testXMLDocument()
- {
- try
- {
- String method = "echoObject1";
- final StringBuffer xml = new StringBuffer(512);
- xml.append("<test> <item id=\"1\"> <sweet/> </item></test>");
-
- Document xmlDoc = XMLUtil.stringToDocument(xml.toString());
- final Object methodArg = xmlDoc;
- internalTestCall(getOperationCall(method), methodArg, new CallResultHandler(){
- public void onResult(Object result)
- {
- try
- {
- Document retXmlDoc = (Document)result;
- String retXML = XMLUtil.documentToString(retXmlDoc);
- Assert.assertEquals(xml.toString(), retXML);
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
- });
- }
- catch (Exception e)
- {
- fail(UNEXPECTED_EXCEPTION_STRING + e);
- }
- }
-
- // A simple interface to handle AMF call results.
- private interface CallResultHandler
- {
- void onResult(Object result);
- }
-
- // Helper method used by JUnit tests to pass in an operation and method argument
- // When the AMF call returns, CallResultHandler.onResult is called to Assert things.
- private void internalTestCall(String operation, Object methodArg, CallResultHandler resultHandler) throws ClientStatusException, ServerStatusException
- {
- AMFConnection amfConnection = new AMFConnection();
- // Connect.
- amfConnection.connect(getConnectionUrl());
- // Make a remoting call and retrieve the result.
- Object result;
- if (methodArg == null)
- result = amfConnection.call(operation);
- else
- result = amfConnection.call(operation, methodArg);
- resultHandler.onResult(result);
- amfConnection.close();
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/java/flex/messaging/util/TestServer.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/flex/messaging/util/TestServer.java b/core/src/test/java/flex/messaging/util/TestServer.java
deleted file mode 100644
index 197db97..0000000
--- a/core/src/test/java/flex/messaging/util/TestServer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import flex.messaging.MessageBrokerServlet;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-
-/**
- * Simple little wrapper starting up a BlazeDS server in a separate VM useful for unit testing the
- * features that need different singletons in client and server.
- */
-public class TestServer {
-
- public static void main(String args[]) throws Exception {
- if(args.length != 1) {
- throw new Exception("Need exactly two argument containing th path to the configuration " +
- "followed by the port number the server should use");
- }
- final String configPath = args[0];
-
- // Setup a minimal servlet context for hosting our message broker servlet.
- final Server server = new Server(0);
- final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
- context.setContextPath("/qa-regress");
- final MessageBrokerServlet messageBrokerServlet = new MessageBrokerServlet();
- final ServletHolder servlet = new ServletHolder(messageBrokerServlet);
- servlet.setInitParameter("services.configuration.file", configPath);
- context.addServlet(servlet, "/messagebroker/amf/*");
- server.setHandler(context);
- server.start();
-
- int port = ((ServerConnector) server.getConnectors()[0]).getLocalPort();
- System.out.println("Port:" + port);
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/java/flex/messaging/util/TestServerWrapper.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/flex/messaging/util/TestServerWrapper.java b/core/src/test/java/flex/messaging/util/TestServerWrapper.java
deleted file mode 100644
index cbde0e4..0000000
--- a/core/src/test/java/flex/messaging/util/TestServerWrapper.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-/**
- * Simple little wrapper starting up a BlazeDS server in a separate VM useful for unit testing the
- * features that need different singletons in client and server.
- */
-public class TestServerWrapper {
-
- private Process serverProcess;
-
- public int startServer(String configPath) {
- // We can only start one server per instance of TestServer.
- if(serverProcess != null) {
- return -1;
- }
-
- final String separator = System.getProperty("file.separator");
- final String classpath = System.getProperty("java.class.path");
- final String path = System.getProperty("java.home") + separator + "bin" + separator + "java";
- System.out.print("Starting test-server");
- final ProcessBuilder processBuilder = new ProcessBuilder(path,
- /*"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005",*/
- "-cp", /*"\"" +*/ classpath /*+ "\""*/,
- TestServer.class.getCanonicalName(), /*"\"" +*/ configPath /*+ "\""*/);
- processBuilder.redirectErrorStream(true);
- try {
- serverProcess = processBuilder.start();
-
- BufferedReader in = new BufferedReader(new InputStreamReader(serverProcess.getInputStream()));
-
- String line;
- while((line = in.readLine()) != null) {
- if(line.startsWith("Port:")) {
- // Read the process output and extract the port
- // number the server started on.
- int port = Integer.parseInt(line.substring(5));
- System.out.println("STARTED on port " + port);
- return port;
- }
- }
-
- return -1;
- } catch (IOException e) {
- System.out.println("ERROR: " + e.toString());
- return -1;
- }
- }
-
- public void stopServer() {
- if(serverProcess != null) {
- System.out.print("Stopping test-server ... ");
- // Send a signal to the server process to make itself shut down.
- serverProcess.destroy();
- System.out.println("STOPPED");
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/resources/WEB-INF/flex/remoting-config.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/WEB-INF/flex/remoting-config.xml b/core/src/test/resources/WEB-INF/flex/remoting-config.xml
deleted file mode 100644
index 73e28c1..0000000
--- a/core/src/test/resources/WEB-INF/flex/remoting-config.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<service id="remoting-service" class="flex.messaging.services.RemotingService">
-
- <!--
- The set of adapters available for this service. A service uses an
- adapter to handle the implementation specifc details of a
- destination.
- -->
- <adapters>
- <!--
- id: A unique id for this adapter-definition. Destinations use this
- id to select which adapter should be used to process requests.
- class: The implementation class for the adapter. A single Remoting
- Service adapter ships with Flex 2:
- flex.messaging.services.remoting.adapters.JavaAdapter
- default: An optional boolean attribute identifying the adapter to
- use when none is specified for a destination.
- -->
- <adapter-definition id="java-object"
- class="flex.messaging.services.remoting.adapters.JavaAdapter"
- default="true"/>
- </adapters>
-
- <!--
- The set of default channels to use to transport messages to
- remoting-service destinations.
- -->
- <default-channels>
- <channel ref="amf"/>
- </default-channels>
-
- <!-- This destination is used by AMFConnectionIT JUnit test -->
- <destination id="amfConnectionTestService" channels="amf">
- <properties>
- <source>remoting.amfclient.AMFConnectionTestService</source>
- </properties>
- <adapter ref="java-object"/>
- </destination>
-
-</service>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/core/src/test/resources/WEB-INF/flex/services-config.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/WEB-INF/flex/services-config.xml b/core/src/test/resources/WEB-INF/flex/services-config.xml
deleted file mode 100644
index 30277dd..0000000
--- a/core/src/test/resources/WEB-INF/flex/services-config.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<services-config>
-
- <services>
- <service-include file-path="remoting-config.xml" />
- </services>
-
- <channels>
- <channel-definition id="amf" class="mx.messaging.channels.AMFChannel">
- <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
- </channel-definition>
- </channels>
-
- <logging>
- <target class="flex.messaging.log.ConsoleTarget" level="Error">
- <properties>
- <prefix>[BlazeDS] </prefix>
- <includeDate>false</includeDate>
- <includeTime>false</includeTime>
- <includeLevel>false</includeLevel>
- <includeCategory>false</includeCategory>
- </properties>
- <filters>
- <pattern>Endpoint.*</pattern>
- <pattern>Service.*</pattern>
- <pattern>Configuration</pattern>
- </filters>
- </target>
- </logging>
-
-</services-config>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0ccc7e1..823f6d9 100755
--- a/pom.xml
+++ b/pom.xml
@@ -181,8 +181,7 @@
</configuration>
</plugin>
- <!-- FIXME: Disabled the integrationtests for now -->
- <!--plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
@@ -193,7 +192,7 @@
</goals>
</execution>
</executions>
- </plugin-->
+ </plugin>
<!-- Turned off till the JavaDoc tags are all correctly set -->
<plugin>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/remoting/pom.xml
----------------------------------------------------------------------
diff --git a/remoting/pom.xml b/remoting/pom.xml
index 245fd8c..9d48643 100755
--- a/remoting/pom.xml
+++ b/remoting/pom.xml
@@ -37,6 +37,20 @@ limitations under the License.
</dependency>
<dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>9.1.0.v20131115</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>9.1.0.v20131115</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/a09196c2/remoting/src/test/java/amfclient/ClientCustomType.java
----------------------------------------------------------------------
diff --git a/remoting/src/test/java/amfclient/ClientCustomType.java b/remoting/src/test/java/amfclient/ClientCustomType.java
new file mode 100644
index 0000000..0e5bd46
--- /dev/null
+++ b/remoting/src/test/java/amfclient/ClientCustomType.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package amfclient;
+
+/**
+ * The client side object used by the AMFConnectionIT. There is a corresponding
+ * server side object.
+ */
+public class ClientCustomType
+{
+ private int id;
+
+ public ClientCustomType()
+ {
+ }
+
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId(int id)
+ {
+ this.id = id;
+ }
+
+ public String toString()
+ {
+ return "ClientCustomType: " + id;
+ }
+}