[jbosscache-commits] JBoss Cache SVN: r5048 - in benchmarks: trunk and 8 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Jan 8 08:24:23 EST 2008


Author: bela at jboss.com
Date: 2008-01-08 08:24:22 -0500 (Tue, 08 Jan 2008)
New Revision: 5048

Added:
   benchmarks/branches/
   benchmarks/tags/
   benchmarks/trunk/
   benchmarks/trunk/CacheTests.iml
   benchmarks/trunk/CacheTests.ipr
   benchmarks/trunk/CacheTests.iws
   benchmarks/trunk/Tests.iml
   benchmarks/trunk/ch.sh
   benchmarks/trunk/config.xml
   benchmarks/trunk/jbc.sh
   benchmarks/trunk/lib/
   benchmarks/trunk/lib/activation.jar
   benchmarks/trunk/lib/ant.jar
   benchmarks/trunk/lib/c3p0.jar
   benchmarks/trunk/lib/commons-codec-1.3.jar
   benchmarks/trunk/lib/commons-logging.jar
   benchmarks/trunk/lib/derby.jar
   benchmarks/trunk/lib/dtdparser121.jar
   benchmarks/trunk/lib/javassist.jar
   benchmarks/trunk/lib/jboss-aop.jar
   benchmarks/trunk/lib/jboss-common-core.jar
   benchmarks/trunk/lib/jboss-common-logging-spi.jar
   benchmarks/trunk/lib/jboss-container.jar
   benchmarks/trunk/lib/jboss-javaee.jar
   benchmarks/trunk/lib/jboss-logging-spi.jar
   benchmarks/trunk/lib/jbosscache-core.jar
   benchmarks/trunk/lib/jbosscache-pojo.jar
   benchmarks/trunk/lib/jbossxb.jar
   benchmarks/trunk/lib/jcip-annotations.jar
   benchmarks/trunk/lib/jdbm.jar
   benchmarks/trunk/lib/jgroups.jar
   benchmarks/trunk/lib/junit.jar
   benchmarks/trunk/lib/log4j.jar
   benchmarks/trunk/lib/pojocache-aop.xml
   benchmarks/trunk/lib/qdox.jar
   benchmarks/trunk/lib/testng.jar
   benchmarks/trunk/lib/trove.jar
   benchmarks/trunk/lib/xercesImpl.jar
   benchmarks/trunk/obsolete/
   benchmarks/trunk/obsolete/SessionTestCoherence.old
   benchmarks/trunk/obsolete/SessionTestJBC.java.old
   benchmarks/trunk/obsolete/SessionTestPC.java.old
   benchmarks/trunk/obsolete/SessionTestTC.java.old
   benchmarks/trunk/pc.sh
   benchmarks/trunk/pojocache-aop.xml
   benchmarks/trunk/run.sh
   benchmarks/trunk/src/
   benchmarks/trunk/src/perf/
   benchmarks/trunk/src/perf/Session.java
   benchmarks/trunk/src/perf/SessionFactory.java
   benchmarks/trunk/src/perf/SessionTest.java
   benchmarks/trunk/src/perf/coherence/
   benchmarks/trunk/src/perf/coherence/SessionCoherence.java
   benchmarks/trunk/src/perf/coherence/SessionFactoryCoherence.java
   benchmarks/trunk/src/perf/jbosscache/
   benchmarks/trunk/src/perf/jbosscache/SessionFactoryJBC.java
   benchmarks/trunk/src/perf/jbosscache/SessionJBC.java
   benchmarks/trunk/src/perf/pojocache/
   benchmarks/trunk/src/perf/pojocache/SessionFactoryPC.java
   benchmarks/trunk/src/perf/pojocache/SessionPC.java
   benchmarks/trunk/src/perf/terracotta/
   benchmarks/trunk/src/perf/terracotta/SessionFactoryTC.java
   benchmarks/trunk/src/perf/terracotta/SessionTC.java
   benchmarks/trunk/tc.sh
   benchmarks/trunk/tc5-config.xml
   benchmarks/trunk/tmp.sh
Log:
initial import

Added: benchmarks/trunk/CacheTests.iml
===================================================================
--- benchmarks/trunk/CacheTests.iml	                        (rev 0)
+++ benchmarks/trunk/CacheTests.iml	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/classes" />
+    <exclude-output />
+    <output-test url="file://$MODULE_DIR$/classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/obsolete" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/junit.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/httpclient.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-common-core.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/c3p0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-common-logging-spi.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-container.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbosscache-pojo.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/testng.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-logging.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/javassist.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/derby.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-logging-spi.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/coherence.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/tangosol.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/qdox.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/dtdparser121.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/trove.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-codec-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/tc.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-aop.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jcip-annotations.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jdbm.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/activation.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/je.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/log4j.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/xercesImpl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbossxb.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbosscache-core.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jgroups.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/ant.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-javaee.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntryProperties />
+  </component>
+</module>
+

