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>