Email generator (cont')

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Email generator (cont')

Eric van der Vlist
Hi,

After my first mail on this subject, I've been exchanging some private
emails with Damon Rand and I'd like to share the result of our
discussion since it might be of general interest to this list.

The idea is to write an OPS generator to expose emails (taken from mails
servers or mail folders) as XML.

I'd like to serialize lists of mails as RSS so that they can easily be
read in RSS readers and also because since late 2000 my websites tend to
use RSS 1.0 as their preferred format for listing resources.

I'd also like to expose the content of the mails in a format that plays
well with the existing email processor
(http://www.orbeon.com/ops/doc/processors-messaging-email).

We've decided to develop something along these lines that'll be
available under an open source licence.

I have started to work on these processors (I have now two simple Java
classes that produce SAX events for lists of messages and messages but a
lot of their parameters are still fixed and they are not yet integrated
into the OPS architecture).

At that point, I can share some of the angle brackets (taken from non
confidential mails from my Sent box) that I have produced and the issues
I have seen in the XML format used by the email processor.

1) Example of a RSS document describing a list of messages:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns="http://purl.org/rss/1.0/" xmlns:m="http://ns.xmlfr.org/emails/">
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125782091.10176.8.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125782091.10176.8.camel%40localhost.localdomain%3E</link>
        <title>Re: [ops-users] Feature suggestion: (optional) config for</title>
        <dc:date>2005-09-03T23:14:52+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125782304.10176.14.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125782304.10176.14.camel%40localhost.localdomain%3E</link>
        <title>Re: [ops-users] Weird HTTP header issue with</title>
        <dc:date>2005-09-03T23:18:25+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125782308.10176.16.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125782308.10176.16.camel%40localhost.localdomain%3E</link>
        <title>Re: [ops-users] Weird HTTP header issue with</title>
        <dc:date>2005-09-03T23:18:28+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125781919.10176.4.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125781919.10176.4.camel%40localhost.localdomain%3E</link>
        <title>Re: [ops-users] Feature suggestion: (optional) config for</title>
        <dc:date>2005-09-03T23:12:01+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125674318.13542.252.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125674318.13542.252.camel%40localhost.localdomain%3E</link>
        <title>Re: [rng-users] Attribute value co-constraints</title>
        <dc:date>2005-09-02T17:18:38+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125660799.13542.229.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125660799.13542.229.camel%40localhost.localdomain%3E</link>
        <title>Email generator anyone?</title>
        <dc:date>2005-09-02T13:33:19+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125608370.13542.189.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125608370.13542.189.camel%40localhost.localdomain%3E</link>
        <title>Re: [ops-users] Weird HTTP header issue with PresentationServer  3.0 beta 2</title>
        <dc:date>2005-09-01T22:59:30+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125606817.13542.179.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125606817.13542.179.camel%40localhost.localdomain%3E</link>
        <title>Re: [ops-users] Weird HTTP header issue with PresentationServer  3.0 beta 2</title>
        <dc:date>2005-09-01T22:33:38+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125580968.13542.145.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125580968.13542.145.camel%40localhost.localdomain%3E</link>
        <title>Feature suggestion: (optional) config for oxf:xhtml-rewrite and  oxf:html-rewrite</title>
        <dc:date>2005-09-01T15:22:48+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125574700.13542.126.camel%40localhost.localdomain%3E">
        <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125574700.13542.126.camel%40localhost.localdomain%3E</link>
        <title>Weird HTTP header issue with PresentationServer 3.0 beta 2</title>
        <dc:date>2005-09-01T13:38:20+0200</dc:date>
        <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
        <m:to>[hidden email]</m:to>
    </item>
    <channel rdf:about="tbd">
        <link>tbd</link>
        <title>Mails...</title>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125782091.10176.8.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125782304.10176.14.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125782308.10176.16.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125781919.10176.4.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125674318.13542.252.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125660799.13542.229.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125608370.13542.189.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125606817.13542.179.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125580968.13542.145.camel%40localhost.localdomain%3E"/>
                <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125574700.13542.126.camel%40localhost.localdomain%3E"/>
            </rdf:Seq>
        </items>
    </channel>
</rdf:RDF>

Note that I have coded the name of the mail folder (INBOX.Sent) and the
message ID (for instance %3C1125782091.10176.8.camel%
40localhost.localdomain%3E) into the URLS that identify each message.

This is because I'd like to be able to fetch the representation of each
message using a URL in a way that should be as RESTfull as possible.

There is a possible issue there...

2) Example of a simple plain text document:

<?xml version="1.0" encoding="utf-8"?>
<message>
    <from>
        <email>[hidden email]</email>
        <name>Eric van der Vlist</name>
    </from>
    <to>
        <email>[hidden email]</email>
    </to>
    <subject>Re: [ops-users] OPS 3.0 BETA Released</subject>
    <body content-type="TEXT/PLAIN">On jeu, 2005-07-28 at 14:00 -0700, Erik Bruchez wrote:&#xd;
&gt; Eric van der Vlist wrote:&#xd;
&gt; &#xd;
&gt; &gt;&gt;It's a beta, but we encourage everybody to play with it and report &#xd;
&gt; &gt;&gt;issues, so we can have a rock-solid 3.0 final!&#xd;
&gt; &gt; &#xd;
&gt; &gt; &#xd;
&gt; &gt; Great!&#xd;
&gt; &gt; &#xd;
&gt; &gt; I have just downloaded and installed it to play with the new goodies!&#xd;
&gt; &gt; &#xd;
&gt; &gt; I have noticed that in the  OPS BizDoc NG demo, the help message for the&#xd;
&gt; &gt; first field seems to be displayed for all the fields (the version that&#xd;
&gt; &gt; is online on your web site displays the same behavior).&#xd;
&gt; &#xd;
&gt; Good catch! Will fix this for the final:&#xd;
&gt; &#xd;
&gt; http://forge.objectweb.org/tracker/index.php?func=detail&aid=303827&group_id=168&atid=350207;
&#xd;
Thanks!&#xd;
&#xd;
In the documentation, you are listing the following restrictions for 3.0&#xd;
beta :&#xd;
&#xd;
      * Initial generation of an XForms page may have poor performance. &#xd;
        &#xd;
      * xforms:upload is not yet implemented in the OPS 3.0 XForms&#xd;
        engine. xforms:upload remains implemented when the legacy OPS&#xd;
        2.8 compatibility mode is enabled. &#xd;
        &#xd;
      * Image and link appearances are not supported for the&#xd;
        xforms:submit and xforms:trigger controls. &#xd;
        &#xd;
      * The xforms:message action is not implemented. &#xd;
        &#xd;
      * Not all the OPS examples have been updated to reflect the new&#xd;
        XForms engine capabilities. &#xd;
        &#xd;
      * The OPS reference XForms documentation has not yet been updated&#xd;
        to reflect all the changes in OPS 3.0. Please refer to the&#xd;
        "XForms NG" examples for details. &#xd;
        &#xd;
      * The OPS reference XForms compliance matrix has not yet been&#xd;
        updated to reflect all the changes in OPS 3.0. &#xd;
        &#xd;
      * Migration documentation from 2.8 to 3.0 is not complete yet. &#xd;
        &#xd;
      * The OPS Tutorial has not been updated for 3.0. &#xd;
        &#xd;
      * The OPS Blog example is not complete. &#xd;
        &#xd;
      * The Ajax-based XForms engine currently works with Mozilla&#xd;
        Firefox and Microsoft Internet Explorer 6. Support for Opera and&#xd;
        Safari is planned. &#xd;
        &#xd;
      * This release has only been tested with Tomcat. &#xd;
        &#xd;
      * The PDF version of the User Guide does not have page numbers. &#xd;
        &#xd;
Do you intend to fix all of them for the production release? (or, if&#xd;
not, which ones do you plan to keep?)&#xd;
&#xd;
&gt; &gt; PS : I am using Epiphany 1.6.1 on Ubuntu Hoary to browse these&#xd;
&gt; &gt; examples.&#xd;
&gt; &#xd;
&gt; Good to know that it works! &#xd;
&#xd;
Epiphany is based on Mozilla, so I would have been surprised if it&#xd;
hadn't been working!&#xd;
&#xd;
&gt; We'll have to work on Opera and Safari support at some point too.&#xd;
&#xd;
Yes.&#xd;
&#xd;
Eric&#xd;
&#xd;
-- &#xd;
Le premier annuaire des apiculteurs 100% XML!&#xd;
                                                http://apiculteurs.info/;
------------------------------------------------------------------------&#xd;
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com&#xd;
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax;
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema;
------------------------------------------------------------------------&#xd;
</body>
</message>

So far so good. The comment we could do is that this format doesn't
expose all the headers available in the message.

The applications I have in mind do not need these extra headers, but I
would assume that other applications might need them.

Should we expose all the headers?

If yes, maybe we could expose the most common ones through elements
having their names and others with a generic "header" element with a
"name" attribute.

What do you think?

3) Message with an attached forwarded mail:

