You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Ralph Goers <Ra...@dslextreme.com> on 2005/08/21 09:14:23 UTC

marmalade

I don't mean to offend anyone, but I'm trying to figure out why maven 
2.0 will be supporting marmalade.  I have need for a tool like marmalade 
but after seeing that
   1. It seems to only have a single developer
   2. It has a total of 3 posts in the mailing lists
   3. It has absolutely zero doc
   4. It won't build with maven 1 (I assume it needs maven 2? There is 
no readme or anything to tell you how to build it).
I am left feeling a little uncomfortable.  So I decided to see what made 
the Maven team comfortable. I searched the mail archives for both the 
users list and the dev list and I cannot find anything remotely 
connected with the decision to support this.

Can someone clue me in?

Ralph

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Steve Loughran <st...@apache.org>.
Ralph Goers wrote:
> I thought I read a post that went something like "not with a 10 foot 
> pole" with respect to Groovy :-)
> 
> 
> Thomas Van de Velde wrote:
> 
>> I believe M2 has Groovy integration on its TODO list. Groovy, which is 
>> well documented, is gaining a lot of momentum and integrates with Ant. 
>> http://groovy.codehaus.org/
>> Cheers,
>> Thomas
>>

Ant doesnt really integrate w/ groovy. There is one line that adds 
groovy to the list of BSF-scripting languages you can ask for. BSH is a 
more likely language for scripting in ant, though jruby, jython, netRexx 
and others are all peer languages.

now, groovy may be able to call ant, but so can anything that invokes 
java objects. Nothing special there either.

Ant1.7 will have plenty more extension points for scripting, including 
conditions, selectors and filters.

-steve

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by John Casey <jd...@commonjava.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I think the idea has definitely been one of "wait till it settles down a
bit." :)

Ralph Goers wrote:
| I thought I read a post that went something like "not with a 10 foot
| pole" with respect to Groovy :-)
|
|
| Thomas Van de Velde wrote:
|
|> I believe M2 has Groovy integration on its TODO list. Groovy, which is
|> well documented, is gaining a lot of momentum and integrates with Ant.
|> http://groovy.codehaus.org/
|> Cheers,
|> Thomas
|>
|>
|>
|>
|
| ---------------------------------------------------------------------
| To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
| For additional commands, e-mail: dev-help@maven.apache.org
|
|
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFDCdelK3h2CZwO/4URAklzAJ96V5CHNvAOUlEL124wv/qCiapDMwCgibZy
tgu5Artqx2Ufn1RviWb5iuM=
=gH+B
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Ralph Goers <Ra...@dslextreme.com>.
I thought I read a post that went something like "not with a 10 foot 
pole" with respect to Groovy :-)


Thomas Van de Velde wrote:

>I believe M2 has Groovy integration on its TODO list. Groovy, which is well 
>documented, is gaining a lot of momentum and integrates with Ant. 
>http://groovy.codehaus.org/ 
>
>Cheers,
>Thomas
>
>
>  
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Thomas Van de Velde <th...@gmail.com>.
I believe M2 has Groovy integration on its TODO list. Groovy, which is well 
documented, is gaining a lot of momentum and integrates with Ant. 
http://groovy.codehaus.org/ 

Cheers,
Thomas

