1 package org
.argeo
.slc
.repo
.osgi
;
3 import java
.io
.InputStream
;
5 import java
.util
.ArrayList
;
6 import java
.util
.Collections
;
8 import java
.util
.Properties
;
10 import org
.apache
.commons
.io
.IOUtils
;
11 import org
.argeo
.slc
.SlcException
;
14 * Wraps an OSGi profile, simplifying access to its values such as system
17 public class OsgiProfile
{
18 public final static String PROP_SYSTEM_PACKAGES
= "org.osgi.framework.system.packages";
20 public final static OsgiProfile PROFILE_JAVA_SE_1_6
= new OsgiProfile(
21 "JavaSE-1.6.profile");
23 private final URL url
;
24 private final Properties properties
;
26 public OsgiProfile(URL url
) {
28 properties
= new Properties();
29 InputStream in
= null;
31 properties
.load(this.url
.openStream());
32 } catch (Exception e
) {
33 throw new SlcException("Cannot initalize OSGi profile " + url
, e
);
35 IOUtils
.closeQuietly(in
);
39 public OsgiProfile(String name
) {
40 this(OsgiProfile
.class.getClassLoader().getResource(
42 + OsgiProfile
.class.getPackage().getName()
43 .replace('.', '/') + '/' + name
));
46 public List
<String
> getSystemPackages() {
47 String
[] splitted
= properties
.getProperty(PROP_SYSTEM_PACKAGES
).split(
49 List
<String
> res
= new ArrayList
<String
>();
50 for (String pkg
: splitted
) {
53 return Collections
.unmodifiableList(res
);