Permalink
Browse files

Merge branch 'master' of github.com:boundary/high-scale-lib

  • Loading branch information...
moonpolysoft committed Jul 12, 2011
2 parents 4300aca + 0503e7e commit 695eea9c583b8d61de2cc038509a7027079ae43e
Showing with 1,126 additions and 319 deletions.
  1. +0 −6 Testing/NBHS_Tester/nbhs_tester.log
  2. +0 −6 Testing/NBHS_Tester/nbsi_tester.log
  3. +78 −53 build.xml
  4. +3 −2 ivy.xml
  5. +23 −19 ivysettings.xml
  6. +2 −1 publish.properties
  7. +28 −0 src/main/java/com/boundary/BitPrint.java
  8. 0 src/{ → main/java}/java/util/Hashtable.java
  9. 0 src/{ → main/java}/java/util/concurrent/ConcurrentHashMap.java
  10. 0 src/{ → main/java}/org/cliffc/high_scale_lib/AbstractEntry.java
  11. 0 src/{ → main/java}/org/cliffc/high_scale_lib/ConcurrentAutoTable.java
  12. 0 src/{ → main/java}/org/cliffc/high_scale_lib/Counter.java
  13. +6 −0 src/main/java/org/cliffc/high_scale_lib/IntIterator.java
  14. 0 src/{ → main/java}/org/cliffc/high_scale_lib/NonBlockingHashMap.java
  15. 0 src/{ → main/java}/org/cliffc/high_scale_lib/NonBlockingHashMapLong.java
  16. 0 src/{ → main/java}/org/cliffc/high_scale_lib/NonBlockingHashSet.java
  17. 0 src/{ → main/java}/org/cliffc/high_scale_lib/NonBlockingHashtable.java
  18. 0 src/{ → main/java}/org/cliffc/high_scale_lib/NonBlockingIdentityHashMap.java
  19. +162 −26 src/{ → main/java}/org/cliffc/high_scale_lib/NonBlockingSetInt.java
  20. 0 src/{ → main/java}/org/cliffc/high_scale_lib/UtilUnsafe.java
  21. +13 −0 src/test/java/com/boundary/BitPrintTest.java
  22. +20 −0 src/test/java/org/cliffc/high_scale_lib/HighScaleLibTestSuite.java
  23. +3 −5 ...ster/NBHML_Tester2.java → src/test/java/org/cliffc/high_scale_lib/NonBlockingHashMapLongTest.java
  24. +3 −5 ...HM_Tester/NBHM_Tester2.java → src/test/java/org/cliffc/high_scale_lib/NonBlockingHashMapTest.java
  25. +3 −5 ...BHS_Tester/nbhs_tester.java → src/test/java/org/cliffc/high_scale_lib/NonBlockingHashSetTest.java
  26. +551 −0 src/test/java/org/cliffc/high_scale_lib/NonBlockingIdentityHashMapTest.java
  27. +231 −191 ...NBHS_Tester/nbsi_tester.java → src/test/java/org/cliffc/high_scale_lib/NonBlockingSetIntTest.java