On 8/21/05, John Casey <jd...@commonjava.org> wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Ralph,
> 
> I'm sorry I haven't responded to this thread earlier, but I'm the guy to
> talk to wrt marmalade.
> 
> Unfortunately, since we've been trying like hell to get maven 2.0 out
> the door for the last several months, I have let marmalade slip a bit.
> However, I should mention that despite it's lack of documentation, this
> is a stable and (I believe) completely usable set of libraries. I'm not
> likely to have time to document the project for awhile to come (since
> I'm sure you've noticed, maven 2.0 isn't out yet...and that's my first
> priority), but if you have specific questions I'd be happy to answer them.
> 
> I'll start by replying inline to your comments below:
> 
> Ralph Goers wrote:
> <snip/>
> 
> |
> | As for Marmalade, I am looking for an XML tag framework that I can limit
> | to either a fixed set of tags that I implement, or an XML language that
> | is easy to understand and can only perform operations on the objects it
> | is provided with.
> 
> As far as limiting the taglibs that are available, Marmalade uses a
> stacked resolution strategy to discover tag libraries. This means it's
> pretty simple to add your own strategy class as either the first-line
> strategy, or as the only one...your strategy class might only allow
> taglibs on an approved list to be discovered, and throw an exception
> otherwise...
> 
> As for only working with the objects it's given, Marmalade operates on a
> Context which is essentially a scope-enabled hierarchy of maps, meaning
> that the entire context is visible from any one point, but child
> contexts can be added or removed to add/remove the variables associated
> with those lower scopes. Anything in this context is available for
> reading or manipulation, using a variety of expression languages (or
> direct access from the tag implementation itself).
> 
> Also, I noticed that you previously mentioned running Marmalade from the
> command-line(?) or at least executing it outside of maven. I've created
> the MarmaladeLauncher class to aid in this task, although I haven't had
> time to write a CLI wrapper library for direct execution from the
> command-line. Such a CLI would have to have a pretty sophisticated
> parser IMO, in order to support stacking of discovery strategies, etc.
> However, for specialized - and somewhat limited - purposes, writing a
> simple Main class to launch marmalade by wrapping the MarmaladeLauncher
> should be pretty trivial. The only real hurdle is understanding the
> concepts of Marmalade, which I'll admit are poorly articulated the what
> passes for current documentation. I'd suggest that you look at the
> plexus-marmalade-factory or the MarmaladeLauncher unit tests for a crash
> course in how that works.
> 
> I have a couple of uses for these:
> | 1. I'd like to use it to create symantic modules in drools
> 
> For this, you'd just need something that would initialize the marmalade
> context and launch the script...right? Sounds pretty simple.
> 
> | 2. I'd like to create an event based flow controller for Cocoon
> | (something like a more limited version of Javaflow - if that means
> | anything to you).
> 
> I'm not familiar with Javaflow, and this topic is a bit outside my
> day-to-day wanderings. However, it seems to me that the event framework
> is bound to be outside of Marmalade proper, with event actions being
> Marmalade scripts or scriptlets...right? Again, it's just a matter of
> initializing the context and launching the script via
> MarmaladeLauncher...shouldn't be too difficult.
> 
> Again, I want to reiterate that I'm available for specific questions.
> That's the best I can offer until I have time to write up more doco on
> Marmalade concepts and usage.
> 
> Good luck!
> 
> - -john
> 
> 
> |
> | BTW - I'm very familiar with the memory leak in jelly. I had to pretty
> | much gut the multiproject plugin so it could build our website. It would
> | die before it got half way through.
> |
> | And thanks for your time and the help.
> |
> | Ralph
> |
> <snip/>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.6 (GNU/Linux)
> 
> iD8DBQFDCKBvK3h2CZwO/4URAlRjAJ9TgWQIqapToWwiZg6TlOqOOM21LACfSoOl
> u6VfTwsXEWeTdZo7l8LZRRQ=
> =4YSF
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 
>

Re: marmalade

Posted by John Casey <jd...@commonjava.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ralph,

I'm sorry I haven't responded to this thread earlier, but I'm the guy to
talk to wrt marmalade.

Unfortunately, since we've been trying like hell to get maven 2.0 out
the door for the last several months, I have let marmalade slip a bit.
However, I should mention that despite it's lack of documentation, this
is a stable and (I believe) completely usable set of libraries. I'm not
likely to have time to document the project for awhile to come (since
I'm sure you've noticed, maven 2.0 isn't out yet...and that's my first
priority), but if you have specific questions I'd be happy to answer them.

I'll start by replying inline to your comments below:

Ralph Goers wrote:
<snip/>

|
| As for Marmalade, I am looking for an XML tag framework that I can limit
| to either a fixed set of tags that I implement, or an XML language that
| is easy to understand and can only perform operations on the objects it
| is provided with.

