3 Replies Latest reply on Jul 8, 2014 2:29 AM by Grzegorz Grzybek

    Re: [forge-dev] Forge and Camel Archetypes

    Grzegorz Grzybek Novice

      Hello

       

      Finally I have time to start the discussion about the use of Maven

      Archetypes in both JBoss Fuse and JBoss Fabric.

       

      Here are the links to relevant issues:

        - https://issues.jboss.org/browse/FORGE-273

        - https://github.com/fabric8io/fabric8/issues/1091

       

      Currently we have (here:

      https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/java/io/fabric8/camel/tooling/util/ArchetypeHelper.java)

      a helper which can unpack maven archetype and correctly replace $

      variables in archetype resources.

       

      Let's first say what we want to achieve. I'd say (please provide

      comments if I misunderstood something):

      Basic:

        - to be able to unpack any Maven Archetype JAR and create working

      ("mvn clean install"able) project in FileSystem without using Maven

      archetype-related libraries

        - to be able to replace variables in archetype resources

        - to be able to evaluate Velocity expressions (they may be present in

      the archetypes)

      Discovery:

        - to be able to read list of available archetypes

        - to be able to discover available archetypes and create the above

      list (explicit distinction to free ourselves from finding the archetypes

      in M2_REPO each time)

      Help:

        - to be able to discover archetype parameters (this is the main goal -

      to make something more user/tab-completion friendly than "mvn

      archetype:create" with millions of options)

        - to provide commands (Karaf/Gogo or JBoss Forge) for project creation

        - to ask users (GUI? Console? Hawt.io?) for required archetype:create

      params

       

      OK. I'd like to start a project (https://github.com/forge/ or

      https://github.com/fusesource/ or https://github.com/jboss/ or

      https://github.com/jboss-fuse/ - any suggestions?) which will do most of

      the above and will be a foundation of:

        - karaf/fabric command

        - Forge addon(?)

       

      Any suggestions?

       

      ---

      regards

      Grzegorz Grzybek

       

       

      That sounds good. Please post to forge-dev@lists.jboss.org

      <mailto:forge-dev@lists.jboss.org> when you want help getting this

      rolling!

       

      >

      On Wed, May 21, 2014 at 9:10 AM, James Strachan <jstracha@redhat.com

      <mailto:jstracha@redhat.com>> wrote:

       

          Hey

       

          The scala code is ported to Java now; why don’t we get the little

          ‘project creator’ command in fabric8 working; then when its there,

          we could post it to the forge list to see about

          including/sharing/reusing the same stuff there too?

       

          On 21 May 2014, at 12:33, Grzegorz Grzybek <ggrzybek@redhat.com

          <mailto:ggrzybek@redhat.com>> wrote:

      >>     Hello - sorry I couldn't start the discussion... But I still

      >>     remember that it's quite important

      >>

      >>     regards

      >>     Grzegorz Grzybek

      >>>     I think that sounds like a good idea. If we can consume this as

      >>>     a library, it would make things very easy to implement. It would

      >>>     also probably give you guys a migration path so you don't

      >>>     immediately have to jump to Forge on drop 0.

      >>>

      >>>     Forge has a number of ways of locating resources, we can come up

      >>>     with a nice pattern for this

      >>>

      >>>     Shall we move this discussion to forge-dev@lists.jboss.org

      >>>     <mailto:forge-dev@lists.jboss.org> or #forge on irc.freenode.net

      >>>     <http://irc.freenode.net/> and get started?

      >>>

      >>>     ~Lincoln

      >>>

      >>>

      >>>     On Thu, May 15, 2014 at 3:13 AM, James Strachan

      >>>     <jstracha@redhat.com <mailto:jstracha@redhat.com>> wrote:

      >>>

      >>>         Yeah, we might wanna polish the archetype generator code

      >>>         into its own jar/bundle thats got minimal dependencies & is

      >>>         easier to use stand alone (so it could be more easily

      >>>         consumed from inside Forge).

      >>>

      >>>         For the ‘create project’ command/plugin I figured we’d

      >>>         discover the available archetypes on the classpath somehow;

      >>>         in Fuse IDE (the Fuse/Camel plugins now in JBDS) we just did

      >>>         a bit of code generation to put the archetype jars inside

      >>>         the plugin.  Something a bit more extensible, eventually,

      >>>         might be nice for Forge; though for fabric8 just having a

      >>>         curated list of archetypes from the fabric8 project itself

      >>>         will be fine for us for a while

      >>>

      >>>

      >>>         On 15 May 2014, at 08:03, Grzegorz Grzybek

      >>>         <ggrzybek@redhat.com <mailto:ggrzybek@redhat.com>> wrote:

      >>>>         Hello!

      >>>>>         Awesome, thanks Grzegorz!

      >>>>>

      >>>>>         BTW a bit of background for you, sorry I should have said

      >>>>>         - there’s been discussions in the past of adding a nice

      >>>>>         ability to create new projects from archetypes nicely into

      >>>>>         JBoss Forge:

      >>>>>         https://issues.jboss.org/browse/FORGE-273

      >>>>>

      >>>>>         http://forge.jboss.org/

      >>>>>

      >>>>>         the mvn command line to generate archetypes isn’t awesome

      >>>>>         and we could curate a nice default set with

      >>>>>         auto-completion of all the known jboss archetypes from our

      >>>>>         projects (and maybe have a nice little way to filter them

      >>>>>         by tag/project name/tech etc) with tab completion etc

      >>>>         Thanks for links - so another item on my TODO list

      >>>>         I'll think about how to make it easier both for Forge and

      >>>>         commands inside Fabric8.

      >>>>

      >>>>         regards

      >>>>         Grzegorz

      >>>>>

      >>>>>         On 15 May 2014, at 07:55, Grzegorz Grzybek

      >>>>>         <ggrzybek@redhat.com <mailto:ggrzybek@redhat.com>> wrote:

      >>>>>>         Hello!

      >>>>>>

      >>>>>>         I successfully ported insight-maven stuff from Scala

      >>>>>>         (it's Maven's Aether concept to deal with repositories).

      >>>>>>         But now I'm 30% in camel-tooling-util. Scala is not

      >>>>>>         really needed here and I see it has much more cons than pros!

      >>>>>>         I know that for Scala ninjas this language is the

      >>>>>>         ultimate expression tool, but reading it after few years

      >>>>>>         is not such a Zen experience after all.

      >>>>>>

      >>>>>>         As someone said - Java8 is the new Java, not Scala. Of

      >>>>>>         course I don't want to rewrite all this code into

      >>>>>>         lambda-spaghetti, but good old Java6 syntax is enough

      >>>>>>

      >>>>>>         And after porting camel-tooling-util back to Java, I'll

      >>>>>>         look at https://github.com/fabric8io/fabric8/issues/1091

      >>>>>>         which is about making creating projects from archetypes

      >>>>>>         much easier.

      >>>>>>

      >>>>>>         regards

      >>>>>>         Grzegorz

      >>>>>>>         Cool; wanna CC Grzegorz and myself?; am hoping at some

      >>>>>>>         point Grzegorz gets the chance to port the existing

      >>>>>>>         Archetype creation code from scala to java so its a

      >>>>>>>         little leaner & meaner and easier to reuse in Forge.

      >>>>>>>

      >>>>>>>         On 14 May 2014, at 20:31, Lincoln Baxter, III

      >>>>>>>         <lincolnbaxter@gmail.com

      >>>>>>>         <mailto:lincolnbaxter@gmail.com>> wrote:

      >>>>>>>>         Okay cool. We'll continue to go down the archetype

      >>>>>>>>         route and see if we can get that working for you guys.

      >>>>>>>>         It would help if we had someone on your team who could

      >>>>>>>>         take point on this so we can assist. Is that possible?

      >>>>>>>>

      >>>>>>>>

      >>>>>>>>         On Wed, May 14, 2014 at 3:29 PM, James Strachan

      >>>>>>>>         <jstracha@redhat.com <mailto:jstracha@redhat.com>> wrote:

      >>>>>>>>

      >>>>>>>>             Ah yeah - just chatted to Dave; this is some gem

      >>>>>>>>             based stuff for generating projects from templates;

      >>>>>>>>             which is cool too. We went the maven archetype

      >>>>>>>>             direction in Fuse IDE (now the Fuse / Camel tooling

      >>>>>>>>             in JBDS) and now have lots of archetypes (both on

      >>>>>>>>             upstream projects like camel & cxf and in JBoss

      >>>>>>>>             Fuse); so I’m personally more keen to support

      >>>>>>>>             archetypes ASAP; but the more tooling and options

      >>>>>>>>             the better!

      >>>>>>>>

      >>>>>>>>             On 14 May 2014, at 17:58, Lincoln Baxter, III

      >>>>>>>>             <lincolnbaxter@gmail.com

      >>>>>>>>             <mailto:lincolnbaxter@gmail.com>> wrote:

      >>>>>>>>

      >>>>>>>>>             https://issues.jboss.org/browse/FORGE-273

      >>>>>>>>>

      >>>>>>>>>             Also just got contacted by some people from GSS

      >>>>>>>>>             who are working on fusegen and want to merge that

      >>>>>>>>>             into Forge. Do you know anything about that?

      >>>>>>>>>             Wai Chun Hoi, and Dave Stanley.

      >>>>>>>>>

      >>>>>>>>>             ~Lincoln

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>             On Wed, Apr 16, 2014 at 11:50 AM, James Strachan

      >>>>>>>>>             <jstracha@redhat.com <mailto:jstracha@redhat.com>>

      >>>>>>>>>             wrote:

      >>>>>>>>>

      >>>>>>>>>                 Sounds cool; am around until about 2-3pm I

      >>>>>>>>>                 think so late morning sounds cool.

      >>>>>>>>>

      >>>>>>>>>                 FWIW we added an archetype generator a while

      >>>>>>>>>                 back into eclipse so it was easy for folks to

      >>>>>>>>>                 start projects & we pre-baked all our

      >>>>>>>>>                 camel/fuse archetypes - as using the maven

      >>>>>>>>>                 archetype:generate command line is so utterly

      >>>>>>>>>                 awful.

      >>>>>>>>>

      >>>>>>>>>                 Here’s the code to create an archetype from

      >>>>>>>>>                 the mvn coordinates of the archetype distro:

      >>>>>>>>>                 https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/scala/io/fabric8/camel/tooling/util/ArchetypeHelper.scala#L45

      >>>>>>>>>

      >>>>>>>>>                 e.g. here’s a test case that creates a bunch

      >>>>>>>>>                 of archetypes - no maven is required etc:

      >>>>>>>>>                 https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/test/scala/io/fabric8/camel/tooling/util/ArchetypeTest.scala#L29

      >>>>>>>>>

      >>>>>>>>>                 I was hoping we could cobble something like

      >>>>>>>>>                 this into a standard command; then have nice

      >>>>>>>>>                 tab completion on the list of archetypes we

      >>>>>>>>>                 ship by default in Forge which groks all the

      >>>>>>>>>                 jboss / fuse / apache archetypes we want to

      >>>>>>>>>                 prime it with; and make it easy for folks to

      >>>>>>>>>                 add/load/configure others. e.g. JBoss Fuse

      >>>>>>>>>                 ships with a bunch of archetypes (but they are

      >>>>>>>>>                 not sync’d to maven central); so it’d be nice

      >>>>>>>>>                 if all jboss products that have archetypes

      >>>>>>>>>                 were baked into Forge (e.g. EAP / Fuse / Fuse

      >>>>>>>>>                 Service Works / BRMS etc).

      >>>>>>>>>

      >>>>>>>>>                 Hope that helps - would love to port the code

      >>>>>>>>>                 to plain java but I guess whats another

      >>>>>>>>>                 massive jar dependency on spring-library

      >>>>>>>>>                 between friends

      >>>>>>>>>

      >>>>>>>>>                 Anyway - hope to see you around this morning.

      >>>>>>>>>                 Go Errai!

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>                 On 16 Apr 2014, at 02:52, Lincoln Baxter, III

      >>>>>>>>>                 <lincolnbaxter@gmail.com

      >>>>>>>>>                 <mailto:lincolnbaxter@gmail.com>> wrote:

      >>>>>>>>>>                 Let's talk about this tomorrow (today.) I'll

      >>>>>>>>>>                 be over at the conference in the late

      >>>>>>>>>>                 morning. And I'll be at the hack-fest.

      >>>>>>>>>>

      >>>>>>>>>>                 --

      >>>>>>>>>>                 Lincoln Baxter, III

      >>>>>>>>>>                 http://ocpsoft.org <http://ocpsoft.org/>

      >>>>>>>>>>                 "Simpler is better."

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>                 James

      >>>>>>>>>                 -


      >>>>>>>>>                 Red Hat

      >>>>>>>>>

      >>>>>>>>>                 Email: jstracha@redhat.com

      >>>>>>>>>                 <mailto:jstracha@redhat.com>

      >>>>>>>>>                 Web: http://fusesource.com

      >>>>>>>>>                 <http://fusesource.com/>

      >>>>>>>>>                 Twitter: jstrachan, fusenews

      >>>>>>>>>                 Blog: http://macstrac.blogspot.com/

      >>>>>>>>>

      >>>>>>>>>                 Open Source Integration

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>

      >>>>>>>>>             --

      >>>>>>>>>             Lincoln Baxter, III

      >>>>>>>>>             http://ocpsoft.org <http://ocpsoft.org/>

      >>>>>>>>>             "Simpler is better."

      >>>>>>>>

      >>>>>>>>

      >>>>>>>>             James

      >>>>>>>>             -


      >>>>>>>>             Red Hat

      >>>>>>>>

      >>>>>>>>             Twitter: @jstrachan

      >>>>>>>>             Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

      >>>>>>>>             Blog: http://macstrac.blogspot.com/

      >>>>>>>>

      >>>>>>>>             hawtio: http:/ <http://fusesource.com/>/hawt.io/

      >>>>>>>>             <http://hawt.io/>

      >>>>>>>>             fabric8: http:/

      >>>>>>>>             <http://fusesource.com/>/fabric8.io/

      >>>>>>>>             <http://fabric8.io/>

      >>>>>>>>

      >>>>>>>>             Open Source Integration

      >>>>>>>>

      >>>>>>>>

      >>>>>>>>

      >>>>>>>>

      >>>>>>>>         --

      >>>>>>>>         Lincoln Baxter, III

      >>>>>>>>         http://ocpsoft.org <http://ocpsoft.org/>

      >>>>>>>>         "Simpler is better."

      >>>>>>>

      >>>>>>>

      >>>>>>>         James

      >>>>>>>         -


      >>>>>>>         Red Hat

      >>>>>>>

      >>>>>>>         Twitter: @jstrachan

      >>>>>>>         Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

      >>>>>>>         Blog: http://macstrac.blogspot.com/

      >>>>>>>

      >>>>>>>         hawtio: http:/ <http://fusesource.com/>/hawt.io/

      >>>>>>>         <http://hawt.io/>

      >>>>>>>         fabric8: http:/ <http://fusesource.com/>/fabric8.io/

      >>>>>>>         <http://fabric8.io/>

      >>>>>>>

      >>>>>>>         Open Source Integration

      >>>>>>>

      >>>>>>

      >>>>>

      >>>>>

      >>>>>         James

      >>>>>         -


      >>>>>         Red Hat

      >>>>>

      >>>>>         Twitter: @jstrachan

      >>>>>         Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

      >>>>>         Blog: http://macstrac.blogspot.com/

      >>>>>

      >>>>>         hawtio: http:/ <http://fusesource.com/>/hawt.io/

      >>>>>         <http://hawt.io/>

      >>>>>         fabric8: http:/ <http://fusesource.com/>/fabric8.io/

      >>>>>         <http://fabric8.io/>

      >>>>>

      >>>>>         Open Source Integration

      >>>>>

      >>>>

      >>>

      >>>

      >>>         James

      >>>         -


      >>>         Red Hat

      >>>

      >>>         Twitter: @jstrachan

      >>>         Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

      >>>         Blog: http://macstrac.blogspot.com/

      >>>

      >>>         hawtio: http:/ <http://fusesource.com/>/hawt.io/

      >>>         <http://hawt.io/>

      >>>         fabric8: http:/ <http://fusesource.com/>/fabric8.io/

      >>>         <http://fabric8.io/>

      >>>

      >>>         Open Source Integration

      >>>

      >>>

      >>>

      >>>

      >>>     --

      >>>     Lincoln Baxter, III

      >>>     http://ocpsoft.org <http://ocpsoft.org/>

      >>>     "Simpler is better."

      >>

      >

       

          James

          -------

          Red Hat

       

          Twitter: @jstrachan

          Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

          Blog: http://macstrac.blogspot.com/

       

          hawtio: http:/ <http://fusesource.com/>/hawt.io/ <http://hawt.io/>

          fabric8: http:/ <http://fusesource.com/>/fabric8.io/

          <http://fabric8.io/>

       

          Open Source Integration

       

      >

      >

      --

      Lincoln Baxter, III

      http://ocpsoft.org

      "Simpler is better."

       

       

        • 1. Re: [forge-dev] Forge and Camel Archetypes

          With my fabric8 hat on, I was hoping we could add a Karaf CLI command first inside the fabric8 project ;). We have a static list of archetypes in fabric8 (they are all generated programatically too which helps , the code to generate them (ArchetypeHelper); so we just need 2 Java classes writing for the Karaf/Gogo shell and we’re done

           

          e.g. adding a command like this into the existing fabric-agent-commands module in fabric8:

           

            project-create outputFolderPath mvn:group/artifact….

           

          which to start with doesn’t have any discovery; it just uses the given output folder and mvn coordinates of the archetype and runs the ArchetypeHelper; prompting users to complete/override any values.

           

           

          Step 2 is to make the archetypes easily discoverable from inside fabric8 itself; via a kind of properties file we can use inside fabric8; which we can then release these properties files into maven repositories. So then folks could type:

           

            project-create outputFolderPath

           

            There are 20 known projects; enter a filter or hit return to see them all: camel

           

            Searched for camel:

           

            camel-cdi

            camel-spring

           

            Select the project to create : _

           

          etc

           

           

          Step 3 is to add something like this into Forge (i.e. the discovery & ArchetypeHelper invocation) and to figure out how different projects can help curate collections of archetypes so they are easy to add/remove from Forge without having to use the horrid “archetype catalog” search in maven which is so hit and miss.

           

          e.g. in Forge we probably want to ‘add’ or ‘remove’ archetype templates.

           

           

          On 5 Jun 2014, at 15:30, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

          Hello

           

          Finally I have time to start the discussion about the use of Maven Archetypes in both JBoss Fuse and JBoss Fabric.

           

          Here are the links to relevant issues:

          - https://issues.jboss.org/browse/FORGE-273

          - https://github.com/fabric8io/fabric8/issues/1091

           

          Currently we have (here: https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/java/io/fabric8/camel/tooling/util/ArchetypeHelper.java) a helper which can unpack maven archetype and correctly replace $ variables in archetype resources.

           

          Let's first say what we want to achieve. I'd say (please provide comments if I misunderstood something):

          Basic:

          - to be able to unpack any Maven Archetype JAR and create working ("mvn clean install"able) project in FileSystem without using Maven archetype-related libraries

          - to be able to replace variables in archetype resources

          - to be able to evaluate Velocity expressions (they may be present in the archetypes)

          Discovery:

          - to be able to read list of available archetypes

          - to be able to discover available archetypes and create the above list (explicit distinction to free ourselves from finding the archetypes in M2_REPO each time)

          Help:

          - to be able to discover archetype parameters (this is the main goal - to make something more user/tab-completion friendly than "mvn archetype:create" with millions of options)

          - to provide commands (Karaf/Gogo or JBoss Forge) for project creation

          - to ask users (GUI? Console? Hawt.io?) for required archetype:create params

           

          OK. I'd like to start a project (https://github.com/forge/ or https://github.com/fusesource/ or https://github.com/jboss/ or https://github.com/jboss-fuse/ - any suggestions?) which will do most of the above and will be a foundation of:

          - karaf/fabric command

          - Forge addon(?)

           

          Any suggestions?

           

          ---

          regards

          Grzegorz Grzybek

           

           

          >> That sounds good. Please post to forge-dev@lists.jboss.org when you want help getting this rolling!

          >>

          >>

          >> On Wed, May 21, 2014 at 9:10 AM, James Strachan <jstracha@redhat.com> wrote:

          >> Hey

          >>

          >> The scala code is ported to Java now; why don’t we get the little ‘project creator’ command in fabric8 working; then when its there, we could post it to the forge list to see about including/sharing/reusing the same stuff there too?

          >>

          >> On 21 May 2014, at 12:33, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

          >>> Hello - sorry I couldn't start the discussion... But I still remember that it's quite important

          >>>

          >>> regards

          >>> Grzegorz Grzybek

          >>>> I think that sounds like a good idea. If we can consume this as a library, it would make things very easy to implement. It would also probably give you guys a migration path so you don't immediately have to jump to Forge on drop 0.

          >>>>

          >>>> Forge has a number of ways of locating resources, we can come up with a nice pattern for this

          >>>>

          >>>> Shall we move this discussion to forge-dev@lists.jboss.org or #forge on irc.freenode.net and get started?

          >>>>

          >>>> ~Lincoln

          >>>>

          >>>>

          >>>> On Thu, May 15, 2014 at 3:13 AM, James Strachan <jstracha@redhat.com> wrote:

          >>>> Yeah, we might wanna polish the archetype generator code into its own jar/bundle thats got minimal dependencies & is easier to use stand alone (so it could be more easily consumed from inside Forge).

          >>>>

          >>>> For the ‘create project’ command/plugin I figured we’d discover the available archetypes on the classpath somehow; in Fuse IDE (the Fuse/Camel plugins now in JBDS) we just did a bit of code generation to put the archetype jars inside the plugin.  Something a bit more extensible, eventually, might be nice for Forge; though for fabric8 just having a curated list of archetypes from the fabric8 project itself will be fine for us for a while

          >>>>

          >>>>

          >>>> On 15 May 2014, at 08:03, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

          >>>>> Hello!

          >>>>>> Awesome, thanks Grzegorz!

          >>>>>>

          >>>>>> BTW a bit of background for you, sorry I should have said - there’s been discussions in the past of adding a nice ability to create new projects from archetypes nicely into JBoss Forge:

          >>>>>> https://issues.jboss.org/browse/FORGE-273

          >>>>>>

          >>>>>> http://forge.jboss.org/

          >>>>>>

          >>>>>> the mvn command line to generate archetypes isn’t awesome and we could curate a nice default set with auto-completion of all the known jboss archetypes from our projects (and maybe have a nice little way to filter them by tag/project name/tech etc) with tab completion etc

          >>>>> Thanks for links - so another item on my TODO list

          >>>>> I'll think about how to make it easier both for Forge and commands inside Fabric8.

          >>>>>

          >>>>> regards

          >>>>> Grzegorz

          >>>>>>

          >>>>>> On 15 May 2014, at 07:55, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

          >>>>>>> Hello!

          >>>>>>>

          >>>>>>> I successfully ported insight-maven stuff from Scala (it's Maven's Aether concept to deal with repositories). But now I'm 30% in camel-tooling-util. Scala is not really needed here and I see it has much more cons than pros!

          >>>>>>> I know that for Scala ninjas this language is the ultimate expression tool, but reading it after few years is not such a Zen experience after all.

          >>>>>>>

          >>>>>>> As someone said - Java8 is the new Java, not Scala. Of course I don't want to rewrite all this code into lambda-spaghetti, but good old Java6 syntax is enough

          >>>>>>>

          >>>>>>> And after porting camel-tooling-util back to Java, I'll look at https://github.com/fabric8io/fabric8/issues/1091 which is about making creating projects from archetypes much easier.

          >>>>>>>

          >>>>>>> regards

          >>>>>>> Grzegorz

          >>>>>>>> Cool; wanna CC Grzegorz and myself?; am hoping at some point Grzegorz gets the chance to port the existing Archetype creation code from scala to java so its a little leaner & meaner and easier to reuse in Forge.

          >>>>>>>>

          >>>>>>>> On 14 May 2014, at 20:31, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:

          >>>>>>>>> Okay cool. We'll continue to go down the archetype route and see if we can get that working for you guys. It would help if we had someone on your team who could take point on this so we can assist. Is that possible?

          >>>>>>>>>

          >>>>>>>>>

          >>>>>>>>> On Wed, May 14, 2014 at 3:29 PM, James Strachan <jstracha@redhat.com> wrote:

          >>>>>>>>> Ah yeah - just chatted to Dave; this is some gem based stuff for generating projects from templates; which is cool too. We went the maven archetype direction in Fuse IDE (now the Fuse / Camel tooling in JBDS) and now have lots of archetypes (both on upstream projects like camel & cxf and in JBoss Fuse); so I’m personally more keen to support archetypes ASAP; but the more tooling and options the better!

          >>>>>>>>>

          >>>>>>>>> On 14 May 2014, at 17:58, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:

          >>>>>>>>>

          >>>>>>>>>> https://issues.jboss.org/browse/FORGE-273

          >>>>>>>>>>

          >>>>>>>>>> Also just got contacted by some people from GSS who are working on fusegen and want to merge that into Forge. Do you know anything about that?

          >>>>>>>>>> 

          >>>>>>>>>> Wai Chun Hoi, and Dave Stanley.

          >>>>>>>>>>

          >>>>>>>>>> ~Lincoln

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>> On Wed, Apr 16, 2014 at 11:50 AM, James Strachan <jstracha@redhat.com> wrote:

          >>>>>>>>>> Sounds cool; am around until about 2-3pm I think so late morning sounds cool.

          >>>>>>>>>>

          >>>>>>>>>> FWIW we added an archetype generator a while back into eclipse so it was easy for folks to start projects & we pre-baked all our camel/fuse archetypes - as using the maven archetype:generate command line is so utterly awful.

          >>>>>>>>>>

          >>>>>>>>>> Here’s the code to create an archetype from the mvn coordinates of the archetype distro:

          >>>>>>>>>> https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/scala/io/fabric8/camel/tooling/util/ArchetypeHelper.scala#L45

          >>>>>>>>>>

          >>>>>>>>>> e.g. here’s a test case that creates a bunch of archetypes - no maven is required etc:

          >>>>>>>>>> https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/test/scala/io/fabric8/camel/tooling/util/ArchetypeTest.scala#L29

          >>>>>>>>>>

          >>>>>>>>>> I was hoping we could cobble something like this into a standard command; then have nice tab completion on the list of archetypes we ship by default in Forge which groks all the jboss / fuse / apache archetypes we want to prime it with; and make it easy for folks to add/load/configure others. e.g. JBoss Fuse ships with a bunch of archetypes (but they are not sync’d to maven central); so it’d be nice if all jboss products that have archetypes were baked into Forge (e.g. EAP / Fuse / Fuse Service Works / BRMS etc).

          >>>>>>>>>>

          >>>>>>>>>> Hope that helps - would love to port the code to plain java but I guess whats another massive jar dependency on spring-library between friends

          >>>>>>>>>>

          >>>>>>>>>> Anyway - hope to see you around this morning. Go Errai!

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>> On 16 Apr 2014, at 02:52, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:

          >>>>>>>>>>> Let's talk about this tomorrow (today.) I'll be over at the conference in the late morning. And I'll be at the hack-fest.

          >>>>>>>>>>>

          >>>>>>>>>>> --

          >>>>>>>>>>> Lincoln Baxter, III

          >>>>>>>>>>> http://ocpsoft.org

          >>>>>>>>>>> "Simpler is better."

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>> James

          >>>>>>>>>> -


          >>>>>>>>>> Red Hat

          >>>>>>>>>>

          >>>>>>>>>> Email: jstracha@redhat.com

          >>>>>>>>>> Web: http://fusesource.com

          >>>>>>>>>> Twitter: jstrachan, fusenews

          >>>>>>>>>> Blog: http://macstrac.blogspot.com/

          >>>>>>>>>>

          >>>>>>>>>> Open Source Integration

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>>

          >>>>>>>>>> --

          >>>>>>>>>> Lincoln Baxter, III

          >>>>>>>>>> http://ocpsoft.org

          >>>>>>>>>> "Simpler is better."

          >>>>>>>>>

          >>>>>>>>>

          >>>>>>>>> James

          >>>>>>>>> -


          >>>>>>>>> Red Hat

          >>>>>>>>>

          >>>>>>>>> Twitter: @jstrachan

          >>>>>>>>> Email: jstracha@redhat.com

          >>>>>>>>> Blog: http://macstrac.blogspot.com/

          >>>>>>>>>

          >>>>>>>>> hawtio: http://hawt.io/

          >>>>>>>>> fabric8: http://fabric8.io/

          >>>>>>>>>

          >>>>>>>>> Open Source Integration

          >>>>>>>>>

          >>>>>>>>>

          >>>>>>>>>

          >>>>>>>>>

          >>>>>>>>> --

          >>>>>>>>> Lincoln Baxter, III

          >>>>>>>>> http://ocpsoft.org

          >>>>>>>>> "Simpler is better."

          >>>>>>>>

          >>>>>>>>

          >>>>>>>> James

          >>>>>>>> -


          >>>>>>>> Red Hat

          >>>>>>>>

          >>>>>>>> Twitter: @jstrachan

          >>>>>>>> Email: jstracha@redhat.com

          >>>>>>>> Blog: http://macstrac.blogspot.com/

          >>>>>>>>

          >>>>>>>> hawtio: http://hawt.io/

          >>>>>>>> fabric8: http://fabric8.io/

          >>>>>>>>

          >>>>>>>> Open Source Integration

          >>>>>>>>

          >>>>>>>

          >>>>>>

          >>>>>>

          >>>>>> James

          >>>>>> -


          >>>>>> Red Hat

          >>>>>>

          >>>>>> Twitter: @jstrachan

          >>>>>> Email: jstracha@redhat.com

          >>>>>> Blog: http://macstrac.blogspot.com/

          >>>>>>

          >>>>>> hawtio: http://hawt.io/

          >>>>>> fabric8: http://fabric8.io/

          >>>>>>

          >>>>>> Open Source Integration

          >>>>>>

          >>>>>

          >>>>

          >>>>

          >>>> James

          >>>> -


          >>>> Red Hat

          >>>>

          >>>> Twitter: @jstrachan

          >>>> Email: jstracha@redhat.com

          >>>> Blog: http://macstrac.blogspot.com/

          >>>>

          >>>> hawtio: http://hawt.io/

          >>>> fabric8: http://fabric8.io/

          >>>>

          >>>> Open Source Integration

          >>>>

          >>>>

          >>>>

          >>>>

          >>>> --

          >>>> Lincoln Baxter, III

          >>>> http://ocpsoft.org

          >>>> "Simpler is better."

          >>>

          >>

          >>

          >>

          >> James

          >> -


          >> Red Hat

          >>

          >> Twitter: @jstrachan

          >> Email: jstracha@redhat.com

          >> Blog: http://macstrac.blogspot.com/

          >>

          >> hawtio: http://hawt.io/

          >> fabric8: http://fabric8.io/

          >>

          >> Open Source Integration

          >>

          >>

          >>

          >>

          >> --

          >> Lincoln Baxter, III

          >> http://ocpsoft.org

          >> "Simpler is better."

           

           

          James

          -


          Red Hat

           

          Twitter: @jstrachan

          Email: jstracha@redhat.com

          Blog: http://macstrac.blogspot.com/

           

          hawtio: http://hawt.io/

          fabric8: http://fabric8.io/

           

          Open Source Integration

           

           

          • 2. Re: [forge-dev] Forge and Camel Archetypes
            Lincoln Baxter III Master

            Hi Grzegorz,

             

            I'm sorry for dropping the ball on this. For Forge, I've set up a

            repository for you in https://github.com/forge/addon-maven-archetype. I've

            also created an empty Forge command for you to use as a starting point.

             

            Note, the project is split into addon/api/impl/spi/tests. The addon/

            project is classified as a 'forge-addon' JAR. More details on addon

            development can be found here:

            http://forge.jboss.org/document/develop-an-addon and info about the UI

            addon (used to create commands), can be found here:

            http://forge.jboss.org/addon/org.jboss.forge.addon:ui

             

            Please find me on #forge IRC if you get stuck, or reply here!

             

            ~Lincoln

             

             

            On Thu, Jun 5, 2014 at 10:30 AM, Grzegorz Grzybek <ggrzybek@redhat.com>

            wrote:

             

            Hello

             

            Finally I have time to start the discussion about the use of Maven

            Archetypes in both JBoss Fuse and JBoss Fabric.

             

            Here are the links to relevant issues:

            - https://issues.jboss.org/browse/FORGE-273

            - https://github.com/fabric8io/fabric8/issues/1091

             

            Currently we have (here:

            https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/java/io/fabric8/camel/tooling/util/ArchetypeHelper.java)

            a helper which can unpack maven archetype and correctly replace $

            variables in archetype resources.

             

            Let's first say what we want to achieve. I'd say (please provide comments

            if I misunderstood something):

            Basic:

            - to be able to unpack any Maven Archetype JAR and create working ("mvn

            clean install"able) project in FileSystem without using Maven

            archetype-related libraries

            - to be able to replace variables in archetype resources

            - to be able to evaluate Velocity expressions (they may be present in the

            archetypes)

            Discovery:

            - to be able to read list of available archetypes

            - to be able to discover available archetypes and create the above list

            (explicit distinction to free ourselves from finding the archetypes in

            M2_REPO each time)

            Help:

            - to be able to discover archetype parameters (this is the main goal - to

            make something more user/tab-completion friendly than "mvn

            archetype:create" with millions of options)

            - to provide commands (Karaf/Gogo or JBoss Forge) for project creation

            - to ask users (GUI? Console? Hawt.io?) for required archetype:create

            params

             

            OK. I'd like to start a project (https://github.com/forge/ or

            https://github.com/fusesource/ or https://github.com/jboss/ or

            https://github.com/jboss-fuse/ - any suggestions?) which will do most of

            the above and will be a foundation of:

            - karaf/fabric command

            - Forge addon(?)

             

            Any suggestions?

             

            ---

            regards

            Grzegorz Grzybek

             

            >

            That sounds good. Please post to forge-dev@lists.jboss.org when you want

            help getting this rolling!

             

            >

            On Wed, May 21, 2014 at 9:10 AM, James Strachan <jstracha@redhat.com>

            wrote:

             

            >> Hey

            >>

            >>   The scala code is ported to Java now; why don’t we get the little

            >> ‘project creator’ command in fabric8 working; then when its there, we could

            >> post it to the forge list to see about including/sharing/reusing the same

            >> stuff there too?

            >>

            >>  On 21 May 2014, at 12:33, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

            >>

            >>  Hello - sorry I couldn't start the discussion... But I still remember

            >> that it's quite important

            >>

            >> regards

            >> Grzegorz Grzybek

            >>

            >> I think that sounds like a good idea. If we can consume this as a

            >> library, it would make things very easy to implement. It would also

            >> probably give you guys a migration path so you don't immediately have to

            >> jump to Forge on drop 0.

            >>

            >>  Forge has a number of ways of locating resources, we can come up with a

            >> nice pattern for this

            >>

            >>  Shall we move this discussion to forge-dev@lists.jboss.org or #forge on

            >> irc.freenode.net and get started?

            >>

            >>  ~Lincoln

            >>

            >>

            >> On Thu, May 15, 2014 at 3:13 AM, James Strachan <jstracha@redhat.com>

            >> wrote:

            >>

            >>> Yeah, we might wanna polish the archetype generator code into its own

            >>> jar/bundle thats got minimal dependencies & is easier to use stand alone

            >>> (so it could be more easily consumed from inside Forge).

            >>>

            >>>  For the ‘create project’ command/plugin I figured we’d discover the

            >>> available archetypes on the classpath somehow; in Fuse IDE (the Fuse/Camel

            >>> plugins now in JBDS) we just did a bit of code generation to put the

            >>> archetype jars inside the plugin.  Something a bit more extensible,

            >>> eventually, might be nice for Forge; though for fabric8 just having a

            >>> curated list of archetypes from the fabric8 project itself will be fine for

            >>> us for a while

            >>>

            >>>

            >>>  On 15 May 2014, at 08:03, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

            >>>

            >>>  Hello!

            >>>

            >>> Awesome, thanks Grzegorz!

            >>>

            >>>  BTW a bit of background for you, sorry I should have said - there’s

            >>> been discussions in the past of adding a nice ability to create new

            >>> projects from archetypes nicely into JBoss Forge:

            >>> https://issues.jboss.org/browse/FORGE-273

            >>>

            >>>  http://forge.jboss.org/

            >>>

            >>>  the mvn command line to generate archetypes isn’t awesome and we

            >>> could curate a nice default set with auto-completion of all the known jboss

            >>> archetypes from our projects (and maybe have a nice little way to filter

            >>> them by tag/project name/tech etc) with tab completion etc

            >>>

            >>> Thanks for links - so another item on my TODO list

            >>> I'll think about how to make it easier both for Forge and commands

            >>> inside Fabric8.

            >>>

            >>> regards

            >>> Grzegorz

            >>>

            >>>

            >>>  On 15 May 2014, at 07:55, Grzegorz Grzybek <ggrzybek@redhat.com> wrote:

            >>>

            >>>  Hello!

            >>>

            >>> I successfully ported insight-maven stuff from Scala (it's Maven's

            >>> Aether concept to deal with repositories). But now I'm 30% in

            >>> camel-tooling-util. Scala is not really needed here and I see it has much

            >>> more cons than pros!

            >>> I know that for Scala ninjas this language is the ultimate expression

            >>> tool, but reading it after few years is not such a Zen experience after all.

            >>>

            >>> As someone said - Java8 is the new Java, not Scala. Of course I don't

            >>> want to rewrite all this code into lambda-spaghetti, but good old Java6

            >>> syntax is enough

            >>>

            >>> And after porting camel-tooling-util back to Java, I'll look at

            >>> https://github.com/fabric8io/fabric8/issues/1091 which is about making

            >>> creating projects from archetypes much easier.

            >>>

            >>> regards

            >>> Grzegorz

            >>>

            >>> Cool; wanna CC Grzegorz and myself?; am hoping at some point Grzegorz

            >>> gets the chance to port the existing Archetype creation code from scala to

            >>> java so its a little leaner & meaner and easier to reuse in Forge.

            >>>

            >>>  On 14 May 2014, at 20:31, Lincoln Baxter, III <lincolnbaxter@gmail.com>

            >>> wrote:

            >>>

            >>> Okay cool. We'll continue to go down the archetype route and see if we

            >>> can get that working for you guys. It would help if we had someone on your

            >>> team who could take point on this so we can assist. Is that possible?

            >>>

            >>>

            >>> On Wed, May 14, 2014 at 3:29 PM, James Strachan <jstracha@redhat.com>

            >>> wrote:

            >>>

            >>>>  Ah yeah - just chatted to Dave; this is some gem based stuff for

            >>>> generating projects from templates; which is cool too. We went the maven

            >>>> archetype direction in Fuse IDE (now the Fuse / Camel tooling in JBDS) and

            >>>> now have lots of archetypes (both on upstream projects like camel & cxf and

            >>>> in JBoss Fuse); so I’m personally more keen to support archetypes ASAP; but

            >>>> the more tooling and options the better!

            >>>>

            >>>>  On 14 May 2014, at 17:58, Lincoln Baxter, III <lincolnbaxter@gmail.com>

            >>>> wrote:

            >>>>

            >>>>  https://issues.jboss.org/browse/FORGE-273

            >>>>

            >>>>  Also just got contacted by some people from GSS who are working on

            >>>> fusegen and want to merge that into Forge. Do you know anything about that?

            >>>>

            >>>> Wai Chun Hoi, and Dave Stanley.

            >>>>

            >>>>  ~Lincoln

            >>>>

            >>>>

            >>>> On Wed, Apr 16, 2014 at 11:50 AM, James Strachan <jstracha@redhat.com>

            >>>> wrote:

            >>>>

            >>>>> Sounds cool; am around until about 2-3pm I think so late morning

            >>>>> sounds cool.

            >>>>>

            >>>>>  FWIW we added an archetype generator a while back into eclipse so it

            >>>>> was easy for folks to start projects & we pre-baked all our camel/fuse

            >>>>> archetypes - as using the maven archetype:generate command line is so

            >>>>> utterly awful.

            >>>>>

            >>>>>  Here’s the code to create an archetype from the mvn coordinates of

            >>>>> the archetype distro:

            >>>>>

            >>>>> https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/scala/io/fabric8/camel/tooling/util/ArchetypeHelper.scala#L45

            >>>>>

            >>>>>  e.g. here’s a test case that creates a bunch of archetypes - no

            >>>>> maven is required etc:

            >>>>>

            >>>>> https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/test/scala/io/fabric8/camel/tooling/util/ArchetypeTest.scala#L29

            >>>>>

            >>>>>  I was hoping we could cobble something like this into a standard

            >>>>> command; then have nice tab completion on the list of archetypes we ship by

            >>>>> default in Forge which groks all the jboss / fuse / apache archetypes we

            >>>>> want to prime it with; and make it easy for folks to add/load/configure

            >>>>> others. e.g. JBoss Fuse ships with a bunch of archetypes (but they are not

            >>>>> sync’d to maven central); so it’d be nice if all jboss products that have

            >>>>> archetypes were baked into Forge (e.g. EAP / Fuse / Fuse Service Works /

            >>>>> BRMS etc).

            >>>>>

            >>>>>  Hope that helps - would love to port the code to plain java but I

            >>>>> guess whats another massive jar dependency on spring-library between

            >>>>> friends

            >>>>>

            >>>>>  Anyway - hope to see you around this morning. Go Errai!

            >>>>>

            >>>>>

            >>>>>

            >>>>>  On 16 Apr 2014, at 02:52, Lincoln Baxter, III <

            >>>>> lincolnbaxter@gmail.com> wrote:

            >>>>>

            >>>>> Let's talk about this tomorrow (today.) I'll be over at the conference

            >>>>> in the late morning. And I'll be at the hack-fest.

            >>>>>

            >>>>>  --

            >>>>> Lincoln Baxter, III

            >>>>> http://ocpsoft.org

            >>>>> "Simpler is better."

            >>>>>

            >>>>>

            >>>>>

            >>>>> James

            >>>>> -


            >>>>>  Red Hat

            >>>>>

            >>>>>  Email: jstracha@redhat.com

            >>>>> Web: http://fusesource.com

            >>>>> Twitter: jstrachan, fusenews

            >>>>> Blog: http://macstrac.blogspot.com/

            >>>>>

            >>>>>  Open Source Integration

            >>>>>

            >>>>>

            >>>>

            >>>>

            >>>>  --

            >>>> Lincoln Baxter, III

            >>>> http://ocpsoft.org

            >>>> "Simpler is better."

            >>>>

            >>>>

            >>>>

            >>>> James

            >>>> -


            >>>>  Red Hat

            >>>>

            >>>>  Twitter: @jstrachan

            >>>> Email: jstracha@redhat.com

            >>>> Blog: http://macstrac.blogspot.com/

            >>>>

            >>>> hawtio: http:/ <http://fusesource.com/>/hawt.io/

            >>>> fabric8: http:/ <http://fusesource.com/>/fabric8.io/

            >>>>

            >>>> Open Source Integration

            >>>>

            >>>>

            >>>

            >>>

            >>>  --

            >>> Lincoln Baxter, III

            >>> http://ocpsoft.org

            >>> "Simpler is better."

            >>>

            >>>

            >>>

            >>> James

            >>> -


            >>>  Red Hat

            >>>

            >>>  Twitter: @jstrachan

            >>> Email: jstracha@redhat.com

            >>> Blog: http://macstrac.blogspot.com/

            >>>

            >>> hawtio: http:/ <http://fusesource.com/>/hawt.io/

            >>> fabric8: http:/ <http://fusesource.com/>/fabric8.io/

            >>>

            >>> Open Source Integration

            >>>

            >>>

            >>>

            >>>

            >>> James

            >>> -


            >>>  Red Hat

            >>>

            >>>  Twitter: @jstrachan

            >>> Email: jstracha@redhat.com

            >>> Blog: http://macstrac.blogspot.com/

            >>>

            >>> hawtio: http:/ <http://fusesource.com/>/hawt.io/

            >>> fabric8: http:/ <http://fusesource.com/>/fabric8.io/

            >>>

            >>> Open Source Integration

            >>>

            >>>

            >>>

            >>>

            >>> James

            >>> -


            >>>  Red Hat

            >>>

            >>>  Twitter: @jstrachan

            >>> Email: jstracha@redhat.com

            >>> Blog: http://macstrac.blogspot.com/

            >>>

            >>> hawtio: http:/ <http://fusesource.com/>/hawt.io/

            >>> fabric8: http:/ <http://fusesource.com/>/fabric8.io/

            >>>

            >>> Open Source Integration

            >>>

            >>>

            >>

            >>

            >>  --

            >> Lincoln Baxter, III

            >> http://ocpsoft.org

            >> "Simpler is better."

            >>

            >>

            >>

            >>

            >> James

            >> -


            >>  Red Hat

            >>

            >>  Twitter: @jstrachan

            >> Email: jstracha@redhat.com

            >> Blog: http://macstrac.blogspot.com/

            >>

            >> hawtio: http:/ <http://fusesource.com/>/hawt.io/

            >> fabric8: http:/ <http://fusesource.com/>/fabric8.io/

            >>

            >> Open Source Integration

            >>

            >>

            >

             

            --

            Lincoln Baxter, III

            http://ocpsoft.org

            "Simpler is better."

             

            >

             

             

            --

            Lincoln Baxter, III

            http://ocpsoft.org

            "Simpler is better."

             

            • 3. Re: [forge-dev] Forge and Camel Archetypes
              Grzegorz Grzybek Novice

              Hello Lincoln!

               

              Thanks for the skeleton project! That'll sure help me start moving what

              I've done in Fabric8 into Forge.

              Currently we have 3 commands in Fabric:

                - list available archetypes (only a list included with Fabric8 distro)

                - show details about single archetype

                - generate project from one of the archetypes into specified

              directory. User is asked to specify (or accept default) parameters of

              archetype + of course groupId/artifactId/version/package

               

              Give me a little time to read about developing addons for Forge!

               

              best regards

              Grzegorz Grzybek

               

              Hi Grzegorz,

               

              I'm sorry for dropping the ball on this. For Forge, I've set up a

              repository for you in https://github.com/forge/addon-maven-archetype.

              I've also created an empty Forge command for you to use as a starting point.

               

              Note, the project is split into addon/api/impl/spi/tests. The addon/

              project is classified as a 'forge-addon' JAR. More details on addon

              development can be found here:

              http://forge.jboss.org/document/develop-an-addon and info about the UI

              addon (used to create commands), can be found here:

              http://forge.jboss.org/addon/org.jboss.forge.addon:ui

               

              Please find me on #forge IRC if you get stuck, or reply here!

               

              ~Lincoln

               

              >

              On Thu, Jun 5, 2014 at 10:30 AM, Grzegorz Grzybek <ggrzybek@redhat.com

              <mailto:ggrzybek@redhat.com>> wrote:

               

                  Hello

               

                  Finally I have time to start the discussion about the use of Maven

                  Archetypes in both JBoss Fuse and JBoss Fabric.

               

                  Here are the links to relevant issues:

                    - https://issues.jboss.org/browse/FORGE-273

                    - https://github.com/fabric8io/fabric8/issues/1091

               

                  Currently we have (here:

                  https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/java/io/fabric8/camel/tooling/util/ArchetypeHelper.java)

                  a helper which can unpack maven archetype and correctly replace

                  $ variables in archetype resources.

               

                  Let's first say what we want to achieve. I'd say (please provide

                  comments if I misunderstood something):

                  Basic:

                    - to be able to unpack any Maven Archetype JAR and create working

                  ("mvn clean install"able) project in FileSystem without using

                  Maven archetype-related libraries

                    - to be able to replace variables in archetype resources

                    - to be able to evaluate Velocity expressions (they may be present

                  in the archetypes)

                  Discovery:

                    - to be able to read list of available archetypes

                    - to be able to discover available archetypes and create the above

                  list (explicit distinction to free ourselves from finding the

                  archetypes in M2_REPO each time)

                  Help:

                    - to be able to discover archetype parameters (this is the main

                  goal - to make something more user/tab-completion friendly than "mvn

                  archetype:create" with millions of options)

                    - to provide commands (Karaf/Gogo or JBoss Forge) for project creation

                    - to ask users (GUI? Console? Hawt.io?) for required

                  archetype:create params

               

                  OK. I'd like to start a project (https://github.com/forge/ or

                  https://github.com/fusesource/ or https://github.com/jboss/ or

                  https://github.com/jboss-fuse/ - any suggestions?) which will do

                  most of the above and will be a foundation of:

                    - karaf/fabric command

                    - Forge addon(?)

               

                  Any suggestions?

               

                  ---

                  regards

                  Grzegorz Grzybek

               

              >

              >>     That sounds good. Please post to forge-dev@lists.jboss.org

              >>     <mailto:forge-dev@lists.jboss.org> when you want help getting this

              >>     rolling!

              >>

              >>

              >>     On Wed, May 21, 2014 at 9:10 AM, James Strachan

              >>     <jstracha@redhat.com <mailto:jstracha@redhat.com>> wrote:

              >>

              >>         Hey

              >>

              >>         The scala code is ported to Java now; why don’t we get the

              >>         little ‘project creator’ command in fabric8 working; then when

              >>         its there, we could post it to the forge list to see about

              >>         including/sharing/reusing the same stuff there too?

              >>

              >>         On 21 May 2014, at 12:33, Grzegorz Grzybek

              >>         <ggrzybek@redhat.com <mailto:ggrzybek@redhat.com>> wrote:

              >>>         Hello - sorry I couldn't start the discussion... But I still

              >>>         remember that it's quite important

              >>>

              >>>         regards

              >>>         Grzegorz Grzybek

              >>>>         I think that sounds like a good idea. If we can consume this

              >>>>         as a library, it would make things very easy to implement.

              >>>>         It would also probably give you guys a migration path so you

              >>>>         don't immediately have to jump to Forge on drop 0.

              >>>>

              >>>>         Forge has a number of ways of locating resources, we can

              >>>>         come up with a nice pattern for this

              >>>>

              >>>>         Shall we move this discussion to forge-dev@lists.jboss.org

              >>>>         <mailto:forge-dev@lists.jboss.org> or #forge on

              >>>>         irc.freenode.net <http://irc.freenode.net/> and get started?

              >>>>

              >>>>         ~Lincoln

              >>>>

              >>>>

              >>>>         On Thu, May 15, 2014 at 3:13 AM, James Strachan

              >>>>         <jstracha@redhat.com <mailto:jstracha@redhat.com>> wrote:

              >>>>

              >>>>             Yeah, we might wanna polish the archetype generator code

              >>>>             into its own jar/bundle thats got minimal dependencies &

              >>>>             is easier to use stand alone (so it could be more easily

              >>>>             consumed from inside Forge).

              >>>>

              >>>>             For the ‘create project’ command/plugin I figured we’d

              >>>>             discover the available archetypes on the classpath

              >>>>             somehow; in Fuse IDE (the Fuse/Camel plugins now in

              >>>>             JBDS) we just did a bit of code generation to put the

              >>>>             archetype jars inside the plugin.  Something a bit more

              >>>>             extensible, eventually, might be nice for Forge; though

              >>>>             for fabric8 just having a curated list of archetypes

              >>>>             from the fabric8 project itself will be fine for us for

              >>>>             a while

              >>>>

              >>>>

              >>>>             On 15 May 2014, at 08:03, Grzegorz Grzybek

              >>>>             <ggrzybek@redhat.com <mailto:ggrzybek@redhat.com>> wrote:

              >>>>>             Hello!

              >>>>>>             Awesome, thanks Grzegorz!

              >>>>>>

              >>>>>>             BTW a bit of background for you, sorry I should have

              >>>>>>             said - there’s been discussions in the past of adding

              >>>>>>             a nice ability to create new projects from archetypes

              >>>>>>             nicely into JBoss Forge:

              >>>>>>             https://issues.jboss.org/browse/FORGE-273

              >>>>>>

              >>>>>>             http://forge.jboss.org/

              >>>>>>

              >>>>>>             the mvn command line to generate archetypes isn’t

              >>>>>>             awesome and we could curate a nice default set with

              >>>>>>             auto-completion of all the known jboss archetypes from

              >>>>>>             our projects (and maybe have a nice little way to

              >>>>>>             filter them by tag/project name/tech etc) with tab

              >>>>>>             completion etc

              >>>>>             Thanks for links - so another item on my TODO list

              >>>>>             I'll think about how to make it easier both for Forge

              >>>>>             and commands inside Fabric8.

              >>>>>

              >>>>>             regards

              >>>>>             Grzegorz

              >>>>>>

              >>>>>>             On 15 May 2014, at 07:55, Grzegorz Grzybek

              >>>>>>             <ggrzybek@redhat.com <mailto:ggrzybek@redhat.com>> wrote:

              >>>>>>>             Hello!

              >>>>>>>

              >>>>>>>             I successfully ported insight-maven stuff from Scala

              >>>>>>>             (it's Maven's Aether concept to deal with

              >>>>>>>             repositories). But now I'm 30% in camel-tooling-util.

              >>>>>>>             Scala is not really needed here and I see it has much

              >>>>>>>             more cons than pros!

              >>>>>>>             I know that for Scala ninjas this language is the

              >>>>>>>             ultimate expression tool, but reading it after few

              >>>>>>>             years is not such a Zen experience after all.

              >>>>>>>

              >>>>>>>             As someone said - Java8 is the new Java, not Scala.

              >>>>>>>             Of course I don't want to rewrite all this code into

              >>>>>>>             lambda-spaghetti, but good old Java6 syntax is enough

              >>>>>>>

              >>>>>>>             And after porting camel-tooling-util back to Java,

              >>>>>>>             I'll look at

              >>>>>>>             https://github.com/fabric8io/fabric8/issues/1091

              >>>>>>>             which is about making creating projects from

              >>>>>>>             archetypes much easier.

              >>>>>>>

              >>>>>>>             regards

              >>>>>>>             Grzegorz

              >>>>>>>>             Cool; wanna CC Grzegorz and myself?; am hoping at

              >>>>>>>>             some point Grzegorz gets the chance to port the

              >>>>>>>>             existing Archetype creation code from scala to java

              >>>>>>>>             so its a little leaner & meaner and easier to reuse

              >>>>>>>>             in Forge.

              >>>>>>>>

              >>>>>>>>             On 14 May 2014, at 20:31, Lincoln Baxter, III

              >>>>>>>>             <lincolnbaxter@gmail.com

              >>>>>>>>             <mailto:lincolnbaxter@gmail.com>> wrote:

              >>>>>>>>>             Okay cool. We'll continue to go down the archetype

              >>>>>>>>>             route and see if we can get that working for you

              >>>>>>>>>             guys. It would help if we had someone on your team

              >>>>>>>>>             who could take point on this so we can assist. Is

              >>>>>>>>>             that possible?

              >>>>>>>>>

              >>>>>>>>>

              >>>>>>>>>             On Wed, May 14, 2014 at 3:29 PM, James Strachan

              >>>>>>>>>             <jstracha@redhat.com <mailto:jstracha@redhat.com>>

              >>>>>>>>>             wrote:

              >>>>>>>>>

              >>>>>>>>>                 Ah yeah - just chatted to Dave; this is some

              >>>>>>>>>                 gem based stuff for generating projects from

              >>>>>>>>>                 templates; which is cool too. We went the maven

              >>>>>>>>>                 archetype direction in Fuse IDE (now the Fuse /

              >>>>>>>>>                 Camel tooling in JBDS) and now have lots of

              >>>>>>>>>                 archetypes (both on upstream projects like

              >>>>>>>>>                 camel & cxf and in JBoss Fuse); so I’m

              >>>>>>>>>                 personally more keen to support archetypes

              >>>>>>>>>                 ASAP; but the more tooling and options the

              >>>>>>>>>                 better!

              >>>>>>>>>

              >>>>>>>>>                 On 14 May 2014, at 17:58, Lincoln Baxter, III

              >>>>>>>>>                 <lincolnbaxter@gmail.com

              >>>>>>>>>                 <mailto:lincolnbaxter@gmail.com>> wrote:

              >>>>>>>>>

              >>>>>>>>>>                 https://issues.jboss.org/browse/FORGE-273

              >>>>>>>>>>

              >>>>>>>>>>                 Also just got contacted by some people from

              >>>>>>>>>>                 GSS who are working on fusegen and want to

              >>>>>>>>>>                 merge that into Forge. Do you know anything

              >>>>>>>>>>                 about that?

              >>>>>>>>>>                 Wai Chun Hoi, and Dave Stanley.

              >>>>>>>>>>

              >>>>>>>>>>                 ~Lincoln

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>                 On Wed, Apr 16, 2014 at 11:50 AM, James

              >>>>>>>>>>                 Strachan <jstracha@redhat.com

              >>>>>>>>>>                 <mailto:jstracha@redhat.com>> wrote:

              >>>>>>>>>>

              >>>>>>>>>>                     Sounds cool; am around until about 2-3pm I

              >>>>>>>>>>                     think so late morning sounds cool.

              >>>>>>>>>>

              >>>>>>>>>>                     FWIW we added an archetype generator a

              >>>>>>>>>>                     while back into eclipse so it was easy for

              >>>>>>>>>>                     folks to start projects & we pre-baked all

              >>>>>>>>>>                     our camel/fuse archetypes - as using the

              >>>>>>>>>>                     maven archetype:generate command line is

              >>>>>>>>>>                     so utterly awful.

              >>>>>>>>>>

              >>>>>>>>>>                     Here’s the code to create an archetype

              >>>>>>>>>>                     from the mvn coordinates of the archetype

              >>>>>>>>>>                     distro:

              >>>>>>>>>>                     https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/main/scala/io/fabric8/camel/tooling/util/ArchetypeHelper.scala#L45

              >>>>>>>>>>

              >>>>>>>>>>                     e.g. here’s a test case that creates a

              >>>>>>>>>>                     bunch of archetypes - no maven is required

              >>>>>>>>>>                     etc:

              >>>>>>>>>>                     https://github.com/fabric8io/fabric8/blob/master/tooling/camel-tooling-util/src/test/scala/io/fabric8/camel/tooling/util/ArchetypeTest.scala#L29

              >>>>>>>>>>

              >>>>>>>>>>                     I was hoping we could cobble something

              >>>>>>>>>>                     like this into a standard command; then

              >>>>>>>>>>                     have nice tab completion on the list of

              >>>>>>>>>>                     archetypes we ship by default in Forge

              >>>>>>>>>>                     which groks all the jboss / fuse / apache

              >>>>>>>>>>                     archetypes we want to prime it with; and

              >>>>>>>>>>                     make it easy for folks to

              >>>>>>>>>>                     add/load/configure others. e.g. JBoss Fuse

              >>>>>>>>>>                     ships with a bunch of archetypes (but they

              >>>>>>>>>>                     are not sync’d to maven central); so it’d

              >>>>>>>>>>                     be nice if all jboss products that have

              >>>>>>>>>>                     archetypes were baked into Forge (e.g. EAP

              >>>>>>>>>>                     / Fuse / Fuse Service Works / BRMS etc).

              >>>>>>>>>>

              >>>>>>>>>>                     Hope that helps - would love to port the

              >>>>>>>>>>                     code to plain java but I guess whats

              >>>>>>>>>>                     another massive jar dependency on

              >>>>>>>>>>                     spring-library between friends

              >>>>>>>>>>

              >>>>>>>>>>                     Anyway - hope to see you around this

              >>>>>>>>>>                     morning. Go Errai!

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>                     On 16 Apr 2014, at 02:52, Lincoln Baxter,

              >>>>>>>>>>                     III <lincolnbaxter@gmail.com

              >>>>>>>>>>                     <mailto:lincolnbaxter@gmail.com>> wrote:

              >>>>>>>>>>>                     Let's talk about this tomorrow (today.)

              >>>>>>>>>>>                     I'll be over at the conference in the

              >>>>>>>>>>>                     late morning. And I'll be at the hack-fest.

              >>>>>>>>>>>

              >>>>>>>>>>>                     --

              >>>>>>>>>>>                     Lincoln Baxter, III

              >>>>>>>>>>>                     http://ocpsoft.org <http://ocpsoft.org/>

              >>>>>>>>>>>                     "Simpler is better."

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>                     James

              >>>>>>>>>>                     -


              >>>>>>>>>>                     Red Hat

              >>>>>>>>>>

              >>>>>>>>>>                     Email: jstracha@redhat.com

              >>>>>>>>>>                     <mailto:jstracha@redhat.com>

              >>>>>>>>>>                     Web: http://fusesource.com

              >>>>>>>>>>                     <http://fusesource.com/>

              >>>>>>>>>>                     Twitter: jstrachan, fusenews

              >>>>>>>>>>                     Blog: http://macstrac.blogspot.com/

              >>>>>>>>>>

              >>>>>>>>>>                     Open Source Integration

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>

              >>>>>>>>>>                 --

              >>>>>>>>>>                 Lincoln Baxter, III

              >>>>>>>>>>                 http://ocpsoft.org <http://ocpsoft.org/>

              >>>>>>>>>>                 "Simpler is better."

              >>>>>>>>>

              >>>>>>>>>

              >>>>>>>>>                 James

              >>>>>>>>>                 -


              >>>>>>>>>                 Red Hat

              >>>>>>>>>

              >>>>>>>>>                 Twitter: @jstrachan

              >>>>>>>>>                 Email: jstracha@redhat.com

              >>>>>>>>>                 <mailto:jstracha@redhat.com>

              >>>>>>>>>                 Blog: http://macstrac.blogspot.com/

              >>>>>>>>>

              >>>>>>>>>                 hawtio: http:/

              >>>>>>>>>                 <http://fusesource.com/>/hawt.io/

              >>>>>>>>>                 <http://hawt.io/>

              >>>>>>>>>                 fabric8: http:/

              >>>>>>>>>                 <http://fusesource.com/>/fabric8.io/

              >>>>>>>>>                 <http://fabric8.io/>

              >>>>>>>>>

              >>>>>>>>>                 Open Source Integration

              >>>>>>>>>

              >>>>>>>>>

              >>>>>>>>>

              >>>>>>>>>

              >>>>>>>>>             --

              >>>>>>>>>             Lincoln Baxter, III

              >>>>>>>>>             http://ocpsoft.org <http://ocpsoft.org/>

              >>>>>>>>>             "Simpler is better."

              >>>>>>>>

              >>>>>>>>

              >>>>>>>>             James

              >>>>>>>>             -


              >>>>>>>>             Red Hat

              >>>>>>>>

              >>>>>>>>             Twitter: @jstrachan

              >>>>>>>>             Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

              >>>>>>>>             Blog: http://macstrac.blogspot.com/

              >>>>>>>>

              >>>>>>>>             hawtio: http:/ <http://fusesource.com/>/hawt.io/

              >>>>>>>>             <http://hawt.io/>

              >>>>>>>>             fabric8: http:/ <http://fusesource.com/>/fabric8.io/

              >>>>>>>>             <http://fabric8.io/>

              >>>>>>>>

              >>>>>>>>             Open Source Integration

              >>>>>>>>

              >>>>>>>

              >>>>>>

              >>>>>>

              >>>>>>             James

              >>>>>>             -


              >>>>>>             Red Hat

              >>>>>>

              >>>>>>             Twitter: @jstrachan

              >>>>>>             Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

              >>>>>>             Blog: http://macstrac.blogspot.com/

              >>>>>>

              >>>>>>             hawtio: http:/ <http://fusesource.com/>/hawt.io/

              >>>>>>             <http://hawt.io/>

              >>>>>>             fabric8: http:/ <http://fusesource.com/>/fabric8.io/

              >>>>>>             <http://fabric8.io/>

              >>>>>>

              >>>>>>             Open Source Integration

              >>>>>>

              >>>>>

              >>>>

              >>>>

              >>>>             James

              >>>>             -


              >>>>             Red Hat

              >>>>

              >>>>             Twitter: @jstrachan

              >>>>             Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

              >>>>             Blog: http://macstrac.blogspot.com/

              >>>>

              >>>>             hawtio: http:/ <http://fusesource.com/>/hawt.io/

              >>>>             <http://hawt.io/>

              >>>>             fabric8: http:/ <http://fusesource.com/>/fabric8.io/

              >>>>             <http://fabric8.io/>

              >>>>

              >>>>             Open Source Integration

              >>>>

              >>>>

              >>>>

              >>>>

              >>>>         --

              >>>>         Lincoln Baxter, III

              >>>>         http://ocpsoft.org <http://ocpsoft.org/>

              >>>>         "Simpler is better."

              >>>

              >>

              >>

              >>         James

              >>         -


              >>         Red Hat

              >>

              >>         Twitter: @jstrachan

              >>         Email: jstracha@redhat.com <mailto:jstracha@redhat.com>

              >>         Blog: http://macstrac.blogspot.com/

              >>

              >>         hawtio: http:/ <http://fusesource.com/>/hawt.io/

              >>         <http://hawt.io/>

              >>         fabric8: http:/ <http://fusesource.com/>/fabric8.io/

              >>         <http://fabric8.io/>

              >>

              >>         Open Source Integration

              >>

              >>

              >>

              >>

              >>     --

              >>     Lincoln Baxter, III

              >>     http://ocpsoft.org

              >>     "Simpler is better."

              >

              >

              --

              Lincoln Baxter, III

              http://ocpsoft.org

              "Simpler is better."

               

              _______________________________________________

              forge-dev mailing list

              forge-dev@lists.jboss.org

              https://lists.jboss.org/mailman/listinfo/forge-dev