<message>
    <from>
        <email>[hidden email]</email>
        <name>Eric van der Vlist</name>
    </from>
    <to>
        <email>[hidden email]</email>
    </to>
    <subject>[Fwd: RFI to access the DSDL WG]</subject>
    <body content-type="multipart/MIXED; boundary=&quot;=-vnywABbbibwxzL+eQfmh&quot;">
        <part content-type="TEXT/PLAIN">For info and possible answer.&#xd;
&#xd;
Eric&#xd;
-- &#xd;
Carnet web :&#xd;
           http://eric.van-der-vlist.com/blog?t=category&a=Fran%C3%A7ais;
------------------------------------------------------------------------&#xd;
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com&#xd;
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax;
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema;
------------------------------------------------------------------------&#xd;
</part>
        <part content-type="MESSAGE/RFC822">
            <message>
                <from>
                    <email>[hidden email]</email>
                    <name>Gianugo Rabellino</name>
                </from>
                <to>
                    <email>[hidden email]</email>
                </to>
                <cc>
                    <email>[hidden email]</email>
                    <name>Mario Lanzillotta</name>
                </cc>
                <subject>RFI to access the DSDL WG</subject>
                <body content-type="TEXT/PLAIN; delsp=yes; format=flowed; charset=US-ASCII">Hi,&#xd;
