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(a)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-ut...)
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(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."
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."