From 2e29452f03dd0ac8950fdbd16d7a57db4670e104 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:38:42 +0900 Subject: [PATCH 01/11] Development version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e676e8..2e1dc15 100755 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.xerial.snappy snappy-java - 1.0.5-M2 + 1.0.5-SNAPSHOT Snappy for Java snappy-java: A fast compression/decompression library bundle From ec89d78a0b15f70ecee23266c3325d06e168cb36 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:45:13 +0900 Subject: [PATCH 02/11] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c69a55f..f3dd145 100755 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ The snappy-java is a Java port of the snappy ## Download The current stable version is available from here: - * Release version: http://maven.xerial.org/repository/artifact/org/xerial/snappy/snappy-java - * [release plans](./snappy-java/Milestone.md) + * Release version: http://code.google.com/p/snappy-java/downloads/list + * [Release plans](./snappy-java/Milestone.md) * Snapshot version (the latest beta version): https://oss.sonatype.org/content/repositories/snapshots/org/xerial/snappy/snappy-java/ If you are a Maven user, see [#Using_with_Maven] From 9bd521c079eedf0207460211ac8992cf62563df1 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:46:48 +0900 Subject: [PATCH 03/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3dd145..3fd1eb6 100755 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The snappy-java is a Java port of the snappy ## Download The current stable version is available from here: * Release version: http://code.google.com/p/snappy-java/downloads/list - * [Release plans](./snappy-java/Milestone.md) + * [Release plans](../blob/develo/Milestone.md) * Snapshot version (the latest beta version): https://oss.sonatype.org/content/repositories/snapshots/org/xerial/snappy/snappy-java/ If you are a Maven user, see [#Using_with_Maven] From cbc3f302ecdfee8db333ffca3826be6dfe80c799 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:47:46 +0900 Subject: [PATCH 04/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3fd1eb6..6cb8695 100755 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The snappy-java is a Java port of the snappy ## Download The current stable version is available from here: * Release version: http://code.google.com/p/snappy-java/downloads/list - * [Release plans](../blob/develo/Milestone.md) + * [Release plans](../blob/develop/Milestone.md) * Snapshot version (the latest beta version): https://oss.sonatype.org/content/repositories/snapshots/org/xerial/snappy/snappy-java/ If you are a Maven user, see [#Using_with_Maven] From 436e674463561db6ddfc2f46332575822e18db88 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:48:19 +0900 Subject: [PATCH 05/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6cb8695..852a673 100755 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The snappy-java is a Java port of the snappy ## Download The current stable version is available from here: * Release version: http://code.google.com/p/snappy-java/downloads/list - * [Release plans](../blob/develop/Milestone.md) + * [Release plans](blob/develop/Milestone.md) * Snapshot version (the latest beta version): https://oss.sonatype.org/content/repositories/snapshots/org/xerial/snappy/snappy-java/ If you are a Maven user, see [#Using_with_Maven] From 94baf638241220c491f33f8c09455ee09cd708cb Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:51:08 +0900 Subject: [PATCH 06/11] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 852a673..288faa0 100755 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ The snappy-java is a Java port of the snappy ## Download The current stable version is available from here: * Release version: http://code.google.com/p/snappy-java/downloads/list - * [Release plans](blob/develop/Milestone.md) + * [Release plans](https://github.com/xerial/snappy-java/blob/develop/Milestone.md) * Snapshot version (the latest beta version): https://oss.sonatype.org/content/repositories/snapshots/org/xerial/snappy/snappy-java/ -If you are a Maven user, see [#Using_with_Maven] +If you are a Maven user, see [pom.xml example](#using-with-maven). ## Usage First, import `org.xerial.snapy.Snappy` in your Java code: From 53e8605950d83b99ff845fde17127b9d3a3d0abc Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 27 Sep 2012 12:52:18 +0900 Subject: [PATCH 07/11] Update Milestone.md --- Milestone.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Milestone.md b/Milestone.md index e8e08b5..14b105f 100644 --- a/Milestone.md +++ b/Milestone.md @@ -2,6 +2,9 @@ * `SnappyIndexer` for parallel compression/decompression * CUI commands (snap/unsnap) +## snappy-java-1.0.5-M2 (27 September 2012) + * Upgrade release for snappy-1.0.5 + ## snappy-java-1.0.4.1 (5 September 2011) * Fixes issue 33: Fixes a problem when reading incomplete input stream From ed37dfac4b2792d23996e8de443079ea0fd40ff7 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Fri, 28 Sep 2012 11:34:02 +0900 Subject: [PATCH 08/11] Fixes for issue #6 --- .gitignore | 1 + pom.xml | 2 +- src/main/java/org/xerial/snappy/OSInfo.java | 6 +- .../java/org/xerial/snappy/SnappyLoader.java | 57 +++++++++++------- .../native/Mac/x86_64/libsnappyjava.dylib | Bin 48572 -> 0 bytes 5 files changed, 39 insertions(+), 27 deletions(-) delete mode 100755 src/main/resources/org/xerial/snappy/native/Mac/x86_64/libsnappyjava.dylib diff --git a/.gitignore b/.gitignore index a427da3..d327337 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ # IntelliJ .idea .idea_modules +*.iml # sbt specific bin/.lib diff --git a/pom.xml b/pom.xml index 2e676e8..c224902 100755 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.xerial.snappy snappy-java - 1.0.5-M2 + 1.0.5-M3-SNAPSHOT Snappy for Java snappy-java: A fast compression/decompression library bundle diff --git a/src/main/java/org/xerial/snappy/OSInfo.java b/src/main/java/org/xerial/snappy/OSInfo.java index 95682fa..4ec6686 100755 --- a/src/main/java/org/xerial/snappy/OSInfo.java +++ b/src/main/java/org/xerial/snappy/OSInfo.java @@ -78,9 +78,9 @@ public class OSInfo // ignored: fall back to "arm" arch (soft-float ABI) } } - else if(getOSName().equals("Mac") && osArch.equals("universal")) { - return "x86_64"; // Fix for openjdk7 - } + else if(getOSName().equals("Mac") && (osArch.equals("universal") || osArch.equals("amd64"))) { + return "x86_64"; // Fix for openjdk7 + } return translateArchNameToFolderName(osArch); } diff --git a/src/main/java/org/xerial/snappy/SnappyLoader.java b/src/main/java/org/xerial/snappy/SnappyLoader.java index 4a33396..9ec625f 100755 --- a/src/main/java/org/xerial/snappy/SnappyLoader.java +++ b/src/main/java/org/xerial/snappy/SnappyLoader.java @@ -24,13 +24,7 @@ //-------------------------------------- package org.xerial.snappy; -import java.io.BufferedInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; @@ -411,13 +405,10 @@ public class SnappyLoader static File findNativeLibrary() { boolean useSystemLib = Boolean.parseBoolean(System.getProperty(KEY_SNAPPY_USE_SYSTEMLIB, "false")); - if (useSystemLib) - return null; - boolean disabledBundledLibs = Boolean .parseBoolean(System.getProperty(KEY_SNAPPY_DISABLE_BUNDLED_LIBS, "false")); - if (disabledBundledLibs) - return null; + if (useSystemLib || disabledBundledLibs) + return null; // Use a pre-installed libsnappyjava // Try to load the library in org.xerial.snappy.lib.path */ String snappyNativeLibraryPath = System.getProperty(KEY_SNAPPY_LIB_PATH); @@ -433,23 +424,43 @@ public class SnappyLoader return nativeLib; } - { - // Load an OS-dependent native library inside a jar file - snappyNativeLibraryPath = "/org/xerial/snappy/native/" + OSInfo.getNativeLibFolderPathForCurrentOS(); - if (SnappyLoader.class.getResource(snappyNativeLibraryPath + "/" + snappyNativeLibraryName) != null) { - // Temporary library folder. Use the value of org.xerial.snappy.tempdir or java.io.tmpdir - String tempFolder = new File(System.getProperty(KEY_SNAPPY_TEMPDIR, - System.getProperty("java.io.tmpdir"))).getAbsolutePath(); - - // Extract and load a native library inside the jar file - return extractLibraryFile(snappyNativeLibraryPath, snappyNativeLibraryName, tempFolder); + // Load an OS-dependent native library inside a jar file + snappyNativeLibraryPath = "/org/xerial/snappy/native/" + OSInfo.getNativeLibFolderPathForCurrentOS(); + boolean hasNativeLib = hasResource(snappyNativeLibraryPath + "/" + snappyNativeLibraryName); + if(!hasNativeLib) { + if(OSInfo.getOSName().equals("Mac")) { + // Fix for openjdk7 for Mac + String altName = "libsnappyjava.jnilib"; + if(hasResource(snappyNativeLibraryPath + "/" + altName)) { + snappyNativeLibraryName = altName; + hasNativeLib = true; + } } } - return null; // Use a pre-installed libsnappyjava + if(!hasNativeLib) { + String errorMessage = String.format("no native library is found for os.name=%s and os.arch=%s", OSInfo.getOSName(), OSInfo.getArchName()); + throw new SnappyError(SnappyErrorCode.FAILED_TO_LOAD_NATIVE_LIBRARY, errorMessage); + } + + // Temporary library folder. Use the value of org.xerial.snappy.tempdir or java.io.tmpdir + String tempFolder = new File(System.getProperty(KEY_SNAPPY_TEMPDIR, + System.getProperty("java.io.tmpdir"))).getAbsolutePath(); + + // Extract and load a native library inside the jar file + return extractLibraryFile(snappyNativeLibraryPath, snappyNativeLibraryName, tempFolder); } + + private static boolean hasResource(String path) { + return SnappyLoader.class.getResource(path) != null; + } + + + + + /** * Get the snappy-java version by reading pom.properties embedded in jar. * This version data is used as a suffix of a dll file extracted from the diff --git a/src/main/resources/org/xerial/snappy/native/Mac/x86_64/libsnappyjava.dylib b/src/main/resources/org/xerial/snappy/native/Mac/x86_64/libsnappyjava.dylib deleted file mode 100755 index 6a177ac92da5171578aed6386a6c048b4705e01c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48572 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 E0HJv-od5s; From f7e04b769faf72ded33c0e5ce5240622508d2037 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Fri, 28 Sep 2012 11:54:43 +0900 Subject: [PATCH 09/11] 1.0.5-M3 release --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c224902..c357bee 100755 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.xerial.snappy snappy-java - 1.0.5-M3-SNAPSHOT + 1.0.5-M3 Snappy for Java snappy-java: A fast compression/decompression library bundle From 1b803c4b05fba73f3f7a35cc56f0ed3afb2560b6 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Fri, 28 Sep 2012 11:56:32 +0900 Subject: [PATCH 10/11] Fix Makefile --- Makefile | 260 +++++++++++++++++++++++------------------------ Makefile.package | 171 +++++++++++++++---------------- 2 files changed, 212 insertions(+), 219 deletions(-) diff --git a/Makefile b/Makefile index a9ca277..7e49317 100644 --- a/Makefile +++ b/Makefile @@ -1,130 +1,130 @@ - -include Makefile.common - -MVN:=mvn - -all: snappy - -SNAPPY_OUT:=$(TARGET)/$(snappy)-$(os_arch) -SNAPPY_ARCHIVE:=$(TARGET)/snappy-$(VERSION).tar.gz -SNAPPY_CC:=snappy-sinksource.cc snappy-stubs-internal.cc snappy.cc -SNAPPY_SRC_DIR:=$(TARGET)/snappy-$(VERSION) -SNAPPY_SRC:=$(addprefix $(SNAPPY_SRC_DIR)/,$(SNAPPY_CC)) -SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/,$(patsubst %.cc,%.o,$(SNAPPY_CC)) SnappyNative.o) - -SNAPPY_UNPACKED:=$(TARGET)/snappy-extracted.log - -CXXFLAGS:=$(CXXFLAGS) -I$(SNAPPY_SRC_DIR) - -$(SNAPPY_ARCHIVE): - @mkdir -p $(@D) - curl -o$@ http://snappy.googlecode.com/files/snappy-$(VERSION).tar.gz - -$(SNAPPY_UNPACKED): $(SNAPPY_ARCHIVE) - tar xvfz $< -C $(TARGET) - touch $@ - -jni-header: $(SRC)/org/xerial/snappy/SnappyNative.h - - -$(SRC)/org/xerial/snappy/SnappyNative.h: $(SRC)/org/xerial/snappy/SnappyNative.java - @mkdir -p $(TARGET)/classes - $(JAVAH) -classpath $(TARGET)/classes -o $@ org.xerial.snappy.SnappyNative - -bytecode: src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode - -src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode: src/main/resources/org/xerial/snappy/SnappyNativeLoader.java - @mkdir -p $(TARGET)/temp - $(JAVAC) -source 1.5 -target 1.5 -d $(TARGET)/temp $< - cp $(TARGET)/temp/org/xerial/snappy/SnappyNativeLoader.class $@ - -$(SNAPPY_SRC): $(SNAPPY_UNPACKED) - -$(SNAPPY_OUT)/%.o : $(SNAPPY_SRC_DIR)/%.cc - @mkdir -p $(@D) - $(CXX) $(CXXFLAGS) -c $< -o $@ - -$(SNAPPY_OUT)/SnappyNative.o : $(SRC)/org/xerial/snappy/SnappyNative.cpp $(SRC)/org/xerial/snappy/SnappyNative.h - @mkdir -p $(@D) - $(CXX) $(CXXFLAGS) -c $< -o $@ - - -$(SNAPPY_OUT)/$(LIBNAME): $(SNAPPY_OBJ) - $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) - $(STRIP) $@ - -clean-native: - rm -rf $(SNAPPY_OUT) - -clean: - rm -rf $(TARGET) - -NATIVE_DIR:=src/main/resources/org/xerial/snappy/native/$(OS_NAME)/$(OS_ARCH) -NATIVE_TARGET_DIR:=$(TARGET)/classes/org/xerial/snappy/native/$(OS_NAME)/$(OS_ARCH) -NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME) - -snappy-jar-version:=snappy-java-$(shell $(JAVA) -jar lib/silk-weaver.jar find 'project(artifactId, version)' pom.xml | grep snappy-java | awk '{ print $$2; }') - -native: $(SNAPPY_UNPACKED) $(NATIVE_DLL) -snappy: native $(TARGET)/$(snappy-jar-version).jar - -$(NATIVE_DLL): $(SNAPPY_OUT)/$(LIBNAME) - @mkdir -p $(@D) - cp $< $@ - @mkdir -p $(NATIVE_TARGET_DIR) - cp $< $(NATIVE_TARGET_DIR)/$(LIBNAME) - - -$(TARGET)/$(snappy-jar-version).jar: native $(NATIVE_DLL) - $(MVN) package -Dmaven.test.skip=true - -test: $(NATIVE_DLL) - $(MVN) test - -win32: - $(MAKE) native CROSS_PREFIX=i686-w64-mingw32- OS_NAME=Windows OS_ARCH=x86 - -# for cross-compilation on Ubuntu, install the g++-mingw-w64-x86-64 package -win64: - $(MAKE) native CROSS_PREFIX=x86_64-w64-mingw32- OS_NAME=Windows OS_ARCH=amd64 - -mac32: - $(MAKE) native OS_NAME=Mac OS_ARCH=i386 - -linux32: - $(MAKE) native OS_NAME=Linux OS_ARCH=i386 - -# for cross-compilation on Ubuntu, install the g++-arm-linux-gnueabi package -linux-arm: - $(MAKE) native CROSS_PREFIX=arm-linux-gnueabi- OS_NAME=Linux OS_ARCH=arm - -# for cross-compilation on Ubuntu, install the g++-arm-linux-gnueabihf package -linux-armhf: - $(MAKE) native CROSS_PREFIX=arm-linux-gnueabihf- OS_NAME=Linux OS_ARCH=armhf - -clean-native-linux32: - $(MAKE) clean-native OS_NAME=Linux OS_ARCH=i386 - -clean-native-win32: - $(MAKE) clean-native OS_NAME=Windows OS_ARCH=x86 - -javadoc: - $(MVN) javadoc:javadoc -DreportOutputDirectory=wiki/apidocs - - -googlecode-upload: googlecode-lib-upload googlecode-src-upload - -googlecode-lib-upload: $(TARGET)/snappy-java-$(VERSION)-lib.upload -googlecode-src-upload: $(TARGET)/snappy-java-$(VERSION)-src.upload - -GOOGLECODE_USER:=leo@xerial.org - -$(TARGET)/snappy-java-$(VERSION)-lib.upload: - ./googlecode_upload.py -s "library for all platforms" -p snappy-java -l "Type-Executable,Featured,OpSys-All" -u "$(GOOGLECODE_USER)" target/snappy-java-$(VERSION).jar - touch $@ - -$(TARGET)/snappy-java-$(VERSION)-src.upload: - ./googlecode_upload.py -s "source code archive" -p snappy-java -l "Type-Source,OpSys-All" -u "$(GOOGLECODE_USER)" target/snappy-java-$(VERSION).tar.gz - touch $@ - - + +include Makefile.common + +MVN:=mvn + +all: snappy + +SNAPPY_OUT:=$(TARGET)/$(snappy)-$(os_arch) +SNAPPY_ARCHIVE:=$(TARGET)/snappy-$(VERSION).tar.gz +SNAPPY_CC:=snappy-sinksource.cc snappy-stubs-internal.cc snappy.cc +SNAPPY_SRC_DIR:=$(TARGET)/snappy-$(VERSION) +SNAPPY_SRC:=$(addprefix $(SNAPPY_SRC_DIR)/,$(SNAPPY_CC)) +SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/,$(patsubst %.cc,%.o,$(SNAPPY_CC)) SnappyNative.o) + +SNAPPY_UNPACKED:=$(TARGET)/snappy-extracted.log + +CXXFLAGS:=$(CXXFLAGS) -I$(SNAPPY_SRC_DIR) + +$(SNAPPY_ARCHIVE): + @mkdir -p $(@D) + curl -o$@ http://snappy.googlecode.com/files/snappy-$(VERSION).tar.gz + +$(SNAPPY_UNPACKED): $(SNAPPY_ARCHIVE) + tar xvfz $< -C $(TARGET) + touch $@ + +jni-header: $(SRC)/org/xerial/snappy/SnappyNative.h + + +$(SRC)/org/xerial/snappy/SnappyNative.h: $(SRC)/org/xerial/snappy/SnappyNative.java + @mkdir -p $(TARGET)/classes + $(JAVAH) -classpath $(TARGET)/classes -o $@ org.xerial.snappy.SnappyNative + +bytecode: src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode + +src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode: src/main/resources/org/xerial/snappy/SnappyNativeLoader.java + @mkdir -p $(TARGET)/temp + $(JAVAC) -source 1.5 -target 1.5 -d $(TARGET)/temp $< + cp $(TARGET)/temp/org/xerial/snappy/SnappyNativeLoader.class $@ + +$(SNAPPY_SRC): $(SNAPPY_UNPACKED) + +$(SNAPPY_OUT)/%.o : $(SNAPPY_SRC_DIR)/%.cc + @mkdir -p $(@D) + $(CXX) $(CXXFLAGS) -c $< -o $@ + +$(SNAPPY_OUT)/SnappyNative.o : $(SRC)/org/xerial/snappy/SnappyNative.cpp $(SRC)/org/xerial/snappy/SnappyNative.h + @mkdir -p $(@D) + $(CXX) $(CXXFLAGS) -c $< -o $@ + + +$(SNAPPY_OUT)/$(LIBNAME): $(SNAPPY_OBJ) + $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) + $(STRIP) $@ + +clean-native: + rm -rf $(SNAPPY_OUT) + +clean: + rm -rf $(TARGET) + +NATIVE_DIR:=src/main/resources/org/xerial/snappy/native/$(OS_NAME)/$(OS_ARCH) +NATIVE_TARGET_DIR:=$(TARGET)/classes/org/xerial/snappy/native/$(OS_NAME)/$(OS_ARCH) +NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME) + +snappy-jar-version:=snappy-java-$(shell $(JAVA) -jar lib/silk-weaver.jar find 'project(artifactId, version)' pom.xml | grep snappy-java | awk '{ print $$2; }') + +native: $(SNAPPY_UNPACKED) $(NATIVE_DLL) +snappy: native $(TARGET)/$(snappy-jar-version).jar + +$(NATIVE_DLL): $(SNAPPY_OUT)/$(LIBNAME) + @mkdir -p $(@D) + cp $< $@ + @mkdir -p $(NATIVE_TARGET_DIR) + cp $< $(NATIVE_TARGET_DIR)/$(LIBNAME) + + +$(TARGET)/$(snappy-jar-version).jar: native $(NATIVE_DLL) + $(MVN) package -Dmaven.test.skip=true + +test: $(NATIVE_DLL) + $(MVN) test + +win32: + $(MAKE) native CROSS_PREFIX=i686-w64-mingw32- OS_NAME=Windows OS_ARCH=x86 + +# for cross-compilation on Ubuntu, install the g++-mingw-w64-x86-64 package +win64: + $(MAKE) native CROSS_PREFIX=x86_64-w64-mingw32- OS_NAME=Windows OS_ARCH=amd64 + +mac32: + $(MAKE) native OS_NAME=Mac OS_ARCH=i386 + +linux32: + $(MAKE) native OS_NAME=Linux OS_ARCH=i386 + +# for cross-compilation on Ubuntu, install the g++-arm-linux-gnueabi package +linux-arm: + $(MAKE) native CROSS_PREFIX=arm-linux-gnueabi- OS_NAME=Linux OS_ARCH=arm + +# for cross-compilation on Ubuntu, install the g++-arm-linux-gnueabihf package +linux-armhf: + $(MAKE) native CROSS_PREFIX=arm-linux-gnueabihf- OS_NAME=Linux OS_ARCH=armhf + +clean-native-linux32: + $(MAKE) clean-native OS_NAME=Linux OS_ARCH=i386 + +clean-native-win32: + $(MAKE) clean-native OS_NAME=Windows OS_ARCH=x86 + +javadoc: + $(MVN) javadoc:javadoc -DreportOutputDirectory=wiki/apidocs + + +googlecode-upload: googlecode-lib-upload googlecode-src-upload + +googlecode-lib-upload: $(TARGET)/snappy-java-$(VERSION)-lib.upload +googlecode-src-upload: $(TARGET)/snappy-java-$(VERSION)-src.upload + +GOOGLECODE_USER:=leo@xerial.org + +$(TARGET)/snappy-java-$(VERSION)-lib.upload: + ./googlecode_upload.py -s "library for all platforms" -p snappy-java -l "Type-Executable,Featured,OpSys-All" -u "$(GOOGLECODE_USER)" target/snappy-java-$(VERSION).jar + touch $@ + +$(TARGET)/snappy-java-$(VERSION)-src.upload: + ./googlecode_upload.py -s "source code archive" -p snappy-java -l "Type-Source,OpSys-All" -u "$(GOOGLECODE_USER)" target/snappy-java-$(VERSION).tar.gz + touch $@ + + diff --git a/Makefile.package b/Makefile.package index bf93970..bc7f87e 100755 --- a/Makefile.package +++ b/Makefile.package @@ -1,89 +1,82 @@ -# Makefile for building and collecting native libraries in Win/Mac/Linux (32/64bit). - -include Makefile.common - -RESOURCE_DIR=src/main/resources -NATIVE_DIR=$(RESOURCE_DIR)/native -RSYNC=rsync -av -e ssh --exclude=".hg" - -WORK:=work/hg/snappy-java - -WIN64_SERVER=localhost -MAC_SERVER=172.16.133.41 -MAC_TIGER_SERVER=172.16.133.171 - - -AMD_SERVER=hx02 - - -BUILD_CMD_PREFIX = hg pull -u && make clean-native && make -BUILD_CMD = $(BUILD_CMD_PREFIX) native -TEST_CMD = hg pull -u && mvn test - -all: compile test - -.PHONY: compile test native clean - -DLL_DIR=src/main/resources/org/xerial/snappy/native - -DLL_WIN=$(DLL_DIR)/Windows/x86/snappyjava.dll -DLL_WIN64=$(DLL_DIR)/Windows/amd64/snappyjava.dll -DLL_MAC=$(DLL_DIR)/Mac/x86_64/libsnappyjava.jnilib -DLL_TIGER_MAC=$(DLL_DIR)/Mac/i386/libsnappyjava.jnilib -DLL_LINUX=$(DLL_DIR)/Linux/i386/libsnappyjava.so -DLL_AMD64=$(DLL_DIR)/Linux/amd64/libsnappyjava.so - -version_file:=src/main/java/org/xerial/snappy/VERSION - -$(DLL_WIN): $(version_file) - ssh $(WIN64_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD_PREFIX) win32" - mkdir -p $(dir $(DLL_WIN)) - $(RSYNC) $(WIN_SERVER):./$(WORK)/$(DLL_WIN) $(DLL_WIN) - -$(DLL_WIN64): $(version_file) - ssh $(WIN64_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" - mkdir -p $(dir $(DLL_WIN64)) - $(RSYNC) $(WIN64_SERVER):./$(WORK)/$(DLL_WIN64) $(DLL_WIN64) - -$(DLL_MAC): $(version_file) - ssh $(MAC_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" - mkdir -p $(dir $(DLL_MAC)) - $(RSYNC) $(MAC_SERVER):./$(WORK)/$(DLL_MAC) $(DLL_MAC) - -$(DLL_TIGER_MAC): $(version_file) - ssh $(MAC_TIGER_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" - mkdir -p $(dir $(DLL_TIGER_MAC)) - $(RSYNC) $(MAC_TIGER_SERVER):./$(WORK)/$(DLL_TIGER_MAC) $(DLL_TIGER_MAC) - -$(DLL_LINUX):$(version_file) - ssh $(AMD_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD_PREFIX) linux32" - mkdir -p $(dir $(DLL_LINUX)) - $(RSYNC) $(AMD_SERVER):./$(WORK)/$(DLL_LINUX) $(DLL_LINUX) - -$(DLL_AMD64):$(version_file) - ssh $(AMD_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" - mkdir -p $(dir $(DLL_AMD64)) - $(RSYNC) $(AMD_SERVER):./$(WORK)/$(DLL_AMD64) $(DLL_AMD64) - - -native: $(DLL_WIN) $(DLL_WIN64) $(DLL_LINUX) $(DLL_AMD64) $(DLL_MAC) $(DLL_TIGER_MAC) - -compile: native - -test: - ssh $(WIN64_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" - ssh $(MAC_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" - ssh $(MAC_TIGER_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" - ssh $(AMD_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" - -release: - mvn release:prepare - mvn release:perform - -release-xerial: - mvn release:perform -Dtag=snappy-java-$(VERSION) - -release-sourceforge: - mvn release:perform -Darguments="-P sourceforge" -Dtag=snappy-java-$(VERSION) - - +# Makefile for building and collecting native libraries in Win/Mac/Linux (32/64bit). + +include Makefile.common + +RESOURCE_DIR=src/main/resources +NATIVE_DIR=$(RESOURCE_DIR)/native +RSYNC=rsync -av -e ssh --exclude=".hg" + +WORK:=work/hg/snappy-java + +WIN64_SERVER=localhost +MAC_SERVER=172.16.133.41 +MAC_TIGER_SERVER=172.16.133.171 + + +AMD_SERVER=hx02 + + +BUILD_CMD_PREFIX = hg pull -u && make clean-native && make +BUILD_CMD = $(BUILD_CMD_PREFIX) native +TEST_CMD = hg pull -u && mvn test + +all: compile test + +.PHONY: compile test native clean + +DLL_DIR=src/main/resources/org/xerial/snappy/native + +DLL_WIN=$(DLL_DIR)/Windows/x86/snappyjava.dll +DLL_WIN64=$(DLL_DIR)/Windows/amd64/snappyjava.dll +DLL_MAC=$(DLL_DIR)/Mac/x86_64/libsnappyjava.jnilib +DLL_TIGER_MAC=$(DLL_DIR)/Mac/i386/libsnappyjava.jnilib +DLL_LINUX=$(DLL_DIR)/Linux/i386/libsnappyjava.so +DLL_AMD64=$(DLL_DIR)/Linux/amd64/libsnappyjava.so + +version_file:=src/main/java/org/xerial/snappy/VERSION + +$(DLL_WIN): $(version_file) + ssh $(WIN64_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD_PREFIX) win32" + mkdir -p $(dir $(DLL_WIN)) + $(RSYNC) $(WIN_SERVER):./$(WORK)/$(DLL_WIN) $(DLL_WIN) + +$(DLL_WIN64): $(version_file) + ssh $(WIN64_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" + mkdir -p $(dir $(DLL_WIN64)) + $(RSYNC) $(WIN64_SERVER):./$(WORK)/$(DLL_WIN64) $(DLL_WIN64) + +$(DLL_MAC): $(version_file) + ssh $(MAC_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" + mkdir -p $(dir $(DLL_MAC)) + $(RSYNC) $(MAC_SERVER):./$(WORK)/$(DLL_MAC) $(DLL_MAC) + +$(DLL_TIGER_MAC): $(version_file) + ssh $(MAC_TIGER_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" + mkdir -p $(dir $(DLL_TIGER_MAC)) + $(RSYNC) $(MAC_TIGER_SERVER):./$(WORK)/$(DLL_TIGER_MAC) $(DLL_TIGER_MAC) + +$(DLL_LINUX):$(version_file) + ssh $(AMD_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD_PREFIX) linux32" + mkdir -p $(dir $(DLL_LINUX)) + $(RSYNC) $(AMD_SERVER):./$(WORK)/$(DLL_LINUX) $(DLL_LINUX) + +$(DLL_AMD64):$(version_file) + ssh $(AMD_SERVER) "source .zprofile && cd $(WORK) && $(BUILD_CMD)" + mkdir -p $(dir $(DLL_AMD64)) + $(RSYNC) $(AMD_SERVER):./$(WORK)/$(DLL_AMD64) $(DLL_AMD64) + + +native: $(DLL_WIN) $(DLL_WIN64) $(DLL_LINUX) $(DLL_AMD64) $(DLL_MAC) $(DLL_TIGER_MAC) + +compile: native + +test: + ssh $(WIN64_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" + ssh $(MAC_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" + ssh $(MAC_TIGER_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" + ssh $(AMD_SERVER) "source .zprofile && cd $(WORK) && $(TEST_CMD)" + +release: + mvn deploy -DperformRelease=true + + From 2a1bab904da05be5fab18100edd412a9f82e424c Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Fri, 28 Sep 2012 12:02:23 +0900 Subject: [PATCH 11/11] Set an explicit version number to maven-deploy plugin: --- pom.xml | 522 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 264 insertions(+), 258 deletions(-) diff --git a/pom.xml b/pom.xml index c357bee..6d94e68 100755 --- a/pom.xml +++ b/pom.xml @@ -1,283 +1,289 @@ - + - 4.0.0 - org.xerial.snappy - snappy-java - 1.0.5-M3 - Snappy for Java - snappy-java: A fast compression/decompression library - bundle + 4.0.0 + org.xerial.snappy + snappy-java + 1.0.5-M3 + Snappy for Java + snappy-java: A fast compression/decompression library + bundle - - org.sonatype.oss - oss-parent - 7 - + + org.sonatype.oss + oss-parent + 7 + - - UTF-8 - + + UTF-8 + - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + - - - leo - Taro L. Saito - leo@xerial.org - Xerial Project - - Architect - Project Manager - Chief Developer - - +9 - - + + + leo + Taro L. Saito + leo@xerial.org + Xerial Project + + Architect + Project Manager + Chief Developer + + +9 + + - - xerial.org - http://www.xerial.org/ - + + xerial.org + http://www.xerial.org/ + - - - - src/main/java - - org/xerial/snappy/VERSION - - - - src/main/resources - - org/xerial/snappy/*.bytecode - org/xerial/snappy/native/** - - - - ${basedir} - META-INF/maven/${project.groupId}/${project.artifactId} - - LICENSE* - - - - - - src/test/java - - **/*.java - - - - src/test/resources - - + + + + src/main/java + + org/xerial/snappy/VERSION + + + + src/main/resources + + org/xerial/snappy/*.bytecode + org/xerial/snappy/native/** + + + + ${basedir} + META-INF/maven/${project.groupId}/${project.artifactId} + + LICENSE* + + + + + + src/test/java + + **/*.java + + + + src/test/resources + + - - - org.apache.maven.plugins - maven-resources-plugin - 2.5 - - UTF-8 - - + + + org.apache.maven.plugins + maven-resources-plugin + 2.5 + + UTF-8 + + - - org.apache.maven.plugins - maven-compiler-plugin - 2.0.2 - - 1.5 - 1.5 - - + + org.apache.maven.plugins + maven-deploy-plugin + 2.7 + - - maven-release-plugin - 2.1 - - - deploy - false - true - - + + org.apache.maven.plugins + maven-compiler-plugin + 2.0.2 + + 1.5 + 1.5 + + - - org.apache.maven.plugins - maven-gpg-plugin - 1.4 - - true - - - - sign-artifacts - verify - - sign - - - - + + maven-release-plugin + 2.1 + + + deploy + false + true + + - - org.apache.maven.plugins - maven-javadoc-plugin - 2.8 - - UTF-8 - en_US - public - stylesheet.css - - + + org.apache.maven.plugins + maven-gpg-plugin + 1.4 + + true + + + + sign-artifacts + verify + + sign + + + + - - org.apache.maven.plugins - maven-source-plugin - 2.1.2 - - true - - - - attach-sources - verify - - jar-no-fork - - - - + + org.apache.maven.plugins + maven-javadoc-plugin + 2.8 + + UTF-8 + en_US + public + stylesheet.css + + - - org.apache.felix - maven-bundle-plugin - 2.3.4 - true - - - ${project.groupId}.${project.artifactId} - ${pproject.name} - ${project.version} - org.xerial.snappy.SnappyBundleActivator - org.xerial.snappy - org.osgi.framework;version="[1.5,2)" - - - + + org.apache.maven.plugins + maven-source-plugin + 2.1.2 + + true + + + + attach-sources + verify + + jar-no-fork + + + + - - maven-assembly-plugin - 2.2.1 - - - src/assembly/project.xml - - false - false - - - - make-assembly - package - - single - - - - - + + org.apache.felix + maven-bundle-plugin + 2.3.4 + true + + + ${project.groupId}.${project.artifactId} + ${pproject.name} + ${project.version} + org.xerial.snappy.SnappyBundleActivator + org.xerial.snappy + org.osgi.framework;version="[1.5,2)" + + + - - - org.apache.maven.wagon - wagon-ssh-external - 1.0-beta-7 - - + + maven-assembly-plugin + 2.2.1 + + + src/assembly/project.xml + + false + false + + + + make-assembly + package + + single + + + + + - + + + org.apache.maven.wagon + wagon-ssh-external + 1.0-beta-7 + + + + - http://github.com/xerial/snappy-java/ - - GitHub - http://github.com/xerial/snappy-java/issues/list - - 2011 - - scm:git@github.com:xerial/snappy-java.git - scm:git:git@github.com:xerial/snappy-java.git - git@github.com:xerial/snappy-java.git - + http://github.com/xerial/snappy-java/ + + GitHub + http://github.com/xerial/snappy-java/issues/list + + 2011 + + scm:git@github.com:xerial/snappy-java.git + scm:git:git@github.com:xerial/snappy-java.git + git@github.com:xerial/snappy-java.git + - - - - xerial.local - - - xerial.local - Xerial Maven Repository - file:///home/web/maven.xerial.org/repository/artifact - - - xerial.local - Xerial Maven Snapshot Repository - file:///home/web/maven.xerial.org/repository/snapshot - false - - - xerial.local - file:///home/web/maven.xerial.org/repository/site - - - - + + + + xerial.local + + + xerial.local + Xerial Maven Repository + file:///home/web/maven.xerial.org/repository/artifact + + + xerial.local + Xerial Maven Snapshot Repository + file:///home/web/maven.xerial.org/repository/snapshot + false + + + xerial.local + file:///home/web/maven.xerial.org/repository/site + + + + + + + junit + junit + 4.8.2 + jar + test + - - - junit - junit - 4.8.2 - jar - test - - - - org.codehaus.plexus - plexus-classworlds - 2.4 - jar - test - - - org.osgi - core - 4.3.0 - jar - provided - - - org.xerial - xerial-core - 1.0.21 - jar - test - - + + org.codehaus.plexus + plexus-classworlds + 2.4 + jar + test + + + org.osgi + core + 4.3.0 + jar + provided + + + org.xerial + xerial-core + 1.0.21 + jar + test + +