[forge-dev] Forge and Camel Archetypes
Grzegorz Grzybek
ggrzybek at redhat.com
Tue Jul 8 02:29:16 EDT 2014
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 at redhat.com
> <mailto: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
>> <mailto: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 <mailto: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 <mailto: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
>>>> <mailto:forge-dev at 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 at redhat.com <mailto: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 <mailto: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 <mailto: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
>>>>>>>> <mailto: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 <mailto: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
>>>>>>>>> <mailto: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
>>>>>>>>>> <mailto: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
>>>>>>>>>> <mailto: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 <http://ocpsoft.org/>
>>>>>>>>>>> "Simpler is better."
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> James
>>>>>>>>>> -------
>>>>>>>>>> Red Hat
>>>>>>>>>>
>>>>>>>>>> Email: jstracha at redhat.com
>>>>>>>>>> <mailto:jstracha at 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 at redhat.com
>>>>>>>>> <mailto:jstracha at 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 at redhat.com <mailto:jstracha at 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 at redhat.com <mailto:jstracha at 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 at redhat.com <mailto:jstracha at 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 at redhat.com <mailto:jstracha at 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."
More information about the forge-dev
mailing list