From dbef55b6f9eeaa7f0d78e99cf8e3d28b28c02868 Mon Sep 17 00:00:00 2001 From: "nor..67" Date: Sun, 27 Jan 2013 00:40:11 +0000 Subject: [PATCH] SDK: - add ant task to update NetBeans module dependencies from a base platforms module versions - cleanup some stuff in the ant tasks, add local test code for downloading external wiki images (inactive) git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10191 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- ...-modules-java-j2seproject-copylibstask.jar | Bin 0 -> 22335 bytes sdk/ant-jme/lib/nblibraries.properties | 3 +- sdk/ant-jme/nbproject/build-impl.xml | 126 +++++++++---- sdk/ant-jme/nbproject/genfiles.properties | 4 +- sdk/ant-jme/src/com/jme/ant/FixWikiLinks.java | 2 + .../src/com/jme/ant/LoadWikiImages.java | 27 ++- .../jme/ant/UpdateNetBeansDependencies.java | 169 ++++++++++++++++++ .../src/com/jme/ant/ant-jme.properties | 1 + sdk/ant-lib/ant-jme.jar | Bin 13754 -> 21111 bytes 9 files changed, 294 insertions(+), 38 deletions(-) create mode 100644 sdk/ant-jme/lib/CopyLibs-2/org-netbeans-modules-java-j2seproject-copylibstask.jar create mode 100644 sdk/ant-jme/src/com/jme/ant/UpdateNetBeansDependencies.java diff --git a/sdk/ant-jme/lib/CopyLibs-2/org-netbeans-modules-java-j2seproject-copylibstask.jar b/sdk/ant-jme/lib/CopyLibs-2/org-netbeans-modules-java-j2seproject-copylibstask.jar new file mode 100644 index 0000000000000000000000000000000000000000..38246fd27020d081e537bd0eb7ae484d7d162554 GIT binary patch literal 22335 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 literal 0 HcmV?d00001 diff --git a/sdk/ant-jme/lib/nblibraries.properties b/sdk/ant-jme/lib/nblibraries.properties index 5819d0820..ee602518f 100644 --- a/sdk/ant-jme/lib/nblibraries.properties +++ b/sdk/ant-jme/lib/nblibraries.properties @@ -1,5 +1,6 @@ libs.ANT.classpath=\ ${base}/ANT/ant.jar libs.CopyLibs.classpath=\ - ${base}/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar + ${base}/CopyLibs-2/org-netbeans-modules-java-j2seproject-copylibstask.jar libs.CopyLibs.displayName=CopyLibs Task +libs.CopyLibs.prop-version=1.0 diff --git a/sdk/ant-jme/nbproject/build-impl.xml b/sdk/ant-jme/nbproject/build-impl.xml index b92b08ad3..bd8965d6a 100644 --- a/sdk/ant-jme/nbproject/build-impl.xml +++ b/sdk/ant-jme/nbproject/build-impl.xml @@ -523,39 +523,66 @@ is divided into following sections: - + - - - + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + + - - + + @@ -588,7 +615,7 @@ is divided into following sections: - + @@ -599,22 +626,49 @@ is divided into following sections: - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + @@ -775,6 +829,9 @@ is divided into following sections: + + + @@ -1252,13 +1309,14 @@ is divided into following sections: TEST DEBUGGING SECTION ======================= --> - + Must select one file in the IDE or set test.class - + - + Must select one file in the IDE or set test.class - + Must select some method in the IDE or set test.method + diff --git a/sdk/ant-jme/nbproject/genfiles.properties b/sdk/ant-jme/nbproject/genfiles.properties index 4cc393bae..940a52acd 100644 --- a/sdk/ant-jme/nbproject/genfiles.properties +++ b/sdk/ant-jme/nbproject/genfiles.properties @@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=28e38971@1.38.2.45 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=dd1578ef -nbproject/build-impl.xml.script.CRC32=e46589cd -nbproject/build-impl.xml.stylesheet.CRC32=5183f3c0@1.51.1.46 +nbproject/build-impl.xml.script.CRC32=a6e22d49 +nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46 diff --git a/sdk/ant-jme/src/com/jme/ant/FixWikiLinks.java b/sdk/ant-jme/src/com/jme/ant/FixWikiLinks.java index 7c7b68053..24b7e55c7 100644 --- a/sdk/ant-jme/src/com/jme/ant/FixWikiLinks.java +++ b/sdk/ant-jme/src/com/jme/ant/FixWikiLinks.java @@ -40,6 +40,8 @@ public class FixWikiLinks extends Task { line = line.replaceAll("/wiki/lib/exe/fetch\\.php/([^>]*):([^>]*):([^>]*)\"", "nbdocs:/" + helpPath + "$1/$2/$3\""); line = line.replaceAll("/wiki/lib/exe/fetch\\.php/([^>]*):([^>]*)\"", "nbdocs:/" + helpPath + "$1/$2\""); line = line.replaceAll("/wiki/lib/exe/fetch\\.php/([^>]*)\"", "nbdocs:/" + helpPath + "$1\""); +// line = line.replaceAll("/wiki/lib/exe/fetch\\.php?([^>]*)\"", "nbdocs:/" + helpPath + "external/$1\"").replaceAll("[_[^\\w\\däüö:ÄÜÖ\\/\\+\\-\\. ]]", "_"); + line = line.replaceAll("]*)>]*)>", ""); line = line.replaceAll("]*)\\?([^>]*)\">", ""); // vvvv------v diff --git a/sdk/ant-jme/src/com/jme/ant/LoadWikiImages.java b/sdk/ant-jme/src/com/jme/ant/LoadWikiImages.java index 7bf28c4ef..d56556a9b 100644 --- a/sdk/ant-jme/src/com/jme/ant/LoadWikiImages.java +++ b/sdk/ant-jme/src/com/jme/ant/LoadWikiImages.java @@ -38,6 +38,8 @@ public class LoadWikiImages extends Task { if (endIdx >= 0) { String link = line.substring(idx + 10, endIdx); int wikidx = link.indexOf("/wiki/lib/exe/fetch.php/"); + //int extidx = link.indexOf("/wiki/lib/exe/fetch.php?"); + int extidx = -1; if (wikidx >= 0) { String name = link.replaceAll("/wiki/lib/exe/fetch\\.php/", ""); int markIdx = name.indexOf("?"); @@ -48,7 +50,30 @@ public class LoadWikiImages extends Task { URL url = new URL(host + link); InputStream in = url.openStream(); File file = new File(getLocation().getFileName().replaceAll("build.xml", "") + File.separator + targetFolder + File.separator + name.replaceAll("/", File.separator)); - log("Getting: " + host + link); + log("Getting image: " + host + link); + log("To: " + file); + File parent = file.getParentFile(); + parent.mkdirs(); + FileOutputStream out = new FileOutputStream(file); + int byte_ = in.read(); + while (byte_ != -1) { + out.write(byte_); + byte_ = in.read(); + } + in.close(); + out.close(); + }else if(extidx >= 0){ + String name = link.replaceAll("/wiki/lib/exe/fetch\\.php\\?([^>]*);media=([^>]*)\"", ""); + int markIdx = name.indexOf("?"); + if (markIdx >= 0) { + name = name.substring(0, markIdx); + } + //make external folder and clean filename + name = "external/" + name.replaceAll("[_[^\\w\\däüöÄÜÖ\\/\\+\\-\\. ]]", "_"); + URL url = new URL(host + link); + InputStream in = url.openStream(); + File file = new File(getLocation().getFileName().replaceAll("build.xml", "") + File.separator + targetFolder + File.separator + name.replaceAll("/", File.separator)); + log("Getting external image: " + host + link); log("To: " + file); File parent = file.getParentFile(); parent.mkdirs(); diff --git a/sdk/ant-jme/src/com/jme/ant/UpdateNetBeansDependencies.java b/sdk/ant-jme/src/com/jme/ant/UpdateNetBeansDependencies.java new file mode 100644 index 000000000..61370956e --- /dev/null +++ b/sdk/ant-jme/src/com/jme/ant/UpdateNetBeansDependencies.java @@ -0,0 +1,169 @@ +package com.jme.ant; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.util.HashMap; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; +import org.apache.tools.ant.types.LogLevel; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +/** + * + * @author normenhansen + */ +public class UpdateNetBeansDependencies extends Task { + + File projectFile; + File platformFolder; + private HashMap versionMap = new HashMap(); + + @Override + public void execute() throws BuildException { + if (projectFile == null || platformFolder == null) { + throw new BuildException("Please set projectfile and version"); + } + clearVesionMap(); + gatherVersionMap(platformFolder); + try { + boolean change = false; + Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(projectFile); + Element project = doc.getDocumentElement(); + if (project == null) { + return; + } + Element configuration = findChildElement(project, "configuration"); + if (configuration == null) { + return; + } + Element data = findChildElement(configuration, "data"); + if (data == null) { + return; + } + Element deps = findChildElement(data, "module-dependencies"); + if (deps == null) { + return; + } + NodeList list = deps.getElementsByTagName("dependency"); + for (int i = 0; i < list.getLength(); i++) { + Element elem = (Element) list.item(i); + Element base = findChildElement(elem, "code-name-base"); + if (base != null) { + Element runDep = findChildElement(elem, "run-dependency"); + if (runDep != null) { + Element specVersion = findChildElement(runDep, "specification-version"); + if (specVersion != null) { + String name = base.getTextContent().trim(); + String version = specVersion.getTextContent().trim(); + String newVersion = versionMap.get(name); + if (newVersion != null && !newVersion.equals(version)) { + specVersion.setTextContent(newVersion); + change = true; + log("Updating dependency in for " + name + " to " + newVersion); + } else { + log("Unknown " + name + ", cannot update dependency.", LogLevel.WARN.getLevel()); + } + } + } + } + } + if (change) { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + DOMSource source = new DOMSource(doc); + StreamResult result = new StreamResult(projectFile); + transformer.transform(source, result); + OutputStreamWriter out = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(projectFile, true))); + out.write("\n"); + out.close(); + } + } catch (Exception ex) { + throw new BuildException("Error changing file: " + ex); + } + } + + public void setProjectFile(File projectFile) { + this.projectFile = projectFile; + } + + public void setPlatformFolder(File platformFolder) { + this.platformFolder = platformFolder; + } + + private void clearVesionMap() { + versionMap.clear(); + } + + private void gatherVersionMap(File baseFolder) { + File[] packages = baseFolder.listFiles(); + for (File pkg : packages) { + if (pkg.isDirectory()) { + for (File utr : pkg.listFiles()) { + if (utr.isDirectory() && utr.getName().equals("update_tracking")) { + File[] xmls = utr.listFiles(); + for (File file : xmls) { + if (file.getName().toLowerCase().endsWith(".xml")) { + parseModules(file); + } + } + } + } + } + } + } + + private void parseModules(File file) { + try { + Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file); + if (doc == null) { + return; + } + Element moduleElement = doc.getDocumentElement(); + if (moduleElement == null || !moduleElement.getTagName().equalsIgnoreCase("module")) { + return; + } + Element versionElement = findChildElement(moduleElement, "module_version"); + if (versionElement == null) { + return; + } + String name = moduleElement.getAttribute("codename"); + int idx = name.indexOf("/"); + if (idx != -1) { + name = name.substring(0, idx); + } + String version = versionElement.getAttribute("specification_version"); + versionMap.put(name, version); + } catch (SAXException ex) { + Logger.getLogger(UpdateNetBeansDependencies.class.getName()).log(Level.SEVERE, null, ex); + } catch (IOException ex) { + Logger.getLogger(UpdateNetBeansDependencies.class.getName()).log(Level.SEVERE, null, ex); + } catch (ParserConfigurationException ex) { + Logger.getLogger(UpdateNetBeansDependencies.class.getName()).log(Level.SEVERE, null, ex); + } + } + + private Element findChildElement(Element parent, String name) { + if (parent == null) { + return null; + } + org.w3c.dom.Node ret = parent.getFirstChild(); + while (ret != null && (!(ret instanceof Element) || !ret.getNodeName().equals(name))) { + ret = ret.getNextSibling(); + } + return (Element) ret; + } +} diff --git a/sdk/ant-jme/src/com/jme/ant/ant-jme.properties b/sdk/ant-jme/src/com/jme/ant/ant-jme.properties index 2ba85ef73..84d25df1b 100644 --- a/sdk/ant-jme/src/com/jme/ant/ant-jme.properties +++ b/sdk/ant-jme/src/com/jme/ant/ant-jme.properties @@ -1,3 +1,4 @@ loadwikiimages=com.jme.ant.LoadWikiImages fixwikilinks=com.jme.ant.FixWikiLinks updatesdkdeps=com.jme.ant.UpdateSdkDependencies +updatenbdeps=com.jme.ant.UpdateNetBeansDependencies diff --git a/sdk/ant-lib/ant-jme.jar b/sdk/ant-lib/ant-jme.jar index 4539ecba194e5670734c7480f72f88373413c675..27a4b87e1d9be45647dc0df25d786ac07b6ad6d6 100644 GIT binary patch delta 5474 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 OtGRKOu={GK>ir%C3GpES delta 565 zcmZWmO-mb56g@YYpphg_L`5UWG>bNcjwYFyfFCreZT*OvnS@GFA!-PSMk_*BDk`{? z!gyWSeY$9&LXEVg#fqzT(S?-$0J|>T6iO(#=sW`{;)Bb*ynD}m=bTqA(uW0)p0rDK zKrOJo|1EBMZn@X2{M`L&XB)t_c`xgab_BDUrp^X6H4=`fq0p!n3kQ`zVtKicSB92y z9p*_udUv!EH-ENYW_FWbdT(8@MmKB4!q)ZgGo=|ia2t0>g-TI`=q|!E2#pMM(F9_Y zLk|_uOHUD}9VBQE{j`t!^a2m)B_7ft2IwsY=_8W#2}5*(Vfu;@o~}P_O`!%lyhx)B z8T8^2`Z11CJmzk>&oK!Hrg%*raAd7&n!m_FNw6wi$RuA9Ek*j++aM^0Phxj-ZyJ``W-c?cEt@~PjSg_oa#ZEm*wnlr!Sz!$qbYIL)mFE0n z{>p%O*TPkgt6ItUmAK8vdRx^+KG&OV8R7*}xW#ZOLdS;sXZ3SEAVR5Pf#TM0nd`iM nF