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
|
3
(1) |
|
4
|
5
(2) |
6
(2) |
7
|
8
|
9
|
10
|
|
11
|
12
|
13
|
14
|
15
(3) |
16
|
17
|
|
18
|
19
|
20
(3) |
21
(1) |
22
|
23
|
24
|
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
|
From: <jpi...@us...> - 2011-12-21 14:34:50
|
Revision: 3716
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3716&view=rev
Author: jpilgrim
Date: 2011-12-21 14:34:39 +0000 (Wed, 21 Dec 2011)
Log Message:
-----------
Fixed a problem with categories.
Categories are now extracted from site.xml. A default category is created if no site.xml is found or if some features are not mapped to any other category.
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
===================================================================
(Binary files differ)
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-20 19:06:52 UTC (rev 3715)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-21 14:34:39 UTC (rev 3716)
@@ -17,13 +17,19 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.StringWriter;
import java.math.BigInteger;
import java.security.MessageDigest;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
@@ -94,26 +100,11 @@
protected final XPath xpath = XPathFactory.newInstance().newXPath();
- public class FeatureInfo {
-
- public String getClassifier() {
- return "org.eclipse.update.feature";
- }
-
- public String getContentType() {
- return "application/zip";
- }
-
- public String getRootElementName() {
- return "feature";
- }
-
+ public abstract class XMLBasedInfo {
public Document doc;
- public int size;
+ abstract public String getRootElementName();
- public File jarFile;
-
public String xpath(String path) {
if (path.startsWith("/"))
return StandalonePublisher.this.xpath(doc, path);
@@ -139,7 +130,77 @@
return Collections.emptyList();
}
}
+ }
+ public class SiteInfo extends XMLBasedInfo {
+ /**
+ * {@inheritDoc}
+ * @see org.lwjgl.ant.StandalonePublisher.XMLBasedInfo#getRootElementName()
+ */
+ @Override
+ public String getRootElementName() {
+ return "site";
+ }
+ }
+
+ public static class CategoryInfo {
+ String id;
+
+ String name;
+
+ String label;
+
+ String description = "";
+
+ List<FeatureInfo> required = new ArrayList<StandalonePublisher.FeatureInfo>(
+ 5);
+
+ public String getVersion() {
+ String version = "0.0.0";
+ for (FeatureInfo featureInfo : required) {
+ String v = featureInfo.getVersion();
+ if (version.compareTo(v) < 0) {
+ version = v; // quick hack, not really correct
+ }
+ }
+ return version;
+
+ }
+
+ String getID() {
+ if (id == null) {
+ String timeStamp = new SimpleDateFormat("yyyyMMddHHmm")
+ .format(new Date());
+ id = timeStamp + "." + name;
+ }
+ return id;
+ }
+
+ public String getLabel() {
+ if (label==null || label.isEmpty()) return name;
+ return label;
+ }
+
+ }
+
+ public class FeatureInfo extends XMLBasedInfo {
+
+ public String getClassifier() {
+ return "org.eclipse.update.feature";
+ }
+
+ public String getContentType() {
+ return "application/zip";
+ }
+
+ public String getRootElementName() {
+ return "feature";
+ }
+
+ public int size;
+
+ public File jarFile;
+
/**
* @return
*/
@@ -366,7 +427,89 @@
}
+ protected Collection<CategoryInfo> readSite(
+ DocumentBuilder documentBuilder, FeatureInfo[] featureInfos)
+ throws Exception {
+
+ File f = new File(updateSiteFolder + File.separator + "site.xml");
+ if (!f.exists()) {
+ f = new File(updateSiteFolder + File.separator + "category.xml");
+ }
+
+ Map<String, FeatureInfo> featuresById = new HashMap<String, StandalonePublisher.FeatureInfo>();
+ for (FeatureInfo featureInfo : featureInfos) {
+ featuresById.put(featureInfo.getID(), featureInfo);
+ }
+
+ Map<String, CategoryInfo> categoryInfos = new HashMap<String, CategoryInfo>();
+ Map<String, String> featureToGroup = new HashMap<String, String>();
+
+ if (f.exists()) {
+ SiteInfo site = new SiteInfo();
+ site.doc = readXML(documentBuilder, new FileInputStream(f));
+
+ List<Node> categories = site.xpathNods("//site//category-def");
+ for (Node category : categories) {
+ CategoryInfo categoryInfo = new CategoryInfo();
+ categoryInfo.name = xpath(category, "@name");
+ categoryInfo.label = xpath(category, "@label");
+ categoryInfo.description = xpath(category, "description/text()");
+ categoryInfos.put(categoryInfo.name, categoryInfo);
+ }
+
+ List<Node> features = site.xpathNods("//site//feature");
+ for (Node feature : features) {
+ featureToGroup.put(xpath(feature, "@id"),
+ xpath(feature, "category/@name"));
+ }
+
+ }
+
+ // sort features to their category:
+ List<String> sortedFeatures = new ArrayList<String>();
+ for (String id : featuresById.keySet()) {
+ String categoryName = featureToGroup.get(id);
+ if (categoryName != null) {
+ CategoryInfo categoryInfo = categoryInfos.get(categoryName);
+ categoryInfo.required.add(featuresById.get(id));
+ sortedFeatures.add(id);
+ }
+ }
+ for (String id : sortedFeatures) {
+ featuresById.remove(id);
+ }
+
+ if (!featuresById.isEmpty()) {
+ CategoryInfo categoryInfo = categoryInfos.get(this.repositoryName);
+ if (categoryInfo == null) {
+ categoryInfo = new CategoryInfo();
+ categoryInfo.name = this.repositoryName;
+ categoryInfo.label = this.repositoryName;
+ categoryInfo.description = "";
+ categoryInfos.put(categoryInfo.name, categoryInfo);
+ }
+
+ for (FeatureInfo featureInfo : featuresById.values()) {
+ categoryInfo.required.add(featureInfo);
+ }
+
+ }
+
+ return categoryInfos.values();
+ }
+
/**
+ * @param i_documentBuilder
+ * @param i_fileInputStream
+ * @return
+ */
+ protected Document readXML(DocumentBuilder docBuilder, InputStream is)
+ throws Exception {
+ Document doc = docBuilder.parse(is);
+ return doc;
+ }
+
+ /**
* @param docBuilder
* @param jis
* @param jarEntry
@@ -445,7 +588,12 @@
bundleInfos[i] = readBundle(locations[i]);
}
- writeContent(featureInfos, bundleInfos);
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+ Collection<CategoryInfo> categoryInfos = readSite(docBuilder,
+ featureInfos);
+
+ writeContent(featureInfos, bundleInfos, categoryInfos);
writeArtifacts(featureInfos, bundleInfos);
}
@@ -453,10 +601,12 @@
/**
* @param i_featureInfos
* @param i_bundleInfos
+ * @param i_categoryInfos
* @throws Exception
*/
protected void writeContent(FeatureInfo[] i_featureInfos,
- BundleInfo[] i_bundleInfos) throws Exception {
+ BundleInfo[] i_bundleInfos, Collection<CategoryInfo> i_categoryInfos)
+ throws Exception {
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
@@ -499,6 +649,11 @@
for (BundleInfo bundleInfo : i_bundleInfos) {
units.add(createUnitForBundle(bundleInfo));
}
+
+
+ for (CategoryInfo categoryInfo : i_categoryInfos) {
+ units.add(createUnitForCategory(categoryInfo));
+ }
addList(repository, "units", units);
//dump(content);
@@ -632,17 +787,18 @@
String jarFileNameString = targetFile;
int pos = jarFileNameString.lastIndexOf('.');
if (pos > 0) {
- jarFileNameString = jarFileNameString.substring(0, pos) + ".jar";
+ jarFileNameString = jarFileNameString.substring(0, pos)
+ + ".jar";
} else {
jarFileNameString += ".jar";
}
-
+
JarOutputStream target = new JarOutputStream(new FileOutputStream(
jarFileNameString));
-
+
pos = targetFile.lastIndexOf(File.separatorChar);
- if (pos>0) {
- targetFile = targetFile.substring(pos+1);
+ if (pos > 0) {
+ targetFile = targetFile.substring(pos + 1);
}
JarEntry entry = new JarEntry(targetFile);
@@ -798,6 +954,78 @@
}
/**
+ * @param i_categoryInfo
+ * @return
+ */
+ private Element createUnitForCategory(CategoryInfo info) {
+ String version = info.getVersion();
+ String id = info.getID();
+ /*
+ <unit id="201112211149.GEF3D" version="1.0.0.08-77cLX4vE7UEMMMUUMMMlL">
+ */
+ Element unit = createElement("unit", //
+ "id", id, //
+ "version", version);
+ /*
+ <properties size="3">
+ <property name="org.eclipse.equinox.p2.name" value="GEF3D"/>
+ <property name="org.eclipse.equinox.p2.description" value="GEF3D"/>
+ <property name="org.eclipse.equinox.p2.type.category" value="true"/>
+ </properties>
+ */
+ addList(unit,
+ "properties",
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.name", "value",
+ info.getLabel()),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.description", "value",
+ info.description),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.type.category", "value",
+ "true"));
+ /*
+ <provides size="1">
+ <provided namespace="org.eclipse.equinox.p2.iu" name="201112211149.GEF3D" version="1.0.0.08-77cLX4vE7UEMMMUUMMMlL"/>
+ </provides>
+ */
+ addList(unit, "provides",
+ createElement("provided",
+ "namespace", "org.eclipse.equinox.p2.iu",
+ "name", id,
+ "version", version));
+
+ /*
+ <requires size="4">
+ <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.gef3d.sdk.feature.group" range="[0.8.1.201112211149,0.8.1.201112211149]"/>
+ <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.gef3d.feature.group" range="[0.8.1.201112211149,0.8.1.201112211149]"/>
+ ...
+ </requires>
+ */
+ List<Element> requires = new ArrayList<Element>();
+ for (FeatureInfo featureInfo: info.required) {
+ String featureVersion = featureInfo.xpath("@version");
+ String featureName = featureInfo.xpath("@id") + ".feature.group";
+ Element required = createElement("required",
+ "namespace", "org.eclipse.equinox.p2.iu", //
+ "name", featureName, //
+ "range", "[" + featureVersion +"," + featureVersion + "]"
+ );
+ requires.add(required);
+ }
+ addList(unit, "requires", requires);
+
+ /*
+ <touchpoint id="null" version="0.0.0"/>
+ </unit>
+ */
+ addElement(unit, "touchpoint", "id", "null", "version", "0.0.0");
+
+ return unit;
+
+ }
+
+ /**
* @param i_bundleInfo
* @return
* @throws Exception
@@ -1212,7 +1440,8 @@
// publisher.repositoryURI = "http://lwjgl.org/update";
try {
publisher.execute();
- System.out.println("Successfull created p2 metadata in " + publisher.updateSiteFolder);
+ System.out.println("Successfull created p2 metadata in "
+ + publisher.updateSiteFolder);
} catch (Exception ex) {
System.err.println("Error creating p2 metadata: ");
System.err.println(ex);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2011-12-20 19:06:58
|
Revision: 3715
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3715&view=rev
Author: spasi
Date: 2011-12-20 19:06:52 +0000 (Tue, 20 Dec 2011)
Log Message:
-----------
Added @Optional on clSetPrintfCallback for the AMD CL 1.2 preview driver.
Modified Paths:
--------------
trunk/LWJGL/src/templates/org/lwjgl/opencl/CL12.java
Modified: trunk/LWJGL/src/templates/org/lwjgl/opencl/CL12.java
===================================================================
--- trunk/LWJGL/src/templates/org/lwjgl/opencl/CL12.java 2011-12-20 17:16:23 UTC (rev 3714)
+++ trunk/LWJGL/src/templates/org/lwjgl/opencl/CL12.java 2011-12-20 19:06:52 UTC (rev 3715)
@@ -419,6 +419,7 @@
@Check(canBeNull = true) @Const @NativeType("cl_event") PointerBuffer event_wait_list,
@OutParameter @Check(value = "1", canBeNull = true) @NativeType("cl_event") PointerBuffer event);
+ @Optional(reason = "Missing from AMD CL 1.2 preview drivers.")
@Code(
tryBlock = true,
// Create a GlobalRef to the callback object.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2011-12-20 17:16:30
|
Revision: 3714
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3714&view=rev
Author: spasi
Date: 2011-12-20 17:16:23 +0000 (Tue, 20 Dec 2011)
Log Message:
-----------
Updated AMD_pinned_memory based on official spec.
Modified Paths:
--------------
trunk/LWJGL/src/templates/org/lwjgl/opengl/AMD_pinned_memory.java
Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/AMD_pinned_memory.java
===================================================================
--- trunk/LWJGL/src/templates/org/lwjgl/opengl/AMD_pinned_memory.java 2011-12-20 11:04:49 UTC (rev 3713)
+++ trunk/LWJGL/src/templates/org/lwjgl/opengl/AMD_pinned_memory.java 2011-12-20 17:16:23 UTC (rev 3714)
@@ -34,22 +34,10 @@
public interface AMD_pinned_memory {
/**
- * <strong>Official spec not released yet. Info from AMD developer forums:</strong><br/>
- * Create a buffer object, bind it to the GL_EXTERNAL_VIRTUAL_MEMORY_AMD target and call glBufferData to 'allocate' space.
- * When the driver sees you do this, it will use the pointer you supply directly rather than copying the data (that is, the
- * GPU will access your application's memory). You can then use the buffer for other purposes such as a UBO, TBO or VBO by
- * binding it to the appropriate targets. Synchronization is left to the application - make use of glFenceSync and glWaitSync.
- * To release the memory, simply call glBufferData again on the buffer object on a different target, or delete the buffer
- * object. Don't free the memory in the application until you've detached it from the buffer object or bad stuff will happen.
- * <p/>
- * Keep in mind that any memory you access will go over the PCIe bus which will be limited to 3-4 GB/s. This will work much
- * better on Fusion systems (APUs). Theoretically, there isn't a limit to the amount of memory that can be pinned. However,
- * when the OS pins memory, it removes it from the regular pagable pool and cannot swap it to disk (this is what pinning
- * means). If you ask for too much, the OS will refuse to do it and the call will fail (the GL driver will return generate
- * a GL_OUT_OF_MEMORY error). It is very likely that you'll hit this limit long before you run out of address space on the
- * GPU, although in practice we do impose a moderate limit on the amount of pinned memory so as to not impact system stability
- * and performance.
+ * Accepted by the <target> parameters of BindBuffer, BufferData,
+ * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData,
+ * GetBufferParameteriv, GetBufferPointerv, MapBufferRange:
*/
- int GL_EXTERNAL_VIRTUAL_MEMORY_AMD = 0x9160;
+ int GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160;
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jpi...@us...> - 2011-12-20 11:05:00
|
Revision: 3713
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3713&view=rev
Author: jpilgrim
Date: 2011-12-20 11:04:49 +0000 (Tue, 20 Dec 2011)
Log Message:
-----------
StandalonePublisher directly creates jars, no need for additional "jarring".
- added main method to StandalonePublisher creating artifact.xml/jar and content.xml/jar from given (old) Eclise update site.
- when compressed is set to true, artifact.jar and content.jar are created directly. Removed jar task in build script, as these are no longer necessary
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
===================================================================
(Binary files differ)
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-15 19:00:59 UTC (rev 3712)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-20 11:04:49 UTC (rev 3713)
@@ -482,18 +482,7 @@
updatesitefolder="${eclipse.build.plugins}/org.lwjgl.updatesite"
repositoryname="lwjgl.org"
repositoryuri="${eclipse.updatesite}" />
- <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/content.jar">
- <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/content.xml" />
- </jar>
- <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/artifacts.jar">
- <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/artifacts.xml" />
- </jar>
- <delete>
- <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/content.xml" />
- <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/artifacts.xml" />
- </delete>
-
-
+
<echo>Created Eclipse update site: ${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
</target>
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-15 19:00:59 UTC (rev 3712)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-20 11:04:49 UTC (rev 3713)
@@ -11,15 +11,14 @@
package org.lwjgl.ant;
-import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringWriter;
import java.math.BigInteger;
-import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Arrays;
@@ -28,6 +27,7 @@
import java.util.Properties;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
+import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
import javax.xml.parsers.DocumentBuilder;
@@ -626,9 +626,48 @@
* @throws TransformerException
*/
protected void writeDocument(Document content, String targetFile)
+ throws Exception {
+
+ if (compressed) {
+ String jarFileNameString = targetFile;
+ int pos = jarFileNameString.lastIndexOf('.');
+ if (pos > 0) {
+ jarFileNameString = jarFileNameString.substring(0, pos) + ".jar";
+ } else {
+ jarFileNameString += ".jar";
+ }
+
+ JarOutputStream target = new JarOutputStream(new FileOutputStream(
+ jarFileNameString));
+
+ pos = targetFile.lastIndexOf(File.separatorChar);
+ if (pos>0) {
+ targetFile = targetFile.substring(pos+1);
+ }
+
+ JarEntry entry = new JarEntry(targetFile);
+ target.putNextEntry(entry);
+
+ StreamResult sr = new StreamResult(target);
+ doWriteDocument(content, sr);
+ target.closeEntry();
+ target.close();
+ } else {
+ StreamResult sr = new StreamResult(new File(targetFile));
+ doWriteDocument(content, sr);
+ }
+ }
+
+ /**
+ * @param content
+ * @param sr
+ * @throws TransformerFactoryConfigurationError
+ * @throws TransformerConfigurationException
+ * @throws TransformerException
+ */
+ private void doWriteDocument(Document content, StreamResult sr)
throws TransformerFactoryConfigurationError,
TransformerConfigurationException, TransformerException {
- StreamResult sr = new StreamResult(new File(targetFile));
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
Properties oprops = new Properties();
@@ -1164,12 +1203,83 @@
*/
public static void main(String[] args) throws Exception {
StandalonePublisher publisher = new StandalonePublisher();
- publisher.updateSiteFolder = "build/plugins/org.lwjgl.updatesite";
- publisher.repositoryName = "org.lwjgl";
- publisher.repositoryURI = "http://lwjgl.org/update";
- publisher.execute();
+
+ if (!publisher.parseArgs(args)) {
+ help();
+ } else {
+ // publisher.updateSiteFolder = "build/plugins/org.lwjgl.updatesite";
+ // publisher.repositoryName = "org.lwjgl";
+ // publisher.repositoryURI = "http://lwjgl.org/update";
+ try {
+ publisher.execute();
+ System.out.println("Successfull created p2 metadata in " + publisher.updateSiteFolder);
+ } catch (Exception ex) {
+ System.err.println("Error creating p2 metadata: ");
+ System.err.println(ex);
+ ex.printStackTrace();
+ }
+ }
}
+ /**
+ *
+ */
+ static void help() {
+ System.out
+ .println("StandalonePublisher, (C) Jens von Pilgrim 2011 (EPL and BSD license)");
+ System.out
+ .println("Ant task generating p2 metadata for old style Eclipse update site.");
+ System.out
+ .println("Limited support: only bundles and featues are supported, functionality only");
+ System.out.println(" tested for LWJGL update site");
+ System.out
+ .println("If run as command line tool, specify update site folder, repository name");
+ System.out.println(" and URI as follows:");
+ System.out
+ .println(" >java org.ljgl.ant.StandalonePublisher FOLDER NAME URI");
+ System.out
+ .println("Example (supposed tool is called from updatesite folder):");
+ System.out
+ .println(" >java org.lwjgl.ant.StandalonePublisher . org.lwjgl http://lwjgl.org/update");
+ System.out
+ .println("If content.xml and artfact.xml should be compressed, add 'compress'");
+ }
+
+ /**
+ * @param i_args
+ * @return
+ */
+ boolean parseArgs(String[] i_args) {
+ if (i_args == null || i_args.length < 3) {
+ return false;
+ }
+ updateSiteFolder = i_args[0];
+ repositoryName = i_args[1];
+ repositoryURI = i_args[2];
+
+ if (updateSiteFolder.isEmpty() || repositoryName.isEmpty()
+ || repositoryURI.isEmpty()) {
+ return false;
+ }
+
+ File f = new File(updateSiteFolder);
+ if (!f.exists()) {
+ System.err.println("Update site folder does not exist.");
+ return false;
+ }
+ if (!(repositoryURI.startsWith("http") || repositoryURI
+ .startsWith("file"))) {
+ System.out
+ .println("Warning: Repository URI should start with protocol, e.g., http: or file:");
+ }
+
+ if (i_args.length == 4 && "compress".equalsIgnoreCase(i_args[3])) {
+ compressed = true;
+ }
+
+ return true;
+ }
+
/**
* {@inheritDoc}
* @see org.apache.tools.ant.Task#execute()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jpi...@us...> - 2011-12-15 19:01:05
|
Revision: 3712
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3712&view=rev
Author: jpilgrim
Date: 2011-12-15 19:00:59 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
Fixed problems in update site build.
Update site is now build including Eclipse p2 metadata (content.jar and artifact.jar). These files are required by some tools, such as Tycho (a maven plugin making p2 update sites available as maven repositories, see http://eclipse.org/tycho).
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME
trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME 2011-12-15 17:40:06 UTC (rev 3711)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME 2011-12-15 19:00:59 UTC (rev 3712)
@@ -1,5 +1,6 @@
How to build the Eclipse update site
------------------------------------
+Author: Jens von Pilgrim <dev...@je...>
Building the Eclipse update site is fully integrated into the main LWJGL build script.
Here is how to build the update site:
@@ -92,4 +93,6 @@
a plugin does not remove the plugins from the Eclipse installation. When
the very same version is re-installed, instead of loading new files from the
update site these pre-installed versions are reused! Since the date and time
- is added to the plugin version number, this should cause no problems.
\ No newline at end of file
+ is added to the plugin version number, this should cause no problems.
+- default values for keystore, alias and passphrase are the same as in
+ lwjgl-applet
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
===================================================================
(Binary files differ)
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-15 17:40:06 UTC (rev 3711)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-15 19:00:59 UTC (rev 3712)
@@ -14,9 +14,9 @@
<dirname property="eclipse.antscript.basedir" file="${ant.file.eclipse.antscript}" />
- <property name="keystore" value="teststore" />
- <property name="alias" value="tester" />
- <property name="password" value="tester" />
+ <property name="keystore" value="applet/lwjglkeystore" />
+ <property name="alias" value="lwjgl" />
+ <property name="password" value="123456" />
<property name="eclipse.updatesite" value="http://www.lwjgl.org/update/" />
<property name="eclipse.bundle.vendor" value="lwjgl.org" />
@@ -505,6 +505,7 @@
<echo>This plugin is to be called from main LWJGL build.xml file.</echo>
<echo>It creates the update site, the result will be found in</echo>
<echo>${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
+ <echo>For more information, read READ.ME</echo>
</target>
</project>
\ No newline at end of file
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-15 17:40:06 UTC (rev 3711)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-15 19:00:59 UTC (rev 3712)
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.io.StringWriter;
import java.math.BigInteger;
+import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Arrays;
@@ -308,7 +309,6 @@
Document doc = readXMLinJar(docBuilder, jis, jarEntry);
info.doc = doc;
- jis.closeEntry();
break;
}
}
@@ -346,7 +346,6 @@
Document doc = readXMLinJar(docBuilder, jis, jarEntry);
info.doc = doc;
- jis.closeEntry();
break;
}
@@ -378,17 +377,13 @@
protected Document readXMLinJar(DocumentBuilder docBuilder,
JarInputStream jis, JarEntry jarEntry) throws IOException,
SAXException {
- byte[] buffer = new byte[(int) jarEntry.getSize()];
- int count;
- int pos = 0;
- byte data[] = new byte[BUFFERSIZE];
- while ((count = jis.read(data, 0, BUFFERSIZE)) != -1) {
- System.arraycopy(data, 0, buffer, pos, count);
- pos += count;
+ try {
+ Document doc = docBuilder.parse(jis);
+ return doc;
+ } catch (IOException ex) {
+ System.err.println("Error reading jar entry " + jarEntry + ": ex");
+ throw ex;
}
- ByteArrayInputStream bis = new ByteArrayInputStream(buffer);
- Document doc = docBuilder.parse(bis);
- return doc;
}
protected static void dump(Node doc) {
@@ -1105,8 +1100,6 @@
}
return element;
}
-
-
/**
* @return the updateSiteFolder
@@ -1176,20 +1169,20 @@
publisher.repositoryURI = "http://lwjgl.org/update";
publisher.execute();
}
-
+
/**
* {@inheritDoc}
* @see org.apache.tools.ant.Task#execute()
*/
@Override
public void execute() throws BuildException {
- if (updateSiteFolder==null) {
+ if (updateSiteFolder == null) {
throw new BuildException("attribute updateSiteFolder missing");
}
- if (repositoryName==null) {
+ if (repositoryName == null) {
throw new BuildException("attribute repositoryName missing");
}
- if (repositoryURI==null) {
+ if (repositoryURI == null) {
throw new BuildException("attribute repositoryURI missing");
}
try {
@@ -1197,9 +1190,7 @@
} catch (Exception ex) {
throw new BuildException(ex);
}
-
+
}
-
-
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jpi...@us...> - 2011-12-15 17:40:12
|
Revision: 3711
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3711&view=rev
Author: jpilgrim
Date: 2011-12-15 17:40:06 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
fixed typo in update site build script, added publisher task
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-15 17:32:08 UTC (rev 3710)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-15 17:40:06 UTC (rev 3711)
@@ -23,14 +23,19 @@
<taskdef name="packagelist" classname="org.lwjgl.ant.PackageList">
<classpath>
- <pathelement location="eclipse-update/org.lwjgl.build/anttasks.jar" />
+ <pathelement location="${eclipse.antscript.basedir}/anttasks.jar" />
</classpath>
</taskdef>
<taskdef name="normalizeversion" classname="org.lwjgl.ant.NormalizeVersion">
<classpath>
- <pathelement location="eclipse-update/org.lwjgl.build/anttasks.jar" />
+ <pathelement location="${eclipse.antscript.basedir}/anttasks.jar" />
</classpath>
</taskdef>
+ <taskdef name="publishBundlesAndFeatures" classname="org.lwjgl.ant.StandalonePublisher">
+ <classpath>
+ <pathelement location="${eclipse.antscript.basedir}/anttasks.jar" />
+ </classpath>
+ </taskdef>
<!-- properties imported from build-definitions.xml:
<property name="lwjgl.temp" location="temp" />
@@ -61,7 +66,7 @@
<target name="eclipse-updatesite">
<mkdir dir="${lwjgl.temp}"/>
<unzip dest="${lwjgl.temp}/eclipse" src="${lwjgl.dist}/lwjgl-${lwjgl.version}.zip" />
- <antcall target="eclipse-updatesite-simple">
+ <antcall target="eclipse-updatesite-simple" />
</target>
@@ -466,6 +471,29 @@
<signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
<signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <!-- *******************************************************************
+ *
+ * Publish plugins and feature
+ * content.xml/jar and artifacts.xml/jar, required for some newer featues
+ * and tools such as Eclipse Tycho.
+ *
+ ******************************************************************** -->
+ <publishBundlesAndFeatures compressed="true"
+ updatesitefolder="${eclipse.build.plugins}/org.lwjgl.updatesite"
+ repositoryname="lwjgl.org"
+ repositoryuri="${eclipse.updatesite}" />
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/content.jar">
+ <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/content.xml" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/artifacts.jar">
+ <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/artifacts.xml" />
+ </jar>
+ <delete>
+ <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/content.xml" />
+ <fileset file="${eclipse.build.plugins}/org.lwjgl.updatesite/artifacts.xml" />
+ </delete>
+
+
<echo>Created Eclipse update site: ${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
</target>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jpi...@us...> - 2011-12-15 17:32:18
|
Revision: 3710
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3710&view=rev
Author: jpilgrim
Date: 2011-12-15 17:32:08 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
Added new ant task creating p2 metadata file for update site.
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
Added Paths:
-----------
trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
===================================================================
(Binary files differ)
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java (rev 0)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java 2011-12-15 17:32:08 UTC (rev 3710)
@@ -0,0 +1,1205 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Jens von Pilgrim and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jens von Pilgrim - initial implementation
+ ******************************************************************************/
+
+package org.lwjgl.ant;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+import java.util.jar.Manifest;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathFactory;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/**
+ * Ant task creating p2 metadata files "content.xml" and "artifact.xml" based
+ * on existent plugins and features within an update site.
+ * <p>
+ * This task is a lighweight (and quick and dirty) version of the ant task
+ * "p2.publish.featuresAndBundles"
+ * provided by the Eclipse p2 plugin. However, it does not depend on any
+ * Eclipse related classes!
+ * </p>
+ * <p><b>Warning: </b>This task is only tested with the LWJGL update site,
+ * if you have a different update site, you better test it by comparing its
+ * output with the files created by the original p2 tools.</p>
+ *
+ * @author Jens von Pilgrim (dev...@je...)
+ * @since Dec 9, 2011
+ * @see org.eclipse.equinox.p2.publisher.Publisher
+ */
+public class StandalonePublisher extends Task {
+
+ public final static int BUFFERSIZE = 2048;
+
+ public final static FileFilter JAR_FILTER = new FileFilter() {
+
+ public boolean accept(File i_pathname) {
+ return i_pathname.isFile() && i_pathname.getName().endsWith(".jar");
+ }
+ };
+
+ protected String updateSiteFolder;
+
+ protected String repositoryName;
+
+ protected String repositoryURI;
+
+ protected Document currentDoc;
+
+ protected boolean compressed = false;
+
+ protected final XPath xpath = XPathFactory.newInstance().newXPath();
+
+ public class FeatureInfo {
+
+ public String getClassifier() {
+ return "org.eclipse.update.feature";
+ }
+
+ public String getContentType() {
+ return "application/zip";
+ }
+
+ public String getRootElementName() {
+ return "feature";
+ }
+
+ public Document doc;
+
+ public int size;
+
+ public File jarFile;
+
+ public String xpath(String path) {
+ if (path.startsWith("/"))
+ return StandalonePublisher.this.xpath(doc, path);
+ else
+ return StandalonePublisher.this.xpath(doc, "//"
+ + getRootElementName() + "/" + path);
+ }
+
+ public List<Node> xpathNods(String path) {
+ try {
+ XPathExpression expression = xpath.compile(path);
+ NodeList nodes = (NodeList) expression.evaluate(doc,
+ XPathConstants.NODESET);
+
+ List<Node> list = new ArrayList<Node>(nodes.getLength());
+ for (int i = 0; i < nodes.getLength(); i++) {
+ list.add(nodes.item(i));
+ }
+
+ return list;
+ } catch (Exception ex) {
+ System.err.println(ex);
+ return Collections.emptyList();
+ }
+ }
+
+ /**
+ * @return
+ */
+ public String getID() {
+ return xpath("@id");
+ }
+
+ /**
+ * @return
+ */
+ public String getVersion() {
+ return xpath("@version");
+ }
+ }
+
+ public class BundleInfo extends FeatureInfo {
+
+ @Override
+ public String getID() {
+ return mfval("Bundle-SymbolicName");
+ }
+
+ @Override
+ public String getVersion() {
+ return mfval("Bundle-Version");
+ }
+
+ @Override
+ public String getClassifier() {
+ return "osgi.bundle";
+ };
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public String getRootElementName() {
+ return "plugin";
+ }
+
+ public Manifest manifest;
+
+ public String mf(String attrib) {
+ return manifest.getMainAttributes().getValue(attrib);
+ }
+
+ public String mfval(String attrib) {
+ return mfval(attrib, "");
+ }
+
+ /**
+ * @param i_value
+ * @param i_string
+ * @return
+ */
+ public String mfval(String attrib, String key) {
+ String value = manifest.getMainAttributes().getValue(attrib);
+ if (value == null || value.isEmpty())
+ return "";
+ for (String s : value.split(";")) {
+
+ if ("".equals(key))
+ return s;
+ int l = 2;
+ int p = s.indexOf(":=");
+ if (p < 0) {
+ p = s.indexOf("=");
+ l = 1;
+ }
+ if (p > 0) {
+ String k = s.substring(0, p);
+ String v = s.substring(p + l);
+ if (key.equals(k)) {
+ v = v.trim();
+ v = v.replaceAll("^\"([^\"]*)\"$", "\\1");
+ return v;
+ }
+ }
+
+ }
+
+ return "";
+ }
+
+ public String valIndex(String[] attribValues, int index, String key) {
+
+ if (attribValues.length <= index)
+ return "";
+ String value = attribValues[index];
+ for (String s : value.split(";")) {
+
+ if ("".equals(key))
+ return s;
+ int l = 2;
+ int p = s.indexOf(":=");
+ if (p < 0) {
+ p = s.indexOf("=");
+ l = 1;
+ }
+ if (p > 0) {
+ String k = s.substring(0, p);
+ String v = s.substring(p + l);
+ if (key.equals(k)) {
+ v = v.trim();
+ v = v.replaceAll("^\"\\s*", "");
+ v = v.replaceAll("\\s*\"$", "");
+ return v;
+ }
+ }
+
+ }
+
+ return "";
+ }
+
+ public String mfval(String attrib, String key, String def) {
+ String v = mfval(attrib, key);
+ if (v == null || v.isEmpty())
+ return def;
+ return v;
+ }
+
+ public String valIndex(String[] attribValues, int index, String key,
+ String def) {
+ String v = valIndex(attribValues, index, key);
+ if (v == null || v.isEmpty())
+ return def;
+ return v;
+ }
+ }
+
+ protected String xpath(Node node, String path) {
+ try {
+ XPathExpression expression = xpath.compile(path);
+ NodeList nodes = (NodeList) expression.evaluate(node,
+ XPathConstants.NODESET);
+ String s = nodes.item(0).getNodeValue();
+ s = s.replaceAll("^\\s+", "");
+ s = s.replaceAll("\\s+$", "");
+ return s;
+ } catch (Exception ex) {
+ System.err.println(ex);
+ return null;
+ }
+ }
+
+ protected FeatureInfo readFeature(File featureArchive)
+ throws ParserConfigurationException {
+
+ FeatureInfo info = new FeatureInfo();
+ info.jarFile = featureArchive;
+ info.size = (int) featureArchive.length();
+
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+
+ JarInputStream jis = null;
+ try {
+ jis = new JarInputStream(new FileInputStream(featureArchive));
+
+ JarEntry jarEntry;
+ while ((jarEntry = jis.getNextJarEntry()) != null) {
+ if (!jarEntry.isDirectory()
+ && "feature.xml".equals(jarEntry.getName())) {
+
+ Document doc = readXMLinJar(docBuilder, jis, jarEntry);
+ info.doc = doc;
+ jis.closeEntry();
+ break;
+ }
+ }
+
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ } finally {
+ if (jis != null)
+ try {
+ jis.close();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+ return info;
+
+ }
+
+ protected BundleInfo readBundle(File location)
+ throws ParserConfigurationException {
+ BundleInfo info = new BundleInfo();
+ info.jarFile = location;
+ info.size = (int) location.length();
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+ JarInputStream jis = null;
+ try {
+ jis = new JarInputStream(new FileInputStream(location));
+ info.manifest = jis.getManifest();
+
+ JarEntry jarEntry;
+ while ((jarEntry = jis.getNextJarEntry()) != null) {
+ if (!jarEntry.isDirectory()
+ && "plugin.xml".equals(jarEntry.getName())) {
+
+ Document doc = readXMLinJar(docBuilder, jis, jarEntry);
+ info.doc = doc;
+ jis.closeEntry();
+ break;
+ }
+
+ }
+
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ } finally {
+ if (jis != null)
+ try {
+ jis.close();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ return info;
+
+ }
+
+ /**
+ * @param docBuilder
+ * @param jis
+ * @param jarEntry
+ * @return
+ * @throws IOException
+ * @throws SAXException
+ */
+ protected Document readXMLinJar(DocumentBuilder docBuilder,
+ JarInputStream jis, JarEntry jarEntry) throws IOException,
+ SAXException {
+ byte[] buffer = new byte[(int) jarEntry.getSize()];
+ int count;
+ int pos = 0;
+ byte data[] = new byte[BUFFERSIZE];
+ while ((count = jis.read(data, 0, BUFFERSIZE)) != -1) {
+ System.arraycopy(data, 0, buffer, pos, count);
+ pos += count;
+ }
+ ByteArrayInputStream bis = new ByteArrayInputStream(buffer);
+ Document doc = docBuilder.parse(bis);
+ return doc;
+ }
+
+ protected static void dump(Node doc) {
+ System.out.println(doDump(doc));
+ }
+
+ protected static String doDump(Node doc) {
+ StringWriter stringWriter = new StringWriter();
+ StreamResult sr = new StreamResult(stringWriter);
+ TransformerFactory tf = TransformerFactory.newInstance();
+ Transformer t = null;
+ Properties oprops = new Properties();
+ oprops.put(OutputKeys.METHOD, "xml");
+ oprops.put(OutputKeys.STANDALONE, "yes");
+ oprops.put(OutputKeys.INDENT, "yes");
+ try {
+ t = tf.newTransformer();
+ t.setOutputProperties(oprops);
+ t.transform(new DOMSource(doc), sr);
+ } catch (Exception e) {
+ }
+ return stringWriter.toString();
+
+ }
+
+ protected static void dump(Manifest manifest) {
+ System.out.println(doDump(manifest));
+ }
+
+ protected static String doDump(Manifest manifest) {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ try {
+ manifest.write(os);
+ return os.toString();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ return "";
+ }
+ }
+
+ protected static String escapeToXMLAttrib(String s) {
+ return s.replaceAll("\r", "").replaceAll("\n\\s+", "");
+ //.replaceAll("\"", """);
+ }
+
+ public void doExecute() throws Exception {
+ File f = new File(updateSiteFolder + File.separator + "features");
+
+ File[] locations = f.listFiles(JAR_FILTER);
+ FeatureInfo[] featureInfos = new FeatureInfo[locations.length];
+ for (int i = 0; i < locations.length; i++) {
+ featureInfos[i] = readFeature(locations[i]);
+ }
+
+ f = new File(updateSiteFolder + File.separator + "plugins");
+ locations = f.listFiles(JAR_FILTER);
+ BundleInfo[] bundleInfos = new BundleInfo[locations.length];
+ for (int i = 0; i < locations.length; i++) {
+ bundleInfos[i] = readBundle(locations[i]);
+ }
+
+ writeContent(featureInfos, bundleInfos);
+ writeArtifacts(featureInfos, bundleInfos);
+
+ }
+
+ /**
+ * @param i_featureInfos
+ * @param i_bundleInfos
+ * @throws Exception
+ */
+ protected void writeContent(FeatureInfo[] i_featureInfos,
+ BundleInfo[] i_bundleInfos) throws Exception {
+
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+ // <?xml version='1.0' encoding='UTF-8'?>
+ Document content = docBuilder.newDocument();
+ content.setXmlStandalone(false);
+ content.setTextContent(repositoryName);
+ currentDoc = content;
+ // <?metadataRepository version='1.1.0'?>
+
+ content.appendChild(content.createProcessingInstruction(
+ "metadataRepository", "version='1.1.0'"));
+ Element repository = addElement(
+ content,
+ "repository", //
+ "name",
+ repositoryName, //
+ "type",
+ "org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository", //
+ "version", "1");
+
+ addList(repository,
+ "properties",
+ createElement("property", "name", "p2.timestamp", "value",
+ String.valueOf(System.currentTimeMillis())),
+ createElement("property", "name", "p2.compressed", "value",
+ String.valueOf(compressed)));
+
+ addList(repository,
+ "references",
+ createElement("repository", "uri", repositoryURI, "type", "0",
+ "options", "0"));
+
+ List<Element> units = new ArrayList<Element>();
+
+ for (FeatureInfo featureInfo : i_featureInfos) {
+ units.add(createUnitForFeature(featureInfo));
+ units.add(createUnitForFeatureGroups(featureInfo));
+ }
+ for (BundleInfo bundleInfo : i_bundleInfos) {
+ units.add(createUnitForBundle(bundleInfo));
+ }
+ addList(repository, "units", units);
+
+ //dump(content);
+
+ writeDocument(content, updateSiteFolder + File.separator
+ + "content.xml");
+
+ currentDoc = null;
+ }
+
+ /**
+ * @param i_featureInfos
+ * @param i_bundleInfos
+ * @throws Exception
+ */
+ protected void writeArtifacts(FeatureInfo[] i_featureInfos,
+ BundleInfo[] i_bundleInfos) throws Exception {
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+ // <?xml version='1.0' encoding='UTF-8'?>
+ Document artifact = docBuilder.newDocument();
+ artifact.setXmlStandalone(false);
+ currentDoc = artifact;
+
+ // <?metadataRepository version='1.1.0'?>
+
+ artifact.appendChild(artifact.createProcessingInstruction(
+ "artifactRepository", "version='1.1.0'"));
+ Element repository = addElement(artifact,
+ "repository", //
+ "name",
+ repositoryName + " - artifacts", //
+ "type",
+ "org.eclipse.equinox.p2.artifact.repository.simpleRepository", //
+ "version", "1");
+
+ addList(repository,
+ "properties",
+ createElement("property", "name", "p2.timestamp", "value",
+ String.valueOf(System.currentTimeMillis())),
+ createElement("property", "name", "p2.compressed", "value",
+ String.valueOf(compressed)));
+ addList(repository,
+ "mappings",
+ createElement("rule", "filter", "(& (classifier=osgi.bundle))",
+ "output", "${repoUrl}/plugins/${id}_${version}.jar"),
+ createElement("rule", "filter", "(& (classifier=binary))",
+ "output", "${repoUrl}/binary/${id}_${version}"),
+ createElement("rule", "filter",
+ "(& (classifier=org.eclipse.update.feature))",
+ "output", "${repoUrl}/features/${id}_${version}.jar"));
+
+ List<Element> artifacts = new ArrayList<Element>();
+
+ for (BundleInfo bundleInfo : i_bundleInfos) {
+ artifacts.add(createArtifact(bundleInfo));
+ }
+ for (FeatureInfo featureInfo : i_featureInfos) {
+ artifacts.add(createArtifact(featureInfo));
+ }
+ addList(repository, "artifacts", artifacts);
+
+ //dump(artifact);
+
+ writeDocument(artifact, updateSiteFolder + File.separator
+ + "artifacts.xml");
+
+ currentDoc = null;
+
+ }
+
+ /**
+ * @param i_featureInfo
+ * @return
+ * @throws Exception
+ */
+ protected Element createArtifact(FeatureInfo info) throws Exception {
+ Element artifact = createElement("artifact", "classifier",
+ info.getClassifier(), "id", info.getID(), "version",
+ info.getVersion());
+
+ List<Element> properties = new ArrayList<Element>();
+ properties.add(createElement("property", "name", "artifact.size",
+ "value", String.valueOf(info.jarFile.length())));
+ properties.add(createElement("property", "name", "download.size",
+ "value", String.valueOf(info.jarFile.length())));
+ properties.add(createElement("property", "name", "download.md5",
+ "value", String.valueOf(md5(info.jarFile))));
+ String contentType = info.getContentType();
+ if (contentType != null && !contentType.isEmpty()) {
+ properties.add(createElement("property", "name",
+ "download.contentType", "value", contentType));
+ }
+ addList(artifact, "properties", properties);
+
+ return artifact;
+ }
+
+ /**
+ * @param i_jarFile
+ * @return
+ * @throws Exception
+ */
+ protected String md5(File file) throws Exception {
+
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ FileInputStream fis = new FileInputStream(file);
+ byte data[] = new byte[BUFFERSIZE];
+ int count;
+ while ((count = fis.read(data, 0, BUFFERSIZE)) != -1) {
+ md.update(data, 0, count);
+ }
+ byte[] digest = md.digest();
+ BigInteger bigInt = new BigInteger(1, digest);
+ String hashtext = bigInt.toString(16);
+
+ return hashtext;
+
+ }
+
+ /**
+ * @param content
+ * @throws TransformerFactoryConfigurationError
+ * @throws TransformerConfigurationException
+ * @throws TransformerException
+ */
+ protected void writeDocument(Document content, String targetFile)
+ throws TransformerFactoryConfigurationError,
+ TransformerConfigurationException, TransformerException {
+ StreamResult sr = new StreamResult(new File(targetFile));
+ TransformerFactory tf = TransformerFactory.newInstance();
+ Transformer t = tf.newTransformer();
+ Properties oprops = new Properties();
+ oprops.put(OutputKeys.METHOD, "xml");
+ oprops.put(OutputKeys.INDENT, "yes");
+ t.setOutputProperties(oprops);
+ t.transform(new DOMSource(content), sr);
+ }
+
+ /**
+ * @param i_site
+ * @return
+ */
+ protected Element createUnitForFeatureGroups(FeatureInfo info) {
+ String version = info.xpath("@version");
+ // <unit id='org.lwjgl.sdk.feature.group' version='2.8.2.v20111128-1752' singleton='false'>
+ Element unit = createElement("unit", //
+ "id", info.xpath("@id") + ".feature.group", //
+ "version", version, "singleton", "false");
+
+ // <update id='org.lwjgl.sdk.feature.group' range='[0.0.0,2.8.2.v20111128-1752)' severity='0'/>
+ addElement(unit, "update", "id", info.xpath("@id") + ".feature.group",
+ "range", "[0.0.0," + version + ")", "severity", "0");
+
+ /* <properties size='5'>
+ <property name='org.eclipse.equinox.p2.name' value='Lightweight Java Game Library (LWJGL) SDK'/>
+ <property name='org.eclipse.equinox.p2.description' value='This feature provides easy access to the
Lightweight Java Game Library (LWJGL) SDK
for Eclipse plugin developers. It includes
- source code
- javadoc
- info plugin (Test and Info View)
- library tool (Library configuration for plain Java development)'/>
+ <property name='org.eclipse.equinox.p2.description.url' value='http://lwjgl.org'/>
+ <property name='org.eclipse.equinox.p2.provider' value='Lightweight Java Game Library Project'/>
+ <property name='org.eclipse.equinox.p2.type.group' value='true'/>
+ </properties>
+ */
+ addList(unit,
+ "properties",
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.name", "value",
+ info.xpath("@label")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.description", "value",
+ info.xpath("description/text()")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.description.url", "value",
+ info.xpath("description/@url")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.provider", "value",
+ info.xpath("@provider-name")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.type.group", "value", "true"));
+
+ /*
+ <provides size='1'>
+ <provided namespace='org.eclipse.equinox.p2.iu' name='org.lwjgl.sdk.feature.group' version='2.8.2.v20111128-1752'/>
+ </provides>
+ */
+ addList(unit,
+ "provides",
+ createElement("provided", "namespace",
+ "org.eclipse.equinox.p2.iu", "name", info.xpath("@id")
+ + ".feature.group", "version", version));
+ /*
+ <requires size='6'>
+ <required namespace='org.eclipse.equinox.p2.iu' name='org.lwjgl.feature.group' range='0.0.0'/>
+ */
+ List<Element> requires = new ArrayList<Element>();
+ for (Node n : info.xpathNods("//feature//import")) {
+ requires.add(createElement("required", "namespace",
+ "org.eclipse.equinox.p2.iu", "name", xpath(n, "@feature")
+ + ".feature.group", "range",
+ "[" + xpath(n, "@version") + "," + xpath(n, "@version")
+ + "]"));
+ }
+ // <required namespace='org.eclipse.equinox.p2.iu' name='org.lwjgl.doc' range='[2.8.2.v20111128-1752,2.8.2.v20111128-1752]'/>
+ for (Node n : info.xpathNods("//feature//plugin")) {
+ requires.add(createElement("required", "namespace",
+ "org.eclipse.equinox.p2.iu", "name", xpath(n, "@id"),
+ "range",
+ "[" + xpath(n, "@version") + "," + xpath(n, "@version")
+ + "]"));
+ }
+ /*
+ <required namespace='org.eclipse.equinox.p2.iu' name='org.lwjgl.sdk.feature.jar' range='[2.8.2.v20111128-1752,2.8.2.v20111128-1752]'>
+ <filter>
+ (org.eclipse.update.install.features=true)
+ </filter>
+ </required>
+ */
+ Element reqFeature = createElement("required", "namespace",
+ "org.eclipse.equinox.p2.iu", "name", info.xpath("@id")
+ + ".feature.jar", "range", "[" + version + ","
+ + version + "]");
+ addElement(reqFeature, "filter").setTextContent(
+ "(org.eclipse.update.install.features=true)");
+ requires.add(reqFeature);
+ addList(unit, "requires", requires);
+
+ // <touchpoint id='null' version='0.0.0'/>
+ addElement(unit, "touchpoint", "id", "null", "version", "0.0.0");
+
+ /*
+ <licenses size='1'>
+ <license uri='http://lwjgl.org/license.php' url='http://lwjgl.org/license.php'>
+ Copyright (c) 2002-2011 Lightweight Java Game Library Project
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
 notice, this list of conditions and the following disclaimer in the
 documentation and/or other materials provided with the distribution.

* Neither the name of 'Light Weight Java Game Library' nor the names of
 its contributors may be used to endorse or promote products derived
 from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ </license>
+ </licenses>
+ */
+ List<Element> list = new ArrayList<Element>();
+ for (Node n : info.xpathNods("//feature//license")) {
+ Element l = createElement("license", "uri", xpath(n, "@url"),
+ "url", xpath(n, "@url"));
+ l.setTextContent(escapeToXMLAttrib(xpath(n, "text()")));
+ list.add(l);
+ }
+ addList(unit, "licenses", list);
+
+ /*
+ <copyright uri='http://lwjgl.org/credits.php' url='http://lwjgl.org/credits.php'>
+ Copyright (c) 2002-2011 Lightweight Java Game Library Project
All rights reserved.

LWJGL is available under a BSD license, which means it's open
source and freely available at no charge.

Eclipse feature and plugins, plugin specific code made available under a 
BSD license and Eclipse Public License (EPL).
+ </copyright>
+ </unit>
+ */
+ Element l = createElement("copyright", "uri",
+ info.xpath("copyright/@url"), "url",
+ info.xpath("copyright/@url"));
+ l.setTextContent(escapeToXMLAttrib(info.xpath("copyright/text()")));
+ unit.appendChild(l);
+
+ return unit;
+ }
+
+ /**
+ * @param i_bundleInfo
+ * @return
+ * @throws Exception
+ */
+ protected Element createUnitForFeature(FeatureInfo info) throws Exception {
+
+ String version = info.xpath("@version");
+
+ // <unit id='org.lwjgl.sdk.feature.jar' version='2.8.2.v20111128-1752'>
+ Element unit = createElement("unit", //
+ "id", info.xpath("@id") + ".feature.jar", //
+ "version", version);
+
+ /* <properties size='4'>
+ <property name='org.eclipse.equinox.p2.name' value='Lightweight Java Game Library (LWJGL) SDK'/>
+ <property name='org.eclipse.equinox.p2.description' value='This feature provides easy access to the
Lightweight Java Game Library (LWJGL) SDK
for Eclipse plugin developers. It includes
- source code
- javadoc
- info plugin (Test and Info View)
- library tool (Library configuration for plain Java development)'/>
+ <property name='org.eclipse.equinox.p2.description.url' value='http://lwjgl.org'/>
+ <property name='org.eclipse.equinox.p2.provider' value='Lightweight Java Game Library Project'/>
+ </properties>
+ */
+ addList(unit,
+ "properties",
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.name", "value",
+ info.xpath("@label")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.description", "value",
+ info.xpath("description/text()")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.description.url", "value",
+ info.xpath("description/@url")),
+ createElement("property", "name",
+ "org.eclipse.equinox.p2.provider", "value",
+ info.xpath("@provider-name")));
+ /*
+ <provides size='3'>
+ <provided namespace='org.eclipse.equinox.p2.iu' name='org.lwjgl.sdk.feature.jar' version='2.8.2.v20111128-1752'/>
+ <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' version='1.0.0'/>
+ <provided namespace='org.eclipse.update.feature' name='org.lwjgl.sdk' version='2.8.2.v20111128-1752'/>
+ </provides>
+ */
+ addList(unit,
+ "provides",
+ createElement("provided", "namespace",
+ "org.eclipse.equinox.p2.iu", "name", info.xpath("@id")
+ + ".feature.jar", "version", version),
+ createElement("provided", "namespace",
+ "org.eclipse.equinox.p2.eclipse.type", "name",
+ "feature", "version", "1.0.0"),
+ createElement("provided", "namespace",
+ "org.eclipse.update.feature", "name",
+ info.xpath("@id"), "version", version));
+ /*
+ <filter>
+ (org.eclipse.update.install.features=true)
+ </filter>
+ */
+ addElement(unit, "filter").setTextContent(
+ "(org.eclipse.update.install.features=true)");
+
+ /*
+ <artifacts size='1'>
+ <artifact classifier='org.eclipse.update.feature' id='org.lwjgl.sdk' version='2.8.2.v20111128-1752'/>
+ </artifacts>
+ */
+ addList(unit,
+ "artifacts",
+ createElement("artifact", "classifier",
+ "org.eclipse.update.feature", "id", info.xpath("@id"),
+ "version", version));
+
+ // <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
+ addElement(unit, "touchpoint", "id", "org.eclipse.equinox.p2.osgi",
+ "version", "1.0.0");
+
+ /*
+ <touchpointData size='1'>
+ <instructions size='1'>
+ <instruction key='zipped'>
+ true
+ </instruction>
+ </instructions>
+ </touchpointData>
+ */
+ Element valueZipped = createElement("instruction", "key", "zipped");
+ valueZipped.setTextContent("true");
+ addList(unit, "touchpointData", createList("instructions", valueZipped));
+
+ /*
+ <licenses size='1'>
+ <license uri='http://lwjgl.org/license.php' url='http://lwjgl.org/license.php'>
+ Copyright (c) 2002-2011 Lightweight Java Game Library Project
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
 notice, this list of conditions and the following disclaimer in the
 documentation and/or other materials provided with the distribution.

* Neither the name of 'Light Weight Java Game Library' nor the names of
 its contributors may be used to endorse or promote products derived
 from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ </license>
+ </licenses>
+ */
+ List<Element> list = new ArrayList<Element>();
+ for (Node n : info.xpathNods("//feature//license")) {
+ Element l = createElement("license", "uri", xpath(n, "@url"),
+ "url", xpath(n, "@url"));
+ l.setTextContent(escapeToXMLAttrib(xpath(n, "text()")));
+ list.add(l);
+ }
+ addList(unit, "licenses", list);
+
+ /*
+ <copyright uri='http://lwjgl.org/credits.php' url='http://lwjgl.org/credits.php'>
+ Copyright (c) 2002-2011 Lightweight Java Game Library Project
All rights reserved.

LWJGL is available under a BSD license, which means it's open
source and freely available at no charge.

Eclipse feature and plugins, plugin specific code made available under a 
BSD license and Eclipse Public License (EPL).
+ </copyright>
+ </unit>
+ */
+ Element l = createElement("copyright", "uri",
+ info.xpath("copyright/@url"), "url",
+ info.xpath("copyright/@url"));
+ l.setTextContent(escapeToXMLAttrib(info.xpath("copyright/text()")));
+ unit.appendChild(l);
+
+ return unit;
+ }
+
+ /**
+ * @param i_bundleInfo
+ * @return
+ */
+ protected Element createUnitForBundle(BundleInfo info) {
+
+ String version = info.mfval("Bundle-Version");
+ /*
+ <unit id='org.lwjgl' version='2.8.2.v20111128-1752' singleton='false'>
+ */
+ Element unit = createElement("unit", "id",
+ info.mfval("Bundle-SymbolicName"), "version", version,
+ "singleton",
+ info.mfval("Bundle-SymbolicName", "singleton", "false"));
+
+ // <update id='org.lwjgl' range='[0.0.0,2.8.2.v20111128-1752)' severity='0'/>
+ addElement(unit, "update", "id", info.mfval("Bundle-SymbolicName"),
+ "range", "[0.0.0," + version + ")", "severity", "0");
+
+ /*
+ <properties size='2'>
+ <property name='org.eclipse.equinox.p2.name' value='LWJGL Lightweight Java Game Library'/>
+ <property name='org.eclipse.equinox.p2.provider' value='lwjgl.org'/>
+ </properties>
+ */
+ List<Element> properties = new ArrayList<Element>();
+ mf2properties(info, properties, "Bundle-Name",
+ "org.eclipse.equinox.p2.name", "Bundle-Vendor",
+ "org.eclipse.equinox.p2.provider", "Bundle-Localization",
+ "org.eclipse.equinox.p2.bundle.localization");
+ addList(unit, "properties", properties);
+
+ /*
+ <provides size='32'>
+ <provided namespace='org.eclipse.equinox.p2.iu' name='org.lwjgl' version='2.8.2.v20111128-1752'/>
+ <provided namespace='osgi.bundle' name='org.lwjgl' version='2.8.2.v20111128-1752'/>
+ <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
+
+ <provided namespace='java.package' name='org.lwjgl.eclipse' version='0.0.0'/>
+ ...
+
+ </provides>
+ */
+
+ List<Element> elements = new ArrayList<Element>();
+ elements.add(createElement("provided", "namespace",
+ "org.eclipse.equinox.p2.iu", "name",
+ info.mfval("Bundle-SymbolicName"), "version", version));
+ elements.add(createElement("provided", "namespace", "osgi.bundle",
+ "name", info.mfval("Bundle-SymbolicName"), "version", version));
+ elements.add(createElement("provided", "namespace",
+ "org.eclipse.equinox.p2.eclipse.type", "name", "bundle",
+ "version", "1.0.0"));
+
+ String expPackages = info.mf("Export-Package");
+ if (expPackages != null) {
+ String[] ps = expPackages.split("\\s*,\\s*");
+ for (int i = 0; i < ps.length; i++) {
+ String name = info.valIndex(ps, i, "");
+ elements.add(createElement("provided", "namespace",
+ "java.package", "name", name, "version", "0.0.0"));
+ }
+ }
+ addList(unit, "provides", elements);
+
+ /*
+ <requires size='2'>
+ <required namespace='osgi.bundle' name='org.eclipse.ui' range='0.0.0'/>
+ <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='0.0.0'/>
+ </requires>
+ */
+ /*
+ Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="3.4.0",
+ org.eclipse.jdt.core;bundle-version="3.4.0",
+ org.eclipse.jdt.ui;bundle-version="3.4.0",
+ org.eclipse.jdt.launching;bundle-version="3.4.0",
+ org.lwjgl;bundle-version="2.0.0"
+ */
+ String reqBundles = info.mf("Require-Bundle");
+ if (reqBundles != null) {
+ elements = new ArrayList<Element>();
+ String[] ps = reqBundles.split("\\s*,\\s*");
+ for (int i = 0; i < ps.length; i++) {
+ String name = info.valIndex(ps, i, "");
+ String range = info.valIndex(ps, i, "bundle-version");
+ if (range == null || range.isEmpty())
+ range = "0.0.0";
+ elements.add(createElement("required", "namespace",
+ "osgi.bundle", "name", name, "range", range));
+ }
+ addList(unit, "requires", elements);
+ }
+
+ /*
+ <artifacts size='1'>
+ <artifact classifier='osgi.bundle' id='org.lwjgl' version='2.8.2.v20111128-1752'/>
+ </artifacts>
+ */
+ addList(unit,
+ "artifacts",
+ createElement("artifact", "classifier", "osgi.bundle", "id",
+ info.mfval("Bundle-SymbolicName"), "version", version));
+
+ /*
+ <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
+ */
+ addElement(unit, "touchpoint", "id", "org.eclipse.equinox.p2.osgi",
+ "version", "1.0.0");
+
+ /*
+ <touchpointData size='1'>
+ <instructions size='2'>
+ <instruction key='manifest'>
+ Bundle-Name: LWJGL Lightweight Java Game Library
Bundle-ClassPath: .,AppleJavaExtensions.jar,asm-debug-all.jar,jinput.jar,lwjgl.jar,lwjgl_util.jar,lwjgl_util_applet.jar,lzma.jar
Bundle-Version: 2.8.2.v20111128-1752
Bundle-Activator: org.lwjgl.Activator
Created-By: 20.1-b02-384 (Apple Inc.)
Bundle-Vendor: lwjgl.org
Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime
Export-Package: org.lwjgl.eclipse,LZMA,com.apple.eawt,com.apple.eio,net.java.games.input,net.java.games.util,net.java.games.util.plugins,org.lwjgl,org.lwjgl.input,org.lwjgl.openal,org.lwjgl.opencl,org.lwjgl.opencl.api,org.lwjgl.opengl,org.lwjgl.opengles,org.lwjgl.util,org.lwjgl.util.applet,org.lwjgl.util.glu,org.lwjgl.util.glu.tessellation,org.lwjgl.util.input,org.lwjgl.util.jinput,org.lwjgl.util.mapped,org.lwjgl.util.vector,org.objectweb.asm,org.objectweb.asm.commons,org.objectweb.asm.signature,org.objectweb.asm.tree,org.objectweb.asm.tree.analysis,org.objectweb.asm.util,org.objectweb.asm.xml
Bundle-SymbolicName: org.lwjgl
Ant-Version: Apache Ant 1.7.1
Manifest-Version: 1.0
Bundle-ActivationPolicy: lazy
Bundle-ManifestVersion: 2
Bundle-RequiredExecutionEnvironment: J2SE-1.5

+ </instruction>
+ <instruction key='zipped'>
+ true
+ </instruction>
+ </instructions>
+ </touchpointData>
+ */
+ /*
+ <touchpointData size='1'>
+ <instructions size='1'>
+ <instruction key='zipped'>
+ true
+ </instruction>
+ </instructions>
+ </touchpointData>
+ */
+ Element valueZipped = createElement("instruction", "key", "zipped");
+ valueZipped.setTextContent("true");
+ Element manifest = createElement("instruction", "key", "manifest");
+ manifest.setTextContent(escapeToXMLAttrib(doDump(info.manifest)));
+ addList(unit, "touchpointData",
+ createList("instructions", manifest, valueZipped));
+
+ return unit;
+ }
+
+ /**
+ *
+ */
+ protected void mf2properties(BundleInfo info, List<Element> o_properties,
+ String... propName) {
+ for (int i = 0; i < propName.length; i += 2) {
+ String value = info.mfval(propName[i]);
+ if (value != null && !value.isEmpty()) {
+ o_properties.add(createElement("property", "name",
+ propName[i + 1], "value", value));
+ }
+ }
+ }
+
+ /**
+ * @param i_content
+ * @param i_string
+ * @param i_createElement
+ * @param i_createElement2
+ */
+ protected Element addList(Element parent, String listName,
+ Element... content) {
+ return addList(parent, listName, Arrays.asList(content));
+ }
+
+ /**
+ * @param i_content
+ * @param i_string
+ * @param i_createElement
+ * @param i_createElement2
+ */
+ protected Element addList(Element parent, String listName,
+ List<Element> content) {
+ Element list = createList(listName, content);
+ parent.appendChild(list);
+ return list;
+ }
+
+ protected Element createList(String listName, Element... content) {
+ return createList(listName, Arrays.asList(content));
+ }
+
+ /**
+ * @param listName
+ * @param content
+ * @return
+ */
+ protected Element createList(String listName, List<Element> content) {
+ Element list = createElement(listName, "size",
+ String.valueOf(content.size()));
+ for (Element e : content) {
+ list.appendChild(e);
+ }
+ return list;
+ }
+
+ /**
+ * @param i_content
+ * @param i_repository
+ * @return
+ */
+ protected Element addElement(Node parent, String name,
+ String... propName_Values) {
+
+ Element child = createElement(name, propName_Values);
+ parent.appendChild(child);
+ return child;
+ }
+
+ protected Element createElement(String name, String... propName_Values) {
+ if (propName_Values.length % 2 != 0) {
+ throw new IllegalArgumentException("expected key values pairs");
+ }
+ Element element = currentDoc.createElement(name);
+ for (int i = 0; i < propName_Values.length; i += 2) {
+ if (propName_Values[i + 1] != null)
+ element.setAttribute(propName_Values[i], propName_Values[i + 1]);
+ }
+ return element;
+ }
+
+
+
+ /**
+ * @return the updateSiteFolder
+ */
+ public String getUpdateSiteFolder() {
+ return updateSiteFolder;
+ }
+
+ /**
+ * @param i_updateSiteFolder the updateSiteFolder to set
+ */
+ public void setUpdateSiteFolder(String i_updateSiteFolder) {
+ updateSiteFolder = i_updateSiteFolder;
+ }
+
+ /**
+ * @return the repositoryName
+ */
+ public String getRepositoryName() {
+ return repositoryName;
+ }
+
+ /**
+ * @param i_repositoryName the repositoryName to set
+ */
+ public void setRepositoryName(String i_repositoryName) {
+ repositoryName = i_repositoryName;
+ }
+
+ /**
+ * @return the repositoryURI
+ */
+ public String getRepositoryURI() {
+ return repositoryURI;
+ }
+
+ /**
+ * @param i_repositoryURI the repositoryURI to set
+ */
+ public void setRepositoryURI(String i_repositoryURI) {
+ repositoryURI = i_repositoryURI;
+ }
+
+ /**
+ * @return the compressed
+ */
+ public boolean isCompressed() {
+ return compressed;
+ }
+
+ /**
+ * @param i_compressed the compressed to set
+ */
+ public void setCompressed(boolean i_compressed) {
+ compressed = i_compressed;
+ }
+
+ /**
+ * Basically for testing.
+ * @param args
+ * @throws Exception
+ */
+ public static void main(String[] args) throws Exception {
+ StandalonePublisher publisher = new StandalonePublisher();
+ publisher.updateSiteFolder = "build/plugins/org.lwjgl.updatesite";
+ publisher.repositoryName = "org.lwjgl";
+ publisher.repositoryURI = "http://lwjgl.org/update";
+ publisher.execute();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ @Override
+ public void execute() throws BuildException {
+ if (updateSiteFolder==null) {
+ throw new BuildException("attribute updateSiteFolder missing");
+ }
+ if (repositoryName==null) {
+ throw new BuildException("attribute repositoryName missing");
+ }
+ if (repositoryURI==null) {
+ throw new BuildException("attribute repositoryURI missing");
+ }
+ try {
+ doExecute();
+ } catch (Exception ex) {
+ throw new BuildException(ex);
+ }
+
+ }
+
+
+
+}
Property changes on: trunk/LWJGL/eclipse-update/org.lwjgl.build/src/java/org/lwjgl/ant/StandalonePublisher.java
___________________________________________________________________
Added: svn:keywords
+ Date Revision Author HeadURL Id
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2011-12-06 22:46:34
|
Revision: 3709
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3709&view=rev
Author: matzon
Date: 2011-12-06 22:46:27 +0000 (Tue, 06 Dec 2011)
Log Message:
-----------
updating update site build script to use pre-packaged zip file in dist, updating signjar to not use keypass
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-06 22:42:23 UTC (rev 3708)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-06 22:46:27 UTC (rev 3709)
@@ -17,7 +17,6 @@
<property name="keystore" value="teststore" />
<property name="alias" value="tester" />
<property name="password" value="tester" />
- <property name="keypass" value="${password}" />
<property name="eclipse.updatesite" value="http://www.lwjgl.org/update/" />
<property name="eclipse.bundle.vendor" value="lwjgl.org" />
@@ -59,8 +58,10 @@
<property name="NL" value=" " />
- <target name="eclipse-updatesite" depends="release">
- <antcall target="eclipse-updatesite-simple" />
+ <target name="eclipse-updatesite">
+ <mkdir dir="${lwjgl.temp}"/>
+ <unzip dest="${lwjgl.temp}/eclipse" src="${lwjgl.dist}/lwjgl-${lwjgl.version}.zip" />
+ <antcall target="eclipse-updatesite-simple">
</target>
@@ -97,7 +98,7 @@
</copy>
<!-- Copy LWJGL native files and classes -->
<copy todir="${eclipse.build.plugins}/org.lwjgl">
- <fileset dir="${lwjgl.temp}">
+ <fileset dir="${lwjgl.temp}/eclipse/lwjgl-${lwjgl.version}/">
<patternset refid="lwjgl_base"/>
</fileset>
</copy>
@@ -247,7 +248,7 @@
<!-- Calculate package export and bundle class paths -->
<packagelist property="eclipse.bundle.export-package" pathsep=",${NL} ">
- <fileset dir="${lwjgl.temp}/jar">
+ <fileset dir="${lwjgl.temp}/eclipse/lwjgl-${lwjgl.version}/jar">
<exclude name="**/lwjgl-debug.jar" />
</fileset>
<patternset>
@@ -256,8 +257,8 @@
</patternset>
</packagelist>
<pathconvert property="eclipse.bundle.classpath.jars" pathsep=",${NL} ">
- <map from="${lwjgl.temp}/jar/" to="" />
- <fileset dir="${lwjgl.temp}/jar">
+ <map from="${lwjgl.temp}/eclipse/lwjgl-${lwjgl.version}/jar/" to="" />
+ <fileset dir="${lwjgl.temp}/eclipse/lwjgl-${lwjgl.version}/jar">
<exclude name="**/lwjgl-debug.jar" />
<exclude name="**/lwjgl_test.jar" />
</fileset>
@@ -457,19 +458,14 @@
*
******************************************************************** -->
- <input message="Please enter the keystore" addproperty="keystore.location" defaultvalue="applet/lwjglkeystore"/>
- <input message="Please enter the keystore alias" addproperty="keystore.alias" defaultvalue="lwjgl"/>
- <input message="Please type the password for the keystore" addproperty="sign.pwd" defaultvalue="123456"/>
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
-
-
<echo>Created Eclipse update site: ${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
</target>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2011-12-06 22:42:29
|
Revision: 3708
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3708&view=rev
Author: matzon
Date: 2011-12-06 22:42:23 +0000 (Tue, 06 Dec 2011)
Log Message:
-----------
adding eclipse update site to main build file
Modified Paths:
--------------
trunk/LWJGL/build.xml
Modified: trunk/LWJGL/build.xml
===================================================================
--- trunk/LWJGL/build.xml 2011-12-05 21:49:02 UTC (rev 3707)
+++ trunk/LWJGL/build.xml 2011-12-06 22:42:23 UTC (rev 3708)
@@ -7,6 +7,7 @@
<import file="platform_build/build-applet.xml"/>
<import file="platform_build/build-webstart.xml"/>
<import file="platform_build/build-maven.xml"/>
+ <import file="eclipse-update/org.lwjgl.build/build-updatesite.xml"/>
<!-- ================================================================== -->
<!-- Everything below this line is targets. -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jpi...@us...> - 2011-12-05 21:49:09
|
Revision: 3707
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3707&view=rev
Author: jpilgrim
Date: 2011-12-05 21:49:02 +0000 (Mon, 05 Dec 2011)
Log Message:
-----------
signing information are interactively retrieved similar to applet build
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-05 12:41:45 UTC (rev 3706)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-05 21:49:02 UTC (rev 3707)
@@ -457,15 +457,19 @@
*
******************************************************************** -->
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
- <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <input message="Please enter the keystore" addproperty="keystore.location" defaultvalue="applet/lwjglkeystore"/>
+ <input message="Please enter the keystore alias" addproperty="keystore.alias" defaultvalue="lwjgl"/>
+ <input message="Please type the password for the keystore" addproperty="sign.pwd" defaultvalue="123456"/>
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" keystore="${keystore.location}" alias="${keystore.alias}" storepass="${sign.pwd}" />
+
<echo>Created Eclipse update site: ${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
</target>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jpi...@us...> - 2011-12-05 12:41:53
|
Revision: 3706
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3706&view=rev
Author: jpilgrim
Date: 2011-12-05 12:41:45 +0000 (Mon, 05 Dec 2011)
Log Message:
-----------
Added new Eclipse update site build script to be imported from main LWJGL build script.
See org.lwjgl.build/README for details.
Removed old build script depending on pre-build LWJGL archives.
Modified Paths:
--------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME
Added Paths:
-----------
trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
trunk/LWJGL/eclipse-update/org.lwjgl.build/buildEclipseClasses.xml
trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/
trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.info.zip
trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.tools.zip
trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.zip
Removed Paths:
-------------
trunk/LWJGL/eclipse-update/org.lwjgl.build/build.xml
trunk/LWJGL/eclipse-update/org.lwjgl.build/lwjgl-archives/
Modified: trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME 2011-12-03 11:10:44 UTC (rev 3705)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/READ.ME 2011-12-05 12:41:45 UTC (rev 3706)
@@ -1,3 +1,33 @@
+How to build the Eclipse update site
+------------------------------------
+
+Building the Eclipse update site is fully integrated into the main LWJGL build script.
+Here is how to build the update site:
+
+Run main lwjgl ant script (LWJGL/build.xml) with target "eclipse-updatesite"
+
+You will find the updatesite in
+ LWJGL/eclipse-update/org.lwjgl.build/build/plugins/org.lwjgl.updatesite
+
+Note that there are two targets: eclipse-updatesite and
+eclipse-updatesite-simple. The first one depends from the target "release",
+defined in the main build file. However, if you are sure the relase target has
+been called before, you may want to only create the update site without
+building the release target again. In that case, you can all
+eclipse-update-simple.
+
+The update site build requires some Java classes to be precompiled. These classes
+can be found in some zip archives in folder plugin-classes and anttasks.jar.
+Building these classes requires Eclipse dependencies (in case of the
+plugin-classes) or they define anttasks required to be present when running ant.
+In order to build these classes, open all projects found in subfolder
+LWJGL/eclipse-update in Eclipse: this way, all Eclipse classes will get
+automatically compiled. Then run the ant script buildEclipseClasses.xml from
+within Eclipse. Actually, this is rarely necessary as the archives are all
+committed to the LWJGL SVN and will be present if you check out everything. You
+only need to run that build if the Eclise plugin classes (or the anttasks) were
+changed.
+
The build plugin is part of the LWJGL Eclipse plugins. The following plugins are
required:
@@ -46,35 +76,11 @@
This is the build script project. Although it is an Eclipse project, you can
simply run the build script with ant from command line. See later on.
-Everything is created in org.lwjgl.build/build.
-Here is how to build the update site:
+Everything is created in LWJGL/eclipse-update/org.lwjgl.build/build.
-1) Create a new folder in org.lwjgl.build/lwjgl-archives , use the version
- number as folder name. E.g., for version 2.6 create a folder "2.6",
- for version 2.6.1 "2.6.1" and so on.
-2) Copy the lwjgl, lwjgl-docs and lwjgl-source zips into that folder. E.g.,
- for version 2.6, this folder must contain the following files:
- org.lwjgl.build/lwjgl-archives
- + 2.6
- - lwjgl-2.6.zip
- - lwjgl-docs-2.6.zip
- - lwjgl-source-2.6.zip
-3) In order to run the build script, change to folder org.lwjgl.build and run
- ant with a parameter indicating the appropriate LWJGL version, e.g.
- ant -Dversion=2.6 dist
-
-You will find the updatesite in
- org.lwjgl.build/build/plugins/org.lwjgl.updatesite
-
-You may note that the jars are all signed. I have added a temporary keystore
-with a dummy alias. In order to use your key, simply edit the properties
-(line 11-14) in the build script. If you do not want to store the password in
-the build script, simply define it via "-Dstorepass=****" in the command line.
-
Some additional remarks:
- The version number is automatically "normalized" to Eclipse standards,
- that is 2.6 will become 2.6.0. You do not have to rename the initial archives,
- you can use 2.6. Or 2.6.1 ;-)
+ that is 2.6 will become 2.6.0 with the current date and time added.
- The lwjgl-debug.jar is not added to the org.lwjgl plugin, as I do not know
how to select one or the other. But I have not further investigated in
that direction.
@@ -85,4 +91,5 @@
to the Eclipse P2 system, which caches a lot of things. Simply uninstalling
a plugin does not remove the plugins from the Eclipse installation. When
the very same version is re-installed, instead of loading new files from the
- update site these pre-installed versions are reused!
\ No newline at end of file
+ update site these pre-installed versions are reused! Since the date and time
+ is added to the plugin version number, this should cause no problems.
\ No newline at end of file
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
===================================================================
(Binary files differ)
Property changes on: trunk/LWJGL/eclipse-update/org.lwjgl.build/anttasks.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml (rev 0)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build-updatesite.xml 2011-12-05 12:41:45 UTC (rev 3706)
@@ -0,0 +1,482 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Called from main build script.
+Expects
+ lwjgl.version
+to be set.
+
+(C) 2011 LWJGL-Project
+Author: Jens von Pilgrim, dev...@je...
+-->
+
+<project default="eclipse-updatesite" basedir="." name="eclipse.antscript" xmlns:ant4eclipse="antlib:org.ant4eclipse" xmlns:antcontrib="antlib:net.sf.antcontrib">
+
+ <dirname property="eclipse.antscript.basedir" file="${ant.file.eclipse.antscript}" />
+
+ <property name="keystore" value="teststore" />
+ <property name="alias" value="tester" />
+ <property name="password" value="tester" />
+ <property name="keypass" value="${password}" />
+
+ <property name="eclipse.updatesite" value="http://www.lwjgl.org/update/" />
+ <property name="eclipse.bundle.vendor" value="lwjgl.org" />
+
+ <taskdef name="packagelist" classname="org.lwjgl.ant.PackageList">
+ <classpath>
+ <pathelement location="eclipse-update/org.lwjgl.build/anttasks.jar" />
+ </classpath>
+ </taskdef>
+ <taskdef name="normalizeversion" classname="org.lwjgl.ant.NormalizeVersion">
+ <classpath>
+ <pathelement location="eclipse-update/org.lwjgl.build/anttasks.jar" />
+ </classpath>
+ </taskdef>
+
+ <!-- properties imported from build-definitions.xml:
+ <property name="lwjgl.temp" location="temp" />
+ <property name="lwjgl.src" location="src" />
+ <property name="lwjgl.version" value="2.8.3" />
+ -->
+
+ <!-- where to build the update site and temporary build files -->
+ <property name="eclipse.build.path" value="${eclipse.antscript.basedir}/build" />
+ <property name="eclipse.build.temp" value="${eclipse.build.path}/temp" />
+ <property name="eclipse.build.plugins" value="${eclipse.build.path}/plugins" />
+ <property name="eclipse.prebuild-plugin-classes" value="${eclipse.antscript.basedir}/plugin-classes" />
+
+
+ <!-- from where to retrieve LWJGL files -->
+ <property name="eclipse.skeletons.dir" value="${eclipse.antscript.basedir}/.." />
+
+ <!-- base: ${lwjgl.temp} : <patternset refid="lwjgl_applet"/>
+ doc: basedir="${lwjgl.docs}" includes="javadoc/**"
+ source: refid="lwjgl.source.fileset"
+
+ -->
+
+
+ <property name="NL" value=" " />
+
+
+ <target name="eclipse-updatesite" depends="release">
+ <antcall target="eclipse-updatesite-simple" />
+ </target>
+
+
+ <target name="eclipse-updatesite-simple">
+ <normalizeversion version="${lwjgl.version}" property="eclipse.normversion" addDateQualifier="yes" />
+ <echo>Building plugins for version ${lwjgl.version}, normalized version ${eclipse.normversion}</echo>
+
+ <mkdir dir="${eclipse.build.temp}" />
+
+
+ <!-- *******************************************************************
+ *
+ * Assemble plugins
+ *
+ ******************************************************************** -->
+
+ <!-- Main plugin: lwjgl.org -->
+ <!-- Copy plugin skeletons -->
+ <mkdir dir="${eclipse.build.plugins}" />
+ <copy todir="${eclipse.build.plugins}/org.lwjgl">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl" casesensitive="yes">
+ <exclude name="**/src/**" />
+ <exclude name="**/*.jar" />
+ <!-- do not copy jars used for development -->
+ <exclude name="**/build/**" />
+ <exclude name="**/build.properties" />
+ <!-- do not copy development settings -->
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ <!-- do not copy native libraries -->
+ <exclude name="**/native/**" />
+ </fileset>
+ </copy>
+ <!-- Copy LWJGL native files and classes -->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl">
+ <fileset dir="${lwjgl.temp}">
+ <patternset refid="lwjgl_base"/>
+ </fileset>
+ </copy>
+ <move todir="${eclipse.build.plugins}/org.lwjgl">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl/jar">
+ <include name="**" />
+ <exclude name="lwjgl-debug.jar" />
+ </fileset>
+ </move>
+ <delete dir="${eclipse.build.plugins}/org.lwjgl/jar" />
+ <!-- unzip Eclipse dependent classes,
+ have to be previously built by buildEclipseClasses.xml, but
+ are also contained in SVN
+ -->
+ <unzip dest="${eclipse.build.plugins}/org.lwjgl" src="${eclipse.prebuild-plugin-classes}/org.lwjgl.zip" />
+
+
+ <!-- Sources plugin: lwjgl.org.source -->
+ <!-- Copy plugin skeletons -->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.source">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.source" casesensitive="yes">
+ <exclude name="**/build.properties" />
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ </fileset>
+ </copy>
+ <!-- Create zip files containing the source -->
+ <property name="eclipse.org.lwjgl.src.dir" value="${eclipse.build.plugins}/org.lwjgl.source/src/org.lwjgl_${eclipse.normversion}" />
+ <mkdir dir="${eclipse.org.lwjgl.src.dir}" />
+ <!-- Build src zips for plugin org.lwjgl -->
+ <!-- lwjgl sources (only Java sources) -->
+ <zip destfile="${eclipse.org.lwjgl.src.dir}/lwjglsrc.zip">
+ <fileset dir="${lwjgl.src}/generated" />
+ <fileset dir="${lwjgl.src}/java">
+ <exclude name="org/lwjgl/util/**" />
+ </fileset>
+ </zip>
+ <zip destfile="${eclipse.org.lwjgl.src.dir}/lwjgl_utilsrc.zip">
+ <fileset dir="${lwjgl.src}/java">
+ <include name="org/lwjgl/util/**" />
+ <exclude name="org/lwjgl/util/applet/**" />
+ </fileset>
+ </zip>
+ <zip destfile="${eclipse.org.lwjgl.src.dir}/lwjgl_util_applet.zip">
+ <fileset dir="${lwjgl.src}/java">
+ <include name="org/lwjgl/util/applet/**" />
+ </fileset>
+ </zip>
+ <!-- and the Eclipse related sources -->
+ <zip destfile="${eclipse.org.lwjgl.src.dir}/lwjgl_eclipse.zip">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl/src/java" casesensitive="yes">
+ <include name="org/lwjgl/**" />
+ </fileset>
+ </zip>
+ <zip destfile="${eclipse.org.lwjgl.src.dir}/lwjgl_tools.zip">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.tools/src/java" casesensitive="yes">
+ <include name="org/lwjgl/**" />
+ </fileset>
+ </zip>
+ <zip destfile="${eclipse.org.lwjgl.src.dir}/lwjgl_info.zip">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.info/src/java" casesensitive="yes">
+ <include name="org/lwjgl/**" />
+ </fileset>
+ </zip>
+
+ <!-- Documentation plugin: lwjgl.org.doc -->
+ <!-- Copy plugin skeletons including Eclipse documentation-->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.doc">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.doc" casesensitive="yes">
+ <exclude name="**/build.properties" />
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ </fileset>
+ </copy>
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.doc">
+ <fileset dir="${lwjgl.docs}">
+ <exclude name="javadoc/**" />
+ </fileset>
+ </copy>
+ <!-- create JavaDoc archive -->
+ <zip destfile="${eclipse.build.plugins}/org.lwjgl.doc/doc.zip" basedir="${lwjgl.docs}" includes="javadoc/**" />
+
+
+ <!-- Information view plugin: org.lwjgl.info -->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.info">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.info" casesensitive="yes">
+ <exclude name="**/src/**" />
+ <exclude name="**/build/**" />
+ <exclude name="**/build.properties" />
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ </fileset>
+ </copy>
+ <!-- unzip Eclipse dependent classes,
+ have to be previously built by buildEclipseClasses.xml, but
+ are also contained in SVN
+ -->
+ <unzip dest="${eclipse.build.plugins}/org.lwjgl.info" src="${eclipse.prebuild-plugin-classes}/org.lwjgl.info.zip" />
+
+ <!-- Tools plugin: org.lwjgl.tools -->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.tools">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.tools" casesensitive="yes">
+ <exclude name="**/src/**" />
+ <exclude name="**/build/**" />
+ <exclude name="**/build.properties" />
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ </fileset>
+ </copy>
+ <!-- unzip Eclipse dependent classes,
+ have to be previously built by buildEclipseClasses.xml, but
+ are also contained in SVN
+-->
+ <unzip dest="${eclipse.build.plugins}/org.lwjgl.tools" src="${eclipse.prebuild-plugin-classes}/org.lwjgl.tools.zip" />
+
+ <!-- Feature -->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.feature">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.feature" casesensitive="yes">
+ <exclude name="**/build.properties" />
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ <exclude name="**/*.template" />
+ </fileset>
+ </copy>
+
+ <!-- Update Site -->
+ <copy todir="${eclipse.build.plugins}/org.lwjgl.updatesite">
+ <fileset dir="${eclipse.skeletons.dir}/org.lwjgl.updatesite" casesensitive="yes">
+ <exclude name="**/.settings/**" />
+ <exclude name="**/.classpath" />
+ <exclude name="**/.project" />
+ <exclude name="**/*.template" />
+ </fileset>
+ </copy>
+
+
+ <!-- *******************************************************************
+ *
+ * Build manifest files
+ *
+ ******************************************************************** -->
+
+ <!-- Calculate package export and bundle class paths -->
+ <packagelist property="eclipse.bundle.export-package" pathsep=",${NL} ">
+ <fileset dir="${lwjgl.temp}/jar">
+ <exclude name="**/lwjgl-debug.jar" />
+ </fileset>
+ <patternset>
+ <exclude name="**/test/**" />
+ <exclude name="**/examples/**" />
+ </patternset>
+ </packagelist>
+ <pathconvert property="eclipse.bundle.classpath.jars" pathsep=",${NL} ">
+ <map from="${lwjgl.temp}/jar/" to="" />
+ <fileset dir="${lwjgl.temp}/jar">
+ <exclude name="**/lwjgl-debug.jar" />
+ <exclude name="**/lwjgl_test.jar" />
+ </fileset>
+ </pathconvert>
+
+
+
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl
+ *
+ * Build manifest files, not using manifest task, since manifest wraps
+ * at the wrong positions (at least ant 1.7)
+ *
+ ******************************************************************** -->
+ <echo file="${eclipse.build.plugins}/org.lwjgl/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: LWJGL Lightweight Java Game Library
+Bundle-SymbolicName: org.lwjgl
+Bundle-Version: ${eclipse.normversion}
+Bundle-Vendor: ${eclipse.bundle.vendor}
+Bundle-Activator: org.lwjgl.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
+Export-Package: org.lwjgl.eclipse,${NL} ${eclipse.bundle.export-package}
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ClassPath: .,${NL} ${eclipse.bundle.classpath.jars}
+</echo>
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl.doc
+ *
+ * Build manifest files, not using manifest task, since manifest wraps
+ * at the wrong positions (at least ant 1.7)
+ *
+ ******************************************************************** -->
+
+ <echo file="${eclipse.build.plugins}/org.lwjgl.doc/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
+Bundle-Vendor: ${eclipse.bundle.vendor}
+Bundle-Version: ${eclipse.normversion}
+Bundle-SymbolicName: org.lwjgl.doc;singleton:=true
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.help;bundle-version="3.2.0"
+Eclipse-LazyStart: true
+</echo>
+
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl.source
+ *
+ * Build manifest files, not using manifest task, since manifest wraps
+ * at the wrong positions (at least ant 1.7)
+ *
+ ******************************************************************** -->
+
+ <!-- Build manfest -->
+ <!-- not using manifest task, since manifest wraps at the wrong positions -->
+ <echo file="${eclipse.build.plugins}/org.lwjgl.source/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: LWJGL Sources
+Bundle-Vendor: ${eclipse.bundle.vendor}
+Bundle-Version: ${eclipse.normversion}
+Bundle-SymbolicName: org.lwjgl.source;singleton:=true
+Bundle-Localization: plugin
+</echo>
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl.info
+ *
+ * Build manifest files, not using manifest task, since manifest wraps
+ * at the wrong positions (at least ant 1.7)
+ *
+ ******************************************************************** -->
+ <echo file="${eclipse.build.plugins}/org.lwjgl.info/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: LWJGL Test and Info View
+Bundle-Vendor: ${eclipse.bundle.vendor}
+Bundle-Version: ${eclipse.normversion}
+Bundle-SymbolicName: org.lwjgl.info;singleton:=true
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.views,
+ org.eclipse.core.resources,
+ org.lwjgl
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+</echo>
+ <!-- Files are already in place -->
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl.tools
+ *
+ * Build manifest files, not using manifest task, since manifest wraps
+ * at the wrong positions (at least ant 1.7)
+ *
+ ******************************************************************** -->
+ <!-- Build plugin org.lwjgl.tools -->
+ <echo file="${eclipse.build.plugins}/org.lwjgl.tools/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: LWJGL Tools Plug-in
+Bundle-SymbolicName: org.lwjgl.tools;singleton:=true
+Bundle-Version: ${eclipse.normversion}
+Bundle-Vendor: ${eclipse.bundle.vendor}
+Bundle-Activator: org.lwjgl.tools.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="3.4.0",
+ org.eclipse.jdt.core;bundle-version="3.4.0",
+ org.eclipse.jdt.ui;bundle-version="3.4.0",
+ org.lwjgl;bundle-version="${eclipse.normversion}",
+ org.eclipse.jdt.launching;bundle-version="3.4.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+</echo>
+ <!-- Files are already in place -->
+
+
+ <!-- Create features -->
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl.feature
+ *
+ ******************************************************************** -->
+ <!-- Build org.lwjgl.feature -->
+ <copy file="${eclipse.skeletons.dir}/org.lwjgl.feature/feature.xml.template" tofile="${eclipse.build.plugins}/org.lwjgl.feature/feature.xml" encoding="UTF-8" overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${eclipse.normversion}" />
+ <filter token="PROVIDERNAME" value="${eclipse.bundle.vendor}" />
+ <filter token="UPDATEURL" value="${eclipse.updatesite}" />
+ </filterset>
+ </copy>
+
+
+ <!-- *******************************************************************
+ *
+ * org.lwjgl.feature.sdk
+ *
+ ******************************************************************** -->
+ <!-- Build org.lwjgl.feature -->
+ <copy file="${eclipse.skeletons.dir}/org.lwjgl.feature.sdk/feature.xml.template" tofile="${eclipse.build.plugins}/org.lwjgl.feature.sdk/feature.xml" encoding="UTF-8" overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${eclipse.normversion}" />
+ <filter token="PROVIDERNAME" value="${eclipse.bundle.vendor}" />
+ <filter token="UPDATEURL" value="${eclipse.updatesite}" />
+ </filterset>
+ </copy>
+
+
+ <!-- *******************************************************************
+ *
+ * Build update site, i.e. zip all plugins and feature with version
+ * number to appropriate place
+ *
+ ******************************************************************** -->
+ <!-- Build update site -->
+ <copy file="${eclipse.skeletons.dir}/org.lwjgl.updatesite/site.xml.template" tofile="${eclipse.build.plugins}/org.lwjgl.updatesite/site.xml" encoding="UTF-8" overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${eclipse.normversion}" />
+ <filter token="PROVIDERNAME" value="${eclipse.bundle.vendor}" />
+ <filter token="UPDATEURL" value="${eclipse.updatesite}" />
+ </filterset>
+ </copy>
+ <mkdir dir="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins" />
+ <mkdir dir="${eclipse.build.plugins}/org.lwjgl.updatesite/features" />
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${eclipse.normversion}.jar" manifest="${eclipse.build.plugins}/org.lwjgl/META-INF/MANIFEST.MF">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl" casesensitive="yes" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${eclipse.normversion}.jar" manifest="${eclipse.build.plugins}/org.lwjgl.doc/META-INF/MANIFEST.MF">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl.doc" casesensitive="yes" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${eclipse.normversion}.jar" manifest="${eclipse.build.plugins}/org.lwjgl.source/META-INF/MANIFEST.MF">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl.source" casesensitive="yes" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" manifest="${eclipse.build.plugins}/org.lwjgl.info/META-INF/MANIFEST.MF">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl.info" casesensitive="yes" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" manifest="${eclipse.build.plugins}/org.lwjgl.tools/META-INF/MANIFEST.MF">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl.tools" casesensitive="yes" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${eclipse.normversion}.jar">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl.feature" casesensitive="yes" />
+ </jar>
+ <jar destfile="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${eclipse.normversion}.jar">
+ <fileset dir="${eclipse.build.plugins}/org.lwjgl.feature.sdk" casesensitive="yes" />
+ </jar>
+
+ <!-- *******************************************************************
+ *
+ * Sign plugins and feature
+ *
+ ******************************************************************** -->
+
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+ <signjar jar="${eclipse.build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${eclipse.normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${password}" keypass="${keypass}" />
+
+
+ <echo>Created Eclipse update site: ${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
+ </target>
+
+ <target name="eclipse-clean">
+ <delete dir="${eclipse.build.path}" />
+ </target>
+
+ <target name="eclipse-help">
+ <echo>This plugin is to be called from main LWJGL build.xml file.</echo>
+ <echo>It creates the update site, the result will be found in</echo>
+ <echo>${eclipse.build.plugins}/org.lwjgl.updatesite</echo>
+ </target>
+
+</project>
\ No newline at end of file
Deleted: trunk/LWJGL/eclipse-update/org.lwjgl.build/build.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/build.xml 2011-12-03 11:10:44 UTC (rev 3705)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/build.xml 2011-12-05 12:41:45 UTC (rev 3706)
@@ -1,446 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Call with
- ant -Dversion=1.9.1 dist
-(C) 2011 LWJGL-Project
-Author: Jens von Pilgrim, dev...@je...
--->
-
-<project default="help" basedir="." name="" xmlns:ant4eclipse="antlib:org.ant4eclipse" xmlns:antcontrib="antlib:net.sf.antcontrib">
-
- <property name="keystore" value="teststore" />
- <property name="alias" value="tester" />
- <property name="storepass" value="tester" />
- <property name="keypass" value="${storepass}" />
-
- <property name="eclipse.updatesite" value="http://www.lwjgl.org/update/" />
- <property name="bundle.vendor" value="lwjgl.org" />
-
- <taskdef name="packagelist" classname="org.lwjgl.ant.PackageList">
- <classpath>
- <pathelement location="./anttasks" />
- </classpath>
- </taskdef>
- <taskdef name="normalizeversion" classname="org.lwjgl.ant.NormalizeVersion">
- <classpath>
- <pathelement location="./anttasks" />
- </classpath>
- </taskdef>
-
- <property name="version" value="unknown" />
- <property name="archives.dir" value="lwjgl-archives/${version}" />
- <property name="skeletons.dir" value=".." />
-
- <property name="build.path" value="build" />
- <property name="build.temp" value="${build.path}/temp" />
- <property name="build.plugins" value="${build.path}/plugins" />
-
- <property name="lwjgl.zip" value="lwjgl-${version}.zip" />
- <property name="lwjgl_docs.zip" value="lwjgl-docs-${version}.zip" />
- <property name="lwjgl_source.zip" value="lwjgl-source-${version}.zip" />
-
- <property name="lwjgl.dir" value="${build.temp}/lwjgl-${version}" />
- <property name="lwjgl_docs.dir" value="${build.temp}/javadoc" />
- <property name="lwjgl_source.dir" value="${build.temp}/src" />
-
- <property name="NL" value=" " />
-
-
-
- <!--
-<property name="" value="" />
--->
-
-
- <target name="init">
- <normalizeversion version="${version}" property="normversion" addDateQualifier="yes" />
- <echo>Building plugins for version ${version}, normalized version ${normversion}</echo>
- </target>
-
-
- <target name="dist" depends="init">
- <mkdir dir="${build.temp}" />
-
-
- <!-- *******************************************************************
- *
- * Copy original plugins to build folder. Copy source to source plugin
- * only, move classes into place.
- *
- ******************************************************************** -->
- <mkdir dir="${build.plugins}" />
- <copy todir="${build.plugins}/org.lwjgl">
- <fileset dir="${skeletons.dir}/org.lwjgl" casesensitive="yes">
- <exclude name="**/src/**" />
- <exclude name="**/*.jar" />
- <!-- do not copy jars used for development -->
- <exclude name="**/build/**" />
- <exclude name="**/build.properties" />
- <!-- do not copy development settings -->
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- <!-- do not copy native libraries -->
- <exclude name="**/native/**" />
- </fileset>
- </copy>
- <copy todir="${build.plugins}/org.lwjgl">
- <fileset dir="${skeletons.dir}/org.lwjgl/build/classes" casesensitive="yes">
- </fileset>
- </copy>
-
- <copy todir="${build.plugins}/org.lwjgl.source">
- <fileset dir="${skeletons.dir}/org.lwjgl.source" casesensitive="yes">
- <exclude name="**/build.properties" />
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- </fileset>
- </copy>
- <copy todir="${build.plugins}/org.lwjgl.doc">
- <fileset dir="${skeletons.dir}/org.lwjgl.doc" casesensitive="yes">
- <exclude name="**/build.properties" />
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- </fileset>
- </copy>
-
- <copy todir="${build.plugins}/org.lwjgl.info">
- <fileset dir="${skeletons.dir}/org.lwjgl.info" casesensitive="yes">
- <exclude name="**/src/**" />
- <exclude name="**/build/**" />
- <exclude name="**/build.properties" />
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- </fileset>
- </copy>
- <copy todir="${build.plugins}/org.lwjgl.info">
- <fileset dir="${skeletons.dir}/org.lwjgl.info/build/classes" casesensitive="yes">
- </fileset>
- </copy>
-
- <copy todir="${build.plugins}/org.lwjgl.tools">
- <fileset dir="${skeletons.dir}/org.lwjgl.tools" casesensitive="yes">
- <exclude name="**/src/**" />
- <exclude name="**/build/**" />
- <exclude name="**/build.properties" />
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- </fileset>
- </copy>
- <copy todir="${build.plugins}/org.lwjgl.tools">
- <fileset dir="${skeletons.dir}/org.lwjgl.tools/build/classes" casesensitive="yes">
- </fileset>
- </copy>
-
- <copy todir="${build.plugins}/org.lwjgl.feature">
- <fileset dir="${skeletons.dir}/org.lwjgl.feature" casesensitive="yes">
- <exclude name="**/build.properties" />
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- <exclude name="**/*.template" />
- </fileset>
- </copy>
- <copy todir="${build.plugins}/org.lwjgl.updatesite">
- <fileset dir="${skeletons.dir}/org.lwjgl.updatesite" casesensitive="yes">
- <exclude name="**/.settings/**" />
- <exclude name="**/.classpath" />
- <exclude name="**/.project" />
- <exclude name="**/*.template" />
- </fileset>
- </copy>
-
-
- <!-- *******************************************************************
- *
- * Unzip archives and move content into approriate plugins
- *
- ******************************************************************** -->
- <unzip src="${archives.dir}/${lwjgl.zip}" dest="${build.temp}" />
- <copy todir="${build.plugins}/org.lwjgl/native">
- <fileset dir="${lwjgl.dir}/native" />
- </copy>
- <copy todir="${build.plugins}/org.lwjgl/">
- <fileset dir="${lwjgl.dir}/jar">
- <exclude name="**/lwjgl-debug.jar" />
- </fileset>
- </copy>
- <copy todir="${build.plugins}/org.lwjgl/doc">
- <fileset dir="${lwjgl.dir}/doc" />
- </copy>
- <packagelist property="bundle.export-package" pathsep=",${NL} ">
- <fileset dir="${lwjgl.dir}/jar">
- <exclude name="**/lwjgl-debug.jar" />
- </fileset>
- <patternset>
- <exclude name="**/test/**" />
- <exclude name="**/examples/**" />
- </patternset>
- </packagelist>
- <pathconvert property="bundle.classpath.jars" pathsep=",${NL} ">
- <map from="${basedir}/${lwjgl.dir}/jar/" to="" />
- <fileset dir="${lwjgl.dir}/jar">
- <exclude name="**/lwjgl-debug.jar" />
- <exclude name="**/lwjgl_test.jar" />
- </fileset>
- </pathconvert>
-
-
- <!-- *******************************************************************
- *
- * Build plugins
- *
- ******************************************************************** -->
-
- <!-- *******************************************************************
- *
- * org.lwjgl
- *
- * Build manifest files, not using manifest task, since manifest wraps
- * at the wrong positions (at least ant 1.7)
- *
- ******************************************************************** -->
- <echo file="${build.plugins}/org.lwjgl/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: LWJGL Lightweight Java Game Library
-Bundle-SymbolicName: org.lwjgl
-Bundle-Version: ${normversion}
-Bundle-Vendor: ${bundle.vendor}
-Bundle-Activator: org.lwjgl.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Bundle-ActivationPolicy: lazy
-Export-Package: org.lwjgl.eclipse,${NL} ${bundle.export-package}
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ClassPath: .,${NL} ${bundle.classpath.jars}
-</echo>
-
- <!-- *******************************************************************
- *
- * org.lwjgl.doc
- *
- * Build manifest files, not using manifest task, since manifest wraps
- * at the wrong positions (at least ant 1.7)
- *
- ******************************************************************** -->
- <copy file="${archives.dir}/${lwjgl_docs.zip}" tofile="${build.plugins}/org.lwjgl.doc/doc.zip" />
- <echo file="${build.plugins}/org.lwjgl.doc/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
-Bundle-Vendor: ${bundle.vendor}
-Bundle-Version: ${normversion}
-Bundle-SymbolicName: org.lwjgl.doc;singleton:=true
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.help;bundle-version="3.2.0"
-Eclipse-LazyStart: true
-</echo>
-
-
- <!-- *******************************************************************
- *
- * org.lwjgl.source
- *
- * Build manifest files, not using manifest task, since manifest wraps
- * at the wrong positions (at least ant 1.7)
- *
- ******************************************************************** -->
- <unzip src="${archives.dir}/${lwjgl_source.zip}" dest="${build.temp}" />
- <!-- Build src zips for plugin org.lwjgl -->
- <property name="org.lwjgl.src.dir" value="${build.plugins}/org.lwjgl.source/src/org.lwjgl_${normversion}" />
- <mkdir dir="${org.lwjgl.src.dir}" />
- <zip destfile="${org.lwjgl.src.dir}/lwjglsrc.zip">
- <fileset dir="${lwjgl_source.dir}/generated" />
- <fileset dir="${lwjgl_source.dir}/java">
- <exclude name="org/lwjgl/util/**" />
- </fileset>
- </zip>
- <zip destfile="${org.lwjgl.src.dir}/lwjgl_utilsrc.zip">
- <fileset dir="${lwjgl_source.dir}/java">
- <include name="org/lwjgl/util/**" />
- <exclude name="org/lwjgl/util/applet/**" />
- </fileset>
- </zip>
- <!--
- <zip destfile="${org.lwjgl.src.dir}/lwjgl_util_applet.zip">
- <fileset dir="${lwjgl_source.dir}/java">
- <include name="org/lwjgl/util/applet/**" />
- </fileset>
- </zip>
- -->
- <zip destfile="${org.lwjgl.src.dir}/lwjgl_eclipse.zip">
- <fileset dir="${skeletons.dir}/org.lwjgl/src/java" casesensitive="yes">
- <include name="org/lwjgl/**" />
- </fileset>
- </zip>
- <zip destfile="${org.lwjgl.src.dir}/lwjgl_tools.zip">
- <fileset dir="${skeletons.dir}/org.lwjgl.tools/src/java" casesensitive="yes">
- <include name="org/lwjgl/**" />
- </fileset>
- </zip>
- <zip destfile="${org.lwjgl.src.dir}/lwjgl_info.zip">
- <fileset dir="${skeletons.dir}/org.lwjgl.info/src/java" casesensitive="yes">
- <include name="org/lwjgl/**" />
- </fileset>
- </zip>
-
- <!-- Build manfest -->
- <!-- not using manifest task, since manifest wraps at the wrong positions -->
- <echo file="${build.plugins}/org.lwjgl.source/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: LWJGL Sources
-Bundle-Vendor: ${bundle.vendor}
-Bundle-Version: ${normversion}
-Bundle-SymbolicName: org.lwjgl.source;singleton:=true
-Bundle-Localization: plugin
-</echo>
-
- <!-- *******************************************************************
- *
- * org.lwjgl.info
- *
- * Build manifest files, not using manifest task, since manifest wraps
- * at the wrong positions (at least ant 1.7)
- *
- ******************************************************************** -->
- <echo file="${build.plugins}/org.lwjgl.info/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: LWJGL Test and Info View
-Bundle-Vendor: ${bundle.vendor}
-Bundle-Version: ${normversion}
-Bundle-SymbolicName: org.lwjgl.info;singleton:=true
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.ui.views,
- org.eclipse.core.resources,
- org.lwjgl
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-</echo>
- <!-- Files are already in place -->
-
- <!-- *******************************************************************
- *
- * org.lwjgl.tools
- *
- * Build manifest files, not using manifest task, since manifest wraps
- * at the wrong positions (at least ant 1.7)
- *
- ******************************************************************** -->
- <!-- Build plugin org.lwjgl.tools -->
- <echo file="${build.plugins}/org.lwjgl.tools/META-INF/MANIFEST.MF" encoding="UTF-8">Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: LWJGL Tools Plug-in
-Bundle-SymbolicName: org.lwjgl.tools;singleton:=true
-Bundle-Version: ${normversion}
-Bundle-Vendor: ${bundle.vendor}
-Bundle-Activator: org.lwjgl.tools.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources;bundle-version="3.4.0",
- org.eclipse.jdt.core;bundle-version="3.4.0",
- org.eclipse.jdt.ui;bundle-version="3.4.0",
- org.lwjgl;bundle-version="${normversion}",
- org.eclipse.jdt.launching;bundle-version="3.4.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-</echo>
- <!-- Files are already in place -->
-
- <!-- *******************************************************************
- *
- * org.lwjgl.feature
- *
- ******************************************************************** -->
- <!-- Build org.lwjgl.feature -->
- <copy file="${skeletons.dir}/org.lwjgl.feature/feature.xml.template" tofile="${build.plugins}/org.lwjgl.feature/feature.xml" encoding="UTF-8" overwrite="true">
- <filterset>
- <filter token="VERSION" value="${normversion}" />
- <filter token="PROVIDERNAME" value="${bundle.vendor}" />
- <filter token="UPDATEURL" value="${eclipse.updatesite}" />
- </filterset>
- </copy>
-
-
-
- <!-- *******************************************************************
- *
- * org.lwjgl.feature.sdk
- *
- *
- ******************************************************************** -->
- <!-- Build org.lwjgl.feature -->
- <copy file="${skeletons.dir}/org.lwjgl.feature.sdk/feature.xml.template" tofile="${build.plugins}/org.lwjgl.feature.sdk/feature.xml" encoding="UTF-8" overwrite="true">
- <filterset>
- <filter token="VERSION" value="${normversion}" />
- <filter token="PROVIDERNAME" value="${bundle.vendor}" />
- <filter token="UPDATEURL" value="${eclipse.updatesite}" />
- </filterset>
- </copy>
-
- <!-- *******************************************************************
- *
- * Build update site, i.e. zip all plugins and feature with version
- * number to appropriate place
- *
- ******************************************************************** -->
- <!-- Build update site -->
- <copy file="${skeletons.dir}/org.lwjgl.updatesite/site.xml.template" tofile="${build.plugins}/org.lwjgl.updatesite/site.xml" encoding="UTF-8" overwrite="true">
- <filterset>
- <filter token="VERSION" value="${normversion}" />
- <filter token="PROVIDERNAME" value="${bundle.vendor}" />
- <filter token="UPDATEURL" value="${eclipse.updatesite}" />
- </filterset>
- </copy>
- <mkdir dir="${build.plugins}/org.lwjgl.updatesite/plugins" />
- <mkdir dir="${build.plugins}/org.lwjgl.updatesite/features" />
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${normversion}.jar" manifest="${build.plugins}/org.lwjgl/META-INF/MANIFEST.MF">
- <fileset dir="${build.plugins}/org.lwjgl" casesensitive="yes" />
- </jar>
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${normversion}.jar" manifest="${build.plugins}/org.lwjgl.doc/META-INF/MANIFEST.MF">
- <fileset dir="${build.plugins}/org.lwjgl.doc" casesensitive="yes" />
- </jar>
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${normversion}.jar" manifest="${build.plugins}/org.lwjgl.source/META-INF/MANIFEST.MF">
- <fileset dir="${build.plugins}/org.lwjgl.source" casesensitive="yes" />
- </jar>
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${normversion}.jar" manifest="${build.plugins}/org.lwjgl.info/META-INF/MANIFEST.MF">
- <fileset dir="${build.plugins}/org.lwjgl.info" casesensitive="yes" />
- </jar>
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${normversion}.jar" manifest="${build.plugins}/org.lwjgl.tools/META-INF/MANIFEST.MF">
- <fileset dir="${build.plugins}/org.lwjgl.tools" casesensitive="yes" />
- </jar>
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${normversion}.jar">
- <fileset dir="${build.plugins}/org.lwjgl.feature" casesensitive="yes" />
- </jar>
- <jar destfile="${build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${normversion}.jar">
- <fileset dir="${build.plugins}/org.lwjgl.feature.sdk" casesensitive="yes" />
- </jar>
-
- <!-- *******************************************************************
- *
- * Sign plugins and feature
- *
- ******************************************************************** -->
-
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/features/org.lwjgl_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/features/org.lwjgl.sdk_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.doc_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.source_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.info_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
- <signjar jar="${build.plugins}/org.lwjgl.updatesite/plugins/org.lwjgl.tools_${normversion}.jar" keystore="${keystore}" alias="${alias}" storepass="${storepass}" keypass="${keypass}" />
-
- </target>
-
- <target name="clean">
- <delete dir="${build.path}" />
- </target>
-
- <target name="help">
- <echo>Call this build with version number and target dist, e.g.</echo>
- <echo> ant -Dversion=1.1.2 dist</echo>
- </target>
-
-</project>
\ No newline at end of file
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/buildEclipseClasses.xml
===================================================================
--- trunk/LWJGL/eclipse-update/org.lwjgl.build/buildEclipseClasses.xml (rev 0)
+++ trunk/LWJGL/eclipse-update/org.lwjgl.build/buildEclipseClasses.xml 2011-12-05 12:41:45 UTC (rev 3706)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ant
+(C) 2011 LWJGL-Project
+Author: Jens von Pilgrim, dev...@je...
+-->
+
+<project default="buildClasses" basedir="." name="Build Eclipse classes" xmlns:ant4eclipse="antlib:org.ant4eclipse" xmlns:antcontrib="antlib:net.sf.antcontrib">
+
+ <property name="plugin.lwjgl.org" value="org.lwjgl" />
+ <property name="plugin.lwjgl.org.info" value="org.lwjgl.info" />
+ <property name="plugin.lwjgl.org.tools" value="org.lwjgl.tools" />
+ <property name="classes.folder" value="build/classes" />
+
+ <property name="plugin.build.folder" value="plugin-classes" />
+
+
+
+ <!--
+<property name="" value="" />
+-->
+
+
+ <target name="init">
+ <echo></echo>
+ </target>
+
+ <target name="buildClasses" depends="init">
+ <mkdir dir="${plugin.build.folder}" />
+ <zip basedir="../${plugin.lwjgl.org}/${classes.folder}" destfile="${plugin.build.folder}/${plugin.lwjgl.org}.zip" />
+ <zip basedir="../${plugin.lwjgl.org.info}/${classes.folder}" destfile="${plugin.build.folder}/${plugin.lwjgl.org.info}.zip" />
+ <zip basedir="../${plugin.lwjgl.org.tools}/${classes.folder}" destfile="${plugin.build.folder}/${plugin.lwjgl.org.tools}.zip" />
+
+ <jar basedir="anttasks" destfile="anttasks.jar" />
+ </target>
+
+
+ <target name="clean">
+ <delete dir="${plugin.build.folder}" />
+ </target>
+
+ <target name="help">
+ <echo>Call this ant script in order to create archives containing the classes of all</echo>
+ <echo>Eclipes plugin related classes, such as Activors.</echo>
+ <echo>This build file removes the burden of building Eclipse dependent classes from</echo>
+ <echo>within the main build script</echo>
+ </target>
+
+</project>
\ No newline at end of file
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.info.zip
===================================================================
(Binary files differ)
Property changes on: trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.info.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.tools.zip
===================================================================
(Binary files differ)
Property changes on: trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.tools.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.zip
===================================================================
(Binary files differ)
Property changes on: trunk/LWJGL/eclipse-update/org.lwjgl.build/plugin-classes/org.lwjgl.zip
___________________________________________________________________
Added: 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: <sp...@us...> - 2011-12-03 11:10:51
|
Revision: 3705
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3705&view=rev
Author: spasi
Date: 2011-12-03 11:10:44 +0000 (Sat, 03 Dec 2011)
Log Message:
-----------
Fixed glTransformFeedbackAttribsNV count argument.
Modified Paths:
--------------
trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_transform_feedback.java
Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_transform_feedback.java
===================================================================
--- trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_transform_feedback.java 2011-11-28 16:40:42 UTC (rev 3704)
+++ trunk/LWJGL/src/templates/org/lwjgl/opengl/NV_transform_feedback.java 2011-12-03 11:10:44 UTC (rev 3705)
@@ -120,7 +120,7 @@
void glBindBufferBaseNV(@GLenum int target, @GLuint int index, @GLuint int buffer);
- void glTransformFeedbackAttribsNV(@AutoSize("attribs") @GLsizei int count, @Const IntBuffer attribs, @GLenum int bufferMode);
+ void glTransformFeedbackAttribsNV(@Constant("attribs.remaining() / 3") @GLsizei int count, @Check("3") @Const IntBuffer attribs, @GLenum int bufferMode);
void glTransformFeedbackVaryingsNV(@GLuint int program, @AutoSize("locations") @GLsizei int count, @Const IntBuffer locations, @GLenum int bufferMode);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|