You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by se...@apache.org on 2013/07/11 14:10:54 UTC

svn commit: r1502197 - in /karaf/eik/branches/eik-2.x-juno: ./ features/org.apache.karaf.eik.repository/ manual/ manual/src/main/webapp/ manual/src/main/webapp/images/ manual/src/main/webapp/user-guide/ parent/ plugins/org.apache.karaf.eik.core/src/mai...

Author: sevanchik
Date: Thu Jul 11 12:10:54 2013
New Revision: 1502197

URL: http://svn.apache.org/r1502197
Log:
juno: Support Eclipse 4.x releases

  build: Exclude .settings directory from git tracking
  platform: Minimal changes to support Eclipse Juno
  cleanup: EIK's WTP integration does not work
  launcher: Make resilient to missing Karaf model
  project: Make methods perform a single task
  project: Disable create Launch Configuration
  project: Formatting and String literal cleanup
  model: Move findActivePlatformModel to UI project
  nls: Adding NON-NLS tags
  project: Display Karaf details in Project Explorer
  launch: Karaf does not work inside Eclipse
  cleanup: Removing compilation warnings

Added:
    karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_1.png
    karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_2.png
    karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/manual.conf
    karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponentwithm2e.conf
Modified:
    karaf/eik/branches/eik-2.x-juno/.gitignore
    karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/category.xml
    karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/pom.xml
    karaf/eik/branches/eik-2.x-juno/manual/pom.xml
    karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponent.conf
    karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/index.conf
    karaf/eik/branches/eik-2.x-juno/parent/pom.xml
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/KarafPlatformModelRegistry.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafConfigurationTab.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationDelegate.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafUIPluginActivator.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/internal/KarafLaunchUtils.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/model/AbstractContentModel.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/navigator/KarafPlatformModelContentProvider.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/NewKarafProjectOperation.java
    karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java
    karaf/eik/branches/eik-2.x-juno/pom.xml

Modified: karaf/eik/branches/eik-2.x-juno/.gitignore
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/.gitignore?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/.gitignore (original)
+++ karaf/eik/branches/eik-2.x-juno/.gitignore Thu Jul 11 12:10:54 2013
@@ -2,4 +2,5 @@ target
 .idea
 *.i??
 .classpath
-.project
\ No newline at end of file
+.project
+.settings

Modified: karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/category.xml
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/category.xml?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/category.xml (original)
+++ karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/category.xml Thu Jul 11 12:10:54 2013
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/org.apache.karaf.eik.wtp.feature_0.10.0.jar" id="org.apache.karaf.eik.wtp.feature" version="0.10.0">
-      <category name="Eclipse Web Tools Platform Integration for Apache Karaf"/>
-   </feature>
    <feature url="features/org.apache.karaf.eik.feature_0.10.0.jar" id="org.apache.karaf.eik.feature" version="0.10.0">
       <category name="Eclipse Integration for Apache Karaf"/>
    </feature>
@@ -10,5 +7,5 @@
       <category name="Eclipse Integration for Apache Karaf"/>
    </feature>
    <category-def name="Eclipse Integration for Apache Karaf" label="Eclipse Integration for Apache Karaf"/>
-   <category-def name="Eclipse Web Tools Platform Integration for Apache Karaf" label="Eclipse Web Tools Platform Integration for Apache Karaf"/>
+</site>
 </site>

Modified: karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/pom.xml
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/pom.xml?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/pom.xml (original)
+++ karaf/eik/branches/eik-2.x-juno/features/org.apache.karaf.eik.repository/pom.xml Thu Jul 11 12:10:54 2013
@@ -102,12 +102,15 @@
                                     <version>${project.version}</version>
                                     <outputDirectory>features</outputDirectory>
                                 </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.apache.karaf.eik.features</groupId>
-                                    <artifactId>org.apache.karaf.eik.wtp.feature</artifactId>
-                                    <version>${project.version}</version>
-                                    <outputDirectory>features</outputDirectory>
-                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>target-platform-configuration</artifactId>
+                <version>${tycho-version}</version>
                             </artifactItems>
                         </configuration>
                     </execution>

Modified: karaf/eik/branches/eik-2.x-juno/manual/pom.xml
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/pom.xml?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/manual/pom.xml (original)
+++ karaf/eik/branches/eik-2.x-juno/manual/pom.xml Thu Jul 11 12:10:54 2013
@@ -21,7 +21,7 @@
 
     <modelVersion>4.0.0</modelVersion>
 
-   <parent>
+    <parent>
         <groupId>org.apache.karaf.eik</groupId>
         <artifactId>parent</artifactId>
         <version>0.10.0-SNAPSHOT</version>
@@ -55,12 +55,12 @@
         <dependency>
             <groupId>org.scala-lang</groupId>
             <artifactId>scala-library</artifactId>
-	    <version>${scala.version}</version>
+            <version>${scala.version}</version>
         </dependency>
         <dependency>
             <groupId>org.scala-lang</groupId>
             <artifactId>scala-compiler</artifactId>
-	    <version>${scala.version}</version>
+            <version>${scala.version}</version>
         </dependency>
     </dependencies>
 
@@ -167,6 +167,16 @@
                     </systemProperties>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-scm-publish-plugin</artifactId>
+                <version>1.0-beta-2</version>
+                <configuration>
+                    <checkinComment>[scm-publish] Updating main site with Karaf EIK manual</checkinComment>
+                    <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/karaf/site/production/manual/eik/latest</pubScmUrl>
+                    <content>${project.build.directory}/sitegen</content>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 

Added: karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_1.png
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_1.png?rev=1502197&view=auto
==============================================================================
Files karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_1.png (added) and karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_1.png Thu Jul 11 12:10:54 2013 differ

Added: karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_2.png
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_2.png?rev=1502197&view=auto
==============================================================================
Files karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_2.png (added) and karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/images/devcomponentwithm2e_2.png Thu Jul 11 12:10:54 2013 differ

