You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(134) |
Sep
(52) |
Oct
(13) |
Nov
(342) |
Dec
(163) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(44) |
Feb
(62) |
Mar
(158) |
Apr
(38) |
May
(70) |
Jun
(58) |
Jul
(104) |
Aug
(207) |
Sep
(83) |
Oct
(122) |
Nov
(23) |
Dec
(49) |
| 2004 |
Jan
(119) |
Feb
(132) |
Mar
(192) |
Apr
(140) |
May
(77) |
Jun
(74) |
Jul
(201) |
Aug
(63) |
Sep
(102) |
Oct
(70) |
Nov
(173) |
Dec
(78) |
| 2005 |
Jan
(174) |
Feb
(197) |
Mar
(105) |
Apr
(59) |
May
(77) |
Jun
(43) |
Jul
(21) |
Aug
(18) |
Sep
(47) |
Oct
(37) |
Nov
(74) |
Dec
(50) |
| 2006 |
Jan
(44) |
Feb
(19) |
Mar
(32) |
Apr
(24) |
May
(31) |
Jun
(55) |
Jul
(138) |
Aug
(28) |
Sep
(12) |
Oct
(41) |
Nov
(58) |
Dec
(24) |
| 2007 |
Jan
(28) |
Feb
(14) |
Mar
(10) |
Apr
(68) |
May
(30) |
Jun
(26) |
Jul
(18) |
Aug
(63) |
Sep
(19) |
Oct
(29) |
Nov
(20) |
Dec
(10) |
| 2008 |
Jan
(38) |
Feb
(7) |
Mar
(37) |
Apr
(120) |
May
(41) |
Jun
(36) |
Jul
(39) |
Aug
(24) |
Sep
(28) |
Oct
(30) |
Nov
(36) |
Dec
(75) |
| 2009 |
Jan
(46) |
Feb
(22) |
Mar
(50) |
Apr
(70) |
May
(134) |
Jun
(105) |
Jul
(75) |
Aug
(34) |
Sep
(38) |
Oct
(34) |
Nov
(19) |
Dec
(20) |
| 2010 |
Jan
(11) |
Feb
(20) |
Mar
(65) |
Apr
(83) |
May
(104) |
Jun
(73) |
Jul
(78) |
Aug
(57) |
Sep
(43) |
Oct
(35) |
Nov
(9) |
Dec
(4) |
| 2011 |
Jan
(21) |
Feb
(11) |
Mar
(18) |
Apr
(10) |
May
(18) |
Jun
(15) |
Jul
(48) |
Aug
(25) |
Sep
(17) |
Oct
(45) |
Nov
(15) |
Dec
(12) |
| 2012 |
Jan
(21) |
Feb
(9) |
Mar
(12) |
Apr
(9) |
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
(10) |
Sep
(12) |
Oct
(1) |
Nov
(28) |
Dec
(5) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(2) |
2
(2) |
3
(2) |
4
|
5
(2) |
|
6
(5) |
7
(22) |
8
(4) |
9
(5) |
10
(6) |
11
(5) |
12
(7) |
|
13
(11) |
14
(1) |
15
(1) |
16
|
17
|
18
(3) |
19
(1) |
|
20
(10) |
21
(3) |
22
(7) |
23
|
24
(2) |
25
(2) |
26
(2) |
|
27
(1) |
28
(1) |
29
(4) |
30
(9) |
|
|
|
|
From: <ma...@us...> - 2008-04-18 22:41:11
|
Revision: 3024
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3024&view=rev
Author: matzon
Date: 2008-04-18 15:41:05 -0700 (Fri, 18 Apr 2008)
Log Message:
-----------
lzma support for appletloader
Added Paths:
-----------
trunk/LWJGL/doc/3rdparty/lzma_license.txt
trunk/LWJGL/libs/lzma.jar
Added: trunk/LWJGL/doc/3rdparty/lzma_license.txt
===================================================================
--- trunk/LWJGL/doc/3rdparty/lzma_license.txt (rev 0)
+++ trunk/LWJGL/doc/3rdparty/lzma_license.txt 2008-04-18 22:41:05 UTC (rev 3024)
@@ -0,0 +1,15 @@
+LZMA# SDK is licensed under two licenses:
+
+1) GNU Lesser General Public License (GNU LGPL)
+2) Common Public License (CPL)
+
+It means that you can select one of these two licenses and
+follow rules of that license.
+
+SPECIAL EXCEPTION
+Igor Pavlov, as the author of this code, expressly permits you
+to statically or dynamically link your code (or bind by name)
+to the files from LZMA# SDK without subjecting your linked
+code to the terms of the CPL or GNU LGPL.
+Any modifications or additions to files from LZMA# SDK, however,
+are subject to the GNU LGPL or CPL terms.
\ No newline at end of file
Property changes on: trunk/LWJGL/doc/3rdparty/lzma_license.txt
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/LWJGL/libs/lzma.jar
===================================================================
(Binary files differ)
Property changes on: trunk/LWJGL/libs/lzma.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2008-04-18 22:34:17
|
Revision: 3023
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3023&view=rev
Author: matzon
Date: 2008-04-18 15:34:11 -0700 (Fri, 18 Apr 2008)
Log Message:
-----------
support for pack200 and lzma jars
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2008-04-13 19:12:51 UTC (rev 3022)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2008-04-18 22:34:11 UTC (rev 3023)
@@ -47,6 +47,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
@@ -59,6 +60,8 @@
import java.util.StringTokenizer;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Pack200;
/**
* <p>
@@ -99,6 +102,7 @@
* $Id$
*/
public class AppletLoader extends Applet implements Runnable, AppletStub {
+
/** initializing */
public static final int STATE_INIT = 1;
@@ -192,6 +196,12 @@
/** state of applet loader */
protected int state = STATE_INIT;
+ /** whether lzma is supported */
+ protected boolean lzmaSupported = false;
+
+ /** whether pack200 is supported */
+ protected boolean pack200Supported = false;
+
/** generic error message to display on error */
protected String[] genericErrorMessage = { "An error occured while loading the applet.",
"Plese contact support to resolve this issue.",
@@ -209,7 +219,6 @@
* @see java.applet.Applet#init()
*/
public void init() {
-
state = STATE_INIT;
// sanity check
@@ -242,6 +251,22 @@
if(logo == null || progressbar == null) {
fatalErrorOccured("Unable to load logo and progressbar images");
}
+
+ // check for lzma support
+ try {
+ Class.forName("LZMA.LzmaInputStream");
+ lzmaSupported = true;
+ } catch (Throwable e) {
+ /* no lzma support */
+ }
+
+ // check pack200 support
+ try {
+ java.util.jar.Pack200.class.getSimpleName();
+ pack200Supported = true;
+ } catch (Throwable e) {
+ /* no pack200 support */
+ }
}
/*
@@ -419,6 +444,22 @@
return "unknown state";
}
}
+
+ /**
+ * Trims the passed file string based on the available capabilities
+ * @param file string of files to be trimmed
+ * @return trimmed string based on capabilities of client
+ */
+ protected String trimExtensionByCapabilities(String file) {
+ if (!pack200Supported) {
+ file = file.replaceAll(".pack", "");
+ }
+
+ if (!lzmaSupported) {
+ file = file.replaceAll(".lzma", "");
+ }
+ return file;
+ }
/**
* Reads list of jars to download and adds the urls to urlList
@@ -431,6 +472,8 @@
// jars to load
String jarList = getParameter("al_jars");
+ jarList = trimExtensionByCapabilities(jarList);
+
StringTokenizer jar = new StringTokenizer(jarList, ", ");
int jarCount = jar.countTokens() + 1;
@@ -461,6 +504,7 @@
if (nativeJar == null) {
fatalErrorOccured("no lwjgl natives files found");
} else {
+ nativeJar = trimExtensionByCapabilities(nativeJar);
urlList[jarCount - 1] = new URL(path, nativeJar);
}
}
@@ -476,7 +520,6 @@
*
*/
public void run() {
-
state = STATE_CHECKING_CACHE;
percentage = 5;
@@ -542,7 +585,10 @@
// if jars not available or need updating download them
if (!cacheAvailable) {
// downloads jars from the server
- downloadJars(path); // 10-65%
+ downloadJars(path); // 10-55%
+
+ // Extract Pack and LZMA files
+ extractJars(path); // 55-65%
// Extracts Native Files
extractNatives(path); // 65-85%
@@ -699,7 +745,7 @@
if(debugMode) {
sleep(2000);
}
-
+
urlconnection = urlList[i].openConnection();
String currentFile = getFileName(urlList[i]);
@@ -714,7 +760,7 @@
}
fos.write(buffer, 0, bufferSize);
currentSizeDownload += bufferSize;
- percentage = initialPercentage + ((currentSizeDownload * 55) / totalSizeDownload);
+ percentage = initialPercentage + ((currentSizeDownload * 45) / totalSizeDownload);
subtaskMessage = "Retrieving: " + currentFile + " " + ((currentSizeDownload * 100) / totalSizeDownload) + "%";
}
@@ -729,7 +775,7 @@
* @param urlconnection connection to get input stream from
* @return InputStream or null if not possible
*/
- private InputStream getJarInputStream(final String currentFile, final URLConnection urlconnection) throws Exception {
+ protected InputStream getJarInputStream(final String currentFile, final URLConnection urlconnection) throws Exception {
final InputStream[] is = new InputStream[1];
// try to get the input stream 3 times.
@@ -773,8 +819,110 @@
return is[0];
}
+
+ /**
+ * Extract LZMA File
+ * @param in Input path to pack file
+ * @param out output path to resulting file
+ * @throws exception if any errors occur
+ */
+ protected void extractLZMA(String in, String out) throws Exception {
+
+ File f = new File(in);
+ FileInputStream fileInputHandle = new FileInputStream(f);
+ // use reflection to avoid hard dependency
+ Class clazz = Class.forName( "LZMA.LzmaInputStream" );
+ Constructor constructor = clazz.getDeclaredConstructor( new Class[] {InputStream.class} );
+ InputStream inputHandle = (InputStream) constructor.newInstance( new Object[] {fileInputHandle} );
+
+ OutputStream outputHandle;
+ outputHandle = new FileOutputStream(out);
+
+ byte [] buffer = new byte [1<<14];
+
+ int ret = inputHandle.read(buffer);
+ while (ret >= 1) {
+ outputHandle.write(buffer,0,ret);
+ ret = inputHandle.read(buffer);
+ }
+
+ inputHandle.close();
+ outputHandle.close();
+
+ outputHandle = null;
+ inputHandle = null;
+
+ // delete LZMA file, as it is no longer needed
+ f.delete();
+
+ if(debugMode) {
+ sleep(1000);
+ }
+ }
+
/**
+ * Extract Pack File
+ * @param in Input path to pack file
+ * @param out output path to resulting file
+ * @throws exception if any errors occur
+ */
+ protected void extractPack(String in, String out) throws Exception {
+ File f = new File(in);
+ FileOutputStream fostream = new FileOutputStream(out);
+ JarOutputStream jostream = new JarOutputStream(fostream);
+
+ Pack200.Unpacker unpacker = Pack200.newUnpacker();
+ unpacker.unpack(f, jostream);
+ jostream.close();
+
+ // delete pack file as its no longer needed
+ f.delete();
+
+ if(debugMode) {
+ sleep(1000);
+ }
+ }
+
+ /**
+ * Extract all jars from any lzma/pack files
+ *
+ * @param path output path
+ * @throws exception if any errors occur
+ */
+ protected void extractJars(String path) throws Exception {
+ state = STATE_EXTRACTING_PACKAGES;
+
+ float increment = (float) 10.0 / urlList.length;
+ // extract all lzma and pack.lzma files
+ for (int i = 0; i < urlList.length; i++) {
+ percentage += (int) (increment * (i+1));
+ String filename = getFileName(urlList[i]);
+
+ if(debugMode) {
+ sleep(1000);
+ }
+
+ if (filename.endsWith(".pack.lzma")) {
+ extractLZMA(path + filename, path + filename.replaceAll(".lzma", ""));
+ extractPack(path + filename.replaceAll(".lzma", ""), path + filename.replaceAll(".pack.lzma", ""));
+ // update list to contain .jar file
+ urlList[i] = new URL("file://" + path + filename.replaceAll(".pack.lzma", ""));
+ }
+ else if (filename.endsWith(".pack")) {
+ extractPack(path + filename, path + filename.replace(".pack", ""));
+ // update list to contain .jar file
+ urlList[i] = new URL("file://" + path + filename.replaceAll(".pack", ""));
+ }
+ else if (filename.endsWith(".lzma")) {
+ extractLZMA(path + filename, path + filename.replace(".lzma", ""));
+ // update list to contain .jar file
+ urlList[i] = new URL("file://" + path + filename.replaceAll(".lzma", ""));
+ }
+ }
+ }
+
+ /**
* This method will extract all file from the native jar and extract them
* to the subdirectory called "natives" in the local path, will also check
* to see if the native jar files is signed properly
@@ -783,7 +931,7 @@
* @throws Exception if it fails to extract files
*/
protected void extractNatives(String path) throws Exception {
-
+
state = STATE_EXTRACTING_PACKAGES;
int initialPercentage = percentage;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|