[java-sig-commits] [javapackages] Generate maven provides from fragments instead of poms
Stanislav Ochotnicky
sochotni at fedoraproject.org
Tue Mar 6 13:30:58 UTC 2012
commit c6fe42f05478dafee2de51cbfb9e002a81479f03
Author: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date: Tue Mar 6 14:26:32 2012 +0100
Generate maven provides from fragments instead of poms
This means we will finally have complete information in provides.
Before this change a use of
add_maven_depmap ... -a "x:y"
Would not generate "mvn(x:y)" rpm provides. Now it does
depgenerators/fileattrs/maven.attr | 2 +-
depgenerators/maven.prov | 37 ++++++++++++++++++-----------------
2 files changed, 20 insertions(+), 19 deletions(-)
---
diff --git a/depgenerators/fileattrs/maven.attr b/depgenerators/fileattrs/maven.attr
index b8753a0..526fd45 100644
--- a/depgenerators/fileattrs/maven.attr
+++ b/depgenerators/fileattrs/maven.attr
@@ -1,4 +1,4 @@
%__maven_provides %{_rpmconfigdir}/maven.prov
#%__maven_requires %{_rpmconfigdir}/maven.req
-%__maven_path ^%{_datadir}/maven-poms/.*\.pom
+%__maven_path ^%{_datadir}/maven-fragments/.*
diff --git a/depgenerators/maven.prov b/depgenerators/maven.prov
index d9ea469..5c53e7b 100644
--- a/depgenerators/maven.prov
+++ b/depgenerators/maven.prov
@@ -28,36 +28,37 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Authors: Alexander Kurtakov <akurtako at redhat.com>
+# Stanislav Ochotnicky <sochotnicky at redhat.com>
import sys
-import xml.etree.ElementTree as ET
+from xml.etree.ElementTree import fromstring
+from StringIO import StringIO
class TagBuilder:
mavenns = "{http://maven.apache.org/POM/4.0.0}"
-
+
def __init__ (self, filelist=None):
if filelist == None:
filelist = sys.stdin
paths = map (lambda x: x.rstrip (), filelist.readlines ())
for path in paths:
self.get_mvn_provide (path)
-
+
def get_mvn_provide (self, path):
- doc = ET.parse(path)
- artifactId = doc.getroot().findtext("%sartifactId"%(self.mavenns))
- if artifactId is None:
- artifactId = doc.getroot().findtext("artifactId")
- if artifactId is None:
- return
- groupId = doc.getroot().findtext("%sgroupId"%(self.mavenns))
- if groupId is None:
- groupId = doc.getroot().findtext("groupId")
- if groupId is None:
- groupId = doc.getroot().findtext("%sparent/%sgroupId"%(self.mavenns, self.mavenns))
- if groupId is None:
- groupId = doc.getroot().findtext("parent/groupId")
- if groupId is not None:
- print "mvn(%s:%s)" %(groupId, artifactId)
+ buf = StringIO()
+ buf.write('<fragments>\n')
+ with open(path) as f:
+ buf.write(f.read())
+ buf.write('</fragments>')
+ fragments = buf.getvalue()
+ doc = fromstring(fragments)
+
+ for depmap in doc.getchildren():
+ for dep_part in depmap.getchildren():
+ if dep_part.tag == 'maven':
+ groupId = dep_part.findtext("groupId")
+ artifactId = dep_part.findtext("artifactId")
+ print "mvn(%s:%s)" %(groupId, artifactId)
if __name__ == "__main__":
builder = TagBuilder ()
More information about the java-sig-commits
mailing list