[javapackages] [osgi] Implement __eq__() and __ne__() in OSGiBundle
by Michal Srb
commit 6f5399d1c61f6323a412e60e6b6b080f600b8ef3
Author: Michal Srb <msrb(a)redhat.com>
Date: Tue Dec 2 16:18:37 2014 +0100
[osgi] Implement __eq__() and __ne__() in OSGiBundle
python/javapackages/common/osgi.py | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/python/javapackages/common/osgi.py b/python/javapackages/common/osgi.py
index b277b78..7a33361 100644
--- a/python/javapackages/common/osgi.py
+++ b/python/javapackages/common/osgi.py
@@ -153,6 +153,18 @@ class OSGiBundle(object):
return cls(bundle, version=version, namespace=namespace,
requires=requires)
+ def __eq__(self, other):
+ if not isinstance(other, (OSGiBundle, OSGiRequire)):
+ return False
+ if self.bundle != other.bundle:
+ return False
+ if self.namespace != other.namespace:
+ return False
+ return True
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
def get_rpm_str(self, version="", namespace=""):
return "{ns}{d}osgi({bundle}) = {version}".format(ns=namespace or self.namespace,
d="-" if self.namespace else "",
9 years, 6 months
[javapackages] [osgi] Get rid of OSGiResolver class
by Michal Srb
commit 191f59d902123366c3a89f01ce2892f473a2b1ac
Author: Michal Srb <msrb(a)redhat.com>
Date: Tue Dec 2 15:37:51 2014 +0100
[osgi] Get rid of OSGiResolver class
python/javapackages/common/osgi.py | 46 +-----------------------------------
1 files changed, 1 insertions(+), 45 deletions(-)
---
diff --git a/python/javapackages/common/osgi.py b/python/javapackages/common/osgi.py
index b4cfb47..b277b78 100644
--- a/python/javapackages/common/osgi.py
+++ b/python/javapackages/common/osgi.py
@@ -160,47 +160,6 @@ class OSGiBundle(object):
version=version or self.version)
-class OSGiResolver(object):
-
- # FIXME: make it configurable
- _binpath = "/usr/share/java-utils/p2-install"
-
- @staticmethod
- def process_metadata(metadata, scl=None):
- artifacts = metadata.get_provided_artifacts()
- paths = []
- paths.extend([x.get_buildroot_path() for x in artifacts])
- return OSGiResolver.process_paths(paths, scl=scl)
-
- @staticmethod
- def process_path(path, scl=None):
- bundle = OSGiResolver.process_paths([path], scl=scl)
- if bundle:
- return bundle[0]
- return None
-
- @staticmethod
- def process_paths(paths, scl=None):
- return OSGiResolver._call_script(paths, scl=scl)
-
- @staticmethod
- def is_available():
- if os.path.exists(OSGiResolver._binpath):
- return True
- return False
-
- @staticmethod
- def _call_script(paths, scl=None):
- args = "--name rpmdepgen --dry-run --print-deps"
- rc, stdout, stderr = execute_command(OSGiResolver._binpath,
- args=args.split(),
- enable_scl=scl)
- if rc != 0:
- raise Exception(stderr)
- result = stdout.split("\n")[:-1]
- return [OSGiBundle.from_string(x) for x in result]
-
-
def check_path_in_metadata(path, cachedir_path):
buildroot = config.get_buildroot()
@@ -265,10 +224,7 @@ class OSGiCache(object):
bundle_paths = self._find_possible_bundles()
for path in bundle_paths:
- if OSGiResolver.is_available():
- bundle = OSGiResolver.process_path(path, scl=self._scl)
- else:
- bundle = OSGiBundle.from_manifest(path)
+ bundle = OSGiBundle.from_manifest(path)
if bundle:
cache.update({path: bundle})
9 years, 6 months
[javapackages] [osgi] Add method for creating OSGiRequire from metadata properties
by Michal Srb
commit e784642702451f0f35094746ef9839e2b6330752
Author: Michal Srb <msrb(a)redhat.com>
Date: Tue Dec 2 15:34:21 2014 +0100
[osgi] Add method for creating OSGiRequire from metadata properties
python/javapackages/common/osgi.py | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)
---
diff --git a/python/javapackages/common/osgi.py b/python/javapackages/common/osgi.py
index 72b049c..b4cfb47 100644
--- a/python/javapackages/common/osgi.py
+++ b/python/javapackages/common/osgi.py
@@ -64,6 +64,20 @@ class OSGiRequire(object):
bundle, namespace = OSGiRequire.parse(osgistr)
return cls(bundle, namespace=namespace)
+ @classmethod
+ def from_properties(cls, properties):
+ requires = []
+ try:
+ reqstr = properties["osgi.requires"]
+ for r in reqstr.split(","):
+ req = OSGiRequire.from_string(r)
+ if req:
+ requires.append(req)
+ except:
+ pass
+
+ return requires
+
def get_rpm_str(self, version="", namespace=""):
ns = namespace or self.namespace
verstr = ""
@@ -134,15 +148,7 @@ class OSGiBundle(object):
return None
bundle, _, namespace, _ = OSGiBundle.parse(osgi_id)
- requires = []
- try:
- reqstr = properties["osgi.requires"]
- for r in reqstr.split(","):
- req = OSGiRequire.from_string(r)
- if req:
- requires.append(req)
- except:
- pass
+ requires = OSGiRequire.from_properties(properties)
return cls(bundle, version=version, namespace=namespace,
requires=requires)
9 years, 6 months
[javapackages] [maven.req] Iterate over all availble OSGi bundle names when printing versioned OSGi R
by Michal Srb
commit 3d914b192efe75a6282fbf6734cd4776ee673df2
Author: Michal Srb <msrb(a)redhat.com>
Date: Tue Dec 2 15:06:18 2014 +0100
[maven.req] Iterate over all availble OSGi bundle names when printing versioned OSGi R
Also add a test and remove unused import.
depgenerators/maven.req | 4 ++--
test/maven_req_test.py | 8 +++++++-
.../osgi_versioned/maven-metadata/require.xml | 16 ++++++++++++++++
.../osgi_versioned/maven-metadata/require1.xml | 15 +++++++++++++++
4 files changed, 40 insertions(+), 3 deletions(-)
---
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index beb3542..f494bd8 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -194,9 +194,9 @@ class TagBuilder(object):
if req.bundle not in [x.bundle for x in self.provided_osgi]:
requires.add(req.get_rpm_str())
elif req.bundle not in [x.bundle for x in osgi_provs]:
- for prov in osgi_provs:
+ for prov in self.provided_osgi:
if prov.bundle == req.bundle:
- requires.add(req.get_rpm_str(version=version))
+ requires.add(req.get_rpm_str(version=prov.version))
break
_log.debug("metadata requires: %s", ", ".join(requires))
diff --git a/test/maven_req_test.py b/test/maven_req_test.py
index 0653797..d1c4ec8 100644
--- a/test/maven_req_test.py
+++ b/test/maven_req_test.py
@@ -1,6 +1,5 @@
import unittest
import shutil
-import sys
from test_common import mavenreq, assertIn
@@ -255,5 +254,12 @@ class TestMavenReq(unittest.TestCase):
want = ("jpackage-utils", "java-headless")
self.assertEqual(set(want), set(sout))
+ @mavenreq(["osgi_versioned/maven-metadata/require.xml"])
+ def test_osgi_versioned(self, stdout, stderr, return_value):
+ self.assertEqual(return_value, 0, stderr)
+ sout = [x for x in stdout.split('\n') if x]
+ want = ("osgi(osgi.req1) = 1.0", "jpackage-utils", "java-headless")
+ self.assertEqual(set(want), set(sout))
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/metadata/osgi_versioned/maven-metadata/require.xml b/test/metadata/osgi_versioned/maven-metadata/require.xml
new file mode 100644
index 0000000..d080eec
--- /dev/null
+++ b/test/metadata/osgi_versioned/maven-metadata/require.xml
@@ -0,0 +1,16 @@
+<metadata xmlns="http://fedorahosted.org/xmvn/METADATA/2.0.0">
+ <uuid>432048235932</uuid>
+ <artifacts>
+ <artifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-ant-factory</artifactId>
+ <version>1.0</version>
+ <properties>
+ <osgi.id>osgi.id</osgi.id>
+ <osgi.version>osgi.id</osgi.version>
+ <osgi.requires>osgi.req1</osgi.requires>
+ </properties>
+ <path>/usr/share/java/plexus/plexus-ant-factory.jar</path>
+ </artifact>
+ </artifacts>
+</metadata>
diff --git a/test/metadata/osgi_versioned/maven-metadata/require1.xml b/test/metadata/osgi_versioned/maven-metadata/require1.xml
new file mode 100644
index 0000000..83feb00
--- /dev/null
+++ b/test/metadata/osgi_versioned/maven-metadata/require1.xml
@@ -0,0 +1,15 @@
+<metadata xmlns="http://fedorahosted.org/xmvn/METADATA/2.0.0">
+ <uuid>432048235932</uuid>
+ <artifacts>
+ <artifact>
+ <groupId>gid</groupId>
+ <artifactId>aid</artifactId>
+ <version>1.0</version>
+ <properties>
+ <osgi.id>osgi.req1</osgi.id>
+ <osgi.version>1.0</osgi.version>
+ </properties>
+ <path>/usr/share/java/aid.jar</path>
+ </artifact>
+ </artifacts>
+</metadata>
9 years, 6 months
[javapackages] [test] Add maven.req test for OSGi requires on same package
by Michal Srb
commit eb4250a1869e508583654bb05cc31bf9ef47594e
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon Dec 1 18:00:57 2014 +0100
[test] Add maven.req test for OSGi requires on same package
test/maven_req_test.py | 7 +++++++
test/metadata/osgi_self/require.xml | 26 ++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/test/maven_req_test.py b/test/maven_req_test.py
index 179fa7d..0653797 100644
--- a/test/maven_req_test.py
+++ b/test/maven_req_test.py
@@ -248,5 +248,12 @@ class TestMavenReq(unittest.TestCase):
want = ("osgi(osgi.req1)", "jpackage-utils", "java-headless")
self.assertEqual(set(want), set(sout))
+ @mavenreq(["osgi_self/require.xml"])
+ def test_osgi_self(self, stdout, stderr, return_value):
+ self.assertEqual(return_value, 0, stderr)
+ sout = [x for x in stdout.split('\n') if x]
+ want = ("jpackage-utils", "java-headless")
+ self.assertEqual(set(want), set(sout))
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/metadata/osgi_self/require.xml b/test/metadata/osgi_self/require.xml
new file mode 100644
index 0000000..80c093d
--- /dev/null
+++ b/test/metadata/osgi_self/require.xml
@@ -0,0 +1,26 @@
+<metadata xmlns="http://fedorahosted.org/xmvn/METADATA/2.0.0">
+ <uuid>432048235932</uuid>
+ <artifacts>
+ <artifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-ant-factory</artifactId>
+ <version>1.0</version>
+ <properties>
+ <osgi.id>osgi.id</osgi.id>
+ <osgi.version>osgi.id</osgi.version>
+ <osgi.requires>osgi.req1</osgi.requires>
+ </properties>
+ <path>/usr/share/java/plexus/plexus-ant-factory.jar</path>
+ </artifact>
+ <artifact>
+ <groupId>gid</groupId>
+ <artifactId>aid</artifactId>
+ <version>1.0</version>
+ <properties>
+ <osgi.id>osgi.req1</osgi.id>
+ <osgi.version>1.0</osgi.version>
+ </properties>
+ <path>/usr/share/java/aid.jar</path>
+ </artifact>
+ </artifacts>
+</metadata>
9 years, 6 months
[javapackages] Fix "AttributeError: 'list' object has no attribute 'bundle'"
by Michal Srb
commit 7e35ac78cc57990daa2b9d62b0a496fecea21e47
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon Dec 1 17:25:54 2014 +0100
Fix "AttributeError: 'list' object has no attribute 'bundle'"
depgenerators/maven.req | 4 ++--
python/javapackages/metadata/metadata.py | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index ecc13a2..beb3542 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -86,7 +86,7 @@ class TagBuilder(object):
self.provided_osgi = Metadata.read_provided_osgi_from_cache(rpmconf.cachedir)
if self.provided_osgi is None:
metadata = Metadata(self.metadata_paths or self._gather_metadata_files())
- self.provided_osgi = metadata.write_provided_osgi_to_cache(rpmconf.cachedir) or {}
+ self.provided_osgi = metadata.write_provided_osgi_to_cache(rpmconf.cachedir) or []
curr_metadata = Metadata(paths[0])
self.print_requires(curr_metadata)
@@ -191,7 +191,7 @@ class TagBuilder(object):
osgi_reqs = metadata.get_osgi_requires()
osgi_provs = metadata.get_osgi_provides()
for req in osgi_reqs:
- if req.bundle not in self.provided_osgi:
+ if req.bundle not in [x.bundle for x in self.provided_osgi]:
requires.add(req.get_rpm_str())
elif req.bundle not in [x.bundle for x in osgi_provs]:
for prov in osgi_provs:
diff --git a/python/javapackages/metadata/metadata.py b/python/javapackages/metadata/metadata.py
index aba9386..a3a7530 100644
--- a/python/javapackages/metadata/metadata.py
+++ b/python/javapackages/metadata/metadata.py
@@ -183,7 +183,8 @@ class Metadata(object):
def get_osgi_requires(self):
reqs = []
bundles = self.get_osgi_provides()
- reqs.extend(x.requires for x in bundles)
+ for bundle in bundles:
+ reqs.extend(bundle.requires)
return reqs
def contains_only_poms(self):
9 years, 6 months
[javapackages] [test] Add basic test for OSGi in metadata
by Michal Srb
commit dfd2d4d9a577f94bc94bc483ed5c76edf5d4b4cf
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon Dec 1 17:24:52 2014 +0100
[test] Add basic test for OSGi in metadata
test/maven_req_test.py | 7 +++++++
test/metadata/osgi_simple/require.xml | 19 +++++++++++++++++++
2 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/test/maven_req_test.py b/test/maven_req_test.py
index 8210926..179fa7d 100644
--- a/test/maven_req_test.py
+++ b/test/maven_req_test.py
@@ -241,5 +241,12 @@ class TestMavenReq(unittest.TestCase):
want = ("unresolvable:pom-dependency:pom:2.2.1")
self.assertTrue(want in stderr, stderr)
+ @mavenreq(["osgi_simple/require.xml"])
+ def test_osgi_basic(self, stdout, stderr, return_value):
+ self.assertEqual(return_value, 0, stderr)
+ sout = [x for x in stdout.split('\n') if x]
+ want = ("osgi(osgi.req1)", "jpackage-utils", "java-headless")
+ self.assertEqual(set(want), set(sout))
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/metadata/osgi_simple/require.xml b/test/metadata/osgi_simple/require.xml
new file mode 100644
index 0000000..2f186df
--- /dev/null
+++ b/test/metadata/osgi_simple/require.xml
@@ -0,0 +1,19 @@
+<metadata xmlns="http://fedorahosted.org/xmvn/METADATA/2.0.0">
+ <uuid>432048235932</uuid>
+ <artifacts>
+ <artifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-ant-factory</artifactId>
+ <version>1.0</version>
+ <compatVersions>
+ <version>1.0</version>
+ </compatVersions>
+ <properties>
+ <osgi.id>osgi.id</osgi.id>
+ <osgi.version>osgi.id</osgi.version>
+ <osgi.requires>osgi.req1</osgi.requires>
+ </properties>
+ <path>/usr/share/java/plexus/plexus-ant-factory.jar</path>
+ </artifact>
+ </artifacts>
+</metadata>
9 years, 6 months
[javapackages] [maven.req] Simplify printing OSGi requires
by Michal Srb
commit 5c3cdfdb204bddfb3bc956893b84610a2a43a684
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon Dec 1 16:08:07 2014 +0100
[maven.req] Simplify printing OSGi requires
depgenerators/maven.req | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
---
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index 7f97480..ecc13a2 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -196,9 +196,8 @@ class TagBuilder(object):
elif req.bundle not in [x.bundle for x in osgi_provs]:
for prov in osgi_provs:
if prov.bundle == req.bundle:
- version = prov.version
+ requires.add(req.get_rpm_str(version=version))
break
- requires.add("osgi({osgi_id}) = {version}".format(osgi_id=req, version=version))
_log.debug("metadata requires: %s", ", ".join(requires))
9 years, 6 months
[javapackages] Use existing functions to read OSGi information from metadata
by Michal Srb
commit f142c9f308671a38c65d448aca040bba8f6838f8
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon Dec 1 15:49:47 2014 +0100
Use existing functions to read OSGi information from metadata
python/javapackages/metadata/artifact.py | 6 +++++
python/javapackages/metadata/metadata.py | 33 ++++++-----------------------
2 files changed, 13 insertions(+), 26 deletions(-)
---
diff --git a/python/javapackages/metadata/artifact.py b/python/javapackages/metadata/artifact.py
index 7913cac..9635437 100644
--- a/python/javapackages/metadata/artifact.py
+++ b/python/javapackages/metadata/artifact.py
@@ -1,4 +1,5 @@
import javapackages.common.config as config
+from javapackages.common.osgi import OSGiBundle
from javapackages.maven.artifact import Artifact
from javapackages.maven.pom import POM
from javapackages.maven.printer import Printer
@@ -52,6 +53,11 @@ class MetadataArtifact(object):
pass
return False
+ def get_osgi_bundle(self):
+ if not self.properties:
+ return None
+ return OSGiBundle.from_properties(self.properties)
+
def get_buildroot_path(self, prefix=None):
if not self.path:
return None
diff --git a/python/javapackages/metadata/metadata.py b/python/javapackages/metadata/metadata.py
index 49f5fcf..aba9386 100644
--- a/python/javapackages/metadata/metadata.py
+++ b/python/javapackages/metadata/metadata.py
@@ -170,39 +170,20 @@ class Metadata(object):
return None
def get_osgi_provides(self):
- provs = []
+ bundles = []
for metadata in self.__metadata:
if metadata.artifacts and metadata.artifacts.artifact:
for a in metadata.artifacts.artifact:
artifact = MetadataArtifact.from_metadata(a)
- if artifact.properties:
- osgi_id = ""
- version = ""
- try:
- osgi_id = artifact.properties["osgi.id"]
- version = artifact.properties["osgi.version"]
- except KeyError:
- pass
- if osgi_id:
- bundle = OSGiBundle.from_string(osgi_id)
- bundle.version = version
- provs.append(bundle)
- return provs
+ bundle = artifact.get_osgi_bundle()
+ if bundle:
+ bundles.append(bundle)
+ return bundles
def get_osgi_requires(self):
reqs = []
- for metadata in self.__metadata:
- if metadata.artifacts and metadata.artifacts.artifact:
- for a in metadata.artifacts.artifact:
- artifact = MetadataArtifact.from_metadata(a)
- if artifact.properties:
- try:
- content = artifact.properties["osgi.requires"]
- req_strings = set()
- req_strings |= set(content.split(','))
- reqs.extend([OSGiRequire.parse(x) for x in req_strings])
- except:
- pass
+ bundles = self.get_osgi_provides()
+ reqs.extend(x.requires for x in bundles)
return reqs
def contains_only_poms(self):
9 years, 6 months
[Bug 1092783] CVE-2014-0193 netty: DoS via memory exhaustion during data aggregation
by Red Hat Bugzilla
https://bugzilla.redhat.com/show_bug.cgi?id=1092783
Trevor Jay <tjay(a)redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aneelica(a)redhat.com,
| |brms-jira(a)redhat.com,
| |cbillett(a)redhat.com,
| |dandread(a)redhat.com,
| |epp-bugs(a)redhat.com,
| |fnasser(a)redhat.com,
| |huwang(a)redhat.com,
| |jason.greene(a)redhat.com,
| |java-sig-commits(a)lists.fedo
| |raproject.org,
| |jbpapp-maint(a)redhat.com,
| |jdg-bugs(a)redhat.com,
| |jerboaa(a)gmail.com,
| |jon.vanalten(a)redhat.com,
| |katello-bugs(a)redhat.com,
| |kkhan(a)redhat.com,
| |mnovotny(a)redhat.com,
| |msimacek(a)redhat.com,
| |msrb(a)redhat.com,
| |pavelp(a)redhat.com,
| |rhq-maint(a)redhat.com,
| |soa-p-jira(a)post-office.corp
| |.redhat.com,
| |tkirby(a)redhat.com,
| |tomckay(a)redhat.com
--
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=OtvYruCVwy&a=cc_unsubscribe
9 years, 6 months