diff -x pom.xml -Naurb karaf-eik-a8540cc/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/IKarafConstants.java karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/IKarafConstants.java --- karaf-eik-a8540cc/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/IKarafConstants.java 2014-01-08 15:30:51.000000000 +0100 +++ karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/IKarafConstants.java 2014-02-16 19:02:00.156054200 +0100 @@ -30,6 +30,8 @@ public static final String KARAF_DATA_PROP = "karaf.data"; + public static final String KARAF_ETC_PROP = "karaf.etc"; + public static final String KARAF_DEFAULT_BUNDLE_START_LEVEL = "60"; public static final String KARAF_DEFAULT_CONFIG_PROPERTIES_FILE = "config.properties"; diff -x pom.xml -Naurb karaf-eik-a8540cc/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/configuration/internal/StartupSectionImpl.java karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/configuration/internal/StartupSectionImpl.java --- karaf-eik-a8540cc/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/configuration/internal/StartupSectionImpl.java 2014-01-08 15:30:51.000000000 +0100 +++ karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/configuration/internal/StartupSectionImpl.java 2014-02-16 19:02:38.181662100 +0100 @@ -110,13 +110,42 @@ } /** + * Converts a MVN url to a file path, relative to System. + * Code taken from MvnUrlConverter from UI plugin. + * TODO: move class MvnUrlConverter inside core plugin and use it + * as dependency from UI plugin. + */ + protected String getPath(String url) { + if (url != null) { + if (url.startsWith("mvn:")) { + url = url.substring(4); + String[] repositorySplit = url.split("!"); + String urlWithoutRepository = repositorySplit[repositorySplit.length - 1]; + + String[] segments = urlWithoutRepository.split("/"); + if (segments.length >= 3) { + String groupId = segments[0]; + String artifactId = segments[1]; + String version = segments[2]; + + return groupId.replace(".", "/") + "/" + artifactId + "/" + version + "/" + artifactId + "-" + version + ".jar"; + } + } + } + + return url; + } + + /** * Populates the startup state model with the {@link BundleDescriptions} of * the bundles found in the startup configuration. */ protected void populateStartupStateModel() { final File rootBundleDir = getParent().getPluginRootDirectory().toFile(); for (Object o : getProperties().keySet()) { - final File bundleLocation = new File(rootBundleDir, (String) o); + // In karaf-3.0.0, mvn urls are sored instead of raw paths. + // Then first try to convert mvn urls to raw path. + final File bundleLocation = new File(rootBundleDir, getPath((String) o)); final BundleDescription desc = getParent().getState().getBundleByLocation( bundleLocation.getAbsolutePath()); diff -x pom.xml -Naurb karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/features/FeaturesResolverJob.java karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/features/FeaturesResolverJob.java --- karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/features/FeaturesResolverJob.java 2014-01-08 15:30:51.000000000 +0100 +++ karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/features/FeaturesResolverJob.java 2014-02-16 19:03:26.250008800 +0100 @@ -118,7 +118,15 @@ final String defaultRepos = (String) mvnConfiguration.get("org.ops4j.pax.url.mvn.defaultRepositories"); final String repos = (String) mvnConfiguration.get("org.ops4j.pax.url.mvn.repositories"); - final String combinedRepos = KarafCorePluginUtils.join(Arrays.asList(new String[] { defaultRepos, repos }), ","); + // In karaf-3.0.0, default repo may be null. + // First check if it's null an if not then add it to repo list + ArrayList reposList = new ArrayList(); + if (defaultRepos != null) + reposList.add(defaultRepos); + if (repos != null) + reposList.add(repos); + final String combinedRepos = KarafCorePluginUtils.join(reposList, ","); + mvnConfiguration.put("org.ops4j.pax.url.mvn.repositories", removeInvalidSuffixes(combinedRepos)); // End: Refactor diff -x pom.xml -Naurb karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java --- karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java 2014-01-08 15:30:51.000000000 +0100 +++ karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java 2014-02-16 19:04:04.783090300 +0100 @@ -194,6 +194,8 @@ combinedProperties.put("karaf.home", karafHome); combinedProperties.put("karaf.base", karafHome); combinedProperties.put("karaf.data", getKarafPlatformModel().getRootDirectory().append("data").toOSString()); + // Add ref to karaf.etc for karaf-3.0.0 + combinedProperties.put("karaf.etc", getKarafPlatformModel().getRootDirectory().append("etc").toOSString()); for (final String filename : new String[]{"config.properties", "system.properties", "users.properties"}) { final Properties fileProperties = KarafCorePluginUtils.loadProperties(getKarafPlatformModel().getConfigurationDirectory().toFile(), filename, true); diff -x pom.xml -Naurb karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/impl/KarafRuntimePropertyBuildUnit.java karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/impl/KarafRuntimePropertyBuildUnit.java --- karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/impl/KarafRuntimePropertyBuildUnit.java 2014-01-08 15:30:51.000000000 +0100 +++ karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/impl/KarafRuntimePropertyBuildUnit.java 2014-02-16 19:04:20.500037200 +0100 @@ -50,6 +50,8 @@ combinedProperties.put("karaf.home", karafHome); combinedProperties.put("karaf.base", karafHome); combinedProperties.put("karaf.data", getKarafPlatformModel().getRootDirectory().append("data").toOSString()); + // Add ref to karaf.etc for karaf-3.0.0 + combinedProperties.put("karaf.etc", getKarafPlatformModel().getRootDirectory().append("etc").toOSString()); for (final String filename : new String[] { "config.properties", "system.properties", "users.properties" }) { final Properties fileProperties = diff -x pom.xml -Naurb karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java --- karaf-eik-a8540cc/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java 2014-01-08 15:30:51.000000000 +0100 +++ karaf-eik-a8540cc-karaf-3.0.0/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java 2014-02-16 19:05:28.917611200 +0100 @@ -441,6 +441,11 @@ IKarafConstants.KARAF_HOME_PROP, platformModel.getParentKarafModel().getRootDirectory().toString()); + // Add ref to karaf.etc for karaf 3.0.0 + systemProperties.put( + IKarafConstants.KARAF_ETC_PROP, + platformModel.getParentKarafModel().getRootDirectory().append("etc").toOSString()); + systemProperties.put( "java.util.logging.config.file", //$NON-NLS-1$ platformModel.getParentKarafModel().getConfigurationDirectory().append("java.util.logging.properties").toString()); //$NON-NLS-1$