Added: benchmarks/trunk/CacheTests.ipr
===================================================================
--- benchmarks/trunk/CacheTests.ipr	                        (rev 0)
+++ benchmarks/trunk/CacheTests.ipr	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,710 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project relativePaths="false" version="4">
+  <component name="AntConfiguration">
+    <defaultAnt bundledAnt="true" />
+  </component>
+  <component name="BuildJarProjectSettings">
+    <option name="BUILD_JARS_ON_MAKE" value="false" />
+  </component>
+  <component name="ChangeBrowserSettings">
+    <option name="MAIN_SPLITTER_PROPORTION" value="0.3" />
+    <option name="MESSAGES_SPLITTER_PROPORTION" value="0.8" />
+    <option name="USE_DATE_BEFORE_FILTER" value="false" />
+    <option name="USE_DATE_AFTER_FILTER" value="false" />
+    <option name="USE_CHANGE_BEFORE_FILTER" value="false" />
+    <option name="USE_CHANGE_AFTER_FILTER" value="false" />
+    <option name="DATE_BEFORE" value="" />
+    <option name="DATE_AFTER" value="" />
+    <option name="CHANGE_BEFORE" value="" />
+    <option name="CHANGE_AFTER" value="" />
+    <option name="USE_USER_FILTER" value="false" />
+    <option name="USER" value="" />
+  </component>
+  <component name="CodeStyleProjectProfileManger">
+    <option name="PROJECT_PROFILE" />
+    <option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
+  </component>
+  <component name="CodeStyleSettingsManager">
+    <option name="PER_PROJECT_SETTINGS" />
+    <option name="USE_PER_PROJECT_SETTINGS" value="false" />
+  </component>
+  <component name="CompilerConfiguration">
+    <option name="DEFAULT_COMPILER" value="Javac" />
+    <option name="DEPLOY_AFTER_MAKE" value="0" />
+    <resourceExtensions>
+      <entry name=".+\.(properties|xml|html|dtd|tld)" />
+      <entry name=".+\.(gif|png|jpeg|jpg)" />
+    </resourceExtensions>
+    <wildcardResourcePatterns>
+      <entry name="?*.properties" />
+      <entry name="?*.xml" />
+      <entry name="?*.gif" />
+      <entry name="?*.png" />
+      <entry name="?*.jpeg" />
+      <entry name="?*.jpg" />
+      <entry name="?*.html" />
+      <entry name="?*.dtd" />
+      <entry name="?*.tld" />
+    </wildcardResourcePatterns>
+  </component>
+  <component name="Cvs2Configuration">
+    <option name="PRUNE_EMPTY_DIRECTORIES" value="true" />
+    <option name="MERGING_MODE" value="0" />
+    <option name="MERGE_WITH_BRANCH1_NAME" value="HEAD" />
+    <option name="MERGE_WITH_BRANCH2_NAME" value="HEAD" />
+    <option name="RESET_STICKY" value="false" />
+    <option name="CREATE_NEW_DIRECTORIES" value="true" />
+    <option name="DEFAULT_TEXT_FILE_SUBSTITUTION" value="kv" />
+    <option name="PROCESS_UNKNOWN_FILES" value="false" />
+    <option name="PROCESS_DELETED_FILES" value="false" />
+    <option name="PROCESS_IGNORED_FILES" value="false" />
+    <option name="RESERVED_EDIT" value="false" />
+    <option name="CHECKOUT_DATE_OR_REVISION_SETTINGS">
+      <value>
+        <option name="BRANCH" value="" />
+        <option name="DATE" value="" />
+        <option name="USE_BRANCH" value="false" />
+        <option name="USE_DATE" value="false" />
+      </value>
+    </option>
+    <option name="UPDATE_DATE_OR_REVISION_SETTINGS">
+      <value>
+        <option name="BRANCH" value="" />
+        <option name="DATE" value="" />
+        <option name="USE_BRANCH" value="false" />
+        <option name="USE_DATE" value="false" />
+      </value>
+    </option>
+    <option name="SHOW_CHANGES_REVISION_SETTINGS">
+      <value>
+        <option name="BRANCH" value="" />
+        <option name="DATE" value="" />
+        <option name="USE_BRANCH" value="false" />
+        <option name="USE_DATE" value="false" />
+      </value>
+    </option>
+    <option name="SHOW_OUTPUT" value="false" />
+    <option name="ADD_WATCH_INDEX" value="0" />
+    <option name="REMOVE_WATCH_INDEX" value="0" />
+    <option name="UPDATE_KEYWORD_SUBSTITUTION" />
+    <option name="MAKE_NEW_FILES_READONLY" value="false" />
+    <option name="SHOW_CORRUPTED_PROJECT_FILES" value="0" />
+    <option name="TAG_AFTER_PROJECT_COMMIT" value="false" />
+    <option name="OVERRIDE_EXISTING_TAG_FOR_PROJECT" value="true" />
+    <option name="TAG_AFTER_PROJECT_COMMIT_NAME" value="" />
+    <option name="CLEAN_COPY" value="false" />
+  </component>
+  <component name="DependenciesAnalyzeManager">
+    <option name="myForwardDirection" value="false" />
+  </component>
+  <component name="DependencyValidationManager">
+    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+  </component>
+  <component name="EclipseCompilerSettings">
+    <option name="DEBUGGING_INFO" value="true" />
+    <option name="GENERATE_NO_WARNINGS" value="true" />
+    <option name="DEPRECATION" value="false" />
+    <option name="ADDITIONAL_OPTIONS_STRING" value="" />
+    <option name="MAXIMUM_HEAP_SIZE" value="128" />
+  </component>
+  <component name="EclipseEmbeddedCompilerSettings">
+    <option name="DEBUGGING_INFO" value="true" />
+    <option name="GENERATE_NO_WARNINGS" value="true" />
+    <option name="DEPRECATION" value="false" />
+    <option name="ADDITIONAL_OPTIONS_STRING" value="" />
+    <option name="MAXIMUM_HEAP_SIZE" value="128" />
+  </component>
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </component>
+  <component name="ErrorOptionsConfigurable.UI">
+    <option name="proportions">
+      <SplitterProportionsDataImpl />
+    </option>
+  </component>
+  <component name="ExportToHTMLSettings">
+    <option name="PRINT_LINE_NUMBERS" value="false" />
+    <option name="OPEN_IN_BROWSER" value="false" />
+    <option name="OUTPUT_DIRECTORY" />
+  </component>
+  <component name="IdProvider" IDEtalkID="07662B52393BA0D44F4C3ECDDE1A49E1" />
+  <component name="InspectionProjectProfileManager">
+    <option name="PROJECT_PROFILE" value="Project Default" />
+    <option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
+    <scopes />
+    <profiles>
+      <profile version="1.0" is_locked="false">
+        <option name="myName" value="Project Default" />
+        <option name="myLocal" value="false" />
+        <inspection_tool class="FinalPrivateMethod" level="WARNING" enabled="false" />
+        <inspection_tool class="FinalStaticMethod" level="WARNING" enabled="false" />
+        <inspection_tool class="InfiniteLoopStatement" level="WARNING" enabled="false" />
+        <inspection_tool class="ErrorRethrown" level="WARNING" enabled="true" />
+        <inspection_tool class="ThreadDeathRethrown" level="WARNING" enabled="true" />
+        <inspection_tool class="NonFinalFieldOfException" level="WARNING" enabled="true" />
+        <inspection_tool class="UnusedImport" level="WARNING" enabled="true" />
+        <inspection_tool class="TestCaseWithConstructor" level="WARNING" enabled="true" />
+        <inspection_tool class="MisorderedAssertEqualsParameters" level="WARNING" enabled="true" />
+        <inspection_tool class="SetupCallsSuperSetup" level="WARNING" enabled="true" />
+        <inspection_tool class="MisspelledSetUp" level="WARNING" enabled="true" />
+        <inspection_tool class="SetupIsPublicVoidNoArg" level="WARNING" enabled="true" />
+        <inspection_tool class="SimplifiableJUnitAssertion" level="WARNING" enabled="true" />
+        <inspection_tool class="StaticSuite" level="WARNING" enabled="true" />
+        <inspection_tool class="TeardownCallsSuperTeardown" level="WARNING" enabled="true" />
+        <inspection_tool class="MisspelledTearDown" level="WARNING" enabled="true" />
+        <inspection_tool class="TeardownIsPublicVoidNoArg" level="WARNING" enabled="true" />
+        <inspection_tool class="TestMethodIsPublicVoidNoArg" level="WARNING" enabled="true" />
+        <inspection_tool class="UnconstructableTestCase" level="WARNING" enabled="true" />
+        <inspection_tool class="TrivialStringConcatenation" level="WARNING" enabled="true" />
+        <inspection_tool class="InnerClassMayBeStatic" level="WARNING" enabled="true" />
+        <inspection_tool class="SubstringZero" level="WARNING" enabled="true" />
+        <inspection_tool class="StringEqualsEmptyString" level="WARNING" enabled="true" />
+        <inspection_tool class="StringBufferToStringInConcatenation" level="WARNING" enabled="true" />
+        <inspection_tool class="AssignmentUsedAsCondition" level="WARNING" enabled="true" />
+        <inspection_tool class="CastConflictsWithInstanceof" level="WARNING" enabled="true" />
+        <inspection_tool class="CastToIncompatibleInterface" level="WARNING" enabled="true" />
+        <inspection_tool class="CollectionAddedToSelf" level="WARNING" enabled="true" />
+        <inspection_tool class="MisspelledCompareTo" level="WARNING" enabled="true" />
+        <inspection_tool class="CovariantCompareTo" level="WARNING" enabled="true" />
+        <inspection_tool class="CovariantEquals" level="WARNING" enabled="true" />
+        <inspection_tool class="EmptyInitializer" level="WARNING" enabled="true" />
+        <inspection_tool class="MisspelledEquals" level="WARNING" enabled="true" />
+        <inspection_tool class="EqualsBetweenInconvertibleTypes" level="WARNING" enabled="true" />
+        <inspection_tool class="ArrayEquals" level="WARNING" enabled="true" />
+        <inspection_tool class="ForLoopThatDoesntUseLoopVariable" level="WARNING" enabled="true" />
+        <inspection_tool class="MisspelledHashcode" level="WARNING" enabled="true" />
+        <inspection_tool class="InstanceofIncompatibleInterface" level="WARNING" enabled="true" />
+        <inspection_tool class="IteratorHasNextCallsIteratorNext" level="WARNING" enabled="true" />
+        <inspection_tool class="IteratorNextDoesNotThrowNoSuchElementException" level="WARNING" enabled="true" />
+        <inspection_tool class="NonShortCircuitBoolean" level="WARNING" enabled="true" />
+        <inspection_tool class="ResultOfObjectAllocationIgnored" level="WARNING" enabled="true" />
+        <inspection_tool class="StaticFieldReferenceOnSubclass" level="WARNING" enabled="true" />
+        <inspection_tool class="StaticCallOnSubclass" level="WARNING" enabled="true" />
+        <inspection_tool class="SubtractionInCompareTo" level="WARNING" enabled="true" />
+        <inspection_tool class="SuspiciousToArrayCall" level="WARNING" enabled="true" />
+        <inspection_tool class="SuspiciousSystemArraycopy" level="WARNING" enabled="true" />
+        <inspection_tool class="TextLabelInSwitchStatement" level="WARNING" enabled="true" />
+        <inspection_tool class="MisspelledToString" level="WARNING" enabled="true" />
+        <inspection_tool class="ExternalizableWithSerializationMethods" level="WARNING" enabled="true" />
+        <inspection_tool class="ReadObjectInitialization" level="WARNING" enabled="true" />
+        <inspection_tool class="NonSerializableWithSerializationMethods" level="WARNING" enabled="true" />
+        <inspection_tool class="NonSerializableWithSerialVersionUIDField" level="WARNING" enabled="true" />
+        <inspection_tool class="ReadObjectAndWriteObjectPrivate" level="WARNING" enabled="true" />
+        <inspection_tool class="ReadResolveAndWriteReplaceProtected" level="WARNING" enabled="true" />
+        <inspection_tool class="SerializableWithUnconstructableAncestor" level="WARNING" enabled="true" />
+        <inspection_tool class="SerializableHasSerialVersionUIDField" level="WARNING" enabled="true">
+          <option name="superClassString" value="java.awt.Component" />
+        </inspection_tool>
+        <inspection_tool class="SerializableInnerClassHasSerialVersionUIDField" level="WARNING" enabled="true">
+          <option name="superClassString" value="java.awt.Component" />
+        </inspection_tool>
+        <inspection_tool class="SerializableInnerClassWithNonSerializableOuterClass" level="WARNING" enabled="true">
+          <option name="superClassString" value="java.awt.Component" />
+        </inspection_tool>
+        <inspection_tool class="SerialPersistentFieldsWithWrongSignature" level="WARNING" enabled="true" />
+        <inspection_tool class="SerialVersionUIDNotStaticFinal" level="WARNING" enabled="true" />
+        <inspection_tool class="TransientFieldInNonSerializableClass" level="WARNING" enabled="true" />
+        <inspection_tool class="AwaitNotInLoop" level="WARNING" enabled="true" />
+        <inspection_tool class="ConditionSignal" level="WARNING" enabled="true" />
+        <inspection_tool class="SystemRunFinalizersOnExit" level="WARNING" enabled="true" />
+        <inspection_tool class="ThreadRun" level="WARNING" enabled="true" />
+        <inspection_tool class="ThreadStartInConstruction" level="WARNING" enabled="true" />
+        <inspection_tool class="ThreadStopSuspendResume" level="WARNING" enabled="true" />
+        <inspection_tool class="ThreadYield" level="WARNING" enabled="true" />
+        <inspection_tool class="SleepWhileHoldingLock" level="WARNING" enabled="true" />
+        <inspection_tool class="DoubleCheckedLocking" level="WARNING" enabled="true">
+          <option name="ignoreOnVolatileVariables" value="false" />
+        </inspection_tool>
+        <inspection_tool class="EmptySynchronizedStatement" level="WARNING" enabled="true" />
+        <inspection_tool class="ThreadWithDefaultRunMethod" level="WARNING" enabled="true" />
+        <inspection_tool class="NonSynchronizedMethodOverridesSynchronizedMethod" level="WARNING" enabled="true" />
+        <inspection_tool class="NotifyCalledOnCondition" level="WARNING" enabled="true" />
+        <inspection_tool class="NotifyNotInSynchronizedContext" level="WARNING" enabled="true" />
+        <inspection_tool class="SynchronizeOnLock" level="WARNING" enabled="true" />
+        <inspection_tool class="UnconditionalWait" level="WARNING" enabled="true" />
+        <inspection_tool class="VolatileArrayField" level="WARNING" enabled="true" />
+        <inspection_tool class="VolatileLongOrDoubleField" level="WARNING" enabled="true" />
+        <inspection_tool class="WaitCalledOnCondition" level="WARNING" enabled="true" />
+        <inspection_tool class="WaitWhileHoldingTwoLocks" level="WARNING" enabled="true" />
+        <inspection_tool class="WaitNotInSynchronizedContext" level="WARNING" enabled="true" />
+        <inspection_tool class="WhileLoopSpinsOnField" level="WARNING" enabled="true">
+          <option name="ignoreNonEmtpyLoops" value="false" />
+        </inspection_tool>
+        <inspection_tool class="ClassEscapesItsScope" level="WARNING" enabled="true" />
+        <inspection_tool class="FieldHidesSuperclassField" level="WARNING" enabled="true">
+          <option name="m_ignoreInvisibleFields" value="true" />
+        </inspection_tool>
+        <inspection_tool class="InnerClassVariableHidesOuterClassVariable" level="WARNING" enabled="true">
+          <option name="m_ignoreInvisibleFields" value="true" />
+        </inspection_tool>
+        <inspection_tool class="LocalVariableHidingMemberVariable" level="WARNING" enabled="true">
+          <option name="m_ignoreInvisibleFields" value="true" />
+          <option name="m_ignoreStaticMethods" value="true" />
+        </inspection_tool>
+        <inspection_tool class="MethodOverloadsParentMethod" level="WARNING" enabled="true" />
+        <inspection_tool class="MethodOverridesPackageLocalMethod" level="WARNING" enabled="true" />
+        <inspection_tool class="MethodOverridesPrivateMethod" level="WARNING" enabled="true" />
+        <inspection_tool class="MethodOverridesStaticMethod" level="WARNING" enabled="true" />
+        <inspection_tool class="TypeParameterHidesVisibleType" level="WARNING" enabled="true" />
+        <inspection_tool class="IncompatibleMask" level="WARNING" enabled="false" />
+        <inspection_tool class="PointlessBitwiseExpression" level="WARNING" enabled="false">
+          <option name="m_ignoreExpressionsContainingConstants" value="false" />
+        </inspection_tool>
+        <inspection_tool class="ShiftOutOfRange" level="WARNING" enabled="false" />
+        <inspection_tool class="ExtendsObject" level="WARNING" enabled="false" />
+        <inspection_tool class="TypeParameterExtendsObject" level="WARNING" enabled="false" />
+        <inspection_tool class="UnnecessarySemicolon" level="WARNING" enabled="false" />
+        <inspection_tool class="ConditionalExpressionWithIdenticalBranches" level="WARNING" enabled="true" />
+        <inspection_tool class="DuplicateCondition" level="WARNING" enabled="true">
+          <option name="ignoreMethodCalls" value="false" />
+        </inspection_tool>
+        <inspection_tool class="WeakerAccess" level="WARNING" enabled="false">
+          <option name="SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS" value="true" />
+          <option name="SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES" value="true" />
+          <option name="SUGGEST_PRIVATE_FOR_INNERS" value="false" />
+        </inspection_tool>
+        <inspection_tool class="EmptyMethod" level="WARNING" enabled="false" />
+        <inspection_tool class="NoExplicitFinalizeCalls" level="WARNING" enabled="false" />
+        <inspection_tool class="FinalizeCallsSuperFinalize" level="WARNING" enabled="false">
+          <option name="m_ignoreForObjectSubclasses" value="false" />
+        </inspection_tool>
+        <inspection_tool class="JavaDoc" level="WARNING" enabled="false">
+          <option name="TOP_LEVEL_CLASS_OPTIONS">
+            <value>
+              <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+              <option name="REQUIRED_TAGS" value="" />
+            </value>
+          </option>
+          <option name="INNER_CLASS_OPTIONS">
+            <value>
+              <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+              <option name="REQUIRED_TAGS" value="" />
+            </value>
+          </option>
+          <option name="METHOD_OPTIONS">
+            <value>
+              <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+              <option name="REQUIRED_TAGS" value="@return at param@throws or @exception" />
+            </value>
+          </option>
+          <option name="FIELD_OPTIONS">
+            <value>
+              <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+              <option name="REQUIRED_TAGS" value="" />
+            </value>
+          </option>
+          <option name="IGNORE_DEPRECATED" value="false" />
+          <option name="IGNORE_JAVADOC_PERIOD" value="true" />
+          <option name="myAdditionalJavadocTags" value="" />
+        </inspection_tool>
+        <inspection_tool class="ExtendsAnnotation" level="WARNING" enabled="false" />
+        <inspection_tool class="AbstractMethodCallInConstructor" level="WARNING" enabled="true" />
+        <inspection_tool class="InstanceVariableUninitializedUse" level="WARNING" enabled="true">
+          <option name="m_ignorePrimitives" value="false" />
+        </inspection_tool>
+        <inspection_tool class="StaticVariableInitialization" level="WARNING" enabled="true">
+          <option name="m_ignorePrimitives" value="false" />
+        </inspection_tool>
+        <inspection_tool class="StaticVariableUninitializedUse" level="WARNING" enabled="true">
+          <option name="m_ignorePrimitives" value="false" />
+        </inspection_tool>
+        <inspection_tool class="NonThreadSafeLazyInitialization" level="WARNING" enabled="true" />
+        <inspection_tool class="StaticCollection" level="WARNING" enabled="true">
+          <option name="m_ignoreWeakCollections" value="false" />
+        </inspection_tool>
+        <inspection_tool class="StringBufferField" level="WARNING" enabled="true" />
+        <inspection_tool class="StringBufferReplaceableByStringBuilder" level="WARNING" enabled="true" />
+        <inspection_tool class="NullArgumentToVariableArgMethod" level="WARNING" enabled="false" />
+        <inspection_tool class="NullableProblems" level="WARNING" enabled="false">
+          <option name="REPORT_NULLABLE_METHOD_OVERRIDES_NOTNULL" value="true" />
+          <option name="REPORT_NOT_ANNOTATED_METHOD_OVERRIDES_NOTNULL" value="true" />
+          <option name="REPORT_NOTNULL_PARAMETER_OVERRIDES_NULLABLE" value="true" />
+          <option name="REPORT_NOT_ANNOTATED_PARAMETER_OVERRIDES_NOTNULL" value="true" />
+          <option name="REPORT_NOT_ANNOTATED_GETTER" value="true" />
+          <option name="REPORT_NOT_ANNOTATED_SETTER_PARAMETER" value="true" />
+          <option name="REPORT_ANNOTATION_NOT_PROPAGATED_TO_OVERRIDERS" value="true" />
+        </inspection_tool>
+        <inspection_tool class="PointlessBooleanExpression" level="WARNING" enabled="false">
+          <option name="m_ignoreExpressionsContainingConstants" value="false" />
+        </inspection_tool>
+        <inspection_tool class="EmptyCatchBlock" level="WARNING" enabled="false">
+          <option name="m_includeComments" value="true" />
+          <option name="m_ignoreTestCases" value="true" />
+          <option name="m_ignoreIgnoreParameter" value="true" />
+        </inspection_tool>
+        <inspection_tool class="UnusedAssignment" level="WARNING" enabled="false">
+          <option name="REPORT_PREFIX_EXPRESSIONS" value="false" />
+          <option name="REPORT_POSTFIX_EXPRESSIONS" value="true" />
+          <option name="REPORT_REDUNDANT_INITIALIZER" value="true" />
+        </inspection_tool>
+        <inspection_tool class="CloneCallsSuperClone" level="WARNING" enabled="false" />
+        <inspection_tool class="IgnoreResultOfCall" level="WARNING" enabled="false">
+          <option name="m_reportAllNonLibraryCalls" value="false" />
+          <option name="callCheckString" value="java.io.InputStream,read,java.io.InputStream,skip,java.lang.StringBuffer,toString,java.lang.StringBuilder,toString,java.lang.String,.*,java.math.BigInteger,.*,java.math.BigDecimal,.*,java.net.InetAddress,.*" />
+        </inspection_tool>
+        <inspection_tool class="CloneDeclaresCloneNotSupported" level="WARNING" enabled="false" />
+        <inspection_tool class="PointlessArithmeticExpression" level="WARNING" enabled="false">
+          <option name="m_ignoreExpressionsContainingConstants" value="false" />
+        </inspection_tool>
+        <inspection_tool class="FieldCanBeLocal" level="WARNING" enabled="false" />
+        <inspection_tool class="StringConcatenationInsideStringBufferAppend" level="WARNING" enabled="false" />
+        <inspection_tool class="MismatchedCollectionQueryUpdate" level="WARNING" enabled="false" />
+        <inspection_tool class="JavadocReference" level="WARNING" enabled="true" />
+        <inspection_tool class="UnnecessaryBlockStatement" level="WARNING" enabled="true" />
+        <inspection_tool class="ClassWithMultipleLoggers" level="WARNING" enabled="true">
+          <option name="loggerClassName" value="java.util.logging.Logger" />
+        </inspection_tool>
+        <inspection_tool class="ConstantStringIntern" level="WARNING" enabled="true" />
+        <inspection_tool class="FieldMayBeStatic" level="WARNING" enabled="true" />
+        <inspection_tool class="SizeReplaceableByIsEmpty" level="WARNING" enabled="true">
+          <option name="ignoreNegations" value="false" />
+        </inspection_tool>
+        <inspection_tool class="NestedSynchronizedStatement" level="WARNING" enabled="true" />
+        <inspection_tool class="NakedNotify" level="WARNING" enabled="true" />
+        <inspection_tool class="IndexOfReplaceableByContains" level="WARNING" enabled="true" />
+        <inspection_tool class="WhileCanBeForeach" level="WARNING" enabled="false" />
+        <inspection_tool class="ForCanBeForeach" level="WARNING" enabled="false">
+          <option name="REPORT_INDEXED_LOOP" value="true" />
+        </inspection_tool>
+        <inspection_tool class="UnnecessaryBoxing" level="WARNING" enabled="false" />
+        <inspection_tool class="UnnecessaryUnboxing" level="WARNING" enabled="false" />
+        <inspection_tool class="UNCHECKED_WARNING" level="WARNING" enabled="false" />
+        <inspection_tool class="NonStaticFinalLogger" level="WARNING" enabled="true">
+          <option name="loggerClassName" value="java.util.logging.Logger" />
+        </inspection_tool>
+        <inspection_tool class="StringBufferReplaceableByString" level="WARNING" enabled="true" />
+        <inspection_tool class="AwaitWithoutCorrespondingSignal" level="WARNING" enabled="true" />
+        <inspection_tool class="EmptyStatementBody" level="WARNING" enabled="false">
+          <option name="m_reportEmptyBlocks" value="false" />
+        </inspection_tool>
+        <inspection_tool class="MethodMayBeStatic" level="WARNING" enabled="true">
+          <option name="m_onlyPrivateOrFinal" value="false" />
+          <option name="m_ignoreEmptyMethods" value="true" />
+        </inspection_tool>
+        <inspection_tool class="EqualsWhichDoesntCheckParameterClass" level="WARNING" enabled="true" />
+        <inspection_tool class="ArithmeticOnVolatileField" level="WARNING" enabled="true" />
+      </profile>
+    </profiles>
+    <list size="0" />
+  </component>
+  <component name="JavacSettings">
+    <option name="DEBUGGING_INFO" value="true" />
+    <option name="GENERATE_NO_WARNINGS" value="false" />
+    <option name="DEPRECATION" value="true" />
+    <option name="ADDITIONAL_OPTIONS_STRING" value="" />
+    <option name="MAXIMUM_HEAP_SIZE" value="128" />
+  </component>
+  <component name="JavadocGenerationManager">
+    <option name="OUTPUT_DIRECTORY" />
+    <option name="OPTION_SCOPE" value="protected" />
+    <option name="OPTION_HIERARCHY" value="true" />
+    <option name="OPTION_NAVIGATOR" value="true" />
+    <option name="OPTION_INDEX" value="true" />
+    <option name="OPTION_SEPARATE_INDEX" value="true" />
+    <option name="OPTION_DOCUMENT_TAG_USE" value="false" />
+    <option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false" />
+    <option name="OPTION_DOCUMENT_TAG_VERSION" value="false" />
+    <option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" />
+    <option name="OPTION_DEPRECATED_LIST" value="true" />
+    <option name="OTHER_OPTIONS" value="" />
+    <option name="HEAP_SIZE" />
+    <option name="LOCALE" />
+    <option name="OPEN_IN_BROWSER" value="true" />
+  </component>
+  <component name="JikesSettings">
+    <option name="JIKES_PATH" value="" />
+    <option name="DEBUGGING_INFO" value="true" />
+    <option name="DEPRECATION" value="true" />
+    <option name="GENERATE_NO_WARNINGS" value="false" />
+    <option name="IS_EMACS_ERRORS_MODE" value="true" />
+    <option name="ADDITIONAL_OPTIONS_STRING" value="" />
+  </component>
+  <component name="LogConsolePreferences">
+    <option name="FILTER_ERRORS" value="false" />
+    <option name="FILTER_WARNINGS" value="false" />
+    <option name="FILTER_INFO" value="true" />
+    <option name="CUSTOM_FILTER" />
+  </component>
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+  <component name="PerforceChangeBrowserSettings">
+    <option name="USE_CLIENT_FILTER" value="true" />
+    <option name="CLIENT" value="" />
+  </component>
+  <component name="PerforceDirect.Settings">
+    <option name="useP4CONFIG" value="true" />
+    <option name="port" value="&lt;perforce_server&gt;:1666" />
+    <option name="client" value="" />
+    <option name="user" value="" />
+    <option name="passwd" value="" />
+    <option name="showCmds" value="false" />
+    <option name="useNativeApi" value="true" />
+    <option name="pathToExec" value="p4" />
+    <option name="useCustomPathToExec" value="false" />
+    <option name="SYNC_FORCE" value="false" />
+    <option name="SYNC_RUN_RESOLVE" value="true" />
+    <option name="REVERT_UNCHANGED_FILES" value="true" />
+    <option name="CHARSET" value="none" />
+    <option name="SHOW_BRANCHES_HISTORY" value="true" />
+    <option name="ENABLED" value="true" />
+    <option name="USE_LOGIN" value="false" />
+    <option name="LOGIN_SILENTLY" value="false" />
+    <option name="INTEGRATE_RUN_RESOLVE" value="true" />
+    <option name="INTEGRATE_REVERT_UNCHANGED" value="true" />
+    <option name="SERVER_TIMEOUT" value="20000" />
+  </component>
+  <component name="ProjectFileVersion" converted="true" />
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/CacheTests.iml" filepath="$PROJECT_DIR$/CacheTests.iml" />
+    </modules>
+  </component>
+  <component name="ProjectRootConfigurable.UI">
+    <option name="proportions">
+      <SplitterProportionsDataImpl />
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/classes" />
+  </component>
+  <component name="RmicSettings">
+    <option name="IS_EANABLED" value="false" />
+    <option name="DEBUGGING_INFO" value="true" />
+    <option name="GENERATE_NO_WARNINGS" value="false" />
+    <option name="GENERATE_IIOP_STUBS" value="false" />
+    <option name="ADDITIONAL_OPTIONS_STRING" value="" />
+  </component>
+  <component name="ScopeChooserConfigurable.UI">
+    <option name="proportions">
+      <SplitterProportionsDataImpl />
+    </option>
+  </component>
+  <component name="StarteamConfiguration">
+    <option name="SERVER" value="" />
+    <option name="PORT" value="49201" />
+    <option name="USER" value="" />
+    <option name="PASSWORD" value="" />
+    <option name="PROJECT" value="" />
+    <option name="VIEW" value="" />
+    <option name="ALTERNATIVE_WORKING_PATH" value="" />
+    <option name="LOCK_ON_CHECKOUT" value="false" />
+    <option name="UNLOCK_ON_CHECKIN" value="false" />
+  </component>
+  <component name="Struts Assistant">
+    <option name="showInputs" value="true" />
+    <option name="resources">
+      <value>
+        <option name="strutsPath" />
+        <option name="strutsHelp" />
+      </value>
+    </option>
+    <option name="selectedTaglibs" />
+    <option name="selectedTaglibs" />
+    <option name="myStrutsValidationEnabled" value="true" />
+    <option name="myTilesValidationEnabled" value="true" />
+    <option name="myValidatorValidationEnabled" value="true" />
+    <option name="myReportErrorsAsWarnings" value="true" />
+  </component>
+  <component name="SvnChangesBrowserSettings">
+    <option name="USE_AUTHOR_FIELD" value="true" />
+    <option name="AUTHOR" value="" />
+    <option name="LOCATION" value="" />
+    <option name="USE_PROJECT_SETTINGS" value="true" />
+    <option name="USE_ALTERNATE_LOCATION" value="false" />
+  </component>
+  <component name="VCS.FileViewConfiguration">
+    <option name="SELECTED_STATUSES" value="DEFAULT" />
+    <option name="SELECTED_COLUMNS" value="DEFAULT" />
+    <option name="SHOW_FILTERS" value="true" />
+    <option name="CUSTOMIZE_VIEW" value="true" />
+    <option name="SHOW_FILE_HISTORY_AS_TREE" value="true" />
+  </component>
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="svn" />
+  </component>
+  <component name="VssConfiguration">
+    <option name="CLIENT_PATH" value="" />
+    <option name="SRCSAFEINI_PATH" value="" />
+    <option name="USER_NAME" value="" />
+    <option name="PWD" value="" />
+    <option name="VSS_IS_INITIALIZED" value="false" />
+    <CheckoutOptions>
+      <option name="COMMENT" value="" />
+      <option name="DO_NOT_GET_LATEST_VERSION" value="false" />
+      <option name="REPLACE_WRITABLE" value="false" />
+      <option name="RECURSIVE" value="false" />
+    </CheckoutOptions>
+    <CheckinOptions>
+      <option name="COMMENT" value="" />
+      <option name="KEEP_CHECKED_OUT" value="false" />
+      <option name="RECURSIVE" value="false" />
+    </CheckinOptions>
+    <AddOptions>
+      <option name="STORE_ONLY_LATEST_VERSION" value="false" />
+      <option name="CHECK_OUT_IMMEDIATELY" value="false" />
+      <option name="FILE_TYPE" value="0" />
+    </AddOptions>
+    <UndocheckoutOptions>
+      <option name="MAKE_WRITABLE" value="false" />
+      <option name="REPLACE_LOCAL_COPY" value="0" />
+      <option name="RECURSIVE" value="false" />
+    </UndocheckoutOptions>
+    <GetOptions>
+      <option name="REPLACE_WRITABLE" value="0" />
+      <option name="MAKE_WRITABLE" value="false" />
+      <option name="ANSWER_NEGATIVELY" value="false" />
+      <option name="ANSWER_POSITIVELY" value="false" />
+      <option name="RECURSIVE" value="false" />
+      <option name="VERSION" />
+    </GetOptions>
+    <VssConfigurableExcludedFilesTag />
+  </component>
+  <component name="WebServicesPlugin" addRequiredLibraries="true" />
+  <component name="com.intellij.ide.util.scopeChooser.ScopeChooserConfigurable" proportions="" version="1">
+    <option name="myLastEditedConfigurable" />
+  </component>
+  <component name="com.intellij.jsf.UserDefinedFacesConfigs">
+    <option name="USER_DEFINED_CONFIGS">
+      <value>
+        <list size="0" />
+      </value>
+    </option>
+  </component>
+  <component name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable" proportions="" version="1">
+    <option name="myPlainMode" value="false" />
+    <option name="myLastEditedConfigurable" />
+  </component>
+  <component name="com.intellij.profile.ui.ErrorOptionsConfigurable" proportions="" version="1">
+    <option name="myLastEditedConfigurable" />
+  </component>
+  <component name="testng.defaultConfiguration">
+    <outputDirectory />
+    <properties />
+    <groups />
+  </component>
+  <component name="uidesigner-configuration">
+    <option name="INSTRUMENT_CLASSES" value="true" />
+    <option name="COPY_FORMS_RUNTIME_TO_OUTPUT" value="true" />
+    <option name="DEFAULT_LAYOUT_MANAGER" value="GridLayoutManager" />
+  </component>
+</project>
+