As far as limiting the taglibs that are available, Marmalade uses a
stacked resolution strategy to discover tag libraries. This means it's
pretty simple to add your own strategy class as either the first-line
strategy, or as the only one...your strategy class might only allow
taglibs on an approved list to be discovered, and throw an exception
otherwise...

As for only working with the objects it's given, Marmalade operates on a
Context which is essentially a scope-enabled hierarchy of maps, meaning
that the entire context is visible from any one point, but child
contexts can be added or removed to add/remove the variables associated
with those lower scopes. Anything in this context is available for
reading or manipulation, using a variety of expression languages (or
direct access from the tag implementation itself).

Also, I noticed that you previously mentioned running Marmalade from the
command-line(?) or at least executing it outside of maven. I've created
the MarmaladeLauncher class to aid in this task, although I haven't had
time to write a CLI wrapper library for direct execution from the
command-line. Such a CLI would have to have a pretty sophisticated
parser IMO, in order to support stacking of discovery strategies, etc.
However, for specialized - and somewhat limited - purposes, writing a
simple Main class to launch marmalade by wrapping the MarmaladeLauncher
should be pretty trivial. The only real hurdle is understanding the
concepts of Marmalade, which I'll admit are poorly articulated the what
passes for current documentation. I'd suggest that you look at the
plexus-marmalade-factory or the MarmaladeLauncher unit tests for a crash
course in how that works.

I have a couple of uses for these:
| 1. I'd like to use it to create symantic modules in drools

For this, you'd just need something that would initialize the marmalade
context and launch the script...right? Sounds pretty simple.

| 2. I'd like to create an event based flow controller for Cocoon
| (something like a more limited version of Javaflow - if that means
| anything to you).

I'm not familiar with Javaflow, and this topic is a bit outside my
day-to-day wanderings. However, it seems to me that the event framework
is bound to be outside of Marmalade proper, with event actions being
Marmalade scripts or scriptlets...right? Again, it's just a matter of
initializing the context and launching the script via
MarmaladeLauncher...shouldn't be too difficult.

Again, I want to reiterate that I'm available for specific questions.
That's the best I can offer until I have time to write up more doco on
Marmalade concepts and usage.

Good luck!

- -john


|
| BTW - I'm very familiar with the memory leak in jelly. I had to pretty
| much gut the multiproject plugin so it could build our website. It would
| die before it got half way through.
|
| And thanks for your time and the help.
|
| Ralph
|
<snip/>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFDCKBvK3h2CZwO/4URAlRjAJ9TgWQIqapToWwiZg6TlOqOOM21LACfSoOl
u6VfTwsXEWeTdZo7l8LZRRQ=
=4YSF
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Ralph Goers <Ra...@dslextreme.com>.
I believe RT is short for running topic (or rambling topic - they often 
seem to go on a while!).  We have these to discuss new design decisions, 
such as incorporating OSGi into Cocoon. As you said, these don't always 
require a vote but they give folks a chance to voice an opinion before 
making that kind of commitment.

As for Marmalade, I am looking for an XML tag framework that I can limit 
to either a fixed set of tags that I implement, or an XML language that 
is easy to understand and can only perform operations on the objects it 
is provided with.  I have a couple of uses for these:
1. I'd like to use it to create symantic modules in drools
2. I'd like to create an event based flow controller for Cocoon 
(something like a more limited version of Javaflow - if that means 
anything to you).

BTW - I'm very familiar with the memory leak in jelly. I had to pretty 
much gut the multiproject plugin so it could build our website. It would 
die before it got half way through.

And thanks for your time and the help.

Ralph

Brett Porter wrote

>I don't even know what [RT] stands for, but I see people involved with
>cocoon use it all the time in various lists. Maybe you can enlighten me.
>
>I assume you are looking for further justifications for introducing
>marmalade. The answer really is that my previous mail covered it. Maybe
>John will have something to add.
>
>- Brett
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>For additional commands, e-mail: dev-help@maven.apache.org
>
>  
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Brett Porter <br...@apache.org>.
Ralph Goers wrote:

> Thanks. It does and it doesn't answer the question. I still don't have
> a clue what tags I would code to write a marmalade plugin for maven,
> let alone how to use it outside of maven. The plugin page lists a
> sample script but doesn't really describe anything. For example,
> http://maven.apache.org/maven2/developers/developing-plugins-with-marmalade.html
> shows an example with an execute tag with c:out as its child element.
> I presume that writes to the console, but I have no idea what other
> such tags are defined.

Documentation definitely needs some work, but its not the only thing.
Beanshell support is also not well documented at this point. It is one
of our areas of focus for September as we ramp up to a final release.

>
> I was hoping you could point me to the [VOTE] or [RT] thread where
> marmalade was discussed.
>
As far as the Maven community works (at least as I understand it), is
that we don't vote on every new feature. We work through issues in JIRA
and people have ample opportunity to speak up about it in advance. Major
changes to existing code would be discussed first on the list, of
course. If it is particular hairy we might discuss it in real time on
IRC and publish the logs as we did for some earlier design sessions.
Developers follow what is happening across JIRA, CVS and the lists and
have the opportunity to veto developments.

In this particular case, it was very early in the development of m2
which itself was part of a revolutionary effort rather than being on the
Maven mainline, so there was not a need for a great deal of discussion
as everything was experimental.

I don't even know what [RT] stands for, but I see people involved with
cocoon use it all the time in various lists. Maybe you can enlighten me.

I assume you are looking for further justifications for introducing
marmalade. The answer really is that my previous mail covered it. Maybe
John will have something to add.

- Brett


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Ralph Goers <Ra...@dslextreme.com>.
Thanks. It does and it doesn't answer the question. I still don't have a 
clue what tags I would code to write a marmalade plugin for maven, let 
alone how to use it outside of maven. The plugin page lists a sample 
script but doesn't really describe anything. For example, 
http://maven.apache.org/maven2/developers/developing-plugins-with-marmalade.html 
shows an example with an execute tag with c:out as its child element. I 
presume that writes to the console, but I have no idea what other such 
tags are defined.

I was hoping you could point me to the [VOTE] or [RT] thread where 
marmalade was discussed.

Ralph

Brett Porter wrote:

>
>Hope that answers your question - but the key thing is that it is
>optional, just like beanshell.
>
>- Brett
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: marmalade

Posted by Brett Porter <br...@apache.org>.
Maven can support any number of scripting languages, of which marmalade
is just one. It's completely optional. The developer is John, who is one
of the Maven core developers.

We decided to include it to make it easier to access Ant scripts in an
XML way (though you can just use Ant itself via the antrun plugin now),
and as a way to migrate Jelly scripts from M1 (though often this won't
be that helpful in that regard because it doesn't emulate the Maven1
goal semantics).

We originally envisaged that it would allow us to run Maven1 plugins out
of the box, but Maven2 has come a long way from that, and with a
different goal architecture, this is no longer possible. That said,
there was no reason to remove the Marmalade support after that as it can
be used to write plugins, just like beanshell and java can.

The obvious question is why we didn't use Jelly itself. That's also
entirely possible, though the experience of M1 has left a bit of a bad
taste in our mouths :) On a technical level, at the point where
Marmalade was included Jelly still had a massive memory leak, and has a
lot more dependencies than Marmalade does.

Hope that answers your question - but the key thing is that it is
optional, just like beanshell.

- Brett

Ralph Goers wrote:

> I don't mean to offend anyone, but I'm trying to figure out why maven
> 2.0 will be supporting marmalade.  I have need for a tool like
> marmalade but after seeing that
>   1. It seems to only have a single developer
>   2. It has a total of 3 posts in the mailing lists
>   3. It has absolutely zero doc
>   4. It won't build with maven 1 (I assume it needs maven 2? There is
> no readme or anything to tell you how to build it).
> I am left feeling a little uncomfortable.  So I decided to see what
> made the Maven team comfortable. I searched the mail archives for both
> the users list and the dev list and I cannot find anything remotely
> connected with the decision to support this.
>
> Can someone clue me in?
>
> Ralph
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org