[forge-dev] Forge and Camel Archetypes

Lincoln Baxter, III lincolnbaxter at gmail.com
Mon Jul 7 11:42:04 EDT 2014


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 at 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 ${VAR}
> 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 at lists.jboss.org when you want
> help getting this rolling!
>
>
>  On Wed, May 21, 2014 at 9:10 AM, James Strachan <jstracha at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140707/75f60997/attachment-0001.html 


More information about the forge-dev mailing list