User: starksm
Date: 01/07/14 00:36:20
Added: src/main/org/jboss/test/perf/test TestSecurePerf.java
Log:
The security performance testsuite
Revision Changes Path
1.1 jbosstest/src/main/org/jboss/test/perf/test/TestSecurePerf.java
Index: TestSecurePerf.java
===================================================================
package org.jboss.test.perf.test;
import java.io.IOException;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import javax.security.auth.login.LoginContext;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.jboss.test.perf.interfaces.Entity;
import org.jboss.test.perf.interfaces.EntityPK;
import org.jboss.test.perf.interfaces.Entity2PK;
import org.jboss.test.perf.interfaces.EntityHome;
import org.jboss.test.perf.interfaces.Entity2Home;
import org.jboss.test.perf.interfaces.Probe;
import org.jboss.test.perf.interfaces.ProbeHome;
import org.jboss.test.perf.interfaces.Session;
import org.jboss.test.perf.interfaces.SessionHome;
import org.jboss.test.perf.interfaces.TxSession;
import org.jboss.test.perf.interfaces.TxSessionHome;
/** Test of EJB call invocation overhead in the presence of EJB security.
@author [EMAIL PROTECTED]
@version $Revision: 1.1 $
*/
public class TestSecurePerf extends junit.framework.TestCase
{
static int N = 1000;
static LoginContext lc = null;
public TestSecurePerf(String name)
{
super(name);
}
public void testClientSession() throws Exception
{
System.out.println("+++ testClientSession()");
InitialContext jndiContext = new InitialContext();
Object obj = jndiContext.lookup("secure/perf/ClientSession");
obj = PortableRemoteObject.narrow(obj, SessionHome.class);
SessionHome home = (SessionHome) obj;
System.out.println("Found SessionHome @ jndiName=ClientSession");
Session bean = home.create("secure/perf/Entity");
System.out.println("Created ClientSession");
try
{
bean.create(0, 100);
}
catch(javax.ejb.CreateException e)
{
}
long start = System.currentTimeMillis();
bean.read(0);
bean.read(0, 100);
bean.write(0);
bean.write(0, 100);
bean.remove(0, 100);
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println("Elapsed time = "+(elapsed / N));
}
public void testTimings() throws Exception
{
System.out.println("+++ testTimings()");
InitialContext jndiContext = new InitialContext();
Object obj = jndiContext.lookup("secure/perf/Probe");
obj = PortableRemoteObject.narrow(obj, ProbeHome.class);
ProbeHome home = (ProbeHome) obj;
System.out.println("Found ProbeHome @ jndiName=Probe");
Probe bean = home.create();
System.out.println("Created Probe");
warmup(bean);
noop(bean);
ping(bean);
echo(bean);
}
public void testTimingsCMT() throws Exception
{
System.out.println("+++ testTimingsCMT()");
InitialContext jndiContext = new InitialContext();
Object obj = jndiContext.lookup("secure/perf/ProbeCMT");
obj = PortableRemoteObject.narrow(obj, ProbeHome.class);
ProbeHome home = (ProbeHome) obj;
System.out.println("Found ProbeHome @ jndiName=ProbeCMT");
Probe bean = home.create();
System.out.println("Created ProbeCMT");
warmup(bean);
noop(bean);
ping(bean);
echo(bean);
}
public void testTxTimings() throws Exception
{
System.out.println("+++ testTxTimings()");
InitialContext jndiContext = new InitialContext();
Object obj = jndiContext.lookup("secure/perf/TxSession");
obj = PortableRemoteObject.narrow(obj, TxSessionHome.class);
TxSessionHome home = (TxSessionHome) obj;
System.out.println("Found TxSession @ jndiName=TxSession");
TxSession bean = home.create();
System.out.println("Created TxSession");
txRequired(bean);
txRequiresNew(bean);
txSupports(bean);
txNotSupported(bean);
requiredToSupports(bean);
requiredToMandatory(bean);
requiredToRequiresNew(bean);
}
public void testFindByPrimaryKey() throws Exception
{
System.out.println("+++ testFindByPrimaryKey()");
InitialContext jndiContext = new InitialContext();
Object obj = jndiContext.lookup("secure/perf/Entity");
obj = PortableRemoteObject.narrow(obj, EntityHome.class);
EntityHome home = (EntityHome) obj;
System.out.println("Found EntityHome @ jndiName=Entity");
EntityPK key = new EntityPK(1);
Entity bean = null;
System.out.println("Running with 1 instance...");
findByPrimaryKey(key, home);
System.out.println("Running with 100 instance...");
findByPrimaryKey(key, home);
System.out.println("Running with 1000 instance...");
findByPrimaryKey(key, home);
/*
System.out.println("Running with 10000 instance...");
findByPrimaryKey(key, home);
*/
}
public void testFindByPrimaryKey2() throws Exception
{
System.out.println("+++ testFindByPrimaryKey2()");
InitialContext jndiContext = new InitialContext();
Object obj = jndiContext.lookup("secure/perf/Entity2");
obj = PortableRemoteObject.narrow(obj, Entity2Home.class);
Entity2Home home = (Entity2Home) obj;
System.out.println("Found EntityHome @ jndiName=Entity");
Entity2PK key = new Entity2PK(1, "String1", new Double(1));
Entity bean = null;
System.out.println("Running with 1 instance...");
findByPrimaryKey(key, home);
System.out.println("Running with 100 instance...");
findByPrimaryKey(key, home);
System.out.println("Running with 1000 instance...");
findByPrimaryKey(key, home);
/*
System.out.println("Running with 10000 instance...");
findByPrimaryKey(key, home);
*/
}
private void warmup(Probe bean) throws Exception
{
bean.noop();
bean.ping("Ping");
bean.echo("Echo");
}
private void noop(Probe bean) throws Exception
{
System.out.println("Starting "+N+" noop() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
bean.noop();
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" noop() invocations = "+elapsed+" ms, "+(elapsed / N)+"
ms/noop");
}
private void ping(Probe bean) throws Exception
{
System.out.println("Starting "+N+" ping(PING) invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
bean.ping("PING");
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" ping() invocations = "+elapsed+" ms, "+(elapsed / N)+"
ms/noop");
}
private void echo(Probe bean) throws Exception
{
System.out.println("Starting "+N+" echo(ECHO) invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.echo("ECHO");
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" echo() invocations = "+elapsed+" ms, "+(elapsed / N)+"
ms/noop");
}
private void txRequired(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" txRequired() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.txRequired();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" txRequired() invocations = "+elapsed+" ms, "+(elapsed /
N)+" ms/txRequired");
}
private void txRequiresNew(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" txRequired() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.txRequiresNew();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" txRequiresNew() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/txRequiresNew");
}
private void txSupports(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" txSupports() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.txSupports();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" txSupports() invocations = "+elapsed+" ms, "+(elapsed /
N)+" ms/txSupports");
}
private void txNotSupported(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" txNotSupported() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.txNotSupported();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" txNotSupported() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/txNotSupported");
}
private void requiredToSupports(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" requiredToSupports() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.requiredToSupports();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" requiredToSupports() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/requiredToSupports");
}
private void requiredToMandatory(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" requiredToMandatory() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.requiredToMandatory();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" requiredToMandatory() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/requiredToMandatory");
}
private void requiredToRequiresNew(TxSession bean) throws Exception
{
System.out.println("Starting "+N+" requiredToRequiresNew() invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
String echo = bean.requiredToRequiresNew();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" requiredToRequiresNew() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/requiredToRequiresNew");
}
private void findByPrimaryKey(EntityPK key, EntityHome home) throws Exception
{
System.out.println("Starting "+N+" findByPrimaryKey(key="+key+") invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
Entity bean = home.findByPrimaryKey(key);
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" findByPrimaryKey() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/findByPrimaryKey");
}
private void findByPrimaryKey(Entity2PK key, Entity2Home home) throws Exception
{
System.out.println("Starting "+N+" findByPrimaryKey(key="+key+") invocations");
long start = System.currentTimeMillis();
for(int n = 0; n < N; n ++)
{
Entity bean = home.findByPrimaryKey(key);
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println(N+" findByPrimaryKey() invocations = "+elapsed+" ms,
"+(elapsed / N)+" ms/findByPrimaryKey");
}
public static Test suite()
{
TestSuite suite = new TestSuite();
suite.addTest(new TestSuite(TestSecurePerf.class));
// Create an initializer for the test suite
Setup wrapper = new Setup(suite, "secure-perf.jar", true);
return wrapper;
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development