### Eclipse Workspace Patch 1.0
#P org.eclipse.jst.j2ee.tests.performance
Index: plugin.xml
===================================================================
RCS file: /cvsroot/webtools/jst/components/j2ee/tests/org.eclipse.jst.j2ee.tests.performance/plugin.xml,v
retrieving revision 1.5
diff -u -r1.5 plugin.xml
--- plugin.xml 1 Jun 2006 19:27:00 -0000 1.5
+++ plugin.xml 15 Nov 2007 22:35:32 -0000
@@ -19,6 +19,8 @@
+
+
Index: common/org/eclipse/jst/j2ee/tests/performance/HeaderParserPerformanceTest.java
===================================================================
RCS file: common/org/eclipse/jst/j2ee/tests/performance/HeaderParserPerformanceTest.java
diff -N common/org/eclipse/jst/j2ee/tests/performance/HeaderParserPerformanceTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ common/org/eclipse/jst/j2ee/tests/performance/HeaderParserPerformanceTest.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,132 @@
+package org.eclipse.jst.j2ee.tests.performance;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.jee.util.internal.JavaEEQuickPeek;
+import org.eclipse.wst.common.tests.ProjectUtility;
+import org.eclipse.wtp.j2ee.headless.tests.plugin.HeadlessTestsPlugin;
+
+public class HeaderParserPerformanceTest {
+ private static final String DATA_DIR = "TestData" + java.io.File.separatorChar + "headerParserTestData" + java.io.File.separatorChar;
+
+ public void testSpeed() throws Exception {
+ List data = getXMLData();
+ long[] times = new long[data.size()];
+ InputStream in = null;
+
+ for (int i = 0; i < data.size(); i++) {
+ try {
+ TestData testData = (TestData) data.get(i);
+ in = new FileInputStream(new File(getDataPath(testData.fileName)));
+ long start = System.currentTimeMillis();
+ JavaEEQuickPeek peek = new JavaEEQuickPeek(in);
+ long end = System.currentTimeMillis();
+ times[i] = end - start;
+ if (times[i] == 0) {
+ times[i] = 10; // stub in a minimum time
+ }
+ Assert.assertEquals(testData.type, peek.getType());
+ Assert.assertEquals(testData.modVersion, peek.getVersion());
+ Assert.assertEquals(testData.eeVersion, peek.getJavaEEVersion());
+ } finally {
+ if (in != null) {
+ in.close();
+ }
+ }
+ }
+ // all times should be the same
+ Arrays.sort(times);
+ if (times[0] * 2 < times[times.length - 1]) {
+ Assert.fail();
+ }
+ }
+
+ private List getXMLData() {
+ List data = new ArrayList();
+ data.add(new TestData("application-client12.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.J2EE_1_2_ID, J2EEVersionConstants.J2EE_1_2_ID));
+ data.add(new TestData("application-client13.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.J2EE_1_3_ID, J2EEVersionConstants.J2EE_1_3_ID));
+ data.add(new TestData("application-client14.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.J2EE_1_4_ID, J2EEVersionConstants.J2EE_1_4_ID));
+ data.add(new TestData("application-client5.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.JEE_5_0_ID, J2EEVersionConstants.JEE_5_0_ID));
+
+ data.add(new TestData("application12.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.J2EE_1_2_ID, J2EEVersionConstants.J2EE_1_2_ID));
+ data.add(new TestData("application13.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.J2EE_1_3_ID, J2EEVersionConstants.J2EE_1_3_ID));
+ data.add(new TestData("application14.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.J2EE_1_4_ID, J2EEVersionConstants.J2EE_1_4_ID));
+ data.add(new TestData("application5.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.JEE_5_0_ID, J2EEVersionConstants.JEE_5_0_ID));
+
+ data.add(new TestData("ejb-jar11.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.EJB_1_1_ID, J2EEVersionConstants.J2EE_1_2_ID));
+ data.add(new TestData("ejb-jar20.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.EJB_2_0_ID, J2EEVersionConstants.J2EE_1_3_ID));
+ data.add(new TestData("ejb-jar21.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.EJB_2_1_ID, J2EEVersionConstants.J2EE_1_4_ID));
+ data.add(new TestData("ejb-jar30.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.EJB_3_0_ID, J2EEVersionConstants.JEE_5_0_ID));
+
+ data.add(new TestData("ra10.xml", J2EEVersionConstants.CONNECTOR_TYPE, J2EEVersionConstants.JCA_1_0_ID, J2EEVersionConstants.J2EE_1_3_ID));
+ data.add(new TestData("ra15.xml", J2EEVersionConstants.CONNECTOR_TYPE, J2EEVersionConstants.JCA_1_5_ID, J2EEVersionConstants.J2EE_1_4_ID));
+
+ data.add(new TestData("web22.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.WEB_2_2_ID, J2EEVersionConstants.J2EE_1_2_ID));
+ data.add(new TestData("web23.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.WEB_2_3_ID, J2EEVersionConstants.J2EE_1_3_ID));
+ data.add(new TestData("web24.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.WEB_2_4_ID, J2EEVersionConstants.J2EE_1_4_ID));
+ data.add(new TestData("web25.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.WEB_2_5_ID, J2EEVersionConstants.JEE_5_0_ID));
+
+ // test some bogus dds as well
+ data.add(new TestData("notxml.xml", J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("notjavaee.xml", J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+
+ data.add(new TestData("application-client0.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("application-client00.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("application-client000.xml", J2EEVersionConstants.APPLICATION_CLIENT_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+
+ data.add(new TestData("application0.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("application00.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("application000.xml", J2EEVersionConstants.APPLICATION_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+
+ data.add(new TestData("ejb-jar0.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("ejb-jar00.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("ejb-jar000.xml", J2EEVersionConstants.EJB_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+
+ data.add(new TestData("ra0.xml", J2EEVersionConstants.CONNECTOR_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("ra00.xml", J2EEVersionConstants.CONNECTOR_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("ra000.xml", J2EEVersionConstants.CONNECTOR_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+
+ data.add(new TestData("web0.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("web00.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ data.add(new TestData("web000.xml", J2EEVersionConstants.WEB_TYPE, J2EEVersionConstants.UNKNOWN, J2EEVersionConstants.UNKNOWN));
+ return data;
+ }
+
+ protected String getDataPath(String shortName) throws Exception {
+ HeadlessTestsPlugin plugin = HeadlessTestsPlugin.getDefault();
+ String pluginRelativeFileName = DATA_DIR + java.io.File.separatorChar + shortName;
+ return ProjectUtility.getFullFileName(plugin, pluginRelativeFileName);
+ }
+
+ private class TestData {
+ String fileName;
+
+ int type;
+
+ int modVersion;
+
+ int eeVersion;
+
+ Class modelObjectInterface;
+
+ public TestData(String fileName, int type, int modVersion, int eeVersion) {
+ this.fileName = fileName;
+ this.type = type;
+ this.modVersion = modVersion;
+ this.eeVersion = eeVersion;
+ }
+
+ public TestData(String fileName, int type, int modVersion, int eeVersion, Class modelTypeClass) {
+ this(fileName, type, modVersion, eeVersion);
+ this.modelObjectInterface = modelTypeClass;
+ }
+ }
+}