Skip to content

Commit

Permalink
[JBWS-3947] Use POJO endpoints instead of EJB3 ones by default to avo…
Browse files Browse the repository at this point in the history
…id Weld CDI overhead
  • Loading branch information
asoldano committed Oct 8, 2015
1 parent 90526dd commit 7756d40
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 2 deletions.
@@ -0,0 +1,81 @@
package org.jboss.ws.bench;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.jboss.test.ws.jaxws.benchmark.test.datatypes.EndpointDoc;
import org.jboss.wsf.test.JBossWSTestHelper;

public class JAXWSBenchmarkPOJO extends AbstractJavaSamplerClient
{
private final String endpointURL = "http://" + JBossWSTestHelper.getServerHost() + ":" + JBossWSTestHelper.getServerPort() + "/jaxws-benchmark-datatypes-pojo/EndpointPOJODocImpl";
private final String targetNS = "http://datatypes.test.benchmark.jaxws.ws.test.jboss.org/";
private EndpointDoc ep;

@Override
public void setupTest(JavaSamplerContext context) {
super.setupTest(context);
try {
this.ep = prepare();
} catch (Exception e) {
throw new RuntimeException(e);
}
}

@Override
public void teardownTest(JavaSamplerContext context) {
super.teardownTest(context);
this.ep = null;
}

@Override
public SampleResult runTest(JavaSamplerContext ctx)
{
final SampleResult sampleResult = new SampleResult();
sampleResult.sampleStart();

try {
performIteration(ep);
sampleResult.setSuccessful(true);
} catch (Exception e) {
sampleResult.setSuccessful(false);
sampleResult.setResponseMessage("Exception: " + e);
StringWriter stringWriter = new StringWriter();
e.printStackTrace(new PrintWriter(stringWriter));
sampleResult.setResponseData(stringWriter.toString(), "UTF-8");
sampleResult.setDataType(SampleResult.TEXT);
} finally {
sampleResult.sampleEnd();
}

return sampleResult;
}

public EndpointDoc prepare() throws Exception
{
URL wsdlURL = new URL(endpointURL + "?wsdl");
QName serviceName = new QName(targetNS, "EndpointDocService");

Service service = Service.create(wsdlURL, serviceName);
return service.getPort(EndpointDoc.class);
}

public void performIteration(Object port) throws Exception
{
for (int i = 0; i < 100; i++) {
double par = Math.random();
double ret = ((EndpointDoc)port).increaseDouble(par);
if (!((par + 1) == (ret)))
{
throw new Exception("Unexpected result: " + ret);
}
}
}
}
2 changes: 1 addition & 1 deletion modules/testsuite/perf-tests/src/test/jmeter/a.jmx
Expand Up @@ -28,7 +28,7 @@
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="classname">org.jboss.ws.bench.JAXWSBenchmark</stringProp>
<stringProp name="classname">org.jboss.ws.bench.JAXWSBenchmarkPOJO</stringProp>
</JavaSampler>
<hashTree/>
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="false">
Expand Down
2 changes: 1 addition & 1 deletion modules/testsuite/perf-tests/src/test/jmeter/jbossws.jmx
Expand Up @@ -28,7 +28,7 @@
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="classname">org.jboss.ws.bench.JAXWSBenchmark</stringProp>
<stringProp name="classname">org.jboss.ws.bench.JAXWSBenchmarkPOJO</stringProp>
</JavaSampler>
<hashTree/>
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="false">
Expand Down

0 comments on commit 7756d40

Please sign in to comment.