Added: benchmarks/trunk/CacheTests.iws
===================================================================
--- benchmarks/trunk/CacheTests.iws	                        (rev 0)
+++ benchmarks/trunk/CacheTests.iws	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project relativePaths="false" version="4">
+  <component name="ChangeListManager">
+    <list default="true" name="Default" comment="" />
+    <ignored path="CacheTests.iws" />
+    <ignored path=".idea/workspace.xml" />
+  </component>
+  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
+  <component name="Commander">
+    <leftPanel />
+    <rightPanel />
+    <splitter proportion="0.5" />
+  </component>
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+    <option name="REVERSE_PATCH" value="false" />
+  </component>
+  <component name="DaemonCodeAnalyzer">
+    <disable_hints />
+  </component>
+  <component name="DebuggerManager">
+    <breakpoint_any>
+      <breakpoint>
+        <option name="NOTIFY_CAUGHT" value="true" />
+        <option name="NOTIFY_UNCAUGHT" value="true" />
+        <option name="ENABLED" value="false" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+      <breakpoint>
+        <option name="NOTIFY_CAUGHT" value="true" />
+        <option name="NOTIFY_UNCAUGHT" value="true" />
+        <option name="ENABLED" value="false" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+    </breakpoint_any>
+    <breakpoint_rules />
+    <ui_properties />
+  </component>
+  <component name="ErrorTreeViewConfiguration">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="HIDE_WARNINGS" value="false" />
+  </component>
+  <component name="FavoritesManager">
+    <favorites_list name="CacheTests" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf>
+      <file leaf-file-name="SessionTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/perf/SessionTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="60" column="38" selection-start="2310" selection-end="2310" vertical-scroll-proportion="0.9424084">
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="SessionFactoryJBC.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/perf/jbosscache/SessionFactoryJBC.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="33" column="27" selection-start="1038" selection-end="1038" vertical-scroll-proportion="0.5183246">
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="config.xml" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/config.xml">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="153" column="27" selection-start="6489" selection-end="6489" vertical-scroll-proportion="2.2777777">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="SessionFactoryPC.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/perf/pojocache/SessionFactoryPC.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="29" column="8" selection-start="689" selection-end="689" vertical-scroll-proportion="0.2984293">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="SessionJBC.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/perf/jbosscache/SessionJBC.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="21" column="27" selection-start="416" selection-end="416" vertical-scroll-proportion="0.32984293">
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="FindManager">
+    <FindUsagesManager>
+      <setting name="OPEN_NEW_TAB" value="false" />
+    </FindUsagesManager>
+  </component>
+  <component name="HierarchyBrowserManager">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="SORT_ALPHABETICALLY" value="false" />
+    <option name="HIDE_CLASSES_WHERE_METHOD_NOT_IMPLEMENTED" value="false" />
+  </component>
+  <component name="ModuleEditorState">
+    <option name="LAST_EDITED_MODULE_NAME" />
+    <option name="LAST_EDITED_TAB_NAME" />
+  </component>
+  <component name="ProjectLevelVcsManager">
+    <OptionsSetting value="true" id="Add" />
+    <OptionsSetting value="true" id="Remove" />
+    <OptionsSetting value="true" id="Checkin" />
+    <OptionsSetting value="true" id="Checkout" />
+    <OptionsSetting value="true" id="Update" />
+    <OptionsSetting value="true" id="Status" />
+    <OptionsSetting value="true" id="Edit" />
+    <ConfirmationsSetting value="0" id="Add" />
+    <ConfirmationsSetting value="0" id="Remove" />
+  </component>
+  <component name="ProjectPane">
+    <subPane>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="CacheTests" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="CacheTests" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="CacheTests" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="CacheTests" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+    </subPane>
+  </component>
+  <component name="ProjectReloadState">
+    <option name="STATE" value="2" />
+  </component>
+  <component name="ProjectView">
+    <navigator currentView="ProjectPane" proportions="0.40088105" version="1" splitterProportion="0.5">
+      <flattenPackages />
+      <showMembers />
+      <showModules />
+      <showLibraryContents />
+      <hideEmptyPackages />
+      <abbreviatePackageNames />
+      <showStructure ProjectPane="true" />
+      <autoscrollToSource ProjectPane="true" />
+      <autoscrollFromSource />
+      <sortByType />
+    </navigator>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="GoToFile.includeJavaFiles" value="false" />
+    <property name="GoToClass.toSaveIncludeLibraries" value="false" />
+    <property name="MemberChooser.sorted" value="false" />
+    <property name="MemberChooser.showClasses" value="true" />
+    <property name="GoToClass.includeLibraries" value="false" />
+    <property name="MemberChooser.copyJavadoc" value="false" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="perf" />
+    </key>
+    <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+      <recent name="perf.pojocache" />
+    </key>
+  </component>
+  <component name="RunManager">
+    <configuration default="true" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="5005" />
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="ADDITIONAL_CLASS_PATH" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="wholeProject" />
+      </option>
+      <envs />
+      <method>
+        <option name="Make" value="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="C:/Program Files/JetBrains/IntelliJ IDEA 6.0/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method>
+        <option name="Make" value="true" />
+      </method>
+    </configuration>
+    <list size="0" />
+  </component>
+  <component name="StructureViewFactory">
+    <option name="AUTOSCROLL_MODE" value="true" />
+    <option name="AUTOSCROLL_FROM_SOURCE" value="false" />
+    <option name="ACTIVE_ACTIONS" value="SHOW_INHERITED,SHOW_INTERFACES,SHOW_FIELDS" />
+  </component>
+  <component name="SvnConfiguration">
+    <option name="USER" value="" />
+    <option name="PASSWORD" value="" />
+    <option name="LAST_MERGED_REVISION" />
+    <option name="UPDATE_RUN_STATUS" value="false" />
+    <option name="UPDATE_RECURSIVELY" value="true" />
+    <option name="MERGE_DRY_RUN" value="false" />
+    <configuration useDefault="true">/home/bela/.subversion</configuration>
+  </component>
+  <component name="TodoView" selected-index="0">
+    <todo-panel id="selected-file">
+      <are-packages-shown value="false" />
+      <are-modules-shown value="false" />
+      <flatten-packages value="false" />
+      <is-autoscroll-to-source value="true" />
+    </todo-panel>
+    <todo-panel id="all">
+      <are-packages-shown value="true" />
+      <are-modules-shown value="false" />
+      <flatten-packages value="false" />
+      <is-autoscroll-to-source value="true" />
+    </todo-panel>
+    <todo-panel id="default-changelist">
+      <are-packages-shown value="false" />
+      <are-modules-shown value="false" />
+      <flatten-packages value="false" />
+      <is-autoscroll-to-source value="false" />
+    </todo-panel>
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="86" y="39" width="1411" height="1131" extended-state="0" />
+    <editor active="false" />
+    <layout>
+      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
+      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="1" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296146" order="1" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="3" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296146" order="8" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="7" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="1" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="0" />
+      <window_info id="Maven projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
+      <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24926035" order="0" />
+      <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
+      <window_info id="Duplicates" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="5" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="0" />
+      <window_info id="SVN Repositories" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3296146" order="-1" />
+      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
+      <window_info id="EJB" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="4" />
+    </layout>
+  </component>
+  <component name="VcsManagerConfiguration">
+    <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
+    <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
+    <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
+    <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
+    <option name="LAST_COMMIT_MESSAGE" />
+    <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
+    <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
+    <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
+    <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
+    <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
+    <option name="ACTIVE_VCS_NAME" />
+    <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
+    <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
+    <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
+    <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
+  </component>
+  <component name="antWorkspaceConfiguration">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="FILTER_TARGETS" value="false" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/pc.sh">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="4" column="0" selection-start="24" selection-end="24" vertical-scroll-proportion="0.06382979">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/CacheTests.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/run.sh">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="9" column="123" selection-start="188" selection-end="188" vertical-scroll-proportion="0.14361702">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/tc.sh">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="12" column="0" selection-start="161" selection-end="276" vertical-scroll-proportion="0.19148937">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/obsolete/SessionTestPC.java.old">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.4712042">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/coherence/SessionCoherence.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="11" column="0" selection-start="215" selection-end="215" vertical-scroll-proportion="0.17277487">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/coherence/SessionFactoryCoherence.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="20" column="35" selection-start="456" selection-end="472" vertical-scroll-proportion="0.31413612">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/ch.sh">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="2" column="0" selection-start="61" selection-end="61" vertical-scroll-proportion="0.03141361">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/jbc.sh">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="2" column="0" selection-start="56" selection-end="56" vertical-scroll-proportion="0.03141361">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$PROJECT_DIR$/lib/jbosscache-core.jar!/org/jboss/cache/Node.class">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="25" column="30" selection-start="710" selection-end="710" vertical-scroll-proportion="0.3329843">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/SessionTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="60" column="38" selection-start="2310" selection-end="2310" vertical-scroll-proportion="0.9424084">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/pojocache/SessionPC.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="13" column="13" selection-start="238" selection-end="238" vertical-scroll-proportion="0.14136125">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/jbosscache/SessionJBC.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="21" column="27" selection-start="416" selection-end="416" vertical-scroll-proportion="0.32984293">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/pojocache/SessionFactoryPC.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="29" column="8" selection-start="689" selection-end="689" vertical-scroll-proportion="0.2984293">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/perf/jbosscache/SessionFactoryJBC.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="33" column="27" selection-start="1038" selection-end="1038" vertical-scroll-proportion="0.5183246">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="153" column="27" selection-start="6489" selection-end="6489" vertical-scroll-proportion="2.2777777">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>
+