@@ -1,6 +0,0 @@
-JUnit version 4.4
-....
-Time: 0.094
-
-OK (4 tests)
-
@@ -1,6 +0,0 @@
-JUnit version 4.4
-.....
-Time: 0.312
-
-OK (5 tests)
-
View
131 build.xml
@@ -1,97 +1,122 @@
<?xml version="1.0" encoding="UTF-8"?>
<project default="main" name="high-scale-lib" xmlns:ivy="antlib:org.apache.ivy.ant">
- <property name="ivy.version" value="2.2.0" />
- <property name="ivy.url"
- value="http://repo2.maven.org/maven2/org/apache/ivy/ivy" />
+ <property name="ivy.version" value="2.2.0" />
+ <property name="ivy.url"
+ value="http://repo2.maven.org/maven2/org/apache/ivy/ivy" />
<property file="publish.properties"/>
- <property name="basedir" value="."/>
- <property name="build.src" value="${basedir}/src"/>
- <property name="build.src.java" value="${basedir}/src/java"/>
- <property name="build.dir" value="${basedir}/build"/>
- <property name="build.dir.lib" value="${build.dir}/lib"/>
- <property name="build.classes" value="${build.dir}/classes"/>
- <property name="dist.dir" value="${build.dir}/dist"/>
-
- <path id="autoivy.classpath">
- <fileset dir="${build.dir.lib}">
- <include name="**/*.jar" />
- </fileset>
- <pathelement location="${build.dir}/ivy-${ivy.version}.jar"/>
- </path>
-
+ <property name="basedir" value="."/>
+ <property name="build.src" value="${basedir}/src"/>
+ <property name="build.src.java" value="${basedir}/src/main/java"/>
+ <property name="build.src.test.java" value="${basedir}/src/test/java"/>
+ <property name="build.dir" value="${basedir}/build"/>
+ <property name="build.dir.lib" value="${build.dir}/lib"/>
+ <property name="build.classes" value="${build.dir}/classes"/>
+ <property name="build.testclasses" value="${build.dir}/test-classes"/>
+ <property name="dist.dir" value="${build.dir}/dist"/>
+
+ <path id="autoivy.classpath">
+ <fileset dir="${build.dir.lib}">
+ <include name="**/*.jar" />
+ </fileset>
+ <pathelement location="${build.dir}/ivy-${ivy.version}.jar"/>
+ </path>
+
+ <path id="test.compile.classpath">
+ <path refid="autoivy.classpath"/>
+ <pathelement location="${build.classes}"/>
+ </path>
+
+ <path id="test.classpath">
+ <path refid="test.compile.classpath"/>
+ <pathelement location="${build.classes}"/>
+ <pathelement location="${build.testclasses}"/>
+ </path>
+
<target name="init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir.lib}"/>
<mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.testclasses}"/>
<mkdir dir="${dist.dir}"/>
</target>
- <target name="ivy-download" depends="init" unless="ivy.jar.exists">
- <echo>Downloading Ivy...</echo>
- <get src="${ivy.url}/${ivy.version}/ivy-${ivy.version}.jar"
- dest="${build.dir.lib}/ivy-${ivy.version}.jar" usetimestamp="true" />
- </target>
-
- <target name="ivy-init" depends="ivy-download" unless="ivy.initialized">
- <taskdef resource="org/apache/ivy/ant/antlib.xml"
- uri="antlib:org.apache.ivy.ant"
- classpathref="autoivy.classpath"/>
- <property name="ivy.initialized" value="true"/>
- </target>
+ <target name="ivy-download" depends="init" unless="ivy.jar.exists">
+ <echo>Downloading Ivy...</echo>
+ <get src="${ivy.url}/${ivy.version}/ivy-${ivy.version}.jar"
+ dest="${build.dir.lib}/ivy-${ivy.version}.jar" usetimestamp="true" />
+ </target>
- <target name="ivy-retrieve-build" depends="ivy-init, resolve">
- <ivy:retrieve type="jar,source" sync="true"
- pattern="${build.dir.lib}/[type]s/[artifact]-[revision].[ext]" />
- </target>
+ <target name="ivy-init" depends="ivy-download" unless="ivy.initialized">
+ <taskdef resource="org/apache/ivy/ant/antlib.xml"
+ uri="antlib:org.apache.ivy.ant"
+ classpathref="autoivy.classpath"/>
+ <property name="ivy.initialized" value="true"/>
+ </target>
+
+ <target name="ivy-retrieve-build" depends="ivy-init, resolve">
+ <ivy:retrieve type="jar,source" pattern="${build.dir.lib}/[type]s/[artifact].[ext]"/>
+ </target>
<target name="resolve">
<ivy:resolve file="ivy.xml" revision="${version}"/>
</target>
- <target name="main" depends="compile, jar" description="Main target">
- <echo>
- Building the .jar file.
- </echo>
- </target>
-
- <target name="compile" depends="ivy-retrieve-build" description="Compilation target">
- <javac srcdir="src" destdir="${build.classes}"/>
- </target>
+ <target name="main" depends="compile, jar" description="Main target">
+ <echo>
+ Building the .jar file.
+ </echo>
+ </target>
+
+ <target name="compile" depends="ivy-retrieve-build" description="Compilation target">
+ <javac srcdir="${build.src.java}" destdir="${build.classes}"/>
+ </target>
<target name="gen-pom" depends="ivy-init">
- <ivy:makepom ivyfile="ivy.xml" pomfile="${dist.dir}/${ant.project.name}.pom">
- <mapping conf="default" scope="compile"/>
+ <ivy:makepom ivyfile="ivy.xml" pomfile="${dist.dir}/${ant.project.name}.pom">
+ <mapping conf="default" scope="compile"/>
</ivy:makepom>
</target>
<target name="jar" description="jar target" depends="compile">
- <jar jarfile="${dist.dir}/high-scale-lib.jar" basedir="${build.classes}" includes="org/**/*.class" />
+ <jar jarfile="${dist.dir}/high-scale-lib.jar" basedir="${build.classes}" includes="org/**/*.class" />
</target>
-
+
+ <target name="compile-tests" depends="compile">
+ <javac srcdir="${build.src.test.java}" destdir="${build.testclasses}">
+ <classpath refid="test.compile.classpath"/>
+ </javac>
+ </target>
+
+ <target name="test" depends="compile-tests" description="run unit tests">
+ <junit>
+ <classpath refid="test.classpath"/>
+ <test name="org.cliffc.high_scale_lib.HighScaleLibTestSuite"/>
+ </junit>
+ </target>
+
<target name="publish" description="publish jar to artifactory" depends="jar, gen-pom">
- <ivy:publish resolver="artifactory-publish" overwrite="true" organisation="${organization}" module="${module}" revision="${version}">
+ <ivy:publish resolver="artifactory-publish" overwrite="true" organisation="${organization}" module="${module}" revision="${version}">
<artifacts pattern="${dist.dir}/[artifact].[ext]"/>
-
- <artifact name="${ivy.module}" ext="pom" type="pom"/>
+ <artifact name="${ivy.module}" ext="pom" type="pom"/>
</ivy:publish>
</target>
<target name="publish-local" description="publish jar to the local repo" depends="jar">
- <ivy:publish resolver="local" overwrite="true" organisation="${organization}" module="${module}" revision="${version}">
+ <ivy:publish resolver="local" overwrite="true" organisation="${organization}" module="${module}" revision="${version}">
<artifacts pattern="${dist.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="clean" description="get rid of any build artifacts">
<delete dir="${dist.dir}" />
<delete dir="${build.dir}" />
- <delete dir="doc" />
+ <delete dir="doc"/>
</target>
<target name="javadoc" description="generate the docs">
- <javadoc sourcepath="src" destdir="doc"/>
+ <javadoc sourcepath="src" destdir="doc"/>
</target>
</project>
View
@@ -1,7 +1,8 @@
<ivy-module version="2.0">
<info organisation="${organization}" module="${module}" revision="${version}"/>
-
<dependencies>
-
+ <dependency org="junit" name="junit" rev="4.8.2" >
+ <artifact name="junit" type="jar" conf="test"/>
+ </dependency>
</dependencies>
</ivy-module>
View
@@ -1,21 +1,25 @@
<ivysettings>
- <properties file="credentials.properties"/>
- <properties file="publish.properties"/>
-
- <settings defaultResolver="main"/>
- <credentials host="maven.boundary.com" realm="Artifactory Realm" username="${username}" passwd="${password}"/>
- <resolvers >
-
- <chain name="main">
- <filesystem name="local">
- <ivy pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" />
- <artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" />
- </filesystem>
- <url name="artifactory-publish" m2compatible="true">
- <artifact pattern="http://maven.boundary.com/artifactory/external/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" />
- <ivy pattern="http://maven.boundary.com/artifactory/external/[organization]/[module]/[revision]/ivy-[module].xml" />
- </url>
-
- </chain>
- </resolvers>
+ <properties file="credentials.properties"/>
+ <properties file="publish.properties"/>
+ <settings defaultResolver="main"/>
+ <credentials host="maven.boundary.com" realm="Artifactory Realm" username="${username}" passwd="${password}"/>
+ <resolvers>
+ <chain name="main">
+ <filesystem name="local">
+ <ivy pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"/>
+ <artifact
+ pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"/>
+ </filesystem>
+ <url name="artifactory-external" m2compatible="true">
+ <artifact
+ pattern="http://maven.boundary.com/artifactory/repo/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"/>
+ <ivy pattern="http://maven.boundary.com/artifactory/repo/[organization]/[module]/[revision]/ivy-[module].xml"/>
+ </url>
+ <url name="artifactory-publish" m2compatible="true">
+ <artifact
+ pattern="http://maven.boundary.com/artifactory/external/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"/>
+ <ivy pattern="http://maven.boundary.com/artifactory/external/[organization]/[module]/[revision]/ivy-[module].xml"/>
+ </url>
+ </chain>
+ </resolvers>
</ivysettings>
View
@@ -1,3 +1,4 @@
organization=com.boundary
module=high-scale-lib
-version=1.0.2
+version=1.0.3
+
@@ -0,0 +1,28 @@
+package com.boundary;
+
+/**
+ * utility for printing bit patterns
+ */
+public class BitPrint {
+ public static String fmt(long bits) {
+ StringBuilder sb = new StringBuilder();
+ long mask = 1L<<63;
+ for(int i = 1; i <= 64; i++) {
+ if((mask & bits) == mask)
+ sb.append("1");
+ else
+ sb.append("0");
+ if(i%8 == 0)
+ sb.append("|");
+ mask >>>= 1;
+ }
+ return sb.toString();
+ }
+ public static String fmt(long ... buffer) {
+ StringBuilder sb = new StringBuilder();
+ for(long bits : buffer) {
+ sb.append(fmt(bits)).append("\n");
+ }
+ return sb.toString();
+ }
+}
@@ -0,0 +1,6 @@
+package org.cliffc.high_scale_lib;
+
+public interface IntIterator {
+ public int next();
+ public boolean hasNext();
+}
Oops, something went wrong.

0 comments on commit 695eea9

Please sign in to comment.