You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2008/12/11 22:21:09 UTC

svn commit: r725818 [2/2] - in /continuum/branches/continuum-osgi-prototype: ./ continuum-app/ continuum-app/src/ continuum-app/src/main/ continuum-app/src/main/assembly/ continuum-app/src/main/resources/ continuum-build-plugin/ continuum-build-plugin/...

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/PreUpdateSourcesPlugin.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/PreUpdateSourcesPlugin.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/PreUpdateSourcesPlugin.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/PreUpdateSourcesPlugin.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,13 @@
+package org.apache.continuum.plugin.api;
+
+import org.apache.continuum.plugin.api.context.ProjectInformation;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface PreUpdateSourcesPlugin
+    extends Plugin
+{
+    void execute( ProjectInformation projectInformation );
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/PreUpdateSourcesPlugin.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/PreUpdateSourcesPlugin.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/SendNotificationPlugin.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/SendNotificationPlugin.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/SendNotificationPlugin.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/SendNotificationPlugin.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,16 @@
+package org.apache.continuum.plugin.api;
+
+import org.apache.continuum.model.BuildResult;
+import org.apache.continuum.model.ScmResult;
+import org.apache.continuum.plugin.api.context.ProjectInformation;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface SendNotificationPlugin
+    extends Plugin
+{
+    // (with a new parameter List<BuildReport> buildReports ?)
+    void execute( ProjectInformation projectInformation, ScmResult scmResult, BuildResult buildResult );
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/SendNotificationPlugin.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/SendNotificationPlugin.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/UpdateSourcesPlugin.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/UpdateSourcesPlugin.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/UpdateSourcesPlugin.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/UpdateSourcesPlugin.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,14 @@
+package org.apache.continuum.plugin.api;
+
+import org.apache.continuum.model.ScmResult;
+import org.apache.continuum.plugin.api.context.ProjectInformation;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface UpdateSourcesPlugin
+    extends Plugin
+{
+    void execute( ProjectInformation projectInformation, ScmResult scmResult );
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/UpdateSourcesPlugin.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/UpdateSourcesPlugin.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Builder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Builder.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Builder.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Builder.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,11 @@
+package org.apache.continuum.plugin.api.builder;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface Builder
+{
+    void execute( int projectId, int buildDef );
+}
+

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Builder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Builder.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Phase.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Phase.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Phase.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Phase.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,58 @@
+package org.apache.continuum.plugin.api.builder;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class Phase
+{
+    public static final Phase PRE_UPDATE_SOURCES = new Phase( "pre-update-sources" );
+
+    public static final Phase UPDATE_SOURCES = new Phase( "update-sources" );
+
+    public static final Phase POST_UPDATE_SOURCES = new Phase( "post-update-sources" );
+
+    public static final Phase PRE_BUILD_PROJECT = new Phase( "pre-build-project" );
+
+    public static final Phase BUILD_PROJECT = new Phase( "build-project" );
+
+    public static final Phase POST_BUILD_PROJECT = new Phase( "post-build-project" );
+
+    public static final Phase PRE_DEPLOY_ARTIFACTS = new Phase( "pre-deploy-artifacts" );
+
+    public static final Phase DEPLOY_ARTIFACTS = new Phase( "deploy-artifacts" );
+
+    public static final Phase POST_DEPLOY_ARTIFACTS = new Phase( "post-deploy-artifacts" );
+
+    public static final Phase PRE_BUILD_REPORTS = new Phase( "pre-build-reports" );
+
+    public static final Phase BUILD_REPORTS = new Phase( "build-reports" );
+
+    public static final Phase POST_BUILD_REPORTS = new Phase( "post-build-reports" );
+
+    public static final Phase PRE_SEND_NOTIFICATIONS = new Phase( "pre-send-notifications" );
+
+    public static final Phase SEND_NOTIFICATIONS = new Phase( "send-notifications" );
+
+    public static final Phase POST_SEND_NOTIFICATIONS = new Phase( "post-send-notifications" );
+
+    public static final Phase END_BUILD = new Phase( "end-build" );
+
+    private String name;
+
+    private Phase( String name )
+    {
+        this.name = name;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    @Override
+    public String toString()
+    {
+        return getName();
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Phase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/builder/Phase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectInformation.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectInformation.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectInformation.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectInformation.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,73 @@
+package org.apache.continuum.plugin.api.context;
+
+import org.apache.continuum.model.ProjectGroup;
+import org.apache.continuum.model.BuildDefinitionTemplate;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class ProjectInformation
+{
+    // defined constants m2,m1,ant,shell etc...
+    private ProjectType type;
+
+    private ProjectGroup projectGroup;
+
+    private BuildDefinitionTemplate buildDefTemplate;
+
+    // for non maven projects
+    private String name;
+
+    private String version;
+
+    public ProjectType getType()
+    {
+        return type;
+    }
+
+    public void setType( ProjectType type )
+    {
+        this.type = type;
+    }
+
+    public ProjectGroup getProjectGroup()
+    {
+        return projectGroup;
+    }
+
+    public void setProjectGroup( ProjectGroup projectGroup )
+    {
+        this.projectGroup = projectGroup;
+    }
+
+    public BuildDefinitionTemplate getBuildDefTemplate()
+    {
+        return buildDefTemplate;
+    }
+
+    public void setBuildDefTemplate( BuildDefinitionTemplate buildDefTemplate )
+    {
+        this.buildDefTemplate = buildDefTemplate;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public void setVersion( String version )
+    {
+        this.version = version;
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectInformation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectInformation.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectType.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectType.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectType.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectType.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,28 @@
+package org.apache.continuum.plugin.api.context;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class ProjectType
+{
+    public static final ProjectType ANT = new ProjectType( "ant" );
+
+    public static final ProjectType MAVEN_1 = new ProjectType( "maven1" );
+
+    public static final ProjectType MAVEN_2 = new ProjectType( "maven2" );
+
+    public static final ProjectType SHELL = new ProjectType( "shell" );
+
+    private String name;
+
+    private ProjectType( String name )
+    {
+        this.name = name;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ProjectType.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ScmInformation.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ScmInformation.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ScmInformation.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ScmInformation.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,44 @@
+package org.apache.continuum.plugin.api.context;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class ScmInformation
+{
+    private String scmUrl;
+
+    private String scmUsername;
+
+    private String scmPassword;
+
+    public String getScmUrl()
+    {
+        return scmUrl;
+    }
+
+    public void setScmUrl( String scmUrl )
+    {
+        this.scmUrl = scmUrl;
+    }
+
+    public String getScmUsername()
+    {
+        return scmUsername;
+    }
+
+    public void setScmUsername( String scmUsername )
+    {
+        this.scmUsername = scmUsername;
+    }
+
+    public String getScmPassword()
+    {
+        return scmPassword;
+    }
+
+    public void setScmPassword( String scmPassword )
+    {
+        this.scmPassword = scmPassword;
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ScmInformation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-api/src/main/java/org/apache/continuum/plugin/api/context/ScmInformation.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/pom.xml?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/pom.xml (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/pom.xml Thu Dec 11 13:21:06 2008
@@ -0,0 +1,37 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.continuum</groupId>
+    <artifactId>continuum-plugins</artifactId>
+    <version>1.4-SNAPSHOT</version>
+  </parent>
+  <artifactId>continuum-plugin-manager</artifactId>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.continuum</groupId>
+      <artifactId>continuum-plugin-api</artifactId>
+      <version>1.4-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.main</artifactId>
+      <version>1.2.2</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.0.2</version>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
+

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/BuilderTracker.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/BuilderTracker.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/BuilderTracker.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/BuilderTracker.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,18 @@
+package org.apache.continuum.plugin.manager;
+
+import org.apache.continuum.plugin.api.builder.Builder;
+import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class BuilderTracker
+    extends ServiceTracker
+{
+    public BuilderTracker( BundleContext bundleContext )
+    {
+        super( bundleContext, Builder.class.getName(), null );
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/BuilderTracker.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/BuilderTracker.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/HostActivator.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/HostActivator.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/HostActivator.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/HostActivator.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,48 @@
+package org.apache.continuum.plugin.manager;
+
+import org.apache.continuum.plugin.api.builder.Builder;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class HostActivator
+    implements BundleActivator
+{
+    private BundleContext context = null;
+
+    private BuilderTracker builderTracker;
+
+    public void start( BundleContext bundleContext )
+        throws Exception
+    {
+        context = bundleContext;
+        builderTracker = new BuilderTracker( context );
+        builderTracker.open();
+    }
+
+    public void stop( BundleContext bundleContext )
+        throws Exception
+    {
+        builderTracker.close();
+        context = null;
+    }
+
+    public Bundle[] getBundles()
+    {
+        Bundle[] bundles = null;
+        if ( context != null )
+        {
+            bundles = context.getBundles();
+        }
+        return bundles;
+    }
+
+    public Builder getBuilder()
+    {
+        return (Builder) builderTracker.getService();
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/HostActivator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/HostActivator.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/PluginManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/PluginManager.java?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/PluginManager.java (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/PluginManager.java Thu Dec 11 13:21:06 2008
@@ -0,0 +1,138 @@
+package org.apache.continuum.plugin.manager;
+
+import org.apache.continuum.plugin.api.builder.Builder;
+import org.apache.felix.framework.Felix;
+import org.apache.felix.framework.cache.BundleCache;
+import org.apache.felix.framework.util.FelixConstants;
+import org.apache.felix.framework.util.StringMap;
+import org.apache.felix.main.AutoActivator;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class PluginManager
+{
+    private Felix felix = null;
+
+    private HostActivator activator = null;
+
+    public PluginManager()
+    {
+        Runtime.getRuntime().addShutdownHook( new Thread()
+        {
+            public void run()
+            {
+                try
+                {
+                    System.out.println("Stopping the application...");
+                    if ( felix != null )
+                    {
+                        felix.stop();
+                    }
+                }
+                catch ( BundleException e )
+                {
+                    e.printStackTrace();
+                }
+            }
+        } );
+
+        Properties props = new Properties();
+        InputStream is = getClass().getClassLoader().getResourceAsStream( "osgi-manager.properties" );
+        try
+        {
+            props.load( is );
+        }
+        catch ( IOException ioe )
+        {
+            ioe.printStackTrace();
+        }
+
+        //noinspection unchecked
+        Map<String, String> configMap = new StringMap( false );
+        configMap.put( FelixConstants.EMBEDDED_EXECUTION_PROP, "true" );
+        configMap.put( Constants.FRAMEWORK_SYSTEMPACKAGES, props.getProperty( "osgi.system-packages" ) );
+
+        StringBuilder sb = new StringBuilder();
+        File bundleSystemDir = new File( "system" );
+        if ( !bundleSystemDir.exists() )
+        {
+            bundleSystemDir.mkdirs();
+        }
+        for ( File pluginFile : bundleSystemDir.listFiles() )
+        {
+            if ( pluginFile.isFile() )
+            {
+                if ( sb.length() > 0 )
+                {
+                    sb.append( " " );
+                }
+                sb.append( pluginFile.toURI() );
+            }
+        }
+        File bundlePluginsDir = new File( "plugins" );
+        if ( !bundlePluginsDir.exists() )
+        {
+            bundlePluginsDir.mkdirs();
+        }
+        for ( File pluginFile : bundlePluginsDir.listFiles() )
+        {
+            if ( pluginFile.isFile() )
+            {
+                if ( sb.length() > 0 )
+                {
+                    sb.append( " " );
+                }
+                sb.append( pluginFile.toURI() );
+            }
+        }
+
+        System.out.println( "Autostart path : " + sb.toString() );
+        String autostart = props.getProperty( "osgi.autostart.1" ) + " " + sb.toString();
+        configMap.put( AutoActivator.AUTO_START_PROP + ".1", autostart );
+        configMap.put( BundleCache.CACHE_PROFILE_DIR_PROP, props.getProperty( "osgi.cache-directory" ) );
+
+        List<BundleActivator> activators = new ArrayList<BundleActivator>();
+        activators.add( new AutoActivator( configMap ) );
+        activator = new HostActivator();
+        activators.add( activator );
+        felix = new Felix( configMap, activators );
+        try
+        {
+            felix.start();
+        }
+        catch ( BundleException e )
+        {
+            System.err.println( "Could not create framework: " + e );
+            e.printStackTrace();
+            System.exit( -1 );
+        }
+    }
+
+    public Builder getBuilder()
+    {
+        return activator.getBuilder();
+    }
+
+    public static void main( String[] args )
+        throws Exception
+    {
+        PluginManager manager = new PluginManager();
+
+        manager.getBuilder().execute( 1, 1 );
+        //Thread.sleep( 10000 );
+        //felix.stop();
+    }
+}

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/PluginManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/java/org/apache/continuum/plugin/manager/PluginManager.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/resources/osgi-manager.properties
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/resources/osgi-manager.properties?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/resources/osgi-manager.properties (added)
+++ continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/resources/osgi-manager.properties Thu Dec 11 13:21:06 2008
@@ -0,0 +1,33 @@
+osgi.system-packages=org.xml.sax,javax.security.cert,javax.xml.parsers,org.xml.sax.helpers,javax.net.ssl; version=1.3.0,\
+  org.osgi.framework; version=1.4.0, \
+  org.osgi.service.packageadmin; version=1.2.0, \
+  org.osgi.service.startlevel; version=1.2.0, \
+  org.osgi.service.url; version=1.0.0, \
+  org.apache.continuum.plugin.api.builder; version=1.4.0.SNAPSHOT
+
+osgi.cache-directory=cache
+
+#osgi.autostart.1=file:///${bundle.root}/training-service/1.0-SNAPSHOT/training-service-1.0-SNAPSHOT.jar \
+#  file:///${bundle.root}/http-servlets/1.0-SNAPSHOT/http-servlets-1.0-SNAPSHOT.jar \
+#  file:///${bundle.root}/service-listener/1.0-SNAPSHOT/service-listener-1.0-SNAPSHOT.jar \
+#  file:///${jetty.root}/jetty/6.1.7/jetty-6.1.7.jar \
+#  file:///${jetty.root}/jetty-util/6.1.7/jetty-util-6.1.7.jar \
+#  file:///${jetty.root}/servlet-api-2.5/6.1.7/servlet-api-2.5-6.1.7.jar \
+#  file:bundle/org.osgi.compendium-1.0.0.jar \
+#  file:bundle/slf4j-api-1.4.3.jar \
+#  file:bundle/slf4j-simple-1.4.3.jar \
+#  file:bundle/org.apache.felix.http.jetty-0.9.0-GRIDSHORE.jar \
+#  file:bundle/org.apache.felix.shell-1.0.0.jar \
+#  file:bundle/org.apache.felix.shell.tui-1.0.0.jar
+
+#osgi.autostart.1=file:///Users/evenisse/.m2/repository/org/apache/felix/org.osgi.compendium/1.2.0/org.osgi.compendium-1.2.0.jar \
+#  file:///Users/evenisse/.m2/repository/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar \
+#  file:///Users/evenisse/.m2/repository/org/slf4j/slf4j-simple/1.4.3/slf4j-simple-1.4.3.jar \
+#  file:///Users/evenisse/.m2/repository/org/apache/felix/org.apache.felix.shell/1.0.2/org.apache.felix.shell-1.0.2.jar \
+#  file:///Users/evenisse/.m2/repository/org/apache/felix/org.apache.felix.shell.tui/1.0.2/org.apache.felix.shell.tui-1.0.2.jar \
+#  file:../continuum-plugin-api/target/continuum-plugin-api-1.4-SNAPSHOT.jar \
+#  file:../continuum-model/target/continuum-model-1.4-SNAPSHOT.jar \
+#  file:../continuum-builder/target/continuum-builder-1.4-SNAPSHOT.jar \
+#  file:../continuum-build-plugin/target/continuum-build-plugin-1.4-SNAPSHOT.jar \
+#  file:../continuum-commandline-notification-plugin/target/continuum-commandline-notification-plugin-1.4-SNAPSHOT.jar
+osgi.autostart.1=

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/resources/osgi-manager.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/continuum-plugin-manager/src/main/resources/osgi-manager.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: continuum/branches/continuum-osgi-prototype/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-osgi-prototype/pom.xml?rev=725818&view=auto
==============================================================================
--- continuum/branches/continuum-osgi-prototype/pom.xml (added)
+++ continuum/branches/continuum-osgi-prototype/pom.xml Thu Dec 11 13:21:06 2008
@@ -0,0 +1,17 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.continuum</groupId>
+  <artifactId>continuum-plugins</artifactId>
+  <version>1.4-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>continuum-app</module>
+    <module>continuum-builder</module>
+    <module>continuum-model</module>
+    <module>continuum-plugin-api</module>
+    <module>continuum-plugin-manager</module>
+    <module>continuum-build-plugin</module>
+    <module>continuum-commandline-notification-plugin</module>
+  </modules>
+</project>

Propchange: continuum/branches/continuum-osgi-prototype/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-osgi-prototype/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"