Added: benchmarks/trunk/Tests.iml
===================================================================
--- benchmarks/trunk/Tests.iml	                        (rev 0)
+++ benchmarks/trunk/Tests.iml	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/classes" />
+    <exclude-output />
+    <output-test url="file://$MODULE_DIR$/classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$" isTestSource="false" packagePrefix="multicast" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$APPLICATION_HOME_DIR$/lib/javaee.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-logging.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jgroups.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-logging-spi.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbosscache-core.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/tangosol.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/log4j.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/ant.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jcip-annotations.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/junit.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/httpclient.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbosscache-core-tests.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/dtdparser121.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/testng.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-common-logging-spi.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-aop.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbossxb.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/je.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/qdox.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-javaee.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/tc.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/activation.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-codec-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/derby.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jdbm.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/trove.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jbosscache-pojo.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-container.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jboss-common-core.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/javassist.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/coherence.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/c3p0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/xercesImpl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="library" name="lib" level="project" />
+    <orderEntryProperties />
+  </component>
+</module>
+

Added: benchmarks/trunk/ch.sh
===================================================================
--- benchmarks/trunk/ch.sh	                        (rev 0)
+++ benchmarks/trunk/ch.sh	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,2 @@
+./run.sh -factory perf.coherence.SessionFactoryCoherence $*
+


