You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Russell Butek <bu...@us.ibm.com> on 2001/11/15 15:02:54 UTC
build failure (was: cvs commit: xml-axis/java/test/wsdd TestStructure.java
testStructure1.wsdd PackageTests.java)
Glen, I'm guessing that what you checked in yesterday causes my build
break. In test-reports/TEST-test.wsdd.PackageTests.xml I see a few errors
like:
<testcase name="testChainAnonymousHandler" time="0.601">
<error message="Problem deploying!" type
="java.lang.NullPointerException">java.lang.NullPointerException: Problem
deploying!
at org.apache.axis.AxisEngine.init(AxisEngine.java:154)
at org.apache.axis.AxisEngine.<init>(AxisEngine.java:138)
at org.apache.axis.server.AxisServer.<init>(AxisServer.java:93)
at test.wsdd.TestStructure.setUp(TestStructure.java:37)
at junit.framework.TestCase.runBare(TestCase.java:138)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:231)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:409)
</error>
</testcase>
After a little digging, it appears that test.wsdd.TestStructure.setUp is
calling "new FileProvider(is);" where "is" is null. Apparently it cannot
find the file: testStructure1.wsdd.
Russell Butek
butek@us.ibm.com
---------------------- Forwarded by Russell Butek/Austin/IBM on 11/15/2001
07:57 AM ---------------------------
gdaniels@apache.org on 11/14/2001 03:22:54 PM
Please respond to axis-dev@xml.apache.org
To: xml-axis-cvs@apache.org
cc:
Subject: cvs commit: xml-axis/java/test/wsdd TestStructure.java
testStructure1.wsdd PackageTests.java
gdaniels 01/11/14 13:22:54
Modified: java/src/org/apache/axis/configuration FileProvider.java
java/test/wsdd PackageTests.java
Added: java/test/wsdd TestStructure.java testStructure1.wsdd
Log:
Add basic WSDD structural and referential integrity tests (submitted by
Carl Woolf (cwoolf@macromedia.com)).
This required a tweak to FileProvider to allow it to accept an
InputStream,
which allows us to use the test class itself to obtain data files (in
this case,
a WSDD document) in the same directory as the class.
Revision Changes Path
1.11 +22 -9
xml-axis/java/src/org/apache/axis/configuration/FileProvider.java
Index: FileProvider.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/configuration/FileProvider.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- FileProvider.java 2001/11/09 22:48:45 1.10
+++ FileProvider.java 2001/11/14 21:22:54 1.11
@@ -80,6 +80,8 @@
String basepath = ".";
String filename;
+
+ InputStream myInputStream = null;
/**
* Constructor which accesses a file in the current directory of the
@@ -99,23 +101,34 @@
this.basepath = basepath;
this.filename = filename;
}
+
+ /**
+ * Constructor which takes an input stream directly
+ */
+ public FileProvider(InputStream is)
+ {
+ myInputStream = is;
+ }
public void configureEngine(AxisEngine engine) throws Exception
{
- InputStream is;
-
- try {
- is = new FileInputStream(basepath + sep + filename);
- } catch (Exception e) {
- is = engine.getClass().getResourceAsStream(filename);
+ if (myInputStream == null) {
+ try {
+ myInputStream = new FileInputStream(basepath + sep +
filename);
+ } catch (Exception e) {
+ myInputStream = engine.
+ getClass
().getResourceAsStream(filename);
+ }
}
-
- if (is == null) {
+
+ if (myInputStream == null) {
throw new Exception("No engine configuration file -
aborting!");
}
- WSDDDocument doc = new WSDDDocument(XMLUtils.newDocument(is));
+ WSDDDocument doc = new
WSDDDocument(XMLUtils.newDocument(myInputStream));
engine.deployWSDD(doc);
+
+ myInputStream = null;
}
public void writeEngineConfig(AxisEngine engine) throws Exception
1.5 +1 -0 xml-axis/java/test/wsdd/PackageTests.java
Index: PackageTests.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/wsdd/PackageTests.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PackageTests.java 2001/11/14 19:59:45 1.4
+++ PackageTests.java 2001/11/14 21:22:54 1.5
@@ -20,6 +20,7 @@
suite.addTestSuite(TestScopeOption.class);
suite.addTestSuite(TestOptions.class);
suite.addTestSuite(TestUndeployment.class);
+ suite.addTestSuite(TestStructure.class);
return suite;
}
1.1 xml-axis/java/test/wsdd/TestStructure.java
Index: TestStructure.java
===================================================================
package test.wsdd;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.axis.Chain;
import org.apache.axis.Handler;
import org.apache.axis.TargetedChain;
import org.apache.axis.configuration.FileProvider;
import org.apache.axis.handlers.soap.SOAPService;
import org.apache.axis.server.AxisServer;
import java.io.InputStream;
/**
* Positive test of basic structure of a WSDD document
*/
public class TestStructure extends TestCase
{
static final String INPUT_FILE = "testStructure1.wsdd";
AxisServer server;
public TestStructure (String name)
{
super(name);
}
public static Test suite()
{
return new TestSuite(TestStructure.class);
}
protected void setUp()
{
InputStream is = getClass().getResourceAsStream(INPUT_FILE);
FileProvider provider = new FileProvider(is);
server = new AxisServer(provider);
}
public static void main(String[] args) throws Exception
{
TestStructure tester = new TestStructure("TestStructure");
tester.run();
}
public void testChainAnonymousHandler() throws Exception
{
Chain chainOne = (Chain) server.getHandler("chain.one");
assertNotNull("chain.one should be non-null!", chainOne);
Handler chainOne_handlers[] = chainOne.getHandlers();
assertNotNull("chain.one/handlers should be non-null!",
chainOne_handlers);
assertTrue("chain.one should have exactly 1 handler!",
(1 == chainOne_handlers.length));
Handler chainOne_handler = chainOne_handlers[0];
assertNotNull("chain.one's handler should be non-null!",
chainOne_handler);
assertTrue("chain.one's handler should be a JWSHandler!",
(chainOne_handler instanceof
org.apache.axis.handlers.JWSHandler));
}
public void testServiceBackReference() throws Exception
{
SOAPService serviceOne = (SOAPService)server.getService
("service.one");
assertNotNull("service.one should be non-null!", serviceOne);
Chain serviceOne_responseFlow
= (Chain)serviceOne.getResponseHandler();
assertNotNull("service.two/responseFlow should be non-null!",
serviceOne_responseFlow);
Handler serviceOne_responseFlow_handlers[] =
serviceOne_responseFlow.getHandlers();
assertNotNull("service.one/responseFlow/handlers should be
non-null!",
serviceOne_responseFlow_handlers);
assertTrue("service.one should have exactly 1 handler!",
(1 == serviceOne_responseFlow_handlers.length));
Handler serviceOne_responseFlow_handler =
serviceOne_responseFlow_handlers[0];
assertNotNull("service.one's handler should be non-null!",
serviceOne_responseFlow_handler);
assertTrue("service.one's handler should be a RPCProvider!",
(serviceOne_responseFlow_handler instanceof
org.apache.axis.providers.java.RPCProvider));
Handler serviceOne_handler_byName = server.getHandler
("BackReference");
assertTrue("service.one's 'BackReference' should be same as
directly accessed 'BR'!",
(serviceOne_responseFlow_handler ==
serviceOne_handler_byName));
/*******************************************************
<service name="service.two" provider="java:MSG">
<requestFlow>
<handler type="BackReference"/>
</requestFlow>
</service>
******************************************************/
SOAPService serviceTwo = null;
serviceTwo = (SOAPService) server.getService("service.two");
assertTrue("service.two should be non-null!",
(null != serviceTwo));
Chain serviceTwo_requestFlow = (Chain)
serviceTwo.getRequestHandler();
assertTrue("service.two/requestFlow should be non-null!",
(null != serviceTwo_requestFlow));
Handler serviceTwo_requestFlow_handlers[] =
serviceTwo_requestFlow.getHandlers();
assertTrue("service.two/requestFlow/handlers should be
non-null!",
(null != serviceTwo_requestFlow_handlers));
assertTrue("service.two should have exactly 1 handler!",
(1 == serviceTwo_requestFlow_handlers.length));
Handler serviceTwo_requestFlow_handler =
serviceTwo_requestFlow_handlers[0];
assertTrue("service.two's handler should be non-null!",
(null != serviceTwo_requestFlow_handler));
assertTrue("service.two's handler should be a RPCProvider!",
(serviceTwo_requestFlow_handler instanceof
org.apache.axis.providers.java.RPCProvider));
assertTrue("service.two's 'BackReference' should be same as
service.one's!",
(serviceTwo_requestFlow_handler ==
serviceOne_responseFlow_handler));
}
public void testTransportForwardReference()
throws Exception
{
TargetedChain transportOne =
(TargetedChain)server.getTransport
("transport.one");
assertNotNull("transport.one should be non-null!", transportOne);
Chain transportOne_responseFlow =
(Chain)transportOne.getResponseHandler();
assertNotNull("transport.two/responseFlow should be non-null!",
transportOne_responseFlow);
Handler transportOne_responseFlow_handlers[] =
transportOne_responseFlow.getHandlers();
assertNotNull("transport.one/responseFlow/handlers should be
non-null!",
transportOne_responseFlow_handlers);
assertTrue("transport.one should have exactly 1 handler!",
(1 == transportOne_responseFlow_handlers.length));
Handler transportOne_responseFlow_handler =
transportOne_responseFlow_handlers[0];
assertNotNull("transport.one's handler should be non-null!",
transportOne_responseFlow_handler);
assertTrue("transport.one's handler should be a URLMapper!",
(transportOne_responseFlow_handler instanceof
org.apache.axis.handlers.http.URLMapper));
Handler transportOne_handler_byName =
server.getHandler("ForwardReference");
assertTrue("transport.one's 'ForwardReference' should be same as
directly accessed 'BR'!",
(transportOne_responseFlow_handler ==
transportOne_handler_byName));
TargetedChain transportTwo =
(TargetedChain)server.getTransport("transport.two");
assertNotNull("transport.two should be non-null!", transportTwo);
Chain transportTwo_requestFlow = (Chain)
transportTwo.getRequestHandler();
assertNotNull("transport.two/requestFlow should be non-null!",
transportTwo_requestFlow);
Handler transportTwo_requestFlow_handlers[] =
transportTwo_requestFlow.getHandlers();
assertNotNull("transport.two/requestFlow/handlers should be
non-null!",
transportTwo_requestFlow_handlers);
assertTrue("transport.two should have exactly 1 handler!",
(1 == transportTwo_requestFlow_handlers.length));
Handler transportTwo_requestFlow_handler =
transportTwo_requestFlow_handlers[0];
assertNotNull("transport.two's handler should be non-null!",
transportTwo_requestFlow_handler);
assertTrue("transport.two's handler should be a URLMapper!",
(transportTwo_requestFlow_handler instanceof
org.apache.axis.handlers.http.URLMapper));
assertTrue("transport.two's 'ForwardReference' should be same as
transport.one's!",
(transportTwo_requestFlow_handler ==
transportOne_responseFlow_handler));
}
}
1.1 xml-axis/java/test/wsdd/testStructure1.wsdd
Index: testStructure1.wsdd
===================================================================
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler
="http://xml.apache.org/axis/wsdd/providers/handler">
<documentation>
This is a test WSDD document for verifying simple structural
correctness
and referential integrity.
</documentation>
<chain name="chain.one">
<handler type="java:org.apache.axis.handlers.JWSHandler"/>
</chain>
<service name="service.one" provider="java:MSG">
<responseFlow>
<handler type="java:org.apache.axis.providers.java.RPCProvider"
name="BackReference"/>
</responseFlow>
</service>
<service name="service.two" provider="java:MSG">
<requestFlow>
<handler type="BackReference"/>
</requestFlow>
</service>
<transport name="transport.one">
<responseFlow>
<handler type="ForwardReference"/>
</responseFlow>
</transport>
<transport name="transport.two">
<requestFlow>
<handler type="java:org.apache.axis.handlers.http.URLMapper"
name="ForwardReference"/>
</requestFlow>
</transport>
</deployment>