More on this soon, but is it worth thinking about Moving the Caraf CLI to
integrate (or be replaced directly by) Forge CLI? I know that's a wild idea
;)
On Thu, Jun 5, 2014 at 11:02 AM, James Strachan <jstracha(a)redhat.com> wrote:
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:
[1] camel-cdi
[2] 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(a)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 when you want
help getting this rolling!
On Wed, May 21, 2014 at 9:10 AM, James Strachan <jstracha(a)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> 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 or #forge on
>
irc.freenode.net and get started?
>
> ~Lincoln
>
>
> On Thu, May 15, 2014 at 3:13 AM, James Strachan <jstracha(a)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> 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> 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>
>> 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>
>> 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>
>>> 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>
>>> 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> 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(a)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(a)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(a)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(a)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(a)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(a)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(a)redhat.com
Blog:
http://macstrac.blogspot.com/
hawtio: http:/ <
http://fusesource.com/>/hawt.io/
fabric8: http:/ <
http://fusesource.com/>/fabric8.io/
Open Source Integration