Property changes on: benchmarks/trunk/ch.sh
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/config.xml
===================================================================
--- benchmarks/trunk/config.xml	                        (rev 0)
+++ benchmarks/trunk/config.xml	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Sample TreeCache Service Configuration                               -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<server>
+
+   <!-- ==================================================================== -->
+   <!-- Defines TreeCache configuration                                      -->
+   <!-- ==================================================================== -->
+
+   <mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
+          name="jboss.cache:service=TreeCache">
+
+      <depends>jboss:service=Naming</depends>
+      <depends>jboss:service=TransactionManager</depends>
+
+      <!--
+          Configure the TransactionManager
+      -->
+      <attribute name="TransactionManagerLookupClass">org.jboss.cache.transaction.GenericTransactionManagerLookup
+      </attribute>
+
+      <!--
+          Isolation level : SERIALIZABLE
+                            REPEATABLE_READ (default)
+                            READ_COMMITTED
+                            READ_UNCOMMITTED
+                            NONE
+      -->
+      <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
+
+       <!--<attribute name="NodeLockingScheme">OPTIMISTIC</attribute>-->
+
+      <!--
+           Valid modes are LOCAL
+                           REPL_ASYNC
+                           REPL_SYNC
+                           INVALIDATION_ASYNC
+                           INVALIDATION_SYNC
+      -->
+      <attribute name="CacheMode">REPL_ASYNC</attribute>
+
+      <!--
+      Just used for async repl: use a replication queue
+      -->
+      <attribute name="UseReplQueue">false</attribute>
+
+      <!--
+          Replication interval for replication queue (in ms)
+      -->
+      <attribute name="ReplQueueInterval">0</attribute>
+
+      <!--
+          Max number of elements which trigger replication
+      -->
+      <attribute name="ReplQueueMaxElements">0</attribute>
+
+      <!-- Name of cluster. Needs to be the same for all TreeCache nodes in a
+           cluster in order to find each other.
+      -->
+      <attribute name="ClusterName">JBossCache-Cluster</attribute>
+
+      <!--Uncomment next three statements to enable JGroups multiplexer.
+This configuration is dependent on the JGroups multiplexer being
+registered in an MBean server such as JBossAS.  -->
+      <!--
+      <depends>jgroups.mux:name=Multiplexer</depends>
+      <attribute name="MultiplexerService">jgroups.mux:name=Multiplexer</attribute>
+      <attribute name="MultiplexerStack">fc-fast-minimalthreads</attribute>
+      -->
+
+      <!-- JGroups protocol stack properties.
+         ClusterConfig isn't used if the multiplexer is enabled and successfully initialized.
+      -->
+      <attribute name="ClusterConfig">
+         <config>
+             <!--<UDP mcast_addr="232.10.10.10"
+                              mcast_port="45588"
+                              tos="8"
+                              ucast_recv_buf_size="20000000"
+                              ucast_send_buf_size="640000"
+                              mcast_recv_buf_size="25000000"
+                              mcast_send_buf_size="640000"
+                              loopback="false"
+                              discard_incompatible_packets="true"
+                              max_bundle_size="64000"
+                              max_bundle_timeout="30"
+                              use_incoming_packet_handler="true"
+                              ip_ttl="2"
+                              enable_bundling="false"
+                              enable_unicast_bundling="false"
+                              enable_diagnostics="true"
+
+                              use_concurrent_stack="true"
+
+                              thread_naming_pattern="pl"
+
+                              thread_pool.enabled="true"
+                              thread_pool.min_threads="1"
+                              thread_pool.max_threads="4"
+                              thread_pool.keep_alive_time="30000"
+                              thread_pool.queue_enabled="true"
+                              thread_pool.queue_max_size="50000"
+                              thread_pool.rejection_policy="discard"
+
+                              oob_thread_pool.enabled="true"
+                              oob_thread_pool.min_threads="2"
+                              oob_thread_pool.max_threads="4"
+                              oob_thread_pool.keep_alive_time="10000"
+                              oob_thread_pool.queue_enabled="false"
+                              oob_thread_pool.queue_max_size="10"
+                              oob_thread_pool.rejection_policy="Run"/>-->
+
+            <TCP recv_buf_size="20000000" use_send_queues="false"
+                 loopback="false"
+                 discard_incompatible_packets="true"
+                 max_bundle_size="64000"
+                 max_bundle_timeout="30"
+                 use_incoming_packet_handler="true"
+                 enable_bundling="true"
+                 enable_unicast_bundling="true"
+                 enable_diagnostics="true"
+
+                 use_concurrent_stack="true"
+
+                 thread_naming_pattern="pl"
+
+                 thread_pool.enabled="true"
+                 thread_pool.min_threads="1"
+                 thread_pool.max_threads="4"
+                 thread_pool.keep_alive_time="30000"
+                 thread_pool.queue_enabled="true"
+                 thread_pool.queue_max_size="50000"
+                 thread_pool.rejection_policy="discard"
+
+                 oob_thread_pool.enabled="true"
+                 oob_thread_pool.min_threads="2"
+                 oob_thread_pool.max_threads="4"
+                 oob_thread_pool.keep_alive_time="10000"
+                 oob_thread_pool.queue_enabled="false"
+                 oob_thread_pool.queue_max_size="10"
+                 oob_thread_pool.rejection_policy="Run"/>
+
+            <!--<PING timeout="2000" num_initial_members="3"/>-->
+             <MPING mcast_addr="232.1.2.3" timeout="2000" num_initial_members="3"/>
+            <MERGE2 max_interval="30000" min_interval="10000"/>
+            <FD_SOCK/>
+            <FD timeout="10000" max_tries="5" shun="true"/>
+            <VERIFY_SUSPECT timeout="1500"/>
+            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
+                           retransmit_timeout="300,600,1200,2400,4800"
+                           discard_delivered_msgs="true"/>
+            <!--<UNICAST timeout="30,60,120,300,600,1200,2400,3600"/>-->
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           max_bytes="400000"/>
+            <pbcast.GMS print_local_addr="true" join_timeout="5000"
+                        join_retry_timeout="2000" shun="false"
+                        view_bundling="true" view_ack_collection_timeout="5000"/>
+              <FC max_credits="5000000"
+                    min_threshold="0.20"/>
+            <FRAG2 frag_size="60000"/>
+            <pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/>
+            <!-- <pbcast.STATE_TRANSFER/> -->
+            <pbcast.FLUSH timeout="0"/>
+         </config>
+      </attribute>
+
+
+      <!--
+       Whether or not to fetch state on joining a cluster
+       NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
+      -->
+      <attribute name="FetchInMemoryState">true</attribute>
+
+      <!--
+          The max amount of time (in milliseconds) we wait until the
+          state (ie. the contents of the cache) are retrieved from
+          existing members in a clustered environment
+      -->
+      <attribute name="StateRetrievalTimeout">15000</attribute>
+
+      <!--
+          Number of milliseconds to wait until all responses for a
+          synchronous call have been received.
+      -->
+      <attribute name="SyncReplTimeout">15000</attribute>
+
+      <!-- Max number of milliseconds to wait for a lock acquisition -->
+      <attribute name="LockAcquisitionTimeout">10000</attribute>
+
+      <!--
+         Indicate whether to use region based marshalling or not. Set this to true if you are running under a scoped
+         class loader, e.g., inside an application server. Default is "false".
+      -->
+      <attribute name="UseRegionBasedMarshalling">true</attribute>
+
+
+       <attribute name="BuddyReplicationConfig">
+           <config>
+
+               <!-- Enables buddy replication. This is the ONLY mandatory configuration element here. -->
+               <buddyReplicationEnabled>true</buddyReplicationEnabled>
+
+               <!-- These are the default values anyway -->
+               <buddyLocatorClass>org.jboss.cache.buddyreplication.NextMemberBuddyLocator</buddyLocatorClass>
+
+               <!--  numBuddies is the number of backup nodes each node maintains. ignoreColocatedBuddies means
+            that each node will *try* to select a buddy on a different physical host. If not able to do so though,
+            it will fall back to colocated nodes. -->
+               <buddyLocatorProperties>
+                   numBuddies = 1
+                   ignoreColocatedBuddies = true
+               </buddyLocatorProperties>
+
+               <!-- A way to specify a preferred replication group. If specified, we try and pick a buddy which shares
+           the same pool name (falling back to other buddies if not available). This allows the sysdmin to
+           hint at backup buddies are picked, so for example, nodes may be hinted topick buddies on a different
+           physical rack or power supply for added fault tolerance. -->
+               <buddyPoolName>myBuddyPoolReplicationGroup</buddyPoolName>
+
+               <!-- Communication timeout for inter-buddy group organisation messages (such as assigning to and
+           removing from groups, defaults to 1000. -->
+               <buddyCommunicationTimeout>2000</buddyCommunicationTimeout>
+
+               <!-- Whether data is removed from old owners when gravitated to a new owner. Defaults to true. -->
+               <dataGravitationRemoveOnFind>true</dataGravitationRemoveOnFind>
+
+               <!-- Whether backup nodes can respond to data gravitation requests, or only the data owner is
+           supposed to respond.  Defaults to true. -->
+               <dataGravitationSearchBackupTrees>true</dataGravitationSearchBackupTrees>
+
+               <!-- Whether all cache misses result in a data gravitation request. Defaults to false, requiring
+           callers to enable data gravitation on a per-invocation basis using the Options API. -->
+               <autoDataGravitation>false</autoDataGravitation>
+
+           </config>
+       </attribute>
+
+       
+   </mbean>
+
+
+   <!--  Uncomment to get a graphical view of the TreeCache MBean above -->
+   <!--   <mbean code="org.jboss.cache.TreeCacheView" name="jboss.cache:service=TreeCacheView">-->
+   <!--      <depends>jboss.cache:service=TreeCache</depends>-->
+   <!--      <attribute name="CacheService">jboss.cache:service=TreeCache</attribute>-->
+   <!--   </mbean>-->
+
+
+</server>


Property changes on: benchmarks/trunk/config.xml
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/jbc.sh
===================================================================
--- benchmarks/trunk/jbc.sh	                        (rev 0)
+++ benchmarks/trunk/jbc.sh	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,2 @@
+
+./run.sh -factory perf.jbosscache.SessionFactoryJBC $*


Property changes on: benchmarks/trunk/jbc.sh
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/lib/activation.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/activation.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/ant.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/ant.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/c3p0.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/c3p0.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/commons-codec-1.3.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/commons-codec-1.3.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/commons-logging.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/commons-logging.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/derby.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/derby.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/dtdparser121.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/dtdparser121.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/javassist.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/javassist.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jboss-aop.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jboss-aop.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jboss-common-core.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jboss-common-core.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jboss-common-logging-spi.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jboss-common-logging-spi.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jboss-container.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jboss-container.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jboss-javaee.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jboss-javaee.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jboss-logging-spi.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jboss-logging-spi.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jbosscache-core.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jbosscache-core.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jbosscache-pojo.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jbosscache-pojo.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jbossxb.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jbossxb.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jcip-annotations.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jcip-annotations.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jdbm.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jdbm.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/jgroups.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/jgroups.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/junit.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/junit.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/log4j.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/log4j.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/pojocache-aop.xml
===================================================================
--- benchmarks/trunk/lib/pojocache-aop.xml	                        (rev 0)
+++ benchmarks/trunk/lib/pojocache-aop.xml	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    This is the PojoCache configuration file that specifies:
+      1. Interceptor stack for API
+      2. Annotation binding for POJO (via "prepare" element)
+
+    Basically, this is a variant of jboss-aop.xml. Note that
+    except for the customization of interceptor stack, you should
+    not need to modify this file.
+
+    To run PojoCache, you will need to define a system property:
+    jboss.aop.path that contains the path to this file such that JBoss Aop
+    can locate it.
+-->
+<aop>
+
+   <!--
+   This defines the PojoCache 2.0 interceptor stack. Unless necessary, don't modify the stack here!
+   -->
+
+   <!-- Check id range validity -->
+   <interceptor name="CheckId" class="org.jboss.cache.pojo.interceptors.CheckIdInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Track Tx undo operation -->
+   <interceptor name="Undo" class="org.jboss.cache.pojo.interceptors.PojoTxUndoInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Begining of interceptor chain -->
+   <interceptor name="Start" class="org.jboss.cache.pojo.interceptors.PojoBeginInterceptor"
+                scope="PER_INSTANCE">
+   </interceptor>
+
+   <!-- Check if we need a local tx for batch processing -->
+   <interceptor name="Tx" class="org.jboss.cache.pojo.interceptors.PojoTxInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!--
+      Mockup failed tx for testing. You will need to set PojoFailedTxMockupInterceptor.setRollback(true)
+      to activate it.
+    -->
+   <interceptor name="MockupTx" class="org.jboss.cache.pojo.interceptors.PojoFailedTxMockupInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Perform parent level node locking -->
+   <interceptor name="TxLock" class="org.jboss.cache.pojo.interceptors.PojoTxLockInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Interceptor to perform Pojo level rollback -->
+   <interceptor name="TxUndo" class="org.jboss.cache.pojo.interceptors.PojoTxUndoSynchronizationInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Interceptor to used to check recursive field interception. -->
+   <interceptor name="ReentrantToString" class="org.jboss.cache.pojo.interceptors.MethodReentrancyStopperInterceptor"
+                scope="PER_INSTANCE">
+               <attribute name="MethodName">toString</attribute>
+   </interceptor>
+
+   <interceptor name="ReentrantHashCode" class="org.jboss.cache.pojo.interceptors.MethodReentrancyStopperInterceptor"
+                scope="PER_INSTANCE">
+               <attribute name="MethodName">hashCode</attribute>
+   </interceptor>
+
+   <!-- Whether to allow non-serializable pojo. Default is false. -->
+   <interceptor name="MarshallNonSerializable"
+                class="org.jboss.cache.pojo.interceptors.CheckNonSerializableInterceptor"
+                scope="PER_INSTANCE">
+         <attribute name="marshallNonSerializable">false</attribute>
+                </interceptor>
+
+   <!-- This defines the stack macro -->
+   <stack name="Attach">
+      <interceptor-ref name="Start"/>
+      <interceptor-ref name="CheckId"/>
+      <interceptor-ref name="MarshallNonSerializable"/>
+      <interceptor-ref name="Tx"/>
+      <!-- NOTE: You can comment this out during production although leaving it here is OK. -->
+      <interceptor-ref name="MockupTx"/>
+      <interceptor-ref name="TxLock"/>
+      <interceptor-ref name="TxUndo"/>
+   </stack>
+
+   <stack name="Detach">
+      <interceptor-ref name="Start"/>
+      <interceptor-ref name="CheckId"/>
+      <interceptor-ref name="Tx"/>
+      <!-- NOTE: You can comment this out during production although leaving it here is OK. -->
+      <interceptor-ref name="MockupTx"/>
+      <interceptor-ref name="TxLock"/>
+      <interceptor-ref name="TxUndo"/>
+   </stack>
+
+   <stack name="Find">
+      <interceptor-ref name="Start"/>
+      <interceptor-ref name="CheckId"/>
+   </stack>
+
+   <!--
+      The following section should be READ-ONLY!! It defines the annotation binding to the stack.
+   -->
+
+   <!-- This binds the jointpoint to specific in-memory operations. Currently in PojoUtil. -->
+   <bind pointcut="execution(*
+      @org.jboss.cache.pojo.annotation.Reentrant->toString())">
+      <interceptor-ref name="ReentrantToString"/>
+   </bind>
+
+   <bind pointcut="execution(*
+      @org.jboss.cache.pojo.annotation.Reentrant->hashCode())">
+      <interceptor-ref name="ReentrantHashCode"/>
+   </bind>
+
+   <bind pointcut="execution(*
+      org.jboss.cache.pojo.impl.PojoUtil->@org.jboss.cache.pojo.annotation.TxUndo(..))">
+      <interceptor-ref name="Undo"/>
+   </bind>
+
+   <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Attach(..))">
+      <stack-ref name="Attach"/>
+   </bind>
+
+   <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Detach(..))">
+      <stack-ref name="Detach"/>
+   </bind>
+
+   <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Find(..))">
+      <stack-ref name="Find"/>
+   </bind>
+
+
+   <!--
+      Following is declaration for JDK50 annotation. You use the specific annotation on your
+      POJO such that it can be instrumented. Idea is user will then need only to annotate like:
+        @org.jboss.cache.pojo.annotation.Replicable
+      in his POJO. There will be no need of jboss-aop.xml from user's side.
+      Note that this annotation is inheritant, meaning the subclass will be
+      instrumented as well.
+   -->
+
+   <!-- If a POJO has PojoCachable annotation, it will be asepectized. -->
+   <!--
+   Supports inheritance and polymorphism. It can either be a concrete class
+   or an interface. All sub-classes or interface implementors will be instrumeneted.
+   -->
+   <prepare expr="field(* $instanceof{@org.jboss.cache.pojo.annotation.Replicable}->*)" />
+</aop>


Property changes on: benchmarks/trunk/lib/pojocache-aop.xml
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/lib/qdox.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/qdox.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/testng.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/testng.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/trove.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/trove.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/lib/xercesImpl.jar
===================================================================
(Binary files differ)


Property changes on: benchmarks/trunk/lib/xercesImpl.jar
___________________________________________________________________
Name: svn:executable
   + 
Name: svn:mime-type
   + application/octet-stream

Added: benchmarks/trunk/obsolete/SessionTestCoherence.old
===================================================================
--- benchmarks/trunk/obsolete/SessionTestCoherence.old	                        (rev 0)
+++ benchmarks/trunk/obsolete/SessionTestCoherence.old	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,168 @@
+package perf;
+
+
+import com.tangosol.net.CacheFactory;
+import com.tangosol.net.NamedCache;
+import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jgroups.util.Util;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.transaction.SystemException;
+import javax.transaction.UserTransaction;
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionTestCoherence {
+    // private final Map<Integer,Session> sessions=new ConcurrentHashMap<Integer,Session>();
+    private final static String ROOT="/SESSIONS/";
+    NamedCache cache=null;
+    CacheFactory factory;
+    UserTransaction tx;
+    int write_percentage=-1, read_percentage=-1;
+
+    private void start(int session_id, int num_requests, int num_attrs, int size, int write_percentage) throws NamingException {
+        this.write_percentage=write_percentage;
+        read_percentage=100 - write_percentage;
+        init(session_id, num_attrs, size);
+        loop(session_id, num_requests, num_attrs, size);
+    }
+
+    /** Create NUM_SESSIONS sessions with NUM_ATTRS attributes of SIZE size. Total size is multiplication of the 3 */
+    private void init(int session_id, int num_attrs, int size) throws NamingException {
+        DummyTransactionManager.getInstance();
+        Properties p = new Properties();
+        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
+        tx=(UserTransaction)new InitialContext(p).lookup("UserTransaction");
+
+        cache=CacheFactory.getReplicatedCache();
+
+        System.out.println("cache is " + cache);
+
+        input("Press enter to start");
+
+        for(int j=0; j < num_attrs; j++) {
+            cache.put(ROOT + session_id + "/" + j, new byte[size]);
+        }
+    }
+
+    private void loop(int session_id, int num_requests, int num_attrs, int size) {
+        int random, attr_id;
+        long total_bytes_read=0, total_bytes_written=0, reads=0, writes=0;
+        int print=num_requests / 10;
+
+        System.out.println("*** accessing session \"" + session_id + "\"");
+        byte[] buf=null;
+        long start=System.currentTimeMillis();
+        for(int i=0; i < num_requests; i++) {
+            random=(int)Util.random(100);
+            attr_id=(int)Util.random(num_attrs -1);
+            if(random <= read_percentage) { // read
+                try {
+                    tx.begin();
+
+                    buf=(byte[])cache.get(ROOT + session_id + "/" + attr_id);
+                    total_bytes_read+=buf.length;
+                    reads++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    try {tx.rollback();} catch(SystemException e1) {}
+                }
+            }
+            else {             // write
+                buf=new byte[size];
+                try {
+                    tx.begin();
+                    cache.put(ROOT + session_id + "/" + attr_id, buf);
+                    total_bytes_written+=buf.length;
+                    writes++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    System.err.println("write failed, TX was rolled back");
+                }
+            }
+            if((reads + writes) % print == 0)
+                System.out.println(reads + writes + " / " + num_requests);
+        }
+        long time=System.currentTimeMillis() - start;
+        long total=reads + writes;
+        double requests_sec=total / (time / 1000.0);
+        System.out.println(total + " requests (" + reads + " reads, " + writes + " writes): " +
+                requests_sec + " requests/sec");
+        System.out.println("bytes read: " + total_bytes_read + ", bytes written: " + total_bytes_written);
+        input("Presss enter to stop");
+    }
+
+
+
+
+    private static void input(String msg) {
+        int c;
+        try {
+            System.in.skip(System.in.available());
+            System.out.println("\n" + msg);
+            c=System.in.read();
+        }
+        catch(IOException e) {
+        }
+    }
+
+    public static void main(String[] args) throws NamingException {
+        int session_id=-1;
+        int num_requests=1000;
+        int num_attrs=100;
+        int size=1000;
+        int write_percentage=20; // percent
+
+        for(int i=0; i < args.length; i++) {
+            if(args[i].equals("-id")) {
+                session_id=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_requests")) {
+                num_requests=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_attrs")) {
+                num_attrs=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-size")) {
+                size=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-write_percentage")) {
+                write_percentage=Integer.parseInt(args[++i]);
+                if(write_percentage < 0 || write_percentage > 100) {
+                    System.err.println("write_percentage (" + write_percentage + ") has to be >= 0 && <= 100");
+                    return;
+                }
+                continue;
+            }
+            help();
+            return;
+        }
+
+        if(session_id < 0) {
+            help();
+            return;
+        }
+        new SessionTestCoherence().start(session_id, num_requests, num_attrs, size, write_percentage);
+    }
+
+    private static void help() {
+        System.out.println("SessionTestTC [-id <session ID>] [-num_requests <requests>] [-num_attrs <attrs>] " +
+                "[-size <bytes>] [-write_percentage <percentage, 0-100>] [-num_members <number>]");
+    }
+
+
+
+
+}
\ No newline at end of file