&#xd;
we just found your group while looking for XML validation resources.  &#xd;
My company (Pro-netics S.r.l., http://www.pronetics.it) has been  &#xd;
doing a good deal of work in the XML validation area, and we are  &#xd;
about to ship an Open Source validation product, based on Apache  &#xd;
Cocoon that strikingly resembles most of your working drafts and  &#xd;
specs, and we clearly resonate with your thoughts, scopes and ideas.  &#xd;
We would be glad to join the discussion but it's pretty unclear to us  &#xd;
what would the best way be. Can you advise us on who we should  &#xd;
contact in Italy?&#xd;
&#xd;
Thanks in advance,&#xd;
&#xd;
-- &#xd;
Gianugo Rabellino&#xd;
Pro-netics s.r.l. -  http://www.pro-netics.com&#xd;
Orixo, the XML business alliance: http://www.orixo.com&#xd;
&#xd;
&#xd;
</body>
            </message>
        </part>
    </body>
</message>

Note that embedding a message element in a part element is an extension
of the current format for the mail processor.

3) Message with an attached PDF document

<message>
    <from>
        <email>[hidden email]</email>
        <name>Eric van der Vlist</name>
    </from>
    <to>
        <email>[hidden email]</email>
    </to>
    <subject>New draft for part 10</subject>
    <body content-type="multipart/MIXED; boundary=&quot;=-nlt/CLi4pJh/gTr65pb8&quot;">
        <part content-type="TEXT/PLAIN">You'll find attached a new draft for part 10.&#xd;
&#xd;
Eric&#xd;
-- &#xd;
Have you ever thought about unit testing XSLT templates?&#xd;
                                                     http://xsltunit.org&#xd;
Upcoming schema tutorial:&#xd;
 - Philadelphia (7/12/2003)       http://makeashorterlink.com/?V28612FC5;
Tutoriel XSLT:&#xd;
 - Paris (25/11/2003)             http://makeashorterlink.com/?L2C623FC5;
------------------------------------------------------------------------&#xd;
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com&#xd;
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema;
------------------------------------------------------------------------&#xd;
</part>
        <part content-type="APPLICATION/PDF; name=about.pdf">????</part>
    </body>
</message>

In that case, I think that the part should be treated like non XML
documents that have an xsi:type in addition to their content type to
define which encoding is used:

<document xsi:type="xs:base64Binary"
content-type="image/jpeg">/9j/4AAQSkZJRgABAQEBygHKAAD/2wBDAAQDAwQDAwQEBAQFBQQFBwsHBwYGBw4KCggLEA4R ... KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==  </document>

In our case, that would give:

<part content-type="APPLICATION/PDF; name=about.pdf"
xsi:type="xs:base64Binary">.../...</part>

Also, the fact that the name is hidden in the content-type just seems
wrong, and I'd prefer:

<part content-type="APPLICATION/PDF" name="about.pdf"
xsi:type="xs:base64Binary">.../...</part>

What do you think?

Thanks for your comments!

Eric
--
Le premier annuaire des apiculteurs 100% XML!
                                                http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Email generator (cont')

Eric van der Vlist
Hi,

Le jeudi 08 septembre 2005 à 18:50 +0200, Eric van der Vlist a écrit :

> I have started to work on these processors (I have now two simple Java
> classes that produce SAX events for lists of messages and messages but a
> lot of their parameters are still fixed and they are not yet integrated
> into the OPS architecture).

I have now something that is still rough but more presentable and
integrated as an OPS processor.

For those of you who might want to play with it or even improve it, I
attach it as a jar (emailGenerator.jar) together with a version of
TreeBind (http://treebind.org) slightly modified to be usable in an OPS
processor (this version should also be available as a nightly snapshot
at http://savannah.nongnu.org/cvs-backup/treebind-sources.tar.gz soon).

<plug type="shameless">TreeBind is yet another XML <-> Java binding API.

The difference between TreeBind and most of the other ava binding APIs
is that we've tried to minimize the need for any type of schema or
configuration file and to maximize the usage of introspection of Java
classes in order to facilitate the integration with existing
classes.</plug>

emailGenerator.jar contains the following generators:

      * EmailIndexGenerator to generate email indexes as RSS.

Example:

<?xml version="1.0" encoding="UTF-8"?>

<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline"
    xmlns:oxf="http://www.orbeon.com/oxf/processors" xmlns:xdb="http://orbeon.org/oxf/xml/xmldb"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:bk="http://apiculteurs.info/namespace/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   
 
    <p:processor name="oxf:java">
        <p:input name="config">
            <config sourcepath="file:///usr/local/eclipse/workspace/XMLfr/"
                class="org.xmlfr.orbeon.EmailIndexGenerator"/>
        </p:input>
        <p:input name="index" debug="index">
            <index>
                <store>imap</store>
                <server>10.0.0.5</server>
                <user>vdv</user>
                <password>password</password>
                <port>143</port>    
                <folder>INBOX.Sent</folder>
                <baseURL>http://dyomedea.com/messages/</baseURL>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
                <matchingRecipient>[hidden email]</matchingRecipient>
            </index>
        </p:input>
        <p:output name="rss" id="rss" debug="rss"/>
    </p:processor>
    <!--
        And send the result to the client
    -->
    <p:processor name="oxf:xml-serializer">
        <p:input name="config">
            <config/>
        </p:input>
        <p:input name="data" href="#rss"/>
    </p:processor>
   
</p:config>

If no matchingRecipient element is found, the generator will send the
last messages, otherwise, it will send the last messages for one of
these recipients. This should obviously be generalized to cope with
other forms of filters.

Example of result:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:m="http://ns.xmlfr.org/emails/">
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1126264644.10381.97.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1126264644.10381.97.camel%40localhost.localdomain%3E</link>
  <title>Re: [xml-tech] Re:  Entités numériques</title>
  <dc:date>2005-09-09T13:17:24+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1126263051.10381.87.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1126263051.10381.87.camel%40localhost.localdomain%3E</link>
  <title>Re: [xml-tech] Re: Entités numériques</title>
  <dc:date>2005-09-09T12:50:51+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1126261254.10381.82.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1126261254.10381.82.camel%40localhost.localdomain%3E</link>
  <title>Re: [xml-tech] Entités numériques</title>
  <dc:date>2005-09-09T12:20:55+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1126198205.10381.35.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1126198205.10381.35.camel%40localhost.localdomain%3E</link>
  <title>Email generator (cont')</title>
  <dc:date>2005-09-08T18:50:05+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125782091.10176.8.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125782091.10176.8.camel%40localhost.localdomain%3E</link>
  <title>Re: [ops-users] Feature suggestion: (optional) config for</title>
  <dc:date>2005-09-03T23:14:52+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125782304.10176.14.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125782304.10176.14.camel%40localhost.localdomain%3E</link>
  <title>Re: [ops-users] Weird HTTP header issue with</title>
  <dc:date>2005-09-03T23:18:25+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125782308.10176.16.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125782308.10176.16.camel%40localhost.localdomain%3E</link>
  <title>Re: [ops-users] Weird HTTP header issue with</title>
  <dc:date>2005-09-03T23:18:28+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125781919.10176.4.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125781919.10176.4.camel%40localhost.localdomain%3E</link>
  <title>Re: [ops-users] Feature suggestion: (optional) config for</title>
  <dc:date>2005-09-03T23:12:01+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125674318.13542.252.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125674318.13542.252.camel%40localhost.localdomain%3E</link>
  <title>Re: [rng-users] Attribute value co-constraints</title>
  <dc:date>2005-09-02T17:18:38+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <item rdf:about="http://dyomedea.com/messages/INBOX.Sent/%3C1125660799.13542.229.camel%40localhost.localdomain%3E">
  <link>http://dyomedea.com/messages/INBOX.Sent/%3C1125660799.13542.229.camel%40localhost.localdomain%3E</link>
  <title>Email generator anyone?</title>
  <dc:date>2005-09-02T13:33:19+0200</dc:date>
  <dc:creator>Eric van der Vlist &lt;[hidden email]&gt;</dc:creator>
  <m:to>[hidden email]</m:to>
 </item>
 <channel rdf:about="tbd">
  <link>tbd</link>
  <title>Mails...</title>
  <items>
   <rdf:Seq>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1126264644.10381.97.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1126263051.10381.87.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1126261254.10381.82.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1126198205.10381.35.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125782091.10176.8.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125782304.10176.14.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125782308.10176.16.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125781919.10176.4.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125674318.13542.252.camel%40localhost.localdomain%3E"/>
    <rdf:li rdf:resource="http://dyomedea.com/messages/INBOX.Sent/%3C1125660799.13542.229.camel%40localhost.localdomain%3E"/>
   </rdf:Seq>
  </items>
 </channel>
</rdf:RDF>

      * EmailGenerator to expose the content of a single mail as XML.

<?xml version="1.0" encoding="UTF-8"?>
<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline"
    xmlns:oxf="http://www.orbeon.com/oxf/processors" xmlns:xdb="http://orbeon.org/oxf/xml/xmldb"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:bk="http://apiculteurs.info/namespace/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <p:processor name="oxf:java">
        <p:input name="config">
            <config sourcepath="file:///usr/local/eclipse/workspace/XMLfr/"
                class="org.xmlfr.orbeon.EmailGenerator"/>
        </p:input>
        <p:input name="index" debug="index">
            <read>
                <store>imap</store>
                <server>10.0.0.5</server>
                <user>vdv</user>
                <password>password</password>
                <port>143</port>
                <baseURL>http://dyomedea.com/messages/</baseURL>
                <messageURL>http://dyomedea.com/messages/INBOX.Sent/%3C1122585074.28680.101.camel%40localhost.localdomain%3E</messageURL>
            </read>
        </p:input>
        <p:output name="mail" id="mail" debug="mail"/>
    </p:processor>
    <!--
        And send the result to the client
    -->
    <p:processor name="oxf:xml-serializer">
        <p:input name="config">
            <config/>
        </p:input>
        <p:input name="data" href="#mail"/>
    </p:processor>
</p:config>

Example of result:

<?xml version="1.0" encoding="utf-8"?>
<message>
 <from>
  <email>[hidden email]</email>
  <name>Eric van der Vlist</name>
 </from>
 <to>
  <email>[hidden email]</email>
 </to>
 <subject>Re: [ops-users] OPS 3.0 BETA Released</subject>
 <body content-type="TEXT/PLAIN">On jeu, 2005-07-28 at 14:00 -0700, Erik Bruchez wrote:&#xD;
&gt; Eric van der Vlist wrote:&#xD;
&gt; &#xD;
&gt; &gt;&gt;It's a beta, but we encourage everybody to play with it and report &#xD;
&gt; &gt;&gt;issues, so we can have a rock-solid 3.0 final!&#xD;
&gt; &gt; &#xD;
&gt; &gt; &#xD;
&gt; &gt; Great!&#xD;
&gt; &gt; &#xD;
&gt; &gt; I have just downloaded and installed it to play with the new goodies!&#xD;
&gt; &gt; &#xD;
&gt; &gt; I have noticed that in the  OPS BizDoc NG demo, the help message for the&#xD;
&gt; &gt; first field seems to be displayed for all the fields (the version that&#xD;
&gt; &gt; is online on your web site displays the same behavior).&#xD;
&gt; &#xD;
&gt; Good catch! Will fix this for the final:&#xD;
&gt; &#xD;
&gt; http://forge.objectweb.org/tracker/index.php?func=detail&amp;aid=303827&amp;group_id=168&amp;atid=350207&#xD;
&#xD;
Thanks!&#xD;
&#xD;
In the documentation, you are listing the following restrictions for 3.0&#xD;
beta :&#xD;
&#xD;
      * Initial generation of an XForms page may have poor performance. &#xD;
        &#xD;
      * xforms:upload is not yet implemented in the OPS 3.0 XForms&#xD;
        engine. xforms:upload remains implemented when the legacy OPS&#xD;
        2.8 compatibility mode is enabled. &#xD;
        &#xD;
      * Image and link appearances are not supported for the&#xD;
        xforms:submit and xforms:trigger controls. &#xD;
        &#xD;
      * The xforms:message action is not implemented. &#xD;
        &#xD;
      * Not all the OPS examples have been updated to reflect the new&#xD;
        XForms engine capabilities. &#xD;
        &#xD;
      * The OPS reference XForms documentation has not yet been updated&#xD;
        to reflect all the changes in OPS 3.0. Please refer to the&#xD;
        "XForms NG" examples for details. &#xD;
        &#xD;
      * The OPS reference XForms compliance matrix has not yet been&#xD;
        updated to reflect all the changes in OPS 3.0. &#xD;
        &#xD;
      * Migration documentation from 2.8 to 3.0 is not complete yet. &#xD;
        &#xD;
      * The OPS Tutorial has not been updated for 3.0. &#xD;
        &#xD;
      * The OPS Blog example is not complete. &#xD;
        &#xD;
      * The Ajax-based XForms engine currently works with Mozilla&#xD;
        Firefox and Microsoft Internet Explorer 6. Support for Opera and&#xD;
        Safari is planned. &#xD;
        &#xD;
      * This release has only been tested with Tomcat. &#xD;
        &#xD;
      * The PDF version of the User Guide does not have page numbers. &#xD;
        &#xD;
Do you intend to fix all of them for the production release? (or, if&#xD;
not, which ones do you plan to keep?)&#xD;
&#xD;
&gt; &gt; PS : I am using Epiphany 1.6.1 on Ubuntu Hoary to browse these&#xD;
&gt; &gt; examples.&#xD;
&gt; &#xD;
&gt; Good to know that it works! &#xD;
&#xD;
Epiphany is based on Mozilla, so I would have been surprised if it&#xD;
hadn't been working!&#xD;
&#xD;
&gt; We'll have to work on Opera and Safari support at some point too.&#xD;
&#xD;
Yes.&#xD;
&#xD;
Eric&#xD;
&#xD;
-- &#xD;
Le premier annuaire des apiculteurs 100% XML!&#xD;
                                                http://apiculteurs.info/&#xD;
------------------------------------------------------------------------&#xD;
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com&#xD;
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax&#xD;
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema&#xD;
------------------------------------------------------------------------&#xD;
</body>
</message>

Both are implemented as classes that can work standalone outside OPS and
generators using these classes.

The downside of this design decision is that the classes need xerces
classes that have been stripped from the libraries provided with OPS to
compile.

IMPORTANT:

These classes won't be used at run time in OPS, but to run these
examples, you still need to add a copy of xercesImpl.jar in the
WEB-INF/lib directory.

Enjoy,

Eric (hoping he's not just boring everyone else)

--
Le premier annuaire des apiculteurs 100% XML!
                                                http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------

emailGenerator.jar (35K) Download Attachment
treebind.jar (8K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Email generator (cont')

Eric van der Vlist
Hi,

Just to announce a new site "powered by Orbeon PresentationServer":

http://dyomedea.com/english/

This site is using version 3.0 beta 3 and my email generator can be seen
in action at:

http://dyomedea.com/english/listes/

If you're interested, you'll find more details on my blog:

http://eric.van-der-vlist.com/blog/1365_Dyomedea.com_is_valid%2C_at_last%21.item

Many thanks for having developed OPS!

Eric
--
Have you ever thought about unit testing XSLT templates?
                                                     http://xsltunit.org
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Email generator (cont')

Erik Bruchez
Administrator
In reply to this post by Eric van der Vlist
Thanks Eric for sharing this! Excellent work!

In a few more days we will be back to work on 3.0 final :-)

-Erik

> Hi,
>
> Just to announce a new site "powered by Orbeon PresentationServer":
>
> http://dyomedea.com/english/
>
> This site is using version 3.0 beta 3 and my email generator can be seen
> in action at:
>
> http://dyomedea.com/english/listes/
>
> If you're interested, you'll find more details on my blog:
>
> http://eric.van-der-vlist.com/blog/1365_Dyomedea.com_is_valid%2C_at_last%21.item
>
> Many thanks for having developed OPS!
>
> Eric
> --
> Have you ever thought about unit testing XSLT templates?
>                                                     http://xsltunit.org
> ------------------------------------------------------------------------
> Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
> (ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
> (W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
> ------------------------------------------------------------------------


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Email generator (cont')

Erik Bruchez
Administrator
In reply to this post by Eric van der Vlist
Hi Eric,

Thanks for sharing this!

Is there any way the license could be made LGPL instead of GPL? This
would allow us to integrate it with OPS. I believe as GPL, the rest of
OPS would switch GPL as per the LGPL, but also customer's Java
software written on top of OPS would have to be licensed as GPL as
well in case of redistribution. But I may be wrong ;-)

-Erik

Eric van der Vlist wrote:

 > I have now something that is still rough but more presentable and
 > integrated as an OPS processor.
 >
 > For those of you who might want to play with it or even improve it, I
 > attach it as a jar (emailGenerator.jar) together with a version of
 > TreeBind (http://treebind.org) slightly modified to be usable in an OPS
 > processor (this version should also be available as a nightly snapshot
 > at http://savannah.nongnu.org/cvs-backup/treebind-sources.tar.gz soon).
 >
 > <plug type="shameless">TreeBind is yet another XML <-> Java binding API.
 >
 > The difference between TreeBind and most of the other ava binding APIs
 > is that we've tried to minimize the need for any type of schema or
 > configuration file and to maximize the usage of introspection of Java
 > classes in order to facilitate the integration with existing
 > classes.</plug>
 >
 > emailGenerator.jar contains the following generators:
 >
 >       * EmailIndexGenerator to generate email indexes as RSS.
 >
 > Example:

[...]

 > Both are implemented as classes that can work standalone outside OPS and
 > generators using these classes.
 >
 > The downside of this design decision is that the classes need xerces
 > classes that have been stripped from the libraries provided with OPS to
 > compile.
 >
 > IMPORTANT:
 >
 > These classes won't be used at run time in OPS, but to run these
 > examples, you still need to add a copy of xercesImpl.jar in the
 > WEB-INF/lib directory.
 >
 > Enjoy,
 >
 > Eric (hoping he's not just boring everyone else)




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Email generator (cont')

Eric van der Vlist
Hi Erik,

Le jeudi 22 septembre 2005 à 18:30 -0700, Erik Bruchez a écrit :
> Hi Eric,
>
> Thanks for sharing this!

You're very welcome, thanks for sharing OPS!

> Is there any way the license could be made LGPL instead of GPL? This
> would allow us to integrate it with OPS. I believe as GPL, the rest of
> OPS would switch GPL as per the LGPL, but also customer's Java
> software written on top of OPS would have to be licensed as GPL as
> well in case of redistribution. But I may be wrong ;-)


This generator is a part of what we'll be developing for XMLfr and I'd
prefer to publish what we'll be developing for XMLfr as GPL rather than
LGPL...

I need to think more about this licencing stuff.

Eric


--
Le premier annuaire des apiculteurs 100% XML!
                                                http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws