[jogl2] Update to the stable 2.0.2 version
by Clément David
commit 88f6e168238284126a2922846db9cbc95fbc5e19
Author: Clément DAVID <clement.david(a)scilab-enterprises.com>
Date: Mon Sep 9 16:08:31 2013 +0200
Update to the stable 2.0.2 version
jogl2.spec | 13 ++++++++-----
sources | 2 +-
2 files changed, 9 insertions(+), 6 deletions(-)
---
diff --git a/jogl2.spec b/jogl2.spec
index 20ca924..78306db 100644
--- a/jogl2.spec
+++ b/jogl2.spec
@@ -1,13 +1,13 @@
# baserelease defines which build revision of this version we're building.
# The magical name baserelease is matched by the rpmdev-bumpspec tool, which
# you should use.
-%global baserelease 11
+%global baserelease 1
%global pkg_name jogl
-%global pkg_version 2.0
-%global pkg_rc rc12
+%global pkg_version 2.0.2
+#%global pkg_rc rc12
-%if 0%{?pkg_rc:1}
+%if 0%{?pkg_rc:0}
%global pkg_release 0.%{baserelease}.%{pkg_rc}
%global src_name %{pkg_name}-v%{pkg_version}-%{pkg_rc}
%else
@@ -96,7 +96,7 @@ find -name "*.apk" -type f -exec rm {} \;
rm -fr make/lib
# Restore the gluegen2 source code from gluegen2-devel
-cp -r %{_datadir}/gluegen2 ../gluegen
+cp -rdf %{_datadir}/gluegen2 ../gluegen
# Fix file-not-utf8
for file in README.txt; do
@@ -181,6 +181,9 @@ find %{buildroot}%{_docdir}/%{name} -name '*.html' \
%{_docdir}/%{name}
%changelog
+* Mon Sep 09 2013 Clément David <c.david86(a)gmail.com> - 2.0.2-1
+- Update to the stable 2.0.2 version
+
* Tue Aug 13 2013 Clément David <c.david86(a)gmail.com> - 2.0-0.11.rc12
- Force the SDK root to / to pass the ARM build
diff --git a/sources b/sources
index 562d997..73a2727 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-de76414ce6b65dda58524e8cad3fa893 jogl-v2.0-rc12.tar.7z
+92594fb4b998ed2380bd0e598f3d1ad3 jogl-v2.0.2.tar.7z
10 years, 8 months
[javapackages] Add mvn_config support for XML contents into TODO
by Stanislav Ochotnicky
commit a8a95280826109cb6fe772b0b15f39fd6cc1883a
Author: Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Date: Mon Sep 9 15:45:07 2013 +0200
Add mvn_config support for XML contents into TODO
TODO | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/TODO b/TODO
index 9bf7df4..2964db2 100644
--- a/TODO
+++ b/TODO
@@ -23,6 +23,11 @@
* FEATURES
+** %mvn_config support for XML contents
+
+ mvn_config currently doesn't support XML contents (they will be escaped).
+ This should be changed so that we can set arbitrary configuration options
+
** %mvn_artifact macro
The macro should generate reactor information in format compatible
10 years, 8 months
[hibernate-commons-annotations/f20] Upstream release 4.0.3.Final
by Marek Goldmann
commit f320cf77a0e88645d0efcea2dc978b78a4b3b21e
Author: Marek Goldmann <marek.goldmann(a)gmail.com>
Date: Mon Sep 9 12:53:48 2013 +0200
Upstream release 4.0.3.Final
.gitignore | 1 +
New-logging-processor-version.patch | 203 ++++++++++++++++++++
...rnate-commons-annotations-4.0.1.Final-pom.patch | 20 --
hibernate-commons-annotations.spec | 57 ++----
sources | 2 +-
5 files changed, 222 insertions(+), 61 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index cd4f965..b7fee8e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/hibernate-commons-annotations-3.2.0.Final.tar.xz
/hibernate-commons-annotations-4.0.1.Final.tar.xz
+/hibernate-commons-annotations-4.0.3.Final.tar.gz
diff --git a/New-logging-processor-version.patch b/New-logging-processor-version.patch
new file mode 100644
index 0000000..04ab74e
--- /dev/null
+++ b/New-logging-processor-version.patch
@@ -0,0 +1,203 @@
+From 8175ae30332ad8f8d6afdd93c093aca130b54ca6 Mon Sep 17 00:00:00 2001
+From: Tomaz Cerar <tomaz.cerar(a)gmail.com>
+Date: Mon, 9 Sep 2013 12:27:39 +0200
+Subject: [PATCH] Upgrade to latest logging processors and maven plugins.
+
+---
+ pom.xml | 89 ++++++++--------------
+ .../annotations/common/util/impl/Log.java | 8 +-
+ 2 files changed, 35 insertions(+), 62 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index 980b9d2..f64a4d7 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -21,7 +21,8 @@
+ ~ 51 Franklin Street, Fifth Floor
+ ~ Boston, MA 02110-1301 USA
+ -->
+-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
++<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
++ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+@@ -103,8 +104,13 @@
+ </scm>
+
+ <properties>
+- <jbossLoggingVersion>3.1.0.CR2</jbossLoggingVersion>
+- <jbossLoggingProcessorVersion>1.0.0.CR5</jbossLoggingProcessorVersion>
++ <version.org.jboss.logging.jboss-logging>3.1.3.GA</version.org.jboss.logging.jboss-logging>
++ <version.org.jboss.logging.jboss-logging-tools>1.2.0.Beta1</version.org.jboss.logging.jboss-logging-tools>
++ <version.jar.plugin>2.4</version.jar.plugin>
++ <version.source.plugin>2.2.1</version.source.plugin>
++ <version.compiler.plugin>3.1</version.compiler.plugin>
++ <version.bundle.plugin>2.3.7</version.bundle.plugin>
++ <version.injection.plugin>1.0.2</version.injection.plugin>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+@@ -112,13 +118,26 @@
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+- <version>${jbossLoggingVersion}</version>
++ <version>${version.org.jboss.logging.jboss-logging}</version>
++ </dependency>
++ <dependency>
++ <groupId>org.jboss.logging</groupId>
++ <artifactId>jboss-logging-annotations</artifactId>
++ <version>${version.org.jboss.logging.jboss-logging-tools}</version>
++ <scope>provided</scope>
++ </dependency>
++
++ <dependency>
++ <groupId>org.jboss.logging</groupId>
++ <artifactId>jboss-logging-processor</artifactId>
++ <version>${version.org.jboss.logging.jboss-logging-tools}</version>
++ <scope>provided</scope>
+ </dependency>
+ <!-- test-scoped dependencies for common testing dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+- <version>3.8.1</version>
++ <version>4.11</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- / test-scoped dependencies for common testing dependencies -->
+@@ -142,7 +161,7 @@
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+- <version>2.1.2</version>
++ <version>${version.source.plugin}</version>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+@@ -156,6 +175,7 @@
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
++ <version>${version.jar.plugin}</version>
+ <configuration>
+ <archive>
+ <manifestFile>${basedir}/target/classes/META-INF/MANIFEST.MF</manifestFile>
+@@ -191,10 +211,11 @@
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
++ <version>${version.bundle.plugin}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+- <Bundle-SymbolicName>${pom.groupId}.${pom.artifactId}</Bundle-SymbolicName>
++ <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Name>${project.name}</Bundle-Name>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <Export-Package>
+@@ -215,7 +236,7 @@
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-injection-plugin</artifactId>
+- <version>1.0.2</version>
++ <version>${version.injection.plugin}</version>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+@@ -240,62 +261,14 @@
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-jar-plugin</artifactId>
+- <version>2.3.1</version>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+- <version>2.3.2</version>
++ <version>${version.compiler.plugin}</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+- <plugin>
+- <groupId>org.bsc.maven</groupId>
+- <artifactId>maven-processor-plugin</artifactId>
+- <version>2.0.2</version>
+- <executions>
+- <!-- Run annotation processors on src/main/java sources -->
+- <execution>
+- <id>process</id>
+- <goals>
+- <goal>process</goal>
+- </goals>
+- <phase>generate-sources</phase>
+- <configuration>
+- <compilerArguments>-AloggingVersion=3.0 -AtranslationFilesPath=${project.basedir}/src/main/resources/ -source 1.6 -target 1.6</compilerArguments>
+- <processors>
+- <processor>org.jboss.logging.generator.apt.LoggingToolsProcessor</processor>
+- </processors>
+- </configuration>
+- </execution>
+- <!-- Run annotation processors on src/test/java sources -->
+- <execution>
+- <id>process-test</id>
+- <goals>
+- <goal>process-test</goal>
+- </goals>
+- <phase>generate-test-sources</phase>
+- <configuration>
+- <compilerArguments>-AloggingVersion=3.0 -AtranslationFilesPath=${project.basedir}/src/main/resources/ -source 1.6 -target 1.6</compilerArguments>
+- <processors>
+- <processor>org.jboss.logging.generator.apt.LoggingToolsProcessor</processor>
+- </processors>
+- </configuration>
+- </execution>
+- </executions>
+- <dependencies>
+- <dependency>
+- <groupId>org.jboss.logging</groupId>
+- <artifactId>jboss-logging-processor</artifactId>
+- <version>${jbossLoggingProcessorVersion}</version>
+- <scope>compile</scope>
+- </dependency>
+- </dependencies>
+- </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+@@ -323,7 +296,7 @@
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+- <ignore />
++ <ignore/>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+diff --git a/src/main/java/org/hibernate/annotations/common/util/impl/Log.java b/src/main/java/org/hibernate/annotations/common/util/impl/Log.java
+index 0c24cbf..2e79de9 100644
+--- a/src/main/java/org/hibernate/annotations/common/util/impl/Log.java
++++ b/src/main/java/org/hibernate/annotations/common/util/impl/Log.java
+@@ -21,10 +21,10 @@
+ package org.hibernate.annotations.common.util.impl;
+
+ import org.jboss.logging.BasicLogger;
+-import org.jboss.logging.Cause;
+-import org.jboss.logging.LogMessage;
+-import org.jboss.logging.Message;
+-import org.jboss.logging.MessageLogger;
++import org.jboss.logging.annotations.Cause;
++import org.jboss.logging.annotations.LogMessage;
++import org.jboss.logging.annotations.Message;
++import org.jboss.logging.annotations.MessageLogger;
+
+ import static org.jboss.logging.Logger.Level.*;
+
+--
+1.8.4
+
diff --git a/hibernate-commons-annotations.spec b/hibernate-commons-annotations.spec
index 96e2b7b..8d6b4a0 100644
--- a/hibernate-commons-annotations.spec
+++ b/hibernate-commons-annotations.spec
@@ -2,42 +2,30 @@
%global namedversion %{version}%{?namedreltag}
Name: hibernate-commons-annotations
-Version: 4.0.1
-Release: 5%{?dist}
+Version: 4.0.3
+Release: 1%{?dist}
Summary: Hibernate Annotations
-Group: Development/Libraries
-
# For details see:
# - https://github.com/hibernate/hibernate-commons-annotations/commit/4a902b4...
# - https://github.com/hibernate/hibernate-commons-annotations/commit/a11c44c...
License: LGPLv2
URL: http://www.hibernate.org/
+Source0: https://github.com/hibernate/hibernate-commons-annotations/archive/hibern...
-# git clone git://github.com/hibernate/hibernate-commons-annotations.git
-# cd hibernate-commons-annotations && git archive --format=tar --prefix=hibernate-commons-annotations-4.0.1.Final/ 4.0.1.Final | xz > hibernate-commons-annotations-4.0.1.Final.tar.xz
-Source0: %{name}-%{namedversion}.tar.xz
-# corrects the position of the class LoggingToolsProcessor for the new jboss-logging-tools
-Patch0: hibernate-commons-annotations-4.0.1.Final-pom.patch
-BuildArch: noarch
+# Support for new jboss-logging-tools
+Patch0: New-logging-processor-version.patch
-Requires: java
-Requires: jboss-logging
-Requires: slf4j
-Requires: jpackage-utils
+BuildArch: noarch
BuildRequires: jboss-logging
-
-BuildRequires: jboss-logging-tools
+BuildRequires: jboss-logging-tools >= 1.2.0
BuildRequires: junit
BuildRequires: slf4j
BuildRequires: apache-commons-logging
BuildRequires: jpackage-utils
-BuildRequires: java-devel
BuildRequires: maven-local
-
BuildRequires: maven-processor-plugin
-
BuildRequires: maven-compiler-plugin
BuildRequires: maven-injection-plugin
BuildRequires: maven-install-plugin
@@ -59,42 +47,31 @@ Common reflection code used in support of annotation processing.
%package javadoc
Summary: Javadocs for %{name}
-Group: Documentation
-Requires: jpackage-utils
%description javadoc
This package contains the API documentation for %{name}.
%prep
-%setup -q -n %{name}-%{namedversion}
-%patch0 -p0
+%setup -q -n hibernate-commons-annotations-hibernate-commons-annotations-%{namedversion}
+%patch0 -p1
%build
-mvn-rpmbuild install javadoc:aggregate
+%mvn_build
%install
+%mvn_install
-mkdir -p $RPM_BUILD_ROOT%{_javadir}/hibernate
-cp -p target/%{name}-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/hibernate/%{name}.jar
-
-mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-cp -rp target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-
-install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
-install -pm 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.hibernate-%{name}.pom
-%add_maven_depmap JPP.hibernate-%{name}.pom hibernate/%{name}.jar -a "org.hibernate:%{name}"
-
-%files
-%{_mavenpomdir}/*
-%{_mavendepmapfragdir}/*
-%{_javadir}/*
+%files -f .mfiles
+%dir %{_javadir}/%{name}
%doc changelog.txt lgpl.txt readme.txt
-%files javadoc
-%{_javadocdir}/%{name}
+%files javadoc -f .mfiles-javadoc
%doc lgpl.txt
%changelog
+* Mon Sep 09 2013 Marek Goldmann <mgoldman(a)redhat.com> - 4.0.3-1
+- Upstream release 4.0.3.Final
+
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 4.0.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
diff --git a/sources b/sources
index 67dfd22..8403999 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-e5886c6ce2eccb45345d82ddeeecd27c hibernate-commons-annotations-4.0.1.Final.tar.xz
+71c4a333270cb5369f1470d3e47d83d9 hibernate-commons-annotations-4.0.3.Final.tar.gz
10 years, 8 months
[javapackages] Add rhbz#986909 to TODO
by Mikolaj Izdebski
commit f82a0cfdf2183367eebb8c6c9280b208b7ab7de4
Author: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Mon Sep 9 14:10:17 2013 +0200
Add rhbz#986909 to TODO
TODO | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/TODO b/TODO
index 9e6948b..9bf7df4 100644
--- a/TODO
+++ b/TODO
@@ -15,6 +15,11 @@
echo kljsgcfi >%{buildroot}/usr/lib/java/this-is-1.2.3-some.test1
%add_maven_depmap foo:bar:test1:some:1.2.3 this-is-1.2.3-some.test1
+** Unable to install jar to directory outside %{_javadir} via mvn_file
+
+ rhbz#986909
+ https://bugzilla.redhat.com/show_bug.cgi?id=986909
+
* FEATURES
10 years, 8 months
[javapackages] Rework maven_depmap.py
by Stanislav Ochotnicky
commit a97225f4f28b575d3d829090b13e13d93c2940ca
Author: Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Date: Wed Sep 4 17:58:07 2013 +0200
Rework maven_depmap.py
java-utils/maven_depmap.py | 192 ++++++++++++++++++++++++++++----------------
1 files changed, 124 insertions(+), 68 deletions(-)
---
diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py
index 1dc60f1..b656812 100644
--- a/java-utils/maven_depmap.py
+++ b/java-utils/maven_depmap.py
@@ -39,23 +39,24 @@ from optparse import OptionParser
import sys
import os
import re
+from StringIO import StringIO
+import xml.dom.minidom
+import codecs
from os.path import basename, dirname, splitext
from zipfile import ZipFile
from time import gmtime, strftime
-from javapackages import POM
+from lxml.etree import SubElement, Element, ElementTree, XMLParser
+
+from javapackages import POM, Artifact
class Fragment:
"""simple structure to hold fragment information"""
- def __init__(self, gid, aid, version, local_gid, local_aid, packaging):
- self.gid = gid.strip()
- self.aid = aid.strip()
- self.version = version.strip()
- self.local_gid = local_gid
- self.local_aid = local_aid
- self.packaging = packaging
+ def __init__(self, upstream_artifact, local_artifact):
+ self.upstream_artifact = upstream_artifact
+ self.local_artifact = local_artifact
def __getitem__(self, index):
return self.__dict__[index]
@@ -73,6 +74,21 @@ class MissingJarFile(Exception):
def __init__(self):
self.args=("JAR seems to be missing in standard directories. Make sure you have installed it",)
+def _get_javadir_part(jar_path):
+ # This is not nice, because macros can change but handling these
+ # in RPM macros is ugly as hell.
+ javadirs=["/usr/share/java", "/usr/share/java-jni", "/usr/lib/java",
+ "/usr/lib64/java"]
+
+ jarpart = None
+ for jdir in javadirs:
+ if jdir in jar_path:
+ javadir_re = re.compile(".*%s/" % jdir)
+ jarpart = re.sub(javadir_re, "", jar_path)
+ if not jarpart:
+ raise MissingJarFile()
+ return jarpart
+
def _get_jpp_from_filename(pom_path, jar_path = None):
"""Get resolved (groupId,artifactId) tuple from POM and JAR path.
@@ -81,21 +97,11 @@ def _get_jpp_from_filename(pom_path, jar_path = None):
is "xbean-main". Therefore for JAR name to be compatible it has be
in %{_javadir}/xbean/xbean-main.jar.
"""
- # This is not nice, because macros can change but handling these
- # in RPM macros is ugly as hell.
- javadirs=["/usr/share/java", "/usr/share/java-jni", "/usr/lib/java",
- "/usr/lib64/java"]
pomname = basename(pom_path)
if jar_path:
if not os.path.isfile(jar_path):
raise IOError("JAR path doesn't exist")
- jarpart = None
- for jdir in javadirs:
- if jdir in jar_path:
- javadir_re = re.compile(".*%s/" % jdir)
- jarpart = re.sub(javadir_re, "", jar_path)
- if not jarpart:
- raise MissingJarFile()
+ jarpart = _get_javadir_part(jar_path)
if pomname[3] == '.':
if '/' not in jarpart:
@@ -124,6 +130,38 @@ def _get_jpp_from_filename(pom_path, jar_path = None):
jpp_aid = pomname[4:-4]
return(jpp_gid, jpp_aid)
+
+def get_local_artifact(upstream_artifact, jar_path=None):
+ if not jar_path:
+ # does this even make sense? There is no pom, no dependencies...
+ return Artifact("JPP", upstream_artifact.artifactId,
+ upstream_artifact.extension,
+ upstream_artifact.classifier,
+ upstream_artifact.version)
+
+ jarpart = _get_javadir_part(jar_path)
+ local_gid = "JPP"
+ fname, ext = splitext(basename(jarpart))
+
+ if upstream_artifact.extension:
+ if ext[1:] != upstream_artifact.extension:
+ raise IncompatibleFilenames(str(upstream_artifact), jar_path)
+ else:
+ if ext[1:] != "jar":
+ raise IncompatibleFilenames(str(upstream_artifact), jar_path)
+
+ local_aid = fname
+ if upstream_artifact.classifier:
+ local_aid = fname[:fname.rfind('-')]
+ if fname[fname.rfind('-')+1:] != upstream_artifact.classifier:
+ raise IncompatibleFilenames(str(upstream_artifact), jar_path)
+ if '/' in jarpart:
+ local_gid = "JPP/{gid}".format(gid=dirname(jarpart))
+
+ return Artifact(local_gid, local_aid, upstream_artifact.extension,
+ upstream_artifact.classifier, upstream_artifact.version)
+
+
def parse_pom(pom_file, jar_file = None):
"""Returns Fragment class or None if POM file is invalid"""
pom = POM(pom_file)
@@ -137,58 +175,65 @@ def parse_pom(pom_file, jar_file = None):
jpp_gid, jpp_aid = _get_jpp_from_filename(pom_file, jar_file)
- return Fragment(pom.groupId,
- pom.artifactId,
- pom.version,
- jpp_gid,
- jpp_aid,
- pom.packaging or "jar"
- )
-
-def
+ upstream_artifact = Artifact(pom.groupId, pom.artifactId, version=pom.version)
+ local_artifact = Artifact(jpp_gid, jpp_aid)
+ return Fragment(upstream_artifact, local_artifact)
def create_mappings(fragment, additions = None):
- maps = [(fragment.gid, fragment.aid)]
+ maps = [fragment]
if additions:
adds = additions.split(',')
for add in adds:
- g, a = add.strip().split(':')
- maps.append((g, a))
+ maps.append(Fragment(Artifact.from_mvn_str(add), fragment.local_artifact))
return maps
+def prettify_element(elem):
+ xmlbuf = StringIO()
+ et = ElementTree()
+ et._setroot(elem)
+ et.write(xmlbuf,
+ xml_declaration=True,
+ encoding = 'utf-8',
+ method = "xml")
+ return xml.dom.minidom.parseString(xmlbuf.getvalue()).toprettyxml()
+
def output_fragment(fragment_path, fragment, mappings, add_versions):
"""Writes fragment into fragment_path in specialised format
compatible with jpp"""
- with open(fragment_path, "aw") as ffile:
+ root = None
+ try:
+ et = ElementTree()
+ parser = XMLParser(remove_blank_text=True)
+ root = et.parse(fragment_path, parser=parser)
+ except IOError:
+ root = Element("dependencyMap")
+
+ if not add_versions:
+ versions = []
+ else:
+ versions = add_versions.split(',')
+
+ if add_versions or add_versions == "":
+ # skip RPM provides in compat packages
+ SubElement(root, "skipProvides")
+
+ versions.insert(0, fragment.upstream_artifact.version)
+ for ver in versions:
+ for fragment in mappings:
+ dep = SubElement(root, "dependency")
+ if add_versions or add_versions == "":
+ fragment.local_artifact.version = ver
+ else:
+ fragment.local_artifact.version = ""
+ mvn_xml = fragment.upstream_artifact.get_xml_element(root="maven")
+ local_xml = fragment.local_artifact.get_xml_element(root="jpp")
+
+ dep.append(mvn_xml)
+ dep.append(local_xml)
+ xmlstr = prettify_element(root)
+ with codecs.open(fragment_path, 'w', "utf-8") as fout:
+ fout.write(xmlstr)
- if not add_versions:
- versions = []
- else:
- versions = add_versions.split(',')
-
- if add_versions or add_versions == "":
- # skip RPM provides in compat packages
- ffile.write("<skipProvides/>\n")
-
- versions.insert(0, fragment.version)
- for ver in versions:
- for m in mappings:
- gid, aid = m
- ffile.write("""
-<dependency>
- <maven>
- <groupId>%s</groupId>
- <artifactId>%s</artifactId>
- <version>%s</version>
- </maven>
- <jpp>
- <groupId>%s</groupId>
- <artifactId>%s</artifactId>
- <version>%s</version>
- </jpp>
-</dependency>
-""" % (gid, aid, ver, fragment.local_gid,
- fragment.local_aid, ver) )
# Add a file to a ZIP archive (or JAR, WAR, ...) unless the file
@@ -201,17 +246,16 @@ def append_if_missing(archive_name, file_name, file_contents):
# Inject pom.properties if JAR doesn't have one. This is necessary to
# identify the origin of JAR files that are present in the repository.
def inject_pom_properties(jar_path, fragment):
- props_path = "META-INF/maven/%(gid)s/%(aid)s/pom.properties" % fragment
+ props_path = "META-INF/maven/{f.groupId}/{f.artifactId}/pom.properties".format(f=fragment.upstream_artifact)
timestamp = strftime("%a %b %d %H:%M:%S UTC %Y", gmtime())
properties = """#Generated by Java Packages Tools
-#%%s
-version=%(version)s
-groupId=%(gid)s
-artifactId=%(aid)s
-""" % fragment % timestamp
+#{timestamp}
+version={f.upstream_artifact.version}
+groupId={f.upstream_artifact.groupId}
+artifactId={f.upstream_artifact.artifactId}""".format(timestamp=timestamp,
+ f=fragment)
append_if_missing(jar_path, props_path, properties)
-
if __name__ == "__main__":
usage="usage: %prog [options] fragment_path pom_path [jar_path]"
@@ -237,7 +281,19 @@ if __name__ == "__main__":
pom_path = args[1].strip()
if len(args) == 3:
jar_path = args[2].strip()
- fragment = parse_pom(pom_path, jar_path)
+ local = None
+ fragment = None
+ if ':' in pom_path:
+ upstream = Artifact.from_mvn_str(pom_path)
+ if upstream.extension == 'jar':
+ upstream.extension = ''
+ if not upstream.version:
+ print "Artifact definition has to include version"
+ sys.exit(1)
+ local = get_local_artifact(upstream, jar_path)
+ fragment = Fragment(upstream, local)
+ else:
+ fragment = parse_pom(pom_path, jar_path)
if fragment:
inject_pom_properties(jar_path, fragment)
else:
10 years, 8 months