Added: benchmarks/trunk/obsolete/SessionTestJBC.java.old
===================================================================
--- benchmarks/trunk/obsolete/SessionTestJBC.java.old	                        (rev 0)
+++ benchmarks/trunk/obsolete/SessionTestJBC.java.old	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,223 @@
+package perf;
+
+import org.jboss.cache.Cache;
+import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.jboss.cache.config.Configuration;
+import org.jboss.cache.notifications.annotation.CacheListener;
+import org.jboss.cache.notifications.annotation.ViewChanged;
+import org.jboss.cache.notifications.event.ViewChangedEvent;
+import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jgroups.View;
+import org.jgroups.util.Util;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.transaction.SystemException;
+import javax.transaction.UserTransaction;
+import java.io.IOException;
+import java.util.Properties;
+import java.util.Set;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionTestJBC {
+    // private final Map<Integer,Session> sessions=new ConcurrentHashMap<Integer,Session>();
+    private final static String ROOT="/SESSIONS/";
+    Cache cache=null;
+    UserTransaction tx;
+    int write_percentage=-1, read_percentage=-1;
+
+    private void start(int session_id, int num_requests, int num_attrs, int size, int write_percentage) throws NamingException {
+        this.write_percentage=write_percentage;
+        read_percentage=100 - write_percentage;
+        try {
+            init(session_id, num_attrs, size);
+            loop(session_id, num_requests, num_attrs, size);
+        }
+        finally {
+            if(cache != null)
+                cache.stop();
+        }
+    }
+
+    /** Create NUM_SESSIONS sessions with NUM_ATTRS attributes of SIZE size. Total size is multiplication of the 3 */
+    private void init(int session_id, int num_attrs, int size) throws NamingException {
+        DummyTransactionManager.getInstance();
+        Properties p = new Properties();
+        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
+        tx=(UserTransaction)new InitialContext(p).lookup("UserTransaction");
+
+        cache=new DefaultCacheFactory().createCache("config.xml", false);
+        
+        cache.start(); // includes state transfer
+        System.out.println("cache is " + cache);
+
+        if(cache.getConfiguration().getCacheMode() != Configuration.CacheMode.LOCAL) {
+            cache.addCacheListener(new MyCacheListener());
+            input("Press enter to start");
+        }
+
+        cache.put(Fqn.fromString(ROOT + session_id), null);
+
+        Node session=cache.getRoot().getChild(Fqn.fromString(ROOT)).getChild(Fqn.fromString(Integer.toString(session_id)));
+        for(int j=0; j < num_attrs; j++) {
+            session.putIfAbsent(j, new byte[size]);
+        }
+    }
+
+    private void loop(int session_id, int num_requests, int num_attrs, int size) {
+        int random, attr_id;
+        long total_bytes_read=0, total_bytes_written=0, reads=0, writes=0;
+        int print=num_requests / 10;
+
+        Node session=cache.getRoot().getChild(Fqn.fromString(ROOT)).getChild(Fqn.fromString(Integer.toString(session_id)));
+        System.out.println("*** accessing session \"" + session_id + "\"");
+        byte[] buf=null;
+        long start=System.currentTimeMillis();
+        for(int i=0; i < num_requests; i++) {
+            random=(int)Util.random(100);
+            attr_id=(int)Util.random(num_attrs -1);
+            if(random <= read_percentage) { // read
+                try {
+                    tx.begin();
+                    buf=(byte[])session.get(attr_id);
+                    total_bytes_read+=buf.length;
+                    reads++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    try {tx.rollback();} catch(SystemException e1) {}
+                }
+            }
+            else {             // write
+                buf=new byte[size];
+                try {
+                    tx.begin();
+                    session.put(attr_id, buf);
+                    total_bytes_written+=buf.length;
+                    writes++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    System.err.println("write failed, TX was rolled back");
+                }
+            }
+            if((reads + writes) % print == 0)
+                System.out.println(reads + writes + " / " + num_requests);
+        }
+        long time=System.currentTimeMillis() - start;
+        long total=reads + writes;
+        double requests_sec=total / (time / 1000.0);
+        System.out.println(total + " requests (" + reads + " reads, " + writes + " writes): " +
+                requests_sec + " requests/sec");
+        System.out.println("bytes read: " + total_bytes_read + ", bytes written: " + total_bytes_written);
+
+       
+
+        if(cache.getConfiguration().getCacheMode() != Configuration.CacheMode.LOCAL) {
+            input("Presss enter to stop");
+        }
+
+    }
+
+
+    private static String print(Cache cache) {
+        StringBuilder sb=new StringBuilder();
+        _print(cache.getRoot().getChild(Fqn.fromString(ROOT)), sb, 0);
+        return sb.toString();
+    }
+
+    private static void _print(Node node, StringBuilder sb, int indent) {
+        if(node == null)
+            return;
+        for(int i=0; i < indent; i++)
+            sb.append(" ");
+        sb.append(node.getFqn().getLastElementAsString());
+        if(!node.getData().isEmpty())
+            sb.append(": ").append(node.getData());
+        sb.append("\n");
+        Set<Node> children=node.getChildren();
+        if(children != null && !children.isEmpty()) {
+            for(Node child: children) {
+                _print(child, sb, indent +4);
+            }
+        }
+    }
+
+    private static void input(String msg) {
+        int c;
+        try {
+            System.in.skip(System.in.available());
+            System.out.println("\n" + msg);
+            c=System.in.read();
+        }
+        catch(IOException e) {
+        }
+    }
+
+    public static void main(String[] args) throws NamingException {
+        int session_id=-1;
+        int num_requests=1000;
+        int num_attrs=100;
+        int size=1000;
+        int write_percentage=20; // percent
+
+        for(int i=0; i < args.length; i++) {
+            if(args[i].equals("-id")) {
+                session_id=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_requests")) {
+                num_requests=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_attrs")) {
+                num_attrs=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-size")) {
+                size=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-write_percentage")) {
+                write_percentage=Integer.parseInt(args[++i]);
+                if(write_percentage < 0 || write_percentage > 100) {
+                    System.err.println("write_percentage (" + write_percentage + ") has to be >= 0 && <= 100");
+                    return;
+                }
+                continue;
+            }
+            help();
+            return;
+        }
+
+        if(session_id < 0) {
+            help();
+            return;
+        }
+        new SessionTestJBC().start(session_id, num_requests, num_attrs, size, write_percentage);
+    }
+
+    private static void help() {
+        System.out.println("SessionTestTC [-id <session ID>] [-num_requests <requests>] [-num_attrs <attrs>] " +
+                "[-size <bytes>] [-write_percentage <percentage, 0-100>] [-num_members <number>]");
+    }
+
+
+    @CacheListener
+    public static class MyCacheListener {
+
+        @ViewChanged
+        public void viewChanged(ViewChangedEvent evt) {
+            View view=evt.getNewView();
+            System.out.println("-- view: " + view);
+        }
+
+    }
+
+}


Property changes on: benchmarks/trunk/obsolete/SessionTestJBC.java.old
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/obsolete/SessionTestPC.java.old
===================================================================
--- benchmarks/trunk/obsolete/SessionTestPC.java.old	                        (rev 0)
+++ benchmarks/trunk/obsolete/SessionTestPC.java.old	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,185 @@
+package perf;
+
+import org.jboss.cache.Cache;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.jboss.cache.pojo.PojoCache;
+import org.jboss.cache.pojo.PojoCacheFactory;
+import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jgroups.util.Util;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.transaction.SystemException;
+import javax.transaction.UserTransaction;
+import java.util.Properties;
+import java.util.Set;
+
+import perf.pojocache.SessionPC;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionTestPC {
+    // private final Map<Integer,Session> sessions=new ConcurrentHashMap<Integer,Session>();
+    private final static String ROOT="/SESSIONS/";
+    PojoCache cache=null;
+    UserTransaction tx;
+
+    private void start(int session_id, int num_requests, int num_attrs, int size) throws NamingException {
+        try {
+            init(session_id, num_attrs, size);
+            loop(session_id, num_requests, num_attrs, size);
+        }
+        finally {
+            if(cache != null)
+                cache.stop();
+        }
+    }
+
+    /** Create NUM_SESSIONS sessions with NUM_ATTRS attributes of SIZE size. Total size is multiplication of the 3 */
+    private void init(int session_id, int num_attrs, int size) throws NamingException {
+
+        DummyTransactionManager.getInstance();
+        Properties p = new Properties();
+        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
+        tx=(UserTransaction)new InitialContext(p).lookup("UserTransaction");
+
+        cache=PojoCacheFactory.createCache("config.xml", true);
+        System.out.println("cache is " + cache);
+        Session session=(Session)cache.find(ROOT + session_id);
+        if(session == null) {
+            session=new SessionPC();
+            cache.attach(ROOT + session_id, session);
+        }
+        for(int j=0; j < num_attrs; j++) {
+            byte[] buf=session.getAttribute(j);
+            if(buf == null)
+                session.setAttribute(j, new byte[size]);
+        }
+    }
+
+    private void loop(int session_id, int num_requests, int num_attrs, int size) {
+        int random, attr_id;
+        long total_bytes_read=0, total_bytes_written=0, reads=0, writes=0;
+        int print=num_requests / 10;
+        Session session=(Session)cache.find(ROOT + session_id);
+
+        System.out.println("*** accessing session \"" + session_id + "\"");
+        byte[] buf=null;
+        long start=System.currentTimeMillis();
+        for(int i=0; i < num_requests; i++) {
+            random=(int)Util.random(100);
+            attr_id=(int)Util.random(num_attrs -1);
+            if(random <= 80) { // read
+                try {
+                    tx.begin();
+                    buf=session.getAttribute(attr_id);
+                    total_bytes_read+=buf.length;
+                    reads++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    try {tx.rollback();} catch(SystemException e1) {}
+                }
+            }
+            else {             // write
+                buf=new byte[size];
+                try {
+                    tx.begin();
+                    session.setAttribute(attr_id, buf);
+                    total_bytes_written+=buf.length;
+                    writes++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    System.err.println("write failed, TX was rolled back");
+                }
+            }
+            if((reads + writes) % print == 0)
+                System.out.println(reads + writes + " / " + num_requests);
+        }
+        long time=System.currentTimeMillis() - start;
+        long total=reads + writes;
+        double requests_sec=total / (time / 1000.0);
+        System.out.println(total + " requests (" + reads + " reads, " + writes + " writes): " +
+                requests_sec + " requests/sec");
+        System.out.println("bytes read: " + total_bytes_read + ", bytes written: " + total_bytes_written);
+
+        Cache c=cache.getCache();
+        try {
+            tx.begin();
+            System.out.println("cache contents:\n" + print(c));
+            tx.commit();
+        }
+        catch(Exception e) {
+        }
+    }
+
+
+    private static String print(Cache cache) {
+        StringBuilder sb=new StringBuilder();
+        _print(cache.getRoot().getChild(Fqn.fromString(ROOT)), sb, 0);
+        return sb.toString();
+    }
+
+    private static void _print(Node node, StringBuilder sb, int indent) {
+        if(node == null)
+            return;
+        for(int i=0; i < indent; i++)
+            sb.append(" ");
+        sb.append(node.getFqn().getLastElementAsString());
+        if(!node.getData().isEmpty())
+            sb.append(": ").append(node.getData());
+        sb.append("\n");
+        Set<Node> children=node.getChildren();
+        if(children != null && !children.isEmpty()) {
+            for(Node child: children) {
+                _print(child, sb, indent +4);
+            }
+        }
+    }
+
+
+    public static void main(String[] args) throws NamingException {
+        int session_id=-1;
+        int num_requests=1000;
+        int num_attrs=100;
+        int size=1000;
+
+        for(int i=0; i < args.length; i++) {
+            if(args[i].equals("-id")) {
+                session_id=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_requests")) {
+                num_requests=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_attrs")) {
+                num_attrs=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-size")) {
+                size=Integer.parseInt(args[++i]);
+                continue;
+            }
+            help();
+            return;
+        }
+
+        if(session_id < 0) {
+            help();
+            return;
+        }
+        new SessionTestPC().start(session_id, num_requests, num_attrs, size);
+    }
+
+    private static void help() {
+        System.out.println("SessionTestTC [-id <session ID>] [-num_requests <requests>] [-num_attrs <attrs>] [-size <bytes>]");
+    }
+
+
+}


