package fr.gouv.finances.cp.buildtools.components;
import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Properties;
/**
* Cet outil a pour objectif de publier en PRODUCTION des composants déjà disponibles en RECETTE.
}
private void loadPassword() {
if(login==null || password==null) {
- DlgLogin dlgLogin = new DlgLogin(this);
- dlgLogin.setVisible(true);
- if(dlgLogin.getAction()) {
- this.login = dlgLogin.getLogin();
- this.password = dlgLogin.getPassword();
+ // on essaie de le chercher dans ~/.ant.properties
+ File antProperties = new File(new File(System.getProperty("user.home")),".ant.properties");
+ Properties props = new Properties();
+ try {
+ props.load(new FileInputStream(antProperties));
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ }
+ if(props.containsKey("adullact.user.name") && props.containsKey("adullact.user.passwd")) {
+ login = props.getProperty("adullact.user.name");
+ password = props.getProperty("adullact.user.passwd");
+ } else {
+ DlgLogin dlgLogin = new DlgLogin(this);
+ dlgLogin.setVisible(true);
+ if(dlgLogin.getAction()) {
+ this.login = dlgLogin.getLogin();
+ this.password = dlgLogin.getPassword();
+ }
}
}
}
t.transform(new DOMSource(dom), new StreamResult(fos));
fos.flush();
fos.close();
+//FileInputStream fis = new FileInputStream(newUpdateXml);
+//byte[] buffer = new byte[1024];
+//int read = fis.read(buffer);
+//while(read>0) {
+// System.err.print(new String(buffer, 0, read));
+// read = fis.read(buffer);
+//}
+//fis.close();
+//if(JOptionPane.showConfirmDialog(this, "continuer ?")==JOptionPane.CANCEL_OPTION) System.exit(1);
} catch(Exception ex) {
ex.printStackTrace();
}
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:fun="org:xemelios:buildtools:functions"
exclude-result-prefixes="xs"
version="2.0">
</xsl:processing-instruction>
<xsl:element name="xemelios-component">
<xsl:for-each select="/xemelios-component/@*">
- <xsl:copy-of select="."/>
+ <xsl:choose>
+ <xsl:when test="name(.) eq 'last-version'">
+ <xsl:attribute name="last-version"><xsl:value-of select="$version"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise>
+ </xsl:choose>
</xsl:for-each>
- <xsl:copy-of select="$remote.document//version[@version=$version]"/>
+ <xsl:variable name="version.to.move" select="$remote.document//version[@version=$version]"/>
+ <xsl:element name="version">
+ <xsl:for-each select="$version.to.move/@*"><xsl:copy-of select="."></xsl:copy-of></xsl:for-each>
+ <xsl:copy-of select="$version.to.move/files"></xsl:copy-of>
+ <xsl:copy-of select="$version.to.move/requires"></xsl:copy-of>
+ <xsl:variable name="last.public.version" select="/xemelios-component/@last-version"/>
+
+ <xsl:for-each select="$remote.document//version">
+ <xsl:variable name="comp.res" select="fun:compare(@version,$last.public.version)"/>
+ <xsl:if test="$comp.res gt 0">
+ <xsl:for-each select="./note"><xsl:copy-of select="."/></xsl:for-each>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
<xsl:for-each select="//version">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:element>
</xsl:template>
+
+ <xsl:function name="fun:compare" as="xs:double">
+ <xsl:param name="v1" as="xs:string"/>
+ <xsl:param name="v2" as="xs:string"/>
+ <xsl:sequence select="fun:tonumber($v1) - fun:tonumber($v2)"/>
+ </xsl:function>
+
+ <xsl:function name="fun:tonumber" as="xs:double">
+ <xsl:param name="s" as="xs:string"/>
+ <xsl:variable name="atom.number"><numbers><xsl:for-each select="tokenize($s,'\.')"><number><xsl:choose>
+ <xsl:when test="position()=1"><xsl:value-of select="number(.)*1000000"/></xsl:when>
+ <xsl:when test="position()=2"><xsl:value-of select="number(.)*10000"/></xsl:when>
+ <xsl:when test="position()=3"><xsl:value-of select="number(.)*100"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="number(.)"/></xsl:otherwise>
+ </xsl:choose>
+ </number></xsl:for-each></numbers></xsl:variable>
+ <xsl:sequence select="sum($atom.number//number/text())"/>
+ </xsl:function>
+
</xsl:stylesheet>