Added: karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/manual.conf
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/manual.conf?rev=1502197&view=auto
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/manual.conf (added)
+++ karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/manual.conf Thu Jul 11 12:10:54 2013
@@ -0,0 +1,41 @@
+{attributes:layout=/WEB-INF/scalate/layouts/print.ssp}
+
+{div:class=title}
+!/images/karaf-logos.png!
+\\
+\\
+\\
+\\
+Apache Karaf EIK
+Manual
+\\
+\\
+\\
+\\
+{div}
+
+{div:class=copyright-section}
+Copyright (c) 2013 The Apache Software Foundation
+
+The PDF format of the Karaf EIK Manual has been generated by Prince XML (http://www.princexml.org).
+{div}
+
+{div:class=toc-title}
+Table of contents
+{div}
+
+{toc:maxLevel=2}
+
+h1. Overview
+{include:overview.conf}
+
+h1. User Guide
+{include:user-guide/prerequisites.conf}
+{include:user-guide/supportedversions.html}
+{include:user-guide/installation.conf}
+{include:user-guide/createproject.conf}
+{include:user-guide/launchconf.conf}
+{include:user-guide/loadbundle.conf}
+{include:user-guide/uninstall.conf}
+{include:user-guide/devcomponent.conf}
+{include:user-guide/devcomponentwithm2e}

Modified: karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponent.conf
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponent.conf?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponent.conf (original)
+++ karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponent.conf Thu Jul 11 12:10:54 2013
@@ -1,9 +1,9 @@
 h1. Developing OSGi components with EIK
 
-This chapter describes how to develop a osgi component with EIK.
-Now we have a functional karaf environment in Eclipse, and we will illustrate howto develop a debug simple Camel route
+This chapter describes how to develop a OSGi component with EIK.
+Now we have a functional Karaf environment in Eclipse, and we will illustrate howto develop a debug simple Camel route
 
-For this example we use apache servicemix 4.5.2.
+For this example we use Apache ServiceMix 4.5.2.
 
 Using command line, we can create our project:
 {noformat}

Added: karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponentwithm2e.conf
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponentwithm2e.conf?rev=1502197&view=auto
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponentwithm2e.conf (added)
+++ karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/devcomponentwithm2e.conf Thu Jul 11 12:10:54 2013
@@ -0,0 +1,72 @@
+h1. Developing OSGi components with m2e and EIK
+
+Most of the examples and archetype present on the web use maven-bundle-plugins to create bundle. 
+EIK is able to use these archetype through the help of M2E.
+
+If m2e is not installed yet please download it from [m2e|http://download.eclipse.org/technology/m2e/releases].
+
+Using Karaf-bundle-archetype a simple projects called simpleBundle.
+
+We need to instruct maven-bundle-plugin configuration like this:
+
+* manifestLocation to META-INF
+* unpackBundle to true
+
+{noformat}
+<plugin>
+	<groupId>org.apache.felix</groupId>
+	<artifactId>maven-bundle-plugin</artifactId>
+	<version>2.3.7</version>
+	<extensions>true</extensions>
+	<configuration>
+	<manifestLocation>META-INF</manifestLocation>
+	<unpackBundle>true</unpackBundle>
+	<instructions>
+	<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+	<Bundle-Version>${project.version}</Bundle-Version>
+	<Bundle-Activator>org.apache.karaf.eik.manual.simpleBundle.Activator</Bundle-Activator>
+	<Export-Package>
+		org.apache.karaf.eik.manual.simpleBundle*;version=${project.version}
+	</Export-Package>
+	<Import-Package>
+		*
+	</Import-Package>
+	</instructions>
+	</configuration>
+</plugin>
+{noformat}
+
+
+* Right click on project -> Maven -> Update Project...
+* Right click on project -> RunAs -> Maven install
+
+
+from Debug Configurations is possible to see simpleBundle
+
+!/images/devcomponentwithm2e_1.png!
+
+Run Eik and to verify the installed bundle were started type osgi:list
+
+!/images/devcomponentwithm2e_2.png!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Modified: karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/index.conf
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/index.conf?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/index.conf (original)
+++ karaf/eik/branches/eik-2.x-juno/manual/src/main/webapp/user-guide/index.conf Thu Jul 11 12:10:54 2013
@@ -8,3 +8,4 @@ h1. Eclipse Integration Karaf User Guide
 * [View loaded bundle |/user-guide/loadbundle]
 * [Uninstalling |/user-guide/uninstall]
 * [Developing OSGi components|/user-guide/devcomponent]
+* [Developing OSGi components with m2e|/user-guide/devcomponentwithm2e]

Modified: karaf/eik/branches/eik-2.x-juno/parent/pom.xml
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/parent/pom.xml?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/parent/pom.xml (original)
+++ karaf/eik/branches/eik-2.x-juno/parent/pom.xml Thu Jul 11 12:10:54 2013
@@ -35,11 +35,11 @@
     <name>Apache Karaf :: EIK :: Parent</name>
 
     <properties>
-        <platform-version-name>helios</platform-version-name>
+        <platform-version-name>juno</platform-version-name>
+        <swtbot.platform-version-name>helios</swtbot.platform-version-name>
         <eclipse-site>http://download.eclipse.org/releases/${platform-version-name}</eclipse-site>
         <wikitext-site>http://download.eclipse.org/tools/mylyn/update/weekly</wikitext-site>
-        <swtbot-site>http://download.eclipse.org/technology/swtbot/${platform-version-name}/dev-build/update-site
-        </swtbot-site>
+        <swtbot-site>http://download.eclipse.org/technology/swtbot/${swtbot.platform-version-name}/dev-build/update-site</swtbot-site>
         <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository</orbit-site>
         <tycho-version>0.13.0</tycho-version>
         <aries.jmx.version>1.0.0</aries.jmx.version>

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/KarafPlatformModelRegistry.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/KarafPlatformModelRegistry.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/KarafPlatformModelRegistry.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.core/src/main/java/org/apache/karaf/eik/core/KarafPlatformModelRegistry.java Thu Jul 11 12:10:54 2013
@@ -18,25 +18,21 @@
  */
 package org.apache.karaf.eik.core;
 
-import org.apache.karaf.eik.core.internal.KarafCorePluginActivator;
-
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.karaf.eik.core.internal.KarafCorePluginActivator;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.pde.core.plugin.IPluginModelBase;
-import org.eclipse.pde.core.plugin.PluginRegistry;
 
 public final class KarafPlatformModelRegistry {
 
-    private static final String ATT_CLASS = "class";
+    public static final String ATT_CLASS = "class";
 
     private static final String TAG_PLATFORM_MODEL_ITEMTYPE = "model";
 
@@ -46,43 +42,6 @@ public final class KarafPlatformModelReg
 
     /**
      *
-     * @return
-     * @throws CoreException
-     */
-    public static KarafPlatformModel findActivePlatformModel() throws CoreException {
-        final Map<String, IConfigurationElement> triggerBundleMap =
-            getTriggerBundlePlatformFactoryMap();
-
-        for (Map.Entry<String, IConfigurationElement> e : triggerBundleMap.entrySet()) {
-            final String symbolicName = e.getKey();
-
-            IPluginModelBase karafPlatformPlugin = PluginRegistry.findModel(symbolicName);
-
-            if (karafPlatformPlugin == null) {
-                continue;
-            }
-
-            final IConfigurationElement c = e.getValue();
-            final KarafPlatformModelFactory f =
-                (KarafPlatformModelFactory)c.createExecutableExtension(ATT_CLASS);
-
-            final KarafPlatformValidator validator = f.getPlatformValidator();
-
-            IPath modelPath = new Path(karafPlatformPlugin.getInstallLocation()).removeLastSegments(1);
-            while(!modelPath.isEmpty() && !modelPath.isRoot()) {
-                modelPath = modelPath.removeLastSegments(1);
-
-                if (validator.isValid(modelPath)) {
-                    return f.getPlatformModel(modelPath);
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     *
      * @param path
      * @return
      * @throws CoreException

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafConfigurationTab.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafConfigurationTab.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafConfigurationTab.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafConfigurationTab.java Thu Jul 11 12:10:54 2013
@@ -18,16 +18,6 @@
  */
 package org.apache.karaf.eik.ui;
 
-import org.apache.karaf.eik.core.KarafCorePluginUtils;
-import org.apache.karaf.eik.core.KarafPlatformModel;
-import org.apache.karaf.eik.core.KarafPlatformModelRegistry;
-import org.apache.karaf.eik.core.configuration.FeaturesSection;
-import org.apache.karaf.eik.core.features.Feature;
-import org.apache.karaf.eik.core.features.FeatureResolverImpl;
-import org.apache.karaf.eik.core.features.Features;
-import org.apache.karaf.eik.core.features.FeaturesRepository;
-import org.apache.karaf.eik.core.features.XmlFeaturesRepository;
-
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -36,6 +26,14 @@ import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.karaf.eik.core.KarafCorePluginUtils;
+import org.apache.karaf.eik.core.KarafPlatformModel;
+import org.apache.karaf.eik.core.configuration.FeaturesSection;
+import org.apache.karaf.eik.core.features.Feature;
+import org.apache.karaf.eik.core.features.FeatureResolverImpl;
+import org.apache.karaf.eik.core.features.Features;
+import org.apache.karaf.eik.core.features.FeaturesRepository;
+import org.apache.karaf.eik.core.features.XmlFeaturesRepository;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
@@ -747,7 +745,7 @@ public class KarafConfigurationTab exten
     }
 
     private void initializeKarafPlatformModel() throws CoreException {
-        karafPlatformModel = KarafPlatformModelRegistry.findActivePlatformModel();
+        karafPlatformModel = KarafUIPluginActivator.findActivePlatformModel();
         if (karafPlatformModel == null) {
             throw new CoreException(new Status(IStatus.ERROR, KarafUIPluginActivator.PLUGIN_ID, "Unable to locate active Karaf Platform Model"));
         }

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationDelegate.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationDelegate.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationDelegate.java Thu Jul 11 12:10:54 2013
@@ -18,10 +18,18 @@
  */
 package org.apache.karaf.eik.ui;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.karaf.eik.core.IKarafConstants;
 import org.apache.karaf.eik.core.KarafCorePluginUtils;
 import org.apache.karaf.eik.core.KarafPlatformModel;
-import org.apache.karaf.eik.core.KarafPlatformModelRegistry;
 import org.apache.karaf.eik.core.KarafWorkingPlatformModel;
 import org.apache.karaf.eik.core.PropertyUtils;
 import org.apache.karaf.eik.core.SystemBundleNames;
@@ -29,16 +37,6 @@ import org.apache.karaf.eik.core.equinox
 import org.apache.karaf.eik.core.model.WorkingKarafPlatformModel;
 import org.apache.karaf.eik.ui.internal.WorkbenchServiceExtensions;
 import org.apache.karaf.eik.ui.workbench.KarafWorkbenchServiceFactory;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -257,7 +255,7 @@ public class KarafLaunchConfigurationDel
     protected void preLaunchCheck(final ILaunchConfiguration configuration, final ILaunch launch, final IProgressMonitor monitor) throws CoreException {
         super.preLaunchCheck(configuration, launch, monitor);
 
-        this.karafPlatform = KarafPlatformModelRegistry.findActivePlatformModel();
+        this.karafPlatform = KarafUIPluginActivator.findActivePlatformModel();
 
         monitor.worked(10);
 
@@ -476,7 +474,6 @@ public class KarafLaunchConfigurationDel
 
         final IVMInstall3 vmInstall3 = (IVMInstall3) vmInstall;
 
-        @SuppressWarnings("unchecked")
         final Map<String, String> properties =
             vmInstall3.evaluateSystemProperties(new String[] { JAVA_SPECIFICATION_VERSION }, new NullProgressMonitor());
 

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java Thu Jul 11 12:10:54 2013
@@ -18,6 +18,10 @@
  */
 package org.apache.karaf.eik.ui;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.karaf.eik.core.IKarafConstants;
 import org.apache.karaf.eik.core.KarafCorePluginUtils;
 import org.apache.karaf.eik.core.KarafPlatformModel;
@@ -29,11 +33,6 @@ import org.apache.karaf.eik.core.equinox
 import org.apache.karaf.eik.core.model.WorkingKarafPlatformModel;
 import org.apache.karaf.eik.ui.internal.WorkbenchServiceExtensions;
 import org.apache.karaf.eik.ui.workbench.KarafWorkbenchServiceFactory;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -76,7 +75,10 @@ public class KarafLaunchConfigurationIni
 
     @Override
     public void initialize(final ILaunchConfigurationWorkingCopy configuration) {
-        loadKarafPlatform(configuration);
+        if (!loadKarafPlatform(configuration)) {
+            // Do nothing
+            return;
+        }
 
         final File configDir =
             LaunchConfigurationHelper.getConfigurationArea(configuration);
@@ -211,18 +213,28 @@ public class KarafLaunchConfigurationIni
      *
      * @param configuration
      */
-    protected void loadKarafPlatform(final ILaunchConfigurationWorkingCopy configuration) {
+    protected boolean loadKarafPlatform(final ILaunchConfigurationWorkingCopy configuration) {
         try {
-            this.karafPlatform = KarafPlatformModelRegistry.findActivePlatformModel();
+            this.karafPlatform = KarafUIPluginActivator.findActivePlatformModel();
+            if (this.karafPlatform == null) {
+                KarafUIPluginActivator.getLogger().warn("Unable to locate the Karaf platform");
+
+                return false;
+            }
+
             this.karafPlatformFactory = KarafPlatformModelRegistry.findPlatformModelFactory(karafPlatform.getRootDirectory());
 
             this.startupSection = (StartupSection) this.karafPlatform.getAdapter(StartupSection.class);
             this.startupSection.load();
+
+            return true;
         } catch (final CoreException e) {
             KarafUIPluginActivator.getLogger().error("Unable to locate the Karaf platform", e);
 
             this.karafPlatform = null;
         }
+
+        return false;
     }
 
     /**
@@ -271,5 +283,4 @@ public class KarafLaunchConfigurationIni
 
         configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, vmArgs.toString());
     }
-
 }

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafUIPluginActivator.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafUIPluginActivator.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafUIPluginActivator.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafUIPluginActivator.java Thu Jul 11 12:10:54 2013
@@ -18,10 +18,21 @@
  */
 package org.apache.karaf.eik.ui;
 
-import org.apache.karaf.eik.core.LogWrapper;
+import java.util.Map;
 
+import org.apache.karaf.eik.core.KarafPlatformModel;
+import org.apache.karaf.eik.core.KarafPlatformModelFactory;
+import org.apache.karaf.eik.core.KarafPlatformModelRegistry;
+import org.apache.karaf.eik.core.KarafPlatformValidator;
+import org.apache.karaf.eik.core.LogWrapper;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.PluginRegistry;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -32,17 +43,17 @@ import org.osgi.framework.ServiceReferen
 public class KarafUIPluginActivator extends AbstractUIPlugin {
 
     // The plug-in ID
-    public static final String PLUGIN_ID = "org.apache.karaf.eik.ui";
+    public static final String PLUGIN_ID = "org.apache.karaf.eik.ui"; //$NON-NLS-1$
 
-    public static final String BUNDLE_OBJ_IMG = "bundle_obj";
+    public static final String BUNDLE_OBJ_IMG = "bundle_obj"; //$NON-NLS-1$
 
-    public static final String FEATURE_OBJ_IBM = "feature_obj";
+    public static final String FEATURE_OBJ_IBM = "feature_obj"; //$NON-NLS-1$
 
-    public static final String LOGO_16X16_IMG = "logo16";
+    public static final String LOGO_16X16_IMG = "logo16"; //$NON-NLS-1$
 
-    public static final String LOGO_32X32_IMG = "logo32";
+    public static final String LOGO_32X32_IMG = "logo32"; //$NON-NLS-1$
 
-    public static final String LOGO_64X64_IMG = "logo64";
+    public static final String LOGO_64X64_IMG = "logo64"; //$NON-NLS-1$
 
     // The shared instance
     private static KarafUIPluginActivator plugin;
@@ -69,6 +80,43 @@ public class KarafUIPluginActivator exte
     }
 
     /**
+     *
+     * @return
+     * @throws CoreException
+     */
+   public static KarafPlatformModel findActivePlatformModel() throws CoreException {
+       final Map<String, IConfigurationElement> triggerBundleMap =
+           KarafPlatformModelRegistry.getTriggerBundlePlatformFactoryMap();
+
+       for (final Map.Entry<String, IConfigurationElement> e : triggerBundleMap.entrySet()) {
+           final String symbolicName = e.getKey();
+
+           final IPluginModelBase karafPlatformPlugin = PluginRegistry.findModel(symbolicName);
+
+           if (karafPlatformPlugin == null) {
+               continue;
+           }
+
+           final IConfigurationElement c = e.getValue();
+           final KarafPlatformModelFactory f =
+               (KarafPlatformModelFactory)c.createExecutableExtension(KarafPlatformModelRegistry.ATT_CLASS);
+
+           final KarafPlatformValidator validator = f.getPlatformValidator();
+
+           IPath modelPath = new Path(karafPlatformPlugin.getInstallLocation()).removeLastSegments(1);
+           while(!modelPath.isEmpty() && !modelPath.isRoot()) {
+               modelPath = modelPath.removeLastSegments(1);
+
+               if (validator.isValid(modelPath)) {
+                   return f.getPlatformModel(modelPath);
+               }
+           }
+       }
+
+       return null;
+   }
+
+    /**
      * The constructor
      */
     public KarafUIPluginActivator() {
@@ -120,13 +168,13 @@ public class KarafUIPluginActivator exte
      */
     @Override
     protected void initializeImageRegistry(final ImageRegistry imageRegistry) {
-        registerImage(imageRegistry, BUNDLE_OBJ_IMG, "icons/obj16/bundle_obj.gif");
-        registerImage(imageRegistry, FEATURE_OBJ_IBM, "icons/obj16/feature_obj.gif");
-        registerImage(imageRegistry, "runtime_obj", "icons/obj16/runtime_obj.gif");
-        registerImage(imageRegistry, "details_view", "icons/obj16/details_view.gif");
-        registerImage(imageRegistry, LOGO_16X16_IMG, "icons/obj16/karaf-logo-16x16.png");
-        registerImage(imageRegistry, LOGO_32X32_IMG, "icons/obj32/karaf-logo-32x32.png");
-        registerImage(imageRegistry, LOGO_64X64_IMG, "icons/obj64/karaf-logo-64x64.png");
+        registerImage(imageRegistry, BUNDLE_OBJ_IMG, "icons/obj16/bundle_obj.gif"); //$NON-NLS-1$
+        registerImage(imageRegistry, FEATURE_OBJ_IBM, "icons/obj16/feature_obj.gif"); //$NON-NLS-1$
+        registerImage(imageRegistry, "runtime_obj", "icons/obj16/runtime_obj.gif"); //$NON-NLS-1$ $NON-NLS-2$
+        registerImage(imageRegistry, "details_view", "icons/obj16/details_view.gif"); //$NON-NLS-1$ $NON-NLS-2$
+        registerImage(imageRegistry, LOGO_16X16_IMG, "icons/obj16/karaf-logo-16x16.png"); //$NON-NLS-1$
+        registerImage(imageRegistry, LOGO_32X32_IMG, "icons/obj32/karaf-logo-32x32.png"); //$NON-NLS-1$
+        registerImage(imageRegistry, LOGO_64X64_IMG, "icons/obj64/karaf-logo-64x64.png"); //$NON-NLS-1$
     }
 
     /**

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/internal/KarafLaunchUtils.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/internal/KarafLaunchUtils.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/internal/KarafLaunchUtils.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/internal/KarafLaunchUtils.java Thu Jul 11 12:10:54 2013
@@ -18,9 +18,6 @@
  */
 package org.apache.karaf.eik.ui.internal;
 
-import org.apache.karaf.eik.core.KarafCorePluginUtils;
-import org.apache.karaf.eik.core.KarafPlatformModel;
-
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -28,18 +25,20 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.karaf.eik.core.KarafCorePluginUtils;
+import org.apache.karaf.eik.core.KarafPlatformModel;
+import org.eclipse.pde.core.target.ITargetLocation;
 import org.eclipse.pde.internal.core.target.DirectoryBundleContainer;
-import org.eclipse.pde.internal.core.target.provisional.IBundleContainer;
 
 public final class KarafLaunchUtils {
 
     private static final int MAX_DIRECTORY_RECURSE_DEPTH = 50;
 
     @SuppressWarnings("restriction")
-    public static List<IBundleContainer> getBundleContainers(final KarafPlatformModel karafPlatformModel) {
+    public static List<ITargetLocation> getBundleContainers(final KarafPlatformModel karafPlatformModel) {
         final Collection<File> directories = KarafLaunchUtils.getJarDirectories(karafPlatformModel);
 
-        final List<IBundleContainer> bundleContainers = new ArrayList<IBundleContainer>();
+        final List<ITargetLocation> bundleContainers = new ArrayList<ITargetLocation>();
         for (final File dir : directories) {
             bundleContainers.add(new DirectoryBundleContainer(dir.getAbsolutePath()));
         }

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/model/AbstractContentModel.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/model/AbstractContentModel.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/model/AbstractContentModel.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/model/AbstractContentModel.java Thu Jul 11 12:10:54 2013
@@ -20,7 +20,6 @@ package org.apache.karaf.eik.ui.model;
 
 import org.apache.karaf.eik.core.KarafPlatformModel;
 import org.apache.karaf.eik.ui.IKarafProject;
-
 import org.eclipse.core.runtime.PlatformObject;
 
 public abstract class AbstractContentModel extends PlatformObject implements ContentModel {

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/navigator/KarafPlatformModelContentProvider.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/navigator/KarafPlatformModelContentProvider.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/navigator/KarafPlatformModelContentProvider.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/navigator/KarafPlatformModelContentProvider.java Thu Jul 11 12:10:54 2013
@@ -18,10 +18,11 @@
  */
 package org.apache.karaf.eik.ui.navigator;
 
+import org.apache.karaf.eik.ui.IKarafProject;
 import org.apache.karaf.eik.ui.model.AbstractContentModel;
+import org.apache.karaf.eik.ui.model.BootClasspath;
 import org.apache.karaf.eik.ui.model.ContentModel;
 import org.apache.karaf.eik.ui.project.KarafProject;
-
 import org.eclipse.core.resources.IProject;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -35,7 +36,13 @@ public class KarafPlatformModelContentPr
     @Override
     public Object[] getChildren(final Object parentElement) {
         if (parentElement instanceof IProject && KarafProject.isKarafProject((IProject) parentElement)) {
-            return new Object[0];
+            final IKarafProject karafProject = (IKarafProject) ((IProject) parentElement).getAdapter(IKarafProject.class);
+
+            return new Object[] {
+                    new BootClasspath(karafProject),
+                    new SystemBundles(karafProject),
+                    new UserBundles(karafProject)
+            };
         } else if (parentElement instanceof ContentModel) {
             final ContentModel model = (ContentModel) parentElement;
             return model.getElements();

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java Thu Jul 11 12:10:54 2013
@@ -18,17 +18,6 @@
  */
 package org.apache.karaf.eik.ui.project;
 
-import org.apache.karaf.eik.core.KarafCorePluginUtils;
-import org.apache.karaf.eik.core.KarafPlatformModel;
-import org.apache.karaf.eik.core.PropertyUtils;
-import org.apache.karaf.eik.core.configuration.FeaturesSection;
-import org.apache.karaf.eik.core.features.FeaturesRepository;
-import org.apache.karaf.eik.ui.IKarafProject;
-import org.apache.karaf.eik.ui.KarafUIPluginActivator;
-import org.apache.karaf.eik.ui.features.FeaturesResolverJob;
-import org.apache.karaf.eik.ui.internal.KarafLaunchUtils;
-import org.apache.karaf.eik.ui.internal.PopulateObrFileJob;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -44,6 +33,16 @@ import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
 import java.util.zip.ZipEntry;
 
+import org.apache.karaf.eik.core.KarafCorePluginUtils;
+import org.apache.karaf.eik.core.KarafPlatformModel;
+import org.apache.karaf.eik.core.PropertyUtils;
+import org.apache.karaf.eik.core.configuration.FeaturesSection;
+import org.apache.karaf.eik.core.features.FeaturesRepository;
+import org.apache.karaf.eik.ui.IKarafProject;
+import org.apache.karaf.eik.ui.KarafUIPluginActivator;
+import org.apache.karaf.eik.ui.features.FeaturesResolverJob;
+import org.apache.karaf.eik.ui.internal.KarafLaunchUtils;
+import org.apache.karaf.eik.ui.internal.PopulateObrFileJob;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
@@ -57,10 +56,10 @@ import org.eclipse.core.runtime.IProgres
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.pde.internal.core.target.provisional.IBundleContainer;
-import org.eclipse.pde.internal.core.target.provisional.ITargetDefinition;
-import org.eclipse.pde.internal.core.target.provisional.ITargetHandle;
-import org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService;
+import org.eclipse.pde.core.target.ITargetDefinition;
+import org.eclipse.pde.core.target.ITargetHandle;
+import org.eclipse.pde.core.target.ITargetLocation;
+import org.eclipse.pde.core.target.ITargetPlatformService;
 
 public class KarafProjectBuilder extends IncrementalProjectBuilder {
 
@@ -69,10 +68,18 @@ public class KarafProjectBuilder extends
     public KarafProjectBuilder() { }
 
     @Override
-    protected IProject[] build(final int kind, @SuppressWarnings("rawtypes") final Map args, final IProgressMonitor monitor) throws CoreException {
+    protected IProject[] build(final int kind, @SuppressWarnings("rawtypes") final Map args, final IProgressMonitor monitor)
+        throws CoreException
+    {
         final IProject project = getProject();
 
-        monitor.beginTask("Building Apache Karaf project: " + project.getName(), 1);
+        // Sentry to prevent builders from running
+        if (getKarafProject() == null) {
+        	// TODO: This should issue a warning in the Error Log
+        	return null;
+        }
+
+        monitor.beginTask("Building Apache Karaf Project: " + project.getName(), 1);
 
         try {
             if (kind == IncrementalProjectBuilder.FULL_BUILD) {
@@ -327,7 +334,6 @@ public class KarafProjectBuilder extends
         return getKarafProject().getProjectHandle().getFile(targetFilename);
     }
 
-    @SuppressWarnings("restriction")
     private void createTargetPlatform(final IProgressMonitor monitor) throws CoreException {
         final ITargetPlatformService targetPlatformService = (ITargetPlatformService) KarafUIPluginActivator.getDefault().getService(ITargetPlatformService.class.getName());
 
@@ -338,8 +344,8 @@ public class KarafProjectBuilder extends
 
         target.setName(getKarafProject().getName());
 
-        final List<IBundleContainer> bundleContainers = KarafLaunchUtils.getBundleContainers(getKarafPlatformModel());
-        target.setBundleContainers(bundleContainers.toArray(new IBundleContainer[0]));
+        final List<ITargetLocation> bundleContainers = KarafLaunchUtils.getBundleContainers(getKarafPlatformModel());
+        target.setTargetLocations(bundleContainers.toArray(new ITargetLocation[0]));
 
         targetPlatformService.saveTargetDefinition(target);
     }

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/NewKarafProjectOperation.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/NewKarafProjectOperation.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/NewKarafProjectOperation.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/NewKarafProjectOperation.java Thu Jul 11 12:10:54 2013
@@ -18,14 +18,13 @@
  */
 package org.apache.karaf.eik.ui.project;
 
+import java.lang.reflect.InvocationTargetException;
+
 import org.apache.karaf.eik.core.KarafPlatformModel;
 import org.apache.karaf.eik.core.KarafWorkingPlatformModel;
 import org.apache.karaf.eik.ui.IKarafProject;
 import org.apache.karaf.eik.ui.KarafLaunchConfigurationInitializer;
 import org.apache.karaf.eik.ui.KarafUIPluginActivator;
-
-import java.lang.reflect.InvocationTargetException;
-
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IProjectDescription;
 import org.eclipse.core.runtime.CoreException;
@@ -37,10 +36,24 @@ import org.eclipse.core.runtime.Qualifie
 import org.eclipse.core.variables.IDynamicVariable;
 import org.eclipse.core.variables.VariablesPlugin;
 import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationType;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
+/**
+ * Creates a new Karaf project in the workspace.
+ * <p>
+ * A Karaf project is linked to Karaf installation somewhere in the local file
+ * system. It is augmented by two persistent properties. These are used by Karaf
+ * aware code to interact with the local Karaf installation:
+ * <ul>
+ * <li>karafProject - A simple boolean to indicate this is a Karaf project</li>
+ * <li>karafModel - The absolute path to the Karaf installation this project
+ * represents</li>
+ * </ul
+ *
+ */
 public class NewKarafProjectOperation extends WorkspaceModifyOperation {
 
     private final KarafPlatformModel karafPlatformModel;
@@ -49,6 +62,18 @@ public class NewKarafProjectOperation ex
 
     private final KarafWorkingPlatformModel workingPlatformModel;
 
+    /**
+     * Constructor.
+     *
+     * @param karafPlatformModel
+     *            the {@link KarafPlatformModel} in the local file system
+     * @param workingPlatformModel
+     *            the {@link KarafWorkingPlatformModel} which resides in the
+     *            workspace
+     * @param newKarafProject
+     *            the new {@link IKarafProject} instance containing the
+     *            workspace project and metadata
+     */
     public NewKarafProjectOperation(
             final KarafPlatformModel karafPlatformModel,
             final KarafWorkingPlatformModel workingPlatformModel,
@@ -63,7 +88,7 @@ public class NewKarafProjectOperation ex
     protected void execute(final IProgressMonitor monitor)
         throws CoreException, InvocationTargetException, InterruptedException
     {
-        monitor.beginTask("Creating Apache Karaf project", 3);
+        monitor.beginTask("Creating Apache Karaf Project", 3);
 
         createProject(monitor);
 
@@ -75,6 +100,9 @@ public class NewKarafProjectOperation ex
 
         createKarafPlatformResources(monitor);
 
+        // Disabled because the Karaf Target Platform is not set at this point
+        // createDefaultKarafLaunchConfiguration(monitor);
+
         monitor.worked(1);
 
         newKarafProject.getProjectHandle().refreshLocal(2, monitor);
@@ -82,6 +110,17 @@ public class NewKarafProjectOperation ex
         monitor.done();
     }
 
+    /**
+     * Adds the {@link KarafProjectNature.ID} to the {@link IProject} turning it
+     * in to a Karaf project.
+     *
+     * @param natureId
+     *            the Karaf project nature
+     * @param monitor
+     *            the {@link IProgressMonitor}
+     * @throws CoreException
+     *             thrown if there is a problem adding the nature
+     */
     private void addNatureToProject(final String natureId, final IProgressMonitor monitor) throws CoreException {
         final IProject project = newKarafProject.getProjectHandle();
 
@@ -96,11 +135,50 @@ public class NewKarafProjectOperation ex
         project.setDescription(description, monitor);
     }
 
+    /**
+     * Creates a default {@link ILaunchConfiguration} that can be used to launch
+     * the Karaf installation this project represents
+     *
+     * @param monitor
+     *            the {@link IProgressMonitor}
+     * @throws CoreException
+     *             thrown if there is a problem creating the
+     *             {@code ILaunchConfiguration}
+     */
+    @SuppressWarnings("unused") // Temporarily located in this file
+    private void createDefaultKarafLaunchConfiguration(final IProgressMonitor monitor) throws CoreException {
+        final ILaunchConfigurationType launchType =
+            DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType("org.eclipse.pde.ui.EquinoxLauncher");
+
+        final ILaunchConfigurationWorkingCopy launchConfiguration =
+            launchType.newInstance(newKarafProject.getProjectHandle(), newKarafProject.getName());
+
+        KarafLaunchConfigurationInitializer.initializeConfiguration(launchConfiguration);
+
+        launchConfiguration.doSave();
+    }
+
+    /**
+     * Creates the workspace resources that link the Karaf installing in the
+     * local file system to the Eclipse builder.
+     * <p>
+     * The resources created contain data generated during the Karaf builder as
+     * well as workspace links to the Karaf installation. These links are a
+     * shortcut that allow the workspace to monitor changes to the local Karaf
+     * installation.
+     *
+     * @param monitor
+     *            the {@link IProgressMonitor}
+     * @throws CoreException
+     *             thrown if there is a problem creating the workspace resources
+     */
     private void createKarafPlatformResources(final IProgressMonitor monitor) throws CoreException {
         newKarafProject.getProjectHandle().getFolder(".bin").create(true, true, monitor);
         newKarafProject.getProjectHandle().getFolder(".bin/platform").create(true, true, monitor);
         newKarafProject.getProjectHandle().getFolder(".bin/platform/etc").createLink(workingPlatformModel.getParentKarafModel().getConfigurationDirectory(), 0, monitor);
-        newKarafProject.getProjectHandle().getFolder(".bin/platform/deploy").createLink(workingPlatformModel.getParentKarafModel().getUserDeployedDirectory(), 0, monitor);
+        if (workingPlatformModel.getParentKarafModel().getUserDeployedDirectory().toFile().exists()) {
+            newKarafProject.getProjectHandle().getFolder(".bin/platform/deploy").createLink(workingPlatformModel.getParentKarafModel().getUserDeployedDirectory(), 0, monitor);
+        }
         newKarafProject.getProjectHandle().getFolder(".bin/platform/lib").createLink(workingPlatformModel.getParentKarafModel().getRootDirectory().append("lib"), 0, monitor);
         newKarafProject.getProjectHandle().getFolder(".bin/platform/system").createLink(workingPlatformModel.getParentKarafModel().getPluginRootDirectory(), 0, monitor);
         newKarafProject.getProjectHandle().getFolder(".bin/runtime").create(true, true, monitor);
@@ -111,26 +189,17 @@ public class NewKarafProjectOperation ex
         newKarafProject.getProjectHandle().getFolder(".bin/platform/eclipse").create(true, true, monitor);
         newKarafProject.getProjectHandle().getFolder(".bin/platform/eclipse/dropins").createLink(new Path(eclipseHome).append("dropins"), 0, monitor);
         newKarafProject.getProjectHandle().getFolder(".bin/platform/eclipse/plugins").createLink(new Path(eclipseHome).append("plugins"), 0, monitor);
-
-        newKarafProject.getProjectHandle().setPersistentProperty(
-                new QualifiedName(KarafUIPluginActivator.PLUGIN_ID, "karafProject"),
-                "true");
-
-        newKarafProject.getProjectHandle().setPersistentProperty(
-                new QualifiedName(KarafUIPluginActivator.PLUGIN_ID, "karafModel"),
-                karafPlatformModel.getRootDirectory().toString());
-
-        final ILaunchConfigurationType launchType =
-            DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType("org.eclipse.pde.ui.EquinoxLauncher");
-
-        final ILaunchConfigurationWorkingCopy launchConfiguration =
-            launchType.newInstance(newKarafProject.getProjectHandle(), newKarafProject.getName());
-
-        KarafLaunchConfigurationInitializer.initializeConfiguration(launchConfiguration);
-
-        launchConfiguration.doSave();
     }
 
+    /**
+     * Creates the new {@link IProject} in the workspace.
+     *
+     * @param monitor
+     *            the progress monitor
+     * @throws CoreException
+     *             thrown if there is a problem creating the {@code IProject} in
+     *             the workspace
+     */
     private void createProject(final IProgressMonitor monitor) throws CoreException {
         final IProject project = newKarafProject.getProjectHandle();
         final IPath projectLocation = newKarafProject.getLocation();
@@ -143,7 +212,15 @@ public class NewKarafProjectOperation ex
             project.create(monitor);
         }
 
-        project.open(null);
+        project.open(monitor);
+
+        newKarafProject.getProjectHandle().setPersistentProperty(
+                new QualifiedName(KarafUIPluginActivator.PLUGIN_ID, "karafProject"),
+                "true");
+
+        newKarafProject.getProjectHandle().setPersistentProperty(
+                new QualifiedName(KarafUIPluginActivator.PLUGIN_ID, "karafModel"),
+                karafPlatformModel.getRootDirectory().toString());
     }
 
 }

Modified: karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java (original)
+++ karaf/eik/branches/eik-2.x-juno/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/workbench/internal/GenericKarafWorkbenchService.java Thu Jul 11 12:10:54 2013
@@ -18,6 +18,14 @@
  */
 package org.apache.karaf.eik.ui.workbench.internal;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.karaf.eik.core.IKarafConstants;
 import org.apache.karaf.eik.core.KarafCorePluginUtils;
 import org.apache.karaf.eik.core.KarafPlatformModel;
@@ -34,14 +42,6 @@ import org.apache.karaf.eik.ui.KarafLaun
 import org.apache.karaf.eik.ui.KarafUIPluginActivator;
 import org.apache.karaf.eik.ui.console.KarafRemoteConsole;
 import org.apache.karaf.eik.ui.workbench.KarafWorkbenchService;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -202,21 +202,11 @@ public class GenericKarafWorkbenchServic
 
     @Override
     public List<BundleEntry> getAdditionalBundles(final KarafWorkingPlatformModel platformModel, final ILaunchConfiguration configuration) {
-        if (!platformModel.getParentKarafModel().getClass().equals(GenericKarafPlatformModel.class)) {
+        if (!(platformModel.getParentKarafModel() instanceof GenericKarafPlatformModel)) {
             return Collections.emptyList();
         }
 
         final String[] bundles = {
-                "org.apache.karaf.eik.app",
-                "org.eclipse.core.contenttype",
-                "org.eclipse.core.jobs",
-                "org.eclipse.core.runtime",
-                "org.eclipse.core.runtime.compatibility.auth",
-                "org.eclipse.equinox.app",
-                "org.eclipse.equinox.common",
-                "org.eclipse.equinox.registry",
-                "org.eclipse.equinox.preferences",
-                "org.eclipse.osgi.util"
         };
 
         final List<BundleEntry> bundleEntries = new ArrayList<BundleEntry>();
@@ -242,22 +232,29 @@ public class GenericKarafWorkbenchServic
 
     @Override
     public Map<String, String> getAdditionalEquinoxConfiguration(final KarafWorkingPlatformModel platformModel, final ILaunchConfiguration configuration) {
-        if (!platformModel.getParentKarafModel().getClass().equals(GenericKarafPlatformModel.class)) {
+        if (!(platformModel.getParentKarafModel() instanceof GenericKarafPlatformModel)) {
             return Collections.emptyMap();
         }
 
         final Map<String, String> equinoxProperties = new HashMap<String, String>();
 
-        final Properties currentConfig;
         try {
-            currentConfig =
-                KarafCorePluginUtils.loadProperties(
+            final Properties currentConfig = createLaunchSystemProperties(platformModel, configuration);
+
+            final File defaultConfigFile = new File(
                     platformModel.getParentKarafModel().getConfigurationDirectory().toFile(),
                     IKarafConstants.KARAF_DEFAULT_CONFIG_PROPERTIES_FILE,
                     true);
 
-            final Properties systemProperties = createLaunchSystemProperties(platformModel, configuration);
-            currentConfig.putAll(systemProperties);
+            if (defaultConfigFile.exists()) {
+                final Properties defaultConfigProperties =
+                    KarafCorePluginUtils.loadProperties(
+                        platformModel.getParentKarafModel().getConfigurationDirectory().toFile(),
+                        IKarafConstants.KARAF_DEFAULT_CONFIG_PROPERTIES_FILE,
+                        true);
+
+                currentConfig.putAll(defaultConfigProperties);
+            }
 
             PropertyUtils.interpolateVariables(currentConfig, currentConfig);
 
@@ -295,7 +292,7 @@ public class GenericKarafWorkbenchServic
             final ILaunchConfiguration configuration)
         throws CoreException
     {
-        if (!platformModel.getParentKarafModel().getClass().equals(GenericKarafPlatformModel.class)) {
+        if (!(platformModel.getParentKarafModel() instanceof GenericKarafPlatformModel)) {
             return Collections.emptyList();
         }
 
@@ -314,7 +311,7 @@ public class GenericKarafWorkbenchServic
 
     @Override
     public void initialize(final KarafWorkingPlatformModel platformModel, final ILaunchConfigurationWorkingCopy configuration) {
-        if (!platformModel.getParentKarafModel().getClass().equals(GenericKarafPlatformModel.class)) {
+        if (!(platformModel.getParentKarafModel() instanceof GenericKarafPlatformModel)) {
             return;
         }
 
@@ -323,11 +320,11 @@ public class GenericKarafWorkbenchServic
                 platformModel.getParentKarafModel().getRootDirectory().toString());
 
         final StringBuffer vmArgs = new StringBuffer();
-        if (vmArgs.indexOf("-Declipse.application") == -1) { //$NON-NLS-1$
+        if (vmArgs.indexOf("-Declipse.ignoreApp") == -1) { //$NON-NLS-1$
             if (vmArgs.length() > 0) {
                 vmArgs.append(" "); //$NON-NLS-1$
             }
-            vmArgs.append(" -Declipse.application=org.apache.karaf.eik.app.KarafMain"); //$NON-NLS-1$
+            vmArgs.append(" -Declipse.ignoreApp=true"); //$NON-NLS-1$
         }
 
         try {
@@ -351,7 +348,7 @@ public class GenericKarafWorkbenchServic
             final ILaunch launch,
             final IProgressMonitor monitor) throws CoreException
     {
-        if (!platformModel.getParentKarafModel().getClass().equals(GenericKarafPlatformModel.class)) {
+        if (!(platformModel.getParentKarafModel() instanceof GenericKarafPlatformModel)) {
             return;
         }
 
@@ -368,7 +365,7 @@ public class GenericKarafWorkbenchServic
         final IPath path = file.getRawLocation();
 
         final String obr = equinoxProperties.get(IKarafConstants.KARAF_OBR_REPOSITORY_PROP);
-        if (obr.indexOf("eclipse.obr.xml") == -1) {
+        if (obr != null && obr.indexOf("eclipse.obr.xml") == -1) {
             final String obrUrls;
             if (obr.trim().length() > 1) {
                 obrUrls = obr + "," + "file://" + path.toFile().getAbsolutePath();

Modified: karaf/eik/branches/eik-2.x-juno/pom.xml
URL: http://svn.apache.org/viewvc/karaf/eik/branches/eik-2.x-juno/pom.xml?rev=1502197&r1=1502196&r2=1502197&view=diff
==============================================================================
--- karaf/eik/branches/eik-2.x-juno/pom.xml (original)
+++ karaf/eik/branches/eik-2.x-juno/pom.xml Thu Jul 11 12:10:54 2013
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
-        <version>12</version>
+        <version>13</version>
         <relativePath />
     </parent>
 
@@ -54,14 +54,11 @@
         <module>plugins/org.apache.karaf.eik.felix</module>
         <module>plugins/org.apache.karaf.eik.hooks</module>
         <module>plugins/org.apache.karaf.eik.jmx</module>
-        <module>plugins/org.apache.karaf.eik.wtp.core</module>
-        <module>plugins/org.apache.karaf.eik.wtp.ui</module>
         <module>plugins/org.apache.karaf.eik.ui</module>
         <module>plugins/org.apache.karaf.eik.workbench</module>
 
         <!-- Features -->
         <module>features/org.apache.karaf.eik.jmx.feature</module>
-        <module>features/org.apache.karaf.eik.wtp.feature</module>
         <module>features/org.apache.karaf.eik.feature</module>
         <module>features/org.apache.karaf.eik.repository</module>