Property changes on: benchmarks/trunk/obsolete/SessionTestPC.java.old
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/obsolete/SessionTestTC.java.old
===================================================================
--- benchmarks/trunk/obsolete/SessionTestTC.java.old	                        (rev 0)
+++ benchmarks/trunk/obsolete/SessionTestTC.java.old	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,114 @@
+package perf;
+
+import org.jgroups.util.Util;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import perf.terracotta.SessionTC;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionTestTC {
+    private final Map<Integer,Session> sessions=new ConcurrentHashMap<Integer,Session>();
+
+    private void start(int session_id, int num_requests, int num_attrs, int size) {
+        init(session_id, num_attrs, size);
+        loop(session_id, num_requests, num_attrs, size);
+    }
+
+    /** Create NUM_SESSIONS sessions with NUM_ATTRS attributes of SIZE size. Total size is multiplication of the 3 */
+    private void init(int session_id, int num_attrs, int size) {
+        Session session=sessions.get(session_id);
+        if(session == null) {
+            session=new SessionTC();
+            sessions.put(session_id, session);
+        }
+        for(int j=0; j < num_attrs; j++) {
+            byte[] buf=session.getAttribute(j);
+            if(buf == null)
+                session.setAttribute(j, new byte[size]);
+        }
+    }
+
+    private void loop(int session_id, int num_requests, int num_attrs, int size) {
+        int random, attr_id;
+        long total_bytes_read=0, total_bytes_written=0, reads=0, writes=0;
+        int print=num_requests / 10;
+        Session session=sessions.get(session_id);
+
+        System.out.println("*** accessing session \"" + session_id + "\"");
+        long start=System.currentTimeMillis();
+        for(int i=0; i < num_requests; i++) {
+            random=(int)Util.random(100);
+            attr_id=(int)Util.random(num_attrs -1);
+            if(random <= 80) { // read
+                synchronized(session) {
+                    byte[] buf=session.getAttribute(attr_id);
+                    total_bytes_read+=buf.length;
+                    reads++;
+                }
+
+            }
+            else {             // write
+                byte[] buf=new byte[size];
+                synchronized(session) {
+                    session.setAttribute(attr_id, buf);
+                    total_bytes_written+=buf.length;
+                    writes++;
+                }
+            }
+            if((reads + writes) % print == 0)
+                System.out.println(reads + writes + " / " + num_requests);
+        }
+        long time=System.currentTimeMillis() - start;
+        long total=reads + writes;
+        double requests_sec=total / (time / 1000.0);
+        System.out.println(total + " requests (" + reads + " reads, " + writes + " writes): " +
+                requests_sec + " requests/sec");
+        System.out.println("bytes read: " + total_bytes_read + ", bytes written: " + total_bytes_written);
+    }
+
+
+    public static void main(String[] args) {
+        int session_id=-1;
+        int num_requests=1000;
+        int num_attrs=100;
+        int size=1000;
+
+        for(int i=0; i < args.length; i++) {
+            if(args[i].equals("-id")) {
+                session_id=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_requests")) {
+                num_requests=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_attrs")) {
+                num_attrs=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-size")) {
+                size=Integer.parseInt(args[++i]);
+                continue;
+            }
+            help();
+            return;
+        }
+
+        if(session_id < 0) {
+            help();
+            return;
+        }
+        new SessionTestTC().start(session_id, num_requests, num_attrs, size);
+    }
+
+    private static void help() {
+        System.out.println("SessionTestTC [-id <session ID>] [-num_requests <requests>] [-num_attrs <attrs>] [-size <bytes>]");
+    }
+
+
+}


Property changes on: benchmarks/trunk/obsolete/SessionTestTC.java.old
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/pc.sh
===================================================================
--- benchmarks/trunk/pc.sh	                        (rev 0)
+++ benchmarks/trunk/pc.sh	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,10 @@
+
+
+for i in lib/*.jar
+do
+    CP=$CP:${i}
+done
+
+CP=./classes:$CP
+
+java  -Dlog4j.configuration=file:${HOME}/log4j.properties -Djgroups.bind_addr=192.168.2.5 -classpath ${CP} -javaagent:lib/jboss-aop.jar -Djboss.aop.path=./pojocache-aop.xml perf.SessionTest -factory perf.pojocache.SessionFactoryPC -num_requests 100000 -num_attrs 100 -size 1000 -id 1 $*


Property changes on: benchmarks/trunk/pc.sh
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/pojocache-aop.xml
===================================================================
--- benchmarks/trunk/pojocache-aop.xml	                        (rev 0)
+++ benchmarks/trunk/pojocache-aop.xml	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    This is the PojoCache configuration file that specifies:
+      1. Interceptor stack for API
+      2. Annotation binding for POJO (via "prepare" element)
+
+    Basically, this is a variant of jboss-aop.xml. Note that
+    except for the customization of interceptor stack, you should
+    not need to modify this file.
+
+    To run PojoCache, you will need to define a system property:
+    jboss.aop.path that contains the path to this file such that JBoss Aop
+    can locate it.
+-->
+<aop>
+
+   <!--
+   This defines the PojoCache 2.0 interceptor stack. Unless necessary, don't modify the stack here!
+   -->
+
+   <!-- Check id range validity -->
+   <interceptor name="CheckId" class="org.jboss.cache.pojo.interceptors.CheckIdInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Track Tx undo operation -->
+   <interceptor name="Undo" class="org.jboss.cache.pojo.interceptors.PojoTxUndoInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Begining of interceptor chain -->
+   <interceptor name="Start" class="org.jboss.cache.pojo.interceptors.PojoBeginInterceptor"
+                scope="PER_INSTANCE">
+   </interceptor>
+
+   <!-- Check if we need a local tx for batch processing -->
+   <interceptor name="Tx" class="org.jboss.cache.pojo.interceptors.PojoTxInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!--
+      Mockup failed tx for testing. You will need to set PojoFailedTxMockupInterceptor.setRollback(true)
+      to activate it.
+    -->
+   <interceptor name="MockupTx" class="org.jboss.cache.pojo.interceptors.PojoFailedTxMockupInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Perform parent level node locking -->
+   <interceptor name="TxLock" class="org.jboss.cache.pojo.interceptors.PojoTxLockInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Interceptor to perform Pojo level rollback -->
+   <interceptor name="TxUndo" class="org.jboss.cache.pojo.interceptors.PojoTxUndoSynchronizationInterceptor"
+                scope="PER_INSTANCE"/>
+
+   <!-- Interceptor to used to check recursive field interception. -->
+   <interceptor name="ReentrantToString" class="org.jboss.cache.pojo.interceptors.MethodReentrancyStopperInterceptor"
+                scope="PER_INSTANCE">
+               <attribute name="MethodName">toString</attribute>
+   </interceptor>
+
+   <interceptor name="ReentrantHashCode" class="org.jboss.cache.pojo.interceptors.MethodReentrancyStopperInterceptor"
+                scope="PER_INSTANCE">
+               <attribute name="MethodName">hashCode</attribute>
+   </interceptor>
+
+   <!-- Whether to allow non-serializable pojo. Default is false. -->
+   <interceptor name="MarshallNonSerializable"
+                class="org.jboss.cache.pojo.interceptors.CheckNonSerializableInterceptor"
+                scope="PER_INSTANCE">
+         <attribute name="marshallNonSerializable">false</attribute>
+                </interceptor>
+
+   <!-- This defines the stack macro -->
+   <stack name="Attach">
+      <interceptor-ref name="Start"/>
+      <interceptor-ref name="CheckId"/>
+      <interceptor-ref name="MarshallNonSerializable"/>
+      <interceptor-ref name="Tx"/>
+      <!-- NOTE: You can comment this out during production although leaving it here is OK. -->
+      <interceptor-ref name="MockupTx"/>
+      <interceptor-ref name="TxLock"/>
+      <interceptor-ref name="TxUndo"/>
+   </stack>
+
+   <stack name="Detach">
+      <interceptor-ref name="Start"/>
+      <interceptor-ref name="CheckId"/>
+      <interceptor-ref name="Tx"/>
+      <!-- NOTE: You can comment this out during production although leaving it here is OK. -->
+      <interceptor-ref name="MockupTx"/>
+      <interceptor-ref name="TxLock"/>
+      <interceptor-ref name="TxUndo"/>
+   </stack>
+
+   <stack name="Find">
+      <interceptor-ref name="Start"/>
+      <interceptor-ref name="CheckId"/>
+   </stack>
+
+   <!--
+      The following section should be READ-ONLY!! It defines the annotation binding to the stack.
+   -->
+
+   <!-- This binds the jointpoint to specific in-memory operations. Currently in PojoUtil. -->
+   <bind pointcut="execution(*
+      @org.jboss.cache.pojo.annotation.Reentrant->toString())">
+      <interceptor-ref name="ReentrantToString"/>
+   </bind>
+
+   <bind pointcut="execution(*
+      @org.jboss.cache.pojo.annotation.Reentrant->hashCode())">
+      <interceptor-ref name="ReentrantHashCode"/>
+   </bind>
+
+   <bind pointcut="execution(*
+      org.jboss.cache.pojo.impl.PojoUtil->@org.jboss.cache.pojo.annotation.TxUndo(..))">
+      <interceptor-ref name="Undo"/>
+   </bind>
+
+   <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Attach(..))">
+      <stack-ref name="Attach"/>
+   </bind>
+
+   <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Detach(..))">
+      <stack-ref name="Detach"/>
+   </bind>
+
+   <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Find(..))">
+      <stack-ref name="Find"/>
+   </bind>
+
+
+   <!--
+      Following is declaration for JDK50 annotation. You use the specific annotation on your
+      POJO such that it can be instrumented. Idea is user will then need only to annotate like:
+        @org.jboss.cache.pojo.annotation.Replicable
+      in his POJO. There will be no need of jboss-aop.xml from user's side.
+      Note that this annotation is inheritant, meaning the subclass will be
+      instrumented as well.
+   -->
+
+   <!-- If a POJO has PojoCachable annotation, it will be asepectized. -->
+   <!--
+   Supports inheritance and polymorphism. It can either be a concrete class
+   or an interface. All sub-classes or interface implementors will be instrumeneted.
+   -->
+   <prepare expr="field(* $instanceof{@org.jboss.cache.pojo.annotation.Replicable}->*)" />
+</aop>


Property changes on: benchmarks/trunk/pojocache-aop.xml
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/run.sh
===================================================================
--- benchmarks/trunk/run.sh	                        (rev 0)
+++ benchmarks/trunk/run.sh	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,10 @@
+
+
+for i in lib/*.jar
+do 
+    CP=$CP:${i}
+done
+
+CP=./classes:$CP
+
+java  -Dlog4j.configuration=file:${HOME}/log4j.properties -Djgroups.bind_addr=192.168.2.5 -classpath ${CP} perf.SessionTest -num_requests 100000 -num_attrs 100 -size 1000 -id 1 $*


Property changes on: benchmarks/trunk/run.sh
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/src/perf/Session.java
===================================================================
--- benchmarks/trunk/src/perf/Session.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/Session.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,12 @@
+package perf;
+
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public interface Session {
+    void setAttribute(int id, byte[] val);
+    byte[] getAttribute(int id);
+    String toString();
+}


Property changes on: benchmarks/trunk/src/perf/Session.java
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/src/perf/SessionFactory.java
===================================================================
--- benchmarks/trunk/src/perf/SessionFactory.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/SessionFactory.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,12 @@
+package perf;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public interface SessionFactory {
+    void init();
+    void destroy();
+    Session createSession(int session_id);
+    void destroySession(Session session);
+}

Added: benchmarks/trunk/src/perf/SessionTest.java
===================================================================
--- benchmarks/trunk/src/perf/SessionTest.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/SessionTest.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,196 @@
+package perf;
+
+import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jgroups.util.Util;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.transaction.SystemException;
+import javax.transaction.UserTransaction;
+import java.util.Properties;
+import java.io.IOException;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionTest {
+    private UserTransaction tx;
+    int write_percentage=-1, read_percentage=-1;
+
+
+    private void start(String factory_class, int session_id, int num_requests,
+                       int num_attrs, int size, int write_percentage) throws ClassNotFoundException, IllegalAccessException,
+                                                                             InstantiationException, NamingException {
+        this.write_percentage=write_percentage;
+        read_percentage=100 - write_percentage;
+
+        SessionFactory factory=null;
+        try {
+            factory=(SessionFactory)Class.forName(factory_class).newInstance();
+        }
+        catch(InstantiationException e) {
+            System.err.println("Class '" + factory_class + "' could not be created, you probably need to define " +
+                    "an empty public constructor");
+            return;
+        }
+        catch(IllegalAccessException e) {
+            e.printStackTrace();
+        }
+        catch(ClassNotFoundException e) {
+            System.err.println("Class '" + factory_class + " was not found, please specify the absolute classname " +
+                    "with \"-factory\"");
+            return;
+        }
+
+        Session session=null;
+        DummyTransactionManager.getInstance();
+        Properties p = new Properties();
+        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
+        tx=(UserTransaction)new InitialContext(p).lookup("UserTransaction");
+
+        try {
+            if(factory == null)
+                throw new NullPointerException("factory is null");
+            factory.init();
+            session=factory.createSession(session_id);
+            input("Press enter to start");
+            init(session, num_attrs, size);
+            loop(session, session_id, num_requests, num_attrs, size);
+            input("Press enter to stop");
+        }
+        finally {
+            if(factory != null) {
+                factory.destroySession(session);
+                factory.destroy();
+            }
+        }
+    }
+
+    /** Create NUM_SESSIONS sessions with NUM_ATTRS attributes of SIZE size. Total size is multiplication of the 3 */
+    private static void init(Session session, int num_attrs, int size) throws NamingException {
+        for(int j=0; j < num_attrs; j++) {
+            byte[] buf=session.getAttribute(j);
+            if(buf == null)
+                session.setAttribute(j, new byte[size]);
+        }
+    }
+
+    private void loop(Session session, int session_id, int num_requests, int num_attrs, int size) {
+        int random, attr_id;
+        long total_bytes_read=0, total_bytes_written=0, reads=0, writes=0;
+        int print=num_requests / 10;
+
+        System.out.println("*** accessing session \"" + session_id + "\"");
+        byte[] buf=null;
+        long start=System.currentTimeMillis();
+        for(int i=0; i < num_requests; i++) {
+            random=(int)Util.random(100);
+            attr_id=(int)Util.random(num_attrs -1);
+            if(random <= read_percentage) { // read
+                try {
+                    tx.begin();
+                    buf=session.getAttribute(attr_id);
+                    total_bytes_read+=buf.length;
+                    reads++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    try {tx.rollback();} catch(SystemException e1) {}
+                }
+            }
+            else {             // write
+                buf=new byte[size];
+                try {
+                    tx.begin();
+                    session.setAttribute(attr_id, buf);
+                    total_bytes_written+=buf.length;
+                    writes++;
+                    tx.commit();
+                }
+                catch(Exception e) {
+                    System.err.println("write failed, TX was rolled back");
+                }
+            }
+            if((reads + writes) % print == 0)
+                System.out.println(reads + writes + " / " + num_requests);
+        }
+        long time=System.currentTimeMillis() - start;
+        long total=reads + writes;
+        double requests_sec=total / (time / 1000.0);
+        System.out.println(total + " requests (" + reads + " reads, " + writes + " writes): " +
+                requests_sec + " requests/sec");
+        System.out.println("bytes read: " + total_bytes_read + ", bytes written: " + total_bytes_written);
+    }
+
+
+    private static void input(String msg) {
+        try {
+            System.in.skip(System.in.available());
+            System.out.println("\n" + msg);
+            System.in.read();
+        }
+        catch(IOException e) {
+        }
+    }
+
+
+   
+
+
+    public static void main(String[] args) throws Exception {
+        int session_id=-1;
+        int num_requests=1000;
+        int num_attrs=100;
+        int size=1000;
+        int write_percentage=20; // percent
+        String factory="perf.jbosscache.SessionFactoryJBC";
+
+        for(int i=0; i < args.length; i++) {
+            if(args[i].equals("-id")) {
+                session_id=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_requests")) {
+                num_requests=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-num_attrs")) {
+                num_attrs=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-size")) {
+                size=Integer.parseInt(args[++i]);
+                continue;
+            }
+            if(args[i].equals("-write_percentage")) {
+                write_percentage=Integer.parseInt(args[++i]);
+                if(write_percentage < 0 || write_percentage > 100) {
+                    System.err.println("write_percentage (" + write_percentage + ") has to be >= 0 && <= 100");
+                    return;
+                }
+                continue;
+            }
+            if(args[i].equals("-factory")) {
+                factory=args[++i];
+                continue;
+            }
+            help();
+            return;
+        }
+
+        if(session_id < 0) {
+            help();
+            return;
+        }
+        new SessionTest().start(factory, session_id, num_requests, num_attrs, size, write_percentage);
+    }
+
+    private static void help() {
+        System.out.println("SessionTest [-factory <classname>] [-id <session ID>] [-num_requests <requests>] " +
+                "[-num_attrs <attrs>] [-size <bytes>] [-write_percentage <percentage, 0-100>]");
+    }
+
+
+}
\ No newline at end of file

