This “discussion” seems to have died down.   There are 4 PMC members that 
support the veto with 3 specifically stating technical (and not political or 
social) grounds.   Thus, this must be reverted until all of the technical 
issues are resolved.   Claus:  is that something you’ll have time to do shortly?

Dan


On Nov 28, 2013, at 8:32 AM, Daniel Kulp <dk...@apache.org> wrote:

> 
> I’m -1 to this commit.   I don’t think we should be adding a bunch of targets 
> for all the various container/platform integrations.   This starts going down 
> the road of adding targets for karaf, glassfish, etc…  We should just provide 
> standard packaging that the hawtio:run command or whatever would pick up.  
> (like tomcat:run, jetty:run, etc…)
> 
> Dan
> 
> 
> On Nov 28, 2013, at 7:46 AM, davscl...@apache.org wrote:
> 
>> Updated Branches:
>> refs/heads/camel-2.12.x 628b34c0d -> ae5a770e0
>> 
>> 
>> CAMEL-7023: Added hawtio goal to camel maven plugin.
>> 
>> Conflicts:
>>      parent/pom.xml
>> 
>> 
>> Project: http://git-wip-us.apache.org/repos/asf/camel/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ae5a770e
>> Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ae5a770e
>> Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ae5a770e
>> 
>> Branch: refs/heads/camel-2.12.x
>> Commit: ae5a770e01a1a2512412be97e62b18cb7578d640
>> Parents: 628b34c
>> Author: Claus Ibsen <davscl...@apache.org>
>> Authored: Thu Nov 28 13:47:25 2013 +0100
>> Committer: Claus Ibsen <davscl...@apache.org>
>> Committed: Thu Nov 28 13:48:16 2013 +0100
>> 
>> ----------------------------------------------------------------------
>> parent/pom.xml                                  |  1 +
>> tooling/maven/camel-maven-plugin/pom.xml        |  7 +++
>> .../java/org/apache/camel/maven/HawtioMojo.java | 58 ++++++++++++++++++++
>> .../java/org/apache/camel/maven/RunMojo.java    | 21 +++++--
>> 4 files changed, 83 insertions(+), 4 deletions(-)
>> ----------------------------------------------------------------------
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/camel/blob/ae5a770e/parent/pom.xml
>> ----------------------------------------------------------------------
>> diff --git a/parent/pom.xml b/parent/pom.xml
>> index 95f2a9e..d3229bc 100644
>> --- a/parent/pom.xml
>> +++ b/parent/pom.xml
>> @@ -173,6 +173,7 @@
>>    <hawtbuf-version>1.9</hawtbuf-version>
>>    <hawtdb-version>1.6</hawtdb-version>
>>    <hawtdispatch-version>1.18</hawtdispatch-version>
>> +    <hawtio-version>1.2.0</hawtio-version>
>>    <hazelcast-version>2.6</hazelcast-version>
>>    <hbase-version>0.94.10</hbase-version>
>>    <hbase-bundle-version>0.94.6_1</hbase-bundle-version>
>> 
>> http://git-wip-us.apache.org/repos/asf/camel/blob/ae5a770e/tooling/maven/camel-maven-plugin/pom.xml
>> ----------------------------------------------------------------------
>> diff --git a/tooling/maven/camel-maven-plugin/pom.xml 
>> b/tooling/maven/camel-maven-plugin/pom.xml
>> index 160b8ab..940ab77 100644
>> --- a/tooling/maven/camel-maven-plugin/pom.xml
>> +++ b/tooling/maven/camel-maven-plugin/pom.xml
>> @@ -53,6 +53,13 @@
>>      <artifactId>camel-cdi</artifactId>
>>    </dependency>
>> 
>> +    <!--for the hawtio goal -->
>> +    <dependency>
>> +      <groupId>io.hawt</groupId>
>> +      <artifactId>hawtio-app</artifactId>
>> +      <version>${hawtio-version}</version>
>> +    </dependency>
>> +
>>    <dependency>
>>      <groupId>org.codehaus.mojo</groupId>
>>      <artifactId>exec-maven-plugin</artifactId>
>> 
>> http://git-wip-us.apache.org/repos/asf/camel/blob/ae5a770e/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/HawtioMojo.java
>> ----------------------------------------------------------------------
>> diff --git 
>> a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/HawtioMojo.java
>>  
>> b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/HawtioMojo.java
>> new file mode 100644
>> index 0000000..1c8f697
>> --- /dev/null
>> +++ 
>> b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/HawtioMojo.java
>> @@ -0,0 +1,58 @@
>> +/**
>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>> + * contributor license agreements.  See the NOTICE file distributed with
>> + * this work for additional information regarding copyright ownership.
>> + * The ASF licenses this file to You under the Apache License, Version 2.0
>> + * (the "License"); you may not use this file except in compliance with
>> + * the License.  You may obtain a copy of the License at
>> + *
>> + *      http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing, software
>> + * distributed under the License is distributed on an "AS IS" BASIS,
>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>> + * See the License for the specific language governing permissions and
>> + * limitations under the License.
>> + */
>> +package org.apache.camel.maven;
>> +
>> +import java.lang.reflect.Method;
>> +
>> +/**
>> + * Runs a CamelContext using any Spring or Blueprint XML configuration 
>> files found in
>> + * <code>META-INF/spring/*.xml</code>, and 
>> <code>OSGI-INF/blueprint/*.xml</code>,
>> + * and <code>camel-*.xml</code> and starting up the context together with
>> + * <a href="http://hawt.io/";>hawtio</a> as web console.
>> + *
>> + * @goal hawtio
>> + * @requiresDependencyResolution compile+runtime
>> + * @execute phase="test-compile"
>> + */
>> +public class HawtioMojo extends RunMojo {
>> +
>> +    /**
>> +     * The port number to use for the hawtio web console.
>> +     *
>> +     * @parameter property="camel.port"
>> +     *            default-value="8080"
>> +     */
>> +    private int port = 8080;
>> +
>> +    public HawtioMojo() {
>> +        extendedPluginDependencyArtifactId = "hawtio-app";
>> +    }
>> +
>> +    @Override
>> +    void beforeBootstrapCamel() throws Exception {
>> +        getLog().info("Starting hawtio ...");
>> +        Method hawtioMain = 
>> Thread.currentThread().getContextClassLoader().loadClass("io.hawt.app.App")
>> +                .getMethod("main", new Class[] {String[].class});
>> +        if (!hawtioMain.isAccessible()) {
>> +            getLog().debug("Setting accessibility to true in order to 
>> invoke main().");
>> +            hawtioMain.setAccessible(true);
>> +        }
>> +        String[] args = new String[]{"--port", "" + port, "--join", 
>> "false"};
>> +        hawtioMain.invoke(hawtioMain, new Object[]{args});
>> +    }
>> +
>> +}
>> 
>> http://git-wip-us.apache.org/repos/asf/camel/blob/ae5a770e/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
>> ----------------------------------------------------------------------
>> diff --git 
>> a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
>>  
>> b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
>> index 6f3921d..510333b6 100644
>> --- 
>> a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
>> +++ 
>> b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
>> @@ -369,6 +369,7 @@ public class RunMojo extends AbstractExecMojo {
>>    private Properties originalSystemProperties;
>> 
>>    private String extraPluginDependencyArtifactId;
>> +    protected String extendedPluginDependencyArtifactId;
>> 
>>    /**
>>     * Execute goal.
>> @@ -455,7 +456,7 @@ public class RunMojo extends AbstractExecMojo {
>>            getLog().info("Using org.apache.camel.spring.Main to initiate a 
>> CamelContext");
>>            mainClass = "org.apache.camel.spring.Main";
>>        }
>> -        
>> +
>>        arguments = new String[args.size()];
>>        args.toArray(arguments);
>> 
>> @@ -474,9 +475,12 @@ public class RunMojo extends AbstractExecMojo {
>>        }
>> 
>>        IsolatedThreadGroup threadGroup = new IsolatedThreadGroup(mainClass 
>> /* name */);
>> -        Thread bootstrapThread = new Thread(threadGroup, new Runnable() {
>> +        final Thread bootstrapThread = new Thread(threadGroup, new 
>> Runnable() {
>>            public void run() {
>>                try {
>> +                    beforeBootstrapCamel();
>> +
>> +                    getLog().info("Starting Camel ...");
>>                    Method main = 
>> Thread.currentThread().getContextClassLoader().loadClass(mainClass)
>>                        .getMethod("main", new Class[] {String[].class});
>>                    if (!main.isAccessible()) {
>> @@ -494,6 +498,7 @@ public class RunMojo extends AbstractExecMojo {
>>                }
>>            }
>>        }, mainClass + ".main()");
>> +
>>        bootstrapThread.setContextClassLoader(getClassLoader());
>>        setSystemProperties();
>> 
>> @@ -532,6 +537,13 @@ public class RunMojo extends AbstractExecMojo {
>>        registerSourceRoots();
>>    }
>> 
>> +    /**
>> +     * Allows plugin extensions to do custom logic before bootstrapping 
>> Camel.
>> +     */
>> +    void beforeBootstrapCamel() throws Exception {
>> +        // noop
>> +    }
>> +
>>    class IsolatedThreadGroup extends ThreadGroup {
>>        Throwable uncaughtException; // synchronize access to this
>> 
>> @@ -743,7 +755,7 @@ public class RunMojo extends AbstractExecMojo {
>>     * @throws MojoExecutionException
>>     */
>>    private void addExtraPluginDependenciesToClasspath(Set<URL> path) throws 
>> MojoExecutionException {
>> -        if (extraPluginDependencyArtifactId == null) {
>> +        if (extraPluginDependencyArtifactId == null && 
>> extendedPluginDependencyArtifactId == null) {
>>            return;
>>        }
>> 
>> @@ -751,7 +763,8 @@ public class RunMojo extends AbstractExecMojo {
>>            Set<Artifact> artifacts = new 
>> HashSet<Artifact>(this.pluginDependencies);
>>            for (Artifact artifact : artifacts) {
>>                // must
>> -                if 
>> (artifact.getArtifactId().equals(extraPluginDependencyArtifactId)) {
>> +                if 
>> (artifact.getArtifactId().equals(extraPluginDependencyArtifactId)
>> +                        || 
>> artifact.getArtifactId().equals(extendedPluginDependencyArtifactId)) {
>>                    getLog().debug("Adding extra plugin dependency artifact: 
>> " + artifact.getArtifactId()
>>                            + " to classpath");
>>                    path.add(artifact.getFile().toURI().toURL());
>> 
> 
> -- 
> Daniel Kulp
> dk...@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
> 

-- 
Daniel Kulp
dk...@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to