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:
-
)
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 (
- 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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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-ut...
>>>>>>>>
>>>>>>>> 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-ut...
>>>>>>>>
>>>>>>>> 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(a)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(a)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(a)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(a)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(a)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(a)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(a)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."