Added: benchmarks/trunk/src/perf/coherence/SessionCoherence.java
===================================================================
--- benchmarks/trunk/src/perf/coherence/SessionCoherence.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/coherence/SessionCoherence.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,24 @@
+package perf.coherence;
+
+import perf.Session;
+import com.tangosol.net.NamedCache;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionCoherence implements Session {
+    private final NamedCache cache;
+
+    public SessionCoherence(NamedCache cache) {
+        this.cache=cache;
+    }
+
+    public void setAttribute(int id, byte[] val) {
+        cache.put(id, val);
+    }
+
+    public byte[] getAttribute(int id) {
+        return (byte[])cache.get(id);
+    }
+}

Added: benchmarks/trunk/src/perf/coherence/SessionFactoryCoherence.java
===================================================================
--- benchmarks/trunk/src/perf/coherence/SessionFactoryCoherence.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/coherence/SessionFactoryCoherence.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,26 @@
+package perf.coherence;
+
+import perf.SessionFactory;
+import perf.Session;
+import com.tangosol.net.CacheFactory;
+import com.tangosol.net.NamedCache;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionFactoryCoherence implements SessionFactory {
+    public void init() {
+    }
+
+    public void destroy() {
+    }
+
+    public Session createSession(int session_id) {
+        NamedCache cache=CacheFactory.getReplicatedCache();
+        return new SessionCoherence(cache);
+    }
+
+    public void destroySession(Session session) {
+    }
+}

Added: benchmarks/trunk/src/perf/jbosscache/SessionFactoryJBC.java
===================================================================
--- benchmarks/trunk/src/perf/jbosscache/SessionFactoryJBC.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/jbosscache/SessionFactoryJBC.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,59 @@
+package perf.jbosscache;
+
+import perf.SessionFactory;
+import perf.Session;
+import org.jboss.cache.Cache;
+import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.jboss.cache.notifications.annotation.CacheListener;
+import org.jboss.cache.notifications.annotation.ViewChanged;
+import org.jboss.cache.notifications.event.ViewChangedEvent;
+import org.jboss.cache.config.Configuration;
+import org.jgroups.View;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionFactoryJBC implements SessionFactory {
+    private final static String ROOT="/SESSIONS/";
+    private Cache cache=null;
+
+
+    public void init() {
+        cache=new DefaultCacheFactory().createCache("config.xml", false);
+        if(cache.getConfiguration().getCacheMode() != Configuration.CacheMode.LOCAL) {
+            cache.addCacheListener(new MyCacheListener());
+        }
+
+        cache.start(); // includes state transfer
+        System.out.println("cache is " + cache);
+    }
+
+    public void destroy() {
+        if(cache != null)
+            cache.stop();
+    }
+
+    public Session createSession(int session_id) {
+        cache.put(Fqn.fromString(ROOT + session_id), null);
+        Node node=cache.getRoot().getChild(Fqn.fromString(ROOT)).getChild(Fqn.fromString(Integer.toString(session_id)));
+        return new SessionJBC(node);
+    }
+
+    public void destroySession(Session session) {
+    }
+
+
+    @CacheListener
+    public static class MyCacheListener {
+
+        @ViewChanged
+        public void viewChanged(ViewChangedEvent evt) {
+            View view=evt.getNewView();
+            System.out.println("-- view: " + view);
+        }
+
+    }
+}

Added: benchmarks/trunk/src/perf/jbosscache/SessionJBC.java
===================================================================
--- benchmarks/trunk/src/perf/jbosscache/SessionJBC.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/jbosscache/SessionJBC.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,24 @@
+package perf.jbosscache;
+
+import perf.Session;
+import org.jboss.cache.Node;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionJBC implements Session {
+    private final Node node;
+
+    public SessionJBC(Node node) {
+        this.node=node;
+    }
+
+    public void setAttribute(int id, byte[] val) {
+        node.put(id, val);
+    }
+
+    public byte[] getAttribute(int id) {
+        return (byte[])node.get(id);
+    }
+}

Added: benchmarks/trunk/src/perf/pojocache/SessionFactoryPC.java
===================================================================
--- benchmarks/trunk/src/perf/pojocache/SessionFactoryPC.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/pojocache/SessionFactoryPC.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,81 @@
+package perf.pojocache;
+
+import org.jboss.cache.pojo.PojoCache;
+import org.jboss.cache.pojo.PojoCacheFactory;
+import org.jboss.cache.Cache;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.jboss.cache.config.Configuration;
+import perf.Session;
+import perf.SessionFactory;
+import perf.jbosscache.SessionFactoryJBC;
+
+import java.util.Set;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionFactoryPC implements SessionFactory {
+    private final static String ROOT="/SESSIONS/";
+    private PojoCache cache=null;
+
+    
+    public SessionFactoryPC() {
+
+    }
+
+    public void init() {
+        cache=PojoCacheFactory.createCache("config.xml", false);
+        Cache c=cache.getCache();
+        if(c.getConfiguration().getCacheMode() != Configuration.CacheMode.LOCAL) {
+            c.addCacheListener(new SessionFactoryJBC.MyCacheListener());
+        }
+        cache.start();
+        System.out.println("cache is " + cache);
+    }
+
+
+    public void destroy() {
+        if(cache != null)
+            cache.stop();
+    }
+
+    public Session createSession(int session_id) {
+        SessionPC session=(SessionPC)cache.find(ROOT + session_id);
+        if(session == null) {
+            session=new SessionPC();
+            cache.attach(ROOT + session_id, session);
+        }
+        return session;
+    }
+
+    public void destroySession(Session session) {
+        Cache c=cache.getCache();
+        System.out.println("cache contents:\n" + print(c));
+    }
+    
+
+    private static String print(Cache cache) {
+        StringBuilder sb=new StringBuilder();
+        _print(cache.getRoot().getChild(Fqn.fromString(ROOT)), sb, 0);
+        return sb.toString();
+    }
+
+    private static void _print(Node node, StringBuilder sb, int indent) {
+        if(node == null)
+            return;
+        for(int i=0; i < indent; i++)
+            sb.append(" ");
+        sb.append(node.getFqn().getLastElementAsString());
+        if(!node.getData().isEmpty())
+            sb.append(": ").append(node.getData());
+        sb.append("\n");
+        Set<Node> children=node.getChildren();
+        if(children != null && !children.isEmpty()) {
+            for(Node child: children) {
+                _print(child, sb, indent +4);
+            }
+        }
+    }
+}

Added: benchmarks/trunk/src/perf/pojocache/SessionPC.java
===================================================================
--- benchmarks/trunk/src/perf/pojocache/SessionPC.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/pojocache/SessionPC.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,34 @@
+package perf.pojocache;
+
+import org.jboss.cache.pojo.annotation.Replicable;
+import perf.Session;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+ at Replicable
+public class SessionPC implements Session {
+    private Map<Integer,byte[]> attrs=new ConcurrentHashMap<Integer, byte[]>();
+
+    public void setAttribute(int id, byte[] val) {
+        attrs.put(id, val);
+    }
+
+    public byte[] getAttribute(int id) {
+        return attrs.get(id);
+    }
+
+    public String toString() {
+        int num_attrs=attrs.size();
+        int total_bytes=0;
+        for(byte[] val: attrs.values()) {
+            if(val != null)
+                total_bytes+=val.length;
+        }
+        return num_attrs + " attributes, total size=" + total_bytes + " bytes";
+    }
+}

Added: benchmarks/trunk/src/perf/terracotta/SessionFactoryTC.java
===================================================================
--- benchmarks/trunk/src/perf/terracotta/SessionFactoryTC.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/terracotta/SessionFactoryTC.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,36 @@
+package perf.terracotta;
+
+import perf.SessionFactory;
+import perf.Session;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionFactoryTC implements SessionFactory {
+    private final Map<Integer,Session> sessions=new ConcurrentHashMap<Integer,Session>();
+
+
+    public void init() {
+        ;
+    }
+
+    public void destroy() {
+        ;
+    }
+
+    public Session createSession(int session_id) {
+        Session session=sessions.get(session_id);
+        if(session == null) {
+            session=new SessionTC();
+            sessions.put(session_id, session);
+        }
+        return session;
+    }
+
+    public void destroySession(Session session) {
+    }
+}

Added: benchmarks/trunk/src/perf/terracotta/SessionTC.java
===================================================================
--- benchmarks/trunk/src/perf/terracotta/SessionTC.java	                        (rev 0)
+++ benchmarks/trunk/src/perf/terracotta/SessionTC.java	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,38 @@
+package perf.terracotta;
+
+import perf.Session;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @author Bela Ban
+ * @version $Id$
+ */
+public class SessionTC implements Session {
+    private Map<Integer,byte[]> attrs=new ConcurrentHashMap<Integer, byte[]>();
+
+    public void setAttribute(int id, byte[] val) {
+        synchronized(this) {
+            attrs.put(id, val);
+        }
+    }
+
+    public byte[] getAttribute(int id) {
+        synchronized(this) {
+            return attrs.get(id);
+        }
+    }
+
+
+    public String toString() {
+        int num_attrs=attrs.size();
+        int total_bytes=0;
+        for(byte[] val: attrs.values()) {
+            if(val != null)
+                total_bytes+=val.length;
+        }
+        return num_attrs + " attributes, total size=" + total_bytes + " bytes";
+    }
+
+}

Added: benchmarks/trunk/tc.sh
===================================================================
--- benchmarks/trunk/tc.sh	                        (rev 0)
+++ benchmarks/trunk/tc.sh	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,12 @@
+
+CLASSPATH=$CLASSPATH:./classes
+
+
+for i in lib/*.jar
+do 
+    CLASSPATH=$CLASSPATH:${i}
+done
+
+
+
+../terracotta-2.5.0/bin/dso-java.sh -Dtc.config=./tc5-config.xml  perf.SessionTest -factory perf.terracotta.SessionFactoryTC -num_requests 100000 -num_attrs 100 -size 1000 -id 1 $*


Property changes on: benchmarks/trunk/tc.sh
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/tc5-config.xml
===================================================================
--- benchmarks/trunk/tc5-config.xml	                        (rev 0)
+++ benchmarks/trunk/tc5-config.xml	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tc:tc-config xmlns:tc="http://www.terracotta.org/config">
+
+
+    <application>
+        <dso>
+            <roots>
+                <root>
+                    <field-name>perf.terracotta.SessionFactoryTC.sessions</field-name>
+                </root>
+            </roots>
+            <locks>
+                <autolock>
+                    <method-expression>* perf.terracotta.SessionTC.*(..)</method-expression>
+                    <lock-level>write</lock-level>
+                </autolock>
+                <autolock>
+                    <method-expression>* perf.terracotta.SessionTC.getAttribute(..)</method-expression>
+                    <lock-level>read</lock-level>
+                </autolock>
+            </locks>
+            <instrumented-classes>
+                <include>
+                    <class-expression>perf.terracotta.SessionTC</class-expression>
+                </include>
+                <include>
+                    <class-expression>perf.terracotta.SessionFactoryTC</class-expression>
+                </include>
+            </instrumented-classes>
+        </dso>
+    </application>
+</tc:tc-config>
+


Property changes on: benchmarks/trunk/tc5-config.xml
___________________________________________________________________
Name: svn:executable
   + 

Added: benchmarks/trunk/tmp.sh
===================================================================
--- benchmarks/trunk/tmp.sh	                        (rev 0)
+++ benchmarks/trunk/tmp.sh	2008-01-08 13:24:22 UTC (rev 5048)
@@ -0,0 +1,10 @@
+
+
+for i in lib/*.jar
+do 
+    CP=$CP:${i}
+done
+
+CP=./classes:$CP
+
+java  -Dlog4j.configuration=file:${HOME}/log4j.properties -Djgroups.bind_addr=192.168.2.5 -classpath ${CP} perf.SessionTestCoherence -num_requests 100000 -num_attrs 100 -size 1000 -id 1 $*


Property changes on: benchmarks/trunk/tmp.sh
___________________________________________________________________
Name: svn:executable
   + 




More information about the jbosscache-commits mailing list