You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2010/11/29 10:21:49 UTC
svn commit: r1040043 - in /ant/ivy/core/trunk: src/java/org/apache/ivy/ant/
src/java/org/apache/ivy/osgi/core/ src/java/org/apache/ivy/osgi/repo/
src/java/org/apache/ivy/osgi/repo/osgi/ test/java/org/apache/ivy/osgi/core/
Author: hibou
Date: Mon Nov 29 09:21:46 2010
New Revision: 1040043
URL: http://svn.apache.org/viewvc?rev=1040043&view=rev
Log:
Reenable the loading of the environment profile
Added:
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileProvider.java
- copied, changed from r1037153, ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/osgi/ExecutionEnvironmentProfileProvider.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/jvm-packages.properties
ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileLoaderTest.java
Removed:
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/osgi/
Modified:
ant/ivy/core/trunk/src/java/org/apache/ivy/ant/ConvertManifestTask.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleInfoAdapter.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ExecutionEnvironmentProfile.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ManifestMDParser.java
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/ant/ConvertManifestTask.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/ant/ConvertManifestTask.java?rev=1040043&r1=1040042&r2=1040043&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/ant/ConvertManifestTask.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/ant/ConvertManifestTask.java Mon Nov 29 09:21:46 2010
@@ -27,9 +27,9 @@ import java.util.jar.Manifest;
import org.apache.ivy.ant.IvyTask;
import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
import org.apache.ivy.osgi.core.BundleInfo;
+import org.apache.ivy.osgi.core.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.osgi.core.ManifestParser;
import org.apache.ivy.osgi.repo.BundleInfoAdapter;
-import org.apache.ivy.osgi.repo.osgi.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter;
import org.apache.tools.ant.BuildException;
@@ -60,6 +60,13 @@ public class ConvertManifestTask extends
if (manifest == null) {
throw new BuildException("source manifest file is required for convertmanifest task");
}
+ if (profileProvider == null) {
+ try {
+ profileProvider = new ExecutionEnvironmentProfileProvider();
+ } catch (IOException e) {
+ throw new BuildException("Enable to load the default environment profiles");
+ }
+ }
Manifest m;
try {
Copied: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileProvider.java (from r1037153, ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/osgi/ExecutionEnvironmentProfileProvider.java)
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileProvider.java?p2=ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileProvider.java&p1=ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/osgi/ExecutionEnvironmentProfileProvider.java&r1=1037153&r2=1040043&rev=1040043&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/osgi/ExecutionEnvironmentProfileProvider.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileProvider.java Mon Nov 29 09:21:46 2010
@@ -15,41 +15,28 @@
* limitations under the License.
*
*/
-package org.apache.ivy.osgi.repo.osgi;
+package org.apache.ivy.osgi.core;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Properties;
import org.apache.ivy.osgi.repo.ExecutionEnvironmentProfile;
import org.apache.ivy.util.Message;
-/**
- * Load profiles provided by the <tt>org.eclipse.osgi</tt> bundle.
- */
public class ExecutionEnvironmentProfileProvider {
- private static final String PROFILE_NAME = "osgi.java.profile.name";
-
- private static final String SYSTEM_PACKAGES = "org.osgi.framework.system.packages";
-
- private static final String PROFILE_LIST_FILE = "profile.list";
+ private static final String DEFAULT_PROFILES_FILE = "jvm-packages.properties";
- private static final String PACKAGE_PREFIX = "org/apache/ivy/osgi/repo/osgi/";
-
- private static final String PROFILE_LIST = "java.profiles";
+ private static final String PACKAGE_PREFIX = "org/apache/ivy/osgi/core/";
private Map/* <String, ExecutionEnvironmentProfile> */profileList;
- // private static final String BOOT_DELEGATION = "org.osgi.framework.bootdelegation";
-
- // private static final String ENVIRONMENT = "org.osgi.framework.executionenvironment";
-
public ExecutionEnvironmentProfileProvider() throws IOException {
profileList = loadDefaultProfileList();
}
@@ -61,63 +48,72 @@ public class ExecutionEnvironmentProfile
public static Map/* <String, ExecutionEnvironmentProfile> */loadDefaultProfileList()
throws IOException {
ClassLoader loader = ExecutionEnvironmentProfileProvider.class.getClassLoader();
- InputStream profileListFile = loader
- .getResourceAsStream(PACKAGE_PREFIX + PROFILE_LIST_FILE);
- if (profileListFile == null) {
- throw new FileNotFoundException(PACKAGE_PREFIX + PROFILE_LIST_FILE
+ InputStream defaultProfilesFile = loader.getResourceAsStream(PACKAGE_PREFIX
+ + DEFAULT_PROFILES_FILE);
+ if (defaultProfilesFile == null) {
+ throw new FileNotFoundException(PACKAGE_PREFIX + DEFAULT_PROFILES_FILE
+ " not found in the classpath");
}
Properties props = new Properties();
- props.load(profileListFile);
- String[] profileList = props.getProperty(PROFILE_LIST).split(",");
- Message.debug("Loading profiles " + profileList);
- Map/* <String, ExecutionEnvironmentProfile> */map = new HashMap/*
- * <String,
- * ExecutionEnvironmentProfile
- * >
- */();
- for (int i = 0; i < profileList.length; i++) {
- String profileFile = profileList[i];
- String p = profileFile.trim();
- if (p.length() != 0) {
- ExecutionEnvironmentProfile profile = load(loader
- .getResourceAsStream(PACKAGE_PREFIX + p));
- if (profile != null) {
- Message.verbose("Execution environment profile " + profile.getName()
- + " loaded");
- map.put(profile.getName(), profile);
- } else {
- Message.warn("Unable to load the environement profile " + PACKAGE_PREFIX + p);
+ try {
+ props.load(defaultProfilesFile);
+ } finally {
+ defaultProfilesFile.close();
+ }
+ Map/* <String, ExecutionEnvironmentProfile> */profiles = new HashMap();
+ Iterator itProp = props.entrySet().iterator();
+ while (itProp.hasNext()) {
+ Entry/* <String, String> */prop = (Entry) itProp.next();
+ String propName = (String) prop.getKey();
+ if (propName.endsWith(".pkglist")) {
+ String profileName = propName.substring(0, propName.length() - 8);
+ if (!profiles.containsKey(profileName)) {
+ loadProfile(props, profiles, profileName);
}
}
}
- return map;
- }
-
- public static ExecutionEnvironmentProfile load(File f) throws IOException {
- return load(new FileInputStream(f));
- }
-
- public static ExecutionEnvironmentProfile load(InputStream in) throws IOException {
- Properties props = new Properties();
- props.load(in);
- return load(props);
+ return profiles;
}
- public static ExecutionEnvironmentProfile load(Properties properties) {
- ExecutionEnvironmentProfile profile = new ExecutionEnvironmentProfile(
- properties.getProperty(PROFILE_NAME));
- String packagesList = properties.getProperty(SYSTEM_PACKAGES);
- if (packagesList == null) {
- Message.warn("The profile " + profile.getName()
- + " doesn't have any system package definition");
- return null;
+ private static ExecutionEnvironmentProfile loadProfile(Properties props, Map/*
+ * <String,
+ * ExecutionEnvironmentProfile
+ * >
+ */profiles,
+ String name) {
+
+ ExecutionEnvironmentProfile profile = new ExecutionEnvironmentProfile(name);
+
+ // load the package for the extended profile
+ String extendedProfileName = props.getProperty(name + ".extends");
+ if (extendedProfileName != null) {
+ ExecutionEnvironmentProfile extendedProfile = (ExecutionEnvironmentProfile) profiles
+ .get(extendedProfileName);
+ if (extendedProfile == null) {
+ // not loaded yet, so load it now
+ extendedProfile = loadProfile(props, profiles, extendedProfileName);
+ }
+ Iterator itExtended = extendedProfile.getPkgNames().iterator();
+ while (itExtended.hasNext()) {
+ profile.addPkgName((String) itExtended.next());
+ }
}
- String[] packages = packagesList.split(",");
+
+ // load the actual list
+ String pkgList = props.getProperty(name + ".pkglist");
+ String[] packages = pkgList.split(",");
for (int i = 0; i < packages.length; i++) {
- String pkg = packages[i];
- profile.addPkgName(pkg.trim());
+ String pkg = packages[i].trim();
+ if (pkg.length() != 0) {
+ profile.addPkgName(pkg);
+ }
}
+
+ profiles.put(name, profile);
+
+ Message.verbose("Execution environment profile " + profile.getName() + " loaded");
+
return profile;
}
+
}
Added: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/jvm-packages.properties
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/jvm-packages.properties?rev=1040043&view=auto
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/jvm-packages.properties (added)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/jvm-packages.properties Mon Nov 29 09:21:46 2010
@@ -0,0 +1,200 @@
+# ***************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements. See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership. The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing,
+# * software distributed under the License is distributed on an
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# * KIND, either express or implied. See the License for the
+# * specific language governing permissions and limitations
+# * under the License.
+# ***************************************************************
+
+OSGI_MINIMUM-1.0.pkglist =
+
+OSGI_MINIMUM-1.1.extends = OSGI_MINIMUM-1.0
+OSGI_MINIMUM-1.1.pkglist =
+
+CDC-1.0_Foundation-1.0.pkglist = \
+ javax.microedition.io
+
+CDC-1.1_Foundation-1.1.extends = CDC-1.0_Foundation-1.0
+CDC-1.1_Foundation-1.1.pkglist = \
+ javax.microedition.pki,\
+ javax.security.auth.x500
+
+J2SE-1.2.pkglist = \
+ javax.accessibility,\
+ javax.swing,\
+ javax.swing.border,\
+ javax.swing.colorchooser,\
+ javax.swing.event,\
+ javax.swing.filechooser,\
+ javax.swing.plaf,\
+ javax.swing.plaf.basic,\
+ javax.swing.plaf.metal,\
+ javax.swing.plaf.multi,\
+ javax.swing.table,\
+ javax.swing.text,\
+ javax.swing.text.html,\
+ javax.swing.text.html.parser,\
+ javax.swing.text.rtf,\
+ javax.swing.tree,\
+ javax.swing.undo,\
+ org.omg.CORBA,\
+ org.omg.CORBA.DynAnyPackage,\
+ org.omg.CORBA.ORBPackage,\
+ org.omg.CORBA.portable,\
+ org.omg.CORBA.TypeCodePackage,\
+ org.omg.CosNaming,\
+ org.omg.CosNaming.NamingContextPackage
+
+J2SE-1.3.extends = J2SE-1.2
+J2SE-1.3.pkglist = \
+ javax.naming,\
+ javax.naming.directory,\
+ javax.naming.event,\
+ javax.naming.ldap,\
+ javax.naming.spi,\
+ javax.rmi,\
+ javax.rmi.CORBA,\
+ javax.sound.midi,\
+ javax.sound.midi.spi,\
+ javax.sound.sampled,\
+ javax.sound.sampled.spi,\
+ javax.transaction,\
+ org.omg.CORBA_2_3,\
+ org.omg.CORBA_2_3.portable,\
+ org.omg.SendingContext,\
+ org.omg.stub.java.rmi
+
+J2SE-1.4.extends = J2SE-1.3
+J2SE-1.4.pkglist = \
+ javax.crypto,\
+ javax.crypto.interfaces,\
+ javax.crypto.spec,\
+ javax.imageio,\
+ javax.imageio.event,\
+ javax.imageio.metadata,\
+ javax.imageio.plugins.jpeg,\
+ javax.imageio.spi,\
+ javax.imageio.stream,\
+ javax.net,\
+ javax.net.ssl,\
+ javax.print,\
+ javax.print.attribute,\
+ javax.print.attribute.standard,\
+ javax.print.event,\
+ javax.security.auth,\
+ javax.security.auth.callback,\
+ javax.security.auth.kerberos,\
+ javax.security.auth.login,\
+ javax.security.auth.spi,\
+ javax.security.auth.x500,\
+ javax.security.cert,\
+ javax.sql,\
+ javax.transaction.xa,\
+ javax.xml.parsers,\
+ javax.xml.transform,\
+ javax.xml.transform.dom,\
+ javax.xml.transform.sax,\
+ javax.xml.transform.stream,\
+ org.ietf.jgss,\
+ org.omg.Dynamic,\
+ org.omg.DynamicAny,\
+ org.omg.DynamicAny.DynAnyFactoryPackage,\
+ org.omg.DynamicAny.DynAnyPackage,\
+ org.omg.IOP,\
+ org.omg.IOP.CodecFactoryPackage,\
+ org.omg.IOP.CodecPackage,\
+ org.omg.Messaging,\
+ org.omg.PortableInterceptor,\
+ org.omg.PortableInterceptor.ORBInitInfoPackage,\
+ org.omg.PortableServer,\
+ org.omg.PortableServer.CurrentPackage,\
+ org.omg.PortableServer.POAManagerPackage,\
+ org.omg.PortableServer.POAPackage,\
+ org.omg.PortableServer.portable,\
+ org.omg.PortableServer.ServantLocatorPackage,\
+ org.omg.stub.java.rmi,\
+ org.w3c.dom,\
+ org.w3c.dom.css,\
+ org.w3c.dom.events,\
+ org.w3c.dom.html,\
+ org.w3c.dom.stylesheets,\
+ org.w3c.dom.views ,\
+ org.xml.sax,\
+ org.xml.sax.ext,\
+ org.xml.sax.helpers
+
+J2SE-1.5.extends = J2SE-1.4
+J2SE-1.5.pkglist = \
+ javax.activity,\
+ javax.imageio.plugins.bmp,\
+ javax.management,\
+ javax.management.loading,\
+ javax.management.modelmbean,\
+ javax.management.monitor,\
+ javax.management.openmbean,\
+ javax.management.relation,\
+ javax.management.remote,\
+ javax.management.remote.rmi,\
+ javax.management.timer,\
+ javax.rmi.ssl,\
+ javax.security.sasl,\
+ javax.sql.rowset,\
+ javax.sql.rowset.serial,\
+ javax.sql.rowset.spi,\
+ javax.swing.plaf.synth,\
+ javax.xml,\
+ javax.xml.datatype,\
+ javax.xml.namespace,\
+ javax.xml.validation,\
+ org.w3c.dom.bootstrap,\
+ org.w3c.dom.ls,\
+ org.w3c.dom.ranges,\
+ org.w3c.dom.traversal
+
+JavaSE-1.6.extends = J2SE-1.5
+JavaSE-1.6.pkglist = \
+ javax.activation,\
+ javax.annotation,\
+ javax.annotation.processing,\
+ javax.jws,\
+ javax.jws.soap,\
+ javax.lang.model,\
+ javax.lang.model.element,\
+ javax.lang.model.type,\
+ javax.lang.model.util,\
+ javax.script,\
+ javax.tools,\
+ javax.xml.bind,\
+ javax.xml.bind.annotation,\
+ javax.xml.bind.annotation.adapters,\
+ javax.xml.bind.attachment,\
+ javax.xml.bind.helpers,\
+ javax.xml.bind.util,\
+ javax.xml.crypto,\
+ javax.xml.crypto.dom,\
+ javax.xml.crypto.dsig,\
+ javax.xml.crypto.dsig.dom,\
+ javax.xml.crypto.dsig.keyinfo,\
+ javax.xml.crypto.dsig.spec,\
+ javax.xml.soap,\
+ javax.xml.stream,\
+ javax.xml.stream.events,\
+ javax.xml.stream.util,\
+ javax.xml.transform.stax,\
+ javax.xml.ws,\
+ javax.xml.ws.handler,\
+ javax.xml.ws.handler.soap,\
+ javax.xml.ws.http,\
+ javax.xml.ws.soap,\
+ javax.xml.ws.spi
\ No newline at end of file
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleInfoAdapter.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleInfoAdapter.java?rev=1040043&r1=1040042&r2=1040043&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleInfoAdapter.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleInfoAdapter.java Mon Nov 29 09:21:46 2010
@@ -38,8 +38,8 @@ import org.apache.ivy.core.module.id.Mod
import org.apache.ivy.core.module.id.ModuleRevisionId;
import org.apache.ivy.osgi.core.BundleInfo;
import org.apache.ivy.osgi.core.BundleRequirement;
+import org.apache.ivy.osgi.core.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.osgi.core.ExportPackage;
-import org.apache.ivy.osgi.repo.osgi.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.osgi.util.Version;
import org.apache.ivy.osgi.util.VersionRange;
import org.apache.ivy.plugins.matcher.ExactOrRegexpPatternMatcher;
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java?rev=1040043&r1=1040042&r2=1040043&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java Mon Nov 29 09:21:46 2010
@@ -52,8 +52,8 @@ import org.apache.ivy.core.resolve.IvyNo
import org.apache.ivy.core.resolve.ResolveData;
import org.apache.ivy.core.resolve.ResolvedModuleRevision;
import org.apache.ivy.osgi.core.BundleInfo;
+import org.apache.ivy.osgi.core.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.osgi.obr.xml.OBRXMLParser;
-import org.apache.ivy.osgi.repo.osgi.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.osgi.util.Version;
import org.apache.ivy.plugins.conflict.ConflictManager;
import org.apache.ivy.plugins.latest.ArtifactInfo;
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ExecutionEnvironmentProfile.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ExecutionEnvironmentProfile.java?rev=1040043&r1=1040042&r2=1040043&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ExecutionEnvironmentProfile.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ExecutionEnvironmentProfile.java Mon Nov 29 09:21:46 2010
@@ -79,4 +79,8 @@ public class ExecutionEnvironmentProfile
}
return true;
}
+
+ public String toString() {
+ return name + ":" + pkgNames;
+ }
}
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ManifestMDParser.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ManifestMDParser.java?rev=1040043&r1=1040042&r2=1040043&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ManifestMDParser.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/ManifestMDParser.java Mon Nov 29 09:21:46 2010
@@ -26,8 +26,8 @@ import java.util.jar.Manifest;
import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
import org.apache.ivy.osgi.core.BundleInfo;
+import org.apache.ivy.osgi.core.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.osgi.core.ManifestParser;
-import org.apache.ivy.osgi.repo.osgi.ExecutionEnvironmentProfileProvider;
import org.apache.ivy.plugins.parser.AbstractModuleDescriptorParser;
import org.apache.ivy.plugins.parser.ParserSettings;
import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter;
Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileLoaderTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileLoaderTest.java?rev=1040043&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileLoaderTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/ExecutionEnvironmentProfileLoaderTest.java Mon Nov 29 09:21:46 2010
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.ivy.osgi.core;
+
+import java.util.Map;
+
+import org.apache.ivy.osgi.core.ExecutionEnvironmentProfileProvider;
+import org.apache.ivy.osgi.repo.ExecutionEnvironmentProfile;
+
+import junit.framework.TestCase;
+
+public class ExecutionEnvironmentProfileLoaderTest extends TestCase {
+
+ public void testLoad() throws Exception {
+ Map/* <String, ExecutionEnvironmentProfile> */ profiles = ExecutionEnvironmentProfileProvider.loadDefaultProfileList();
+ assertEquals(9, profiles.size());
+
+ assertEquals(0, ((ExecutionEnvironmentProfile) profiles.get("OSGI_MINIMUM-1.0")).getPkgNames().size());
+ assertEquals(0, ((ExecutionEnvironmentProfile) profiles.get("OSGI_MINIMUM-1.1")).getPkgNames().size());
+ assertEquals(1, ((ExecutionEnvironmentProfile) profiles.get("CDC-1.0_Foundation-1.0")).getPkgNames().size());
+ assertEquals(3, ((ExecutionEnvironmentProfile) profiles.get("CDC-1.1_Foundation-1.1")).getPkgNames().size());
+ assertEquals(24, ((ExecutionEnvironmentProfile) profiles.get("J2SE-1.2")).getPkgNames().size());
+ assertEquals(40, ((ExecutionEnvironmentProfile) profiles.get("J2SE-1.3")).getPkgNames().size());
+ assertEquals(95, ((ExecutionEnvironmentProfile) profiles.get("J2SE-1.4")).getPkgNames().size());
+ assertEquals(120, ((ExecutionEnvironmentProfile) profiles.get("J2SE-1.5")).getPkgNames().size());
+ assertEquals(154, ((ExecutionEnvironmentProfile) profiles.get("JavaSE-1.6")).getPkgNames().size());
+ }
+}