Return-Path: Delivered-To: apmail-commons-user-archive@www.apache.org Received: (qmail 89474 invoked from network); 12 Dec 2007 10:45:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Dec 2007 10:45:23 -0000 Received: (qmail 20200 invoked by uid 500); 12 Dec 2007 10:45:07 -0000 Delivered-To: apmail-commons-user-archive@commons.apache.org Received: (qmail 20137 invoked by uid 500); 12 Dec 2007 10:45:06 -0000 Mailing-List: contact user-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Jakarta Commons Users List" Delivered-To: mailing list user@commons.apache.org Received: (qmail 20128 invoked by uid 99); 12 Dec 2007 10:45:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2007 02:45:06 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [192.134.164.104] (HELO mail3-relais-sop.national.inria.fr) (192.134.164.104) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2007 10:45:04 +0000 X-IronPort-AV: E=Sophos;i="4.24,156,1196636400"; d="scan'208";a="6727935" Received: from dahu2.inria.fr (HELO [138.96.213.1]) ([138.96.213.1]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 12 Dec 2007 11:44:45 +0100 Message-ID: <475FBB9C.3010903@sophia.inria.fr> Date: Wed, 12 Dec 2007 11:44:44 +0100 From: Philippe Poulard User-Agent: Thunderbird 1.5.0.13 (X11/20070824) MIME-Version: 1.0 To: Jakarta Commons Users List , etaroza@optaros.com Subject: Re: [jelly] certain way to evaluate a document (usecase) References: <770502D3-32D3-4995-897D-8DE83EAAEC43@activemath.org> <87CA8703-1E50-4AAF-82B4-986B71A71AAD@activemath.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org Hi, Here is an alternate tool that can work in the way you want without hacking the engine : http://reflex.gforge.inria.fr/ it looks like Jelly in some points (it can run XML scripts in the order of the tags), but it has also many differences : -it doesn't rely on the UEL for referring variable but rather on XPath, which allows you to cross XML documents and use XPath functions ; XPath is also used for accessing some other non-XML objects such as a file system : thus, if you use "//*" on a directory, you'll get the files within the subtree -it can be used for implementing declarative XML languages, that won't be necessarily run in order, and additionally (if you are smart enough), you can mix your declarative language with imperative constructs ; there is an example of that concept in a schema language named ASL (the Active Schema Language) ; it was presented at extreme markup language last summer, and you might get the picture by browsing the slides and reading the paper : http://reflex.gforge.inria.fr/eml2007.html -it embeds lots of XML tools, such as SAX and DOM parsers (that you can use transparently), an XPath-based filter that you can run on extra-large XML inputs ; you can also use it to query various datasources with SQL, XQuery, LDAP and map raw text to XML -if your project deals with XML datas, there is a tool called XUnit that works like JUnit that allows you to write and run test suites etc, etc, etc If you are interested, perhaps you could tell me more about your project, then I could give you some tips for exposing your java classes inside the XML tags of your declarative language with RefleX Evaldas Taroza a �crit : > Hi, > Actually I already have a solution that works (i.e. I have some sort of > executable XML which has the needed logic), however, for me it is very > important to answer the question, would it be better to refactor that > solution in the way that it would use Jelly. > > What I have is an engine (coincides with the Jelly script engine) that > is able to evaluate the XML documents with embedded executable parts. > These parts are simply XML tags in a special namespace. So for me it > looks completely like Jelly. The thing is that my engine is: > 1. can only understand my tags in my namespace > 2. can execute those tags in the order that I predefine (possibly inside > the tags) > 3. during the execution of tags some new data can appear next to those > tags as a result of execution > > Now the question: in order to transition to Jelly will I need to develop > taglibs only, or I will end up extending and modifying the jelly script > engine? I would really like it to be the former case:) do you think it > is reasonable? > > Evaldas > > Paul Libbrecht wrote: >> Evaldas, >> >> the jelly script is loaded in memory then the doTag methods are called. >> So, of course, it could not scale to kilometers of source, but, >> indeed, then a fancy branching logic of doTag is doable. >> >> hope it helps. >> >> paul >> >> >> Le 10 d�c. 07 � 09:42, Evaldas Taroza a �crit : >> >>> Hi, >>> Yes, I think I would need to implement something similar to the >>> thread taglib. Because I will need something like: >>> 1. There is a dedicated thread for every tag >>> 2. Some threads are blocked by other threads (waiting to end) >>> 3. Unblocked threads can run >>> >>> I haven't looked deep into Jelly yet, nor available taglibs, but what >>> worries me is that the script engine is like SAX, so will I be able >>> to construct a difficult "execution plan" with only one-pass parsing? >>> >>> Evaldas >>> >>> Paul Libbrecht wrote: >>>> Evaldas, >>>> I believe that the answer to your question is that it is flexible. >>>> Jelly's default follows Ant and SAX: most tag's doTag call >>>> invokeBody which produces a depth-first execution. The thread taglib >>>> does it differently though. >>>> You might be well served with Jelly although it still has some rough >>>> edges. >>>> paul >>>> Le 9 d�c. 07 � 17:16, Evaldas Taroza a �crit : >>>>> Hi, >>>>> I have a very specific usecase to program. Specifically, I need to >>>>> be able to execute the tags in a certain order. For instance, I >>>>> should be able to say that this tag is executing after another, >>>>> others can execute in parallel etc. >>>>> >>>>> So I am considering Jelly as already implementing the execution of >>>>> the tags but what about the ordering? In what order are the tags >>>>> executed now? Is it at all feasible to use Jelly for such a usecase >>>>> or I will end up implementing a completely new Jelly script >>>>> evaluation engine? >>>>> >>>>> Evaldas >>>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org >>> For additional commands, e-mail: user-help@commons.apache.org >>> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org > For additional commands, e-mail: user-help@commons.apache.org -- Cordialement, /// (. .) --------ooO--(_)--Ooo-------- | Philippe Poulard | ----------------------------- http://reflex.gforge.inria.fr/ Have the RefleX ! --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@commons.apache.org For additional commands, e-mail: user-help@commons.apache.org