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("JavaSE-1.6.profile");
22 private final URL url
;
23 private final Properties properties
;
25 public OsgiProfile(URL url
) {
27 properties
= new Properties();
28 InputStream in
= null;
30 properties
.load(this.url
.openStream());
31 } catch (Exception e
) {
32 throw new SlcException("Cannot initalize OSGi profile " + url
, e
);
34 IOUtils
.closeQuietly(in
);
38 public OsgiProfile(String name
) {
39 this(OsgiProfile
.class.getClassLoader()
40 .getResource('/' + OsgiProfile
.class.getPackage().getName().replace('.', '/') + '/' + name
));
43 public List
<String
> getSystemPackages() {
44 String
[] splitted
= properties
.getProperty(PROP_SYSTEM_PACKAGES
).split(",");
45 List
<String
> res
= new ArrayList
<String
>();
46 for (String pkg
: splitted
) {
49 return Collections
.unmodifiableList(res
);