You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Simone Tripodi <si...@apache.org> on 2012/03/15 22:50:41 UTC
Re: svn commit: r1301220 - /commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/
Hi Thomas!
can I kindly ask you please to help me on merging modifications on
/trunk to the experimental branch?
I completed the "drop the markers" work but I still need to complete
the exporters...
Hope you can help, thanks in advance!
-Simo
http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/
On Thu, Mar 15, 2012 at 10:46 PM, <tn...@apache.org> wrote:
> Author: tn
> Date: Thu Mar 15 21:46:12 2012
> New Revision: 1301220
>
> URL: http://svn.apache.org/viewvc?rev=1301220&view=rev
> Log:
> Improved javadoc and fixed class typo in export package.
>
> Added:
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelector.java
> - copied, changed from r1301200, commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelctor.java
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelector.java
> - copied, changed from r1301200, commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelctor.java
> Removed:
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelctor.java
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelctor.java
> Modified:
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/AbstractExporter.java
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultNamedExportSelector.java
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultToStreamBuilder.java
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/GraphExportException.java
> commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ToStreamBuilder.java
>
> Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/AbstractExporter.java
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/AbstractExporter.java?rev=1301220&r1=1301219&r2=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/AbstractExporter.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/AbstractExporter.java Thu Mar 15 21:46:12 2012
> @@ -69,9 +69,7 @@ abstract class AbstractExporter<V extend
> catch ( Exception e )
> {
> throw new GraphExportException( e, "an error occurred while exporting graph %s (named %s) to writer %s",
> - graph,
> - name,
> - writer );
> + graph, name, writer );
> }
> finally
> {
>
> Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultNamedExportSelector.java
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultNamedExportSelector.java?rev=1301220&r1=1301219&r2=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultNamedExportSelector.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultNamedExportSelector.java Thu Mar 15 21:46:12 2012
> @@ -26,7 +26,7 @@ import org.apache.commons.graph.Graph;
> import org.apache.commons.graph.Vertex;
>
> final class DefaultNamedExportSelector<V extends Vertex, E extends Edge, G extends Graph<V, E>>
> - implements NamedExportSelctor<V, E, G>
> + implements NamedExportSelector<V, E, G>
> {
>
> private final G graph;
> @@ -35,31 +35,40 @@ final class DefaultNamedExportSelector<V
>
> private final String name;
>
> - public DefaultNamedExportSelector( G graph, Writer writer )
> + public DefaultNamedExportSelector( final G graph, final Writer writer )
> {
> this( graph, writer, null );
> }
>
> - public DefaultNamedExportSelector( G graph, Writer writer, String name )
> + public DefaultNamedExportSelector( final G graph, final Writer writer, final String name )
> {
> this.graph = graph;
> this.writer = writer;
> this.name = name;
> }
>
> + /**
> + * {@inheritDoc}
> + */
> public void usingDotNotation()
> throws GraphExportException
> {
> new DotExporter<V, E, G>( graph, writer, name ).export();
> }
>
> + /**
> + * {@inheritDoc}
> + */
> public void usingGraphMLFormat()
> throws GraphExportException
> {
> new GraphMLExporter<V, E, G>( graph, writer, name ).export();
> }
>
> - public ExportSelctor<V, E, G> withName( String name )
> + /**
> + * {@inheritDoc}
> + */
> + public ExportSelector<V, E, G> withName( final String graphName )
> {
> return new DefaultNamedExportSelector<V, E, G>( graph, writer, name );
> }
>
> Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultToStreamBuilder.java
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultToStreamBuilder.java?rev=1301220&r1=1301219&r2=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultToStreamBuilder.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/DefaultToStreamBuilder.java Thu Mar 15 21:46:12 2012
> @@ -36,14 +36,23 @@ public final class DefaultToStreamBuilde
> implements ToStreamBuilder<V, E, G>
> {
>
> + /** The graph to export. */
> private final G graph;
>
> - public DefaultToStreamBuilder( G graph )
> + /**
> + * Creates a new default {@link ToStreamBuilder} to export a {@link Graph}.
> + *
> + * @param graph the {@link Graph} to export
> + */
> + public DefaultToStreamBuilder( final G graph )
> {
> this.graph = graph;
> }
>
> - public NamedExportSelctor<V, E, G> to( File outputFile )
> + /**
> + * {@inheritDoc}
> + */
> + public NamedExportSelector<V, E, G> to( final File outputFile )
> {
> try
> {
> @@ -55,14 +64,20 @@ public final class DefaultToStreamBuilde
> }
> }
>
> - public NamedExportSelctor<V, E, G> to( OutputStream outputStream )
> + /**
> + * {@inheritDoc}
> + */
> + public NamedExportSelector<V, E, G> to( final OutputStream outputStream )
> {
> return to( new OutputStreamWriter( checkNotNull( outputStream, "Impossibe to export the graph in a null stream" ) ) );
> }
>
> - public NamedExportSelctor<V, E, G> to( Writer writer )
> + /**
> + * {@inheritDoc}
> + */
> + public NamedExportSelector<V, E, G> to( final Writer writer )
> {
> - writer = checkNotNull( writer, "Impossibe to export the graph in a null stream" );
> + checkNotNull( writer, "Impossibe to export the graph in a null stream" );
> return new DefaultNamedExportSelector<V, E, G>( graph, writer );
> }
>
>
> Copied: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelector.java (from r1301200, commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelctor.java)
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelector.java?p2=commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelector.java&p1=commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelctor.java&r1=1301200&r2=1301220&rev=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelctor.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ExportSelector.java Thu Mar 15 21:46:12 2012
> @@ -23,17 +23,19 @@ import org.apache.commons.graph.Edge;
> import org.apache.commons.graph.Graph;
> import org.apache.commons.graph.Vertex;
>
> -public interface ExportSelctor<V extends Vertex, E extends Edge, G extends Graph<V, E>>
> +public interface ExportSelector<V extends Vertex, E extends Edge, G extends Graph<V, E>>
> {
>
> /**
> * Export Graphs in <a href="http://en.wikipedia.org/wiki/DOT_language">DOT language</a>.
> + * @throws GraphExportException in case an error occurred while exporting the graph
> */
> void usingDotNotation()
> throws GraphExportException;
>
> /**
> * Export Graphs in <a href="http://graphml.graphdrawing.org/">GraphML file format</a>.
> + * @throws GraphExportException in case an error occurred while exporting the graph
> */
> void usingGraphMLFormat()
> throws GraphExportException;
>
> Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/GraphExportException.java
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/GraphExportException.java?rev=1301220&r1=1301219&r2=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/GraphExportException.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/GraphExportException.java Thu Mar 15 21:46:12 2012
> @@ -21,13 +21,26 @@ package org.apache.commons.graph.export;
>
> import static java.lang.String.format;
>
> +/**
> + * This exception is used to wrap any {@link Exception} that occurs while exporting a
> + * {@link Graph} instance.
> + */
> public final class GraphExportException
> extends Exception
> {
>
> + /** The serial version UID. */
> private static final long serialVersionUID = 1L;
>
> - public GraphExportException( Throwable cause, String messagePattern, Object...messageArguments )
> + /**
> + * Constructs a new graph exception with the specified detail message.
> + *
> + * @param cause the cause
> + * @param messagePattern the error message text pattern
> + * @param messageArguments arguments referenced by the format specifiers in the format string
> + * @see java.lang.String#format(String, Object...)
> + */
> + public GraphExportException( Throwable cause, String messagePattern, Object... messageArguments )
> {
> super( format( messagePattern, messageArguments ), cause );
> }
>
> Copied: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelector.java (from r1301200, commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelctor.java)
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelector.java?p2=commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelector.java&p1=commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelctor.java&r1=1301200&r2=1301220&rev=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelctor.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/NamedExportSelector.java Thu Mar 15 21:46:12 2012
> @@ -23,10 +23,16 @@ import org.apache.commons.graph.Edge;
> import org.apache.commons.graph.Graph;
> import org.apache.commons.graph.Vertex;
>
> -public interface NamedExportSelctor<V extends Vertex, E extends Edge, G extends Graph<V, E>>
> - extends ExportSelctor<V, E, G>
> +public interface NamedExportSelector<V extends Vertex, E extends Edge, G extends Graph<V, E>>
> + extends ExportSelector<V, E, G>
> {
>
> - ExportSelctor<V, E, G> withName( String name );
> + /**
> + * Use the given name when exporting the {@link Graph} to a resource.
> + *
> + * @param name the name to identify the {@link Graph}
> + * @return the graph export format selector
> + */
> + ExportSelector<V, E, G> withName( String name );
>
> }
>
> Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ToStreamBuilder.java
> URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ToStreamBuilder.java?rev=1301220&r1=1301219&r2=1301220&view=diff
> ==============================================================================
> --- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ToStreamBuilder.java (original)
> +++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/ToStreamBuilder.java Thu Mar 15 21:46:12 2012
> @@ -34,24 +34,24 @@ public interface ToStreamBuilder<V exten
> * Export the input Graph to a {@link File}.
> *
> * @param outputFile the file where exporting the Graph to
> - * @return
> + * @return the graph export format selector
> */
> - NamedExportSelctor<V, E, G> to( File outputFile );
> + NamedExportSelector<V, E, G> to( File outputFile );
>
> /**
> * Export the input Graph to an {@link OutputStream}.
> *
> * @param outputStream the output stream where exporting the Graph to
> - * @return
> + * @return the graph export format selector
> */
> - NamedExportSelctor<V, E, G> to( OutputStream outputStream );
> + NamedExportSelector<V, E, G> to( OutputStream outputStream );
>
> /**
> * Export the input Graph to a {@link Writer}.
> *
> * @param writer the writer where exporting the Graph to
> - * @return
> + * @return the graph export format selector
> */
> - NamedExportSelctor<V, E, G> to( Writer writer );
> + NamedExportSelector<V, E, G> to( Writer writer );
>
> }
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [graph] exporter migration in branch
Posted by Simone Tripodi <si...@apache.org>.
Hi Thomas,
thanks a lot for monitoring activities - Claudio is experimenting on a
proper branch a really interesting (IMHO) approach, it will require
modifying APIs but not a big deal, we're still in the Sandbox! :)
All the best,
-Simo
http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/
On Sun, Mar 18, 2012 at 10:16 PM, Thomas Neidhart
<th...@gmail.com> wrote:
> On 03/17/2012 01:55 AM, Simone Tripodi wrote:
>> Hi Thomas,
>> please see r1301848 - this is something prototypal and suggestions are
>> much more than welcome!
>>
>> I'd encourage all [graph] people on experimenting stuff on a proper
>> branch, everybody shall feel free to setup a branch and working on it!
>
> I see that my suggestion has already sparked some new ideas. Looks great!
>
> Thomas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [graph] exporter migration in branch
Posted by Thomas Neidhart <th...@gmail.com>.
On 03/17/2012 01:55 AM, Simone Tripodi wrote:
> Hi Thomas,
> please see r1301848 - this is something prototypal and suggestions are
> much more than welcome!
>
> I'd encourage all [graph] people on experimenting stuff on a proper
> branch, everybody shall feel free to setup a branch and working on it!
I see that my suggestion has already sparked some new ideas. Looks great!
Thomas
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [graph] exporter migration in branch
Posted by Simone Tripodi <si...@apache.org>.
Hi Thomas,
please see r1301848 - this is something prototypal and suggestions are
much more than welcome!
I'd encourage all [graph] people on experimenting stuff on a proper
branch, everybody shall feel free to setup a branch and working on it!
All the best,
-Simo
http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/
On Sat, Mar 17, 2012 at 12:40 AM, Simone Tripodi
<si...@apache.org> wrote:
> Hi Thomas,
>
> I have a proposal almost ready on my local machine, I'll show you as
> soon as possible in order you can review and share your thoughts.
>
> The GraphML exporter was an external contribution - I never used
> Thinkerpop stuff and don't know details, apologize... which action you
> suggest to take? maybe mentioning it in the NOTICE?
>
> TIA!!!
> -Simo
>
> http://people.apache.org/~simonetripodi/
> http://simonetripodi.livejournal.com/
> http://twitter.com/simonetripodi
> http://www.99soft.org/
>
>
>
> On Fri, Mar 16, 2012 at 6:27 PM, Thomas Neidhart
> <th...@gmail.com> wrote:
>> Hi,
>>
>> I have looked into the issue with the graph exporters in the branch, and
>> as we now store any kind of object as Vertex / Edge, it is not obvious
>> how to export such objects.
>>
>> When looking at something like tinkerpop/blueprints, they have a
>> PropertyGraph that can store arbitrary properties for each node/edge
>> which is pretty powerful when combining it with a query language like
>> gremlin, and the export is of course simpler as all properties are exported.
>>
>> On the other hand we could imagine a javabeans like interface, where
>> bean properties are exported (default), or the user provides a hint to
>> the exporter which ones he would like to export.
>>
>> When thinking further about future importers, we could use beanutils(2?)
>> to create such beans on the fly when importing a graph.
>>
>> Best,
>>
>> Thomas
>>
>> btw. the current graphml exporter code is more or less a copy&paste from
>> tinkerpop/blueprints
>> (https://github.com/tinkerpop/blueprints/blob/master/blueprints-core/src/main/java/com/tinkerpop/blueprints/pgm/util/io/graphml/GraphMLWriter.java)
>>
>> from a licensing point of view it should be fine, as tinkerpop is
>> something like BSD afaik, but it should be mentioned somehow I guess.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [graph] exporter migration in branch
Posted by Simone Tripodi <si...@apache.org>.
Hi Thomas,
I have a proposal almost ready on my local machine, I'll show you as
soon as possible in order you can review and share your thoughts.
The GraphML exporter was an external contribution - I never used
Thinkerpop stuff and don't know details, apologize... which action you
suggest to take? maybe mentioning it in the NOTICE?
TIA!!!
-Simo
http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/
On Fri, Mar 16, 2012 at 6:27 PM, Thomas Neidhart
<th...@gmail.com> wrote:
> Hi,
>
> I have looked into the issue with the graph exporters in the branch, and
> as we now store any kind of object as Vertex / Edge, it is not obvious
> how to export such objects.
>
> When looking at something like tinkerpop/blueprints, they have a
> PropertyGraph that can store arbitrary properties for each node/edge
> which is pretty powerful when combining it with a query language like
> gremlin, and the export is of course simpler as all properties are exported.
>
> On the other hand we could imagine a javabeans like interface, where
> bean properties are exported (default), or the user provides a hint to
> the exporter which ones he would like to export.
>
> When thinking further about future importers, we could use beanutils(2?)
> to create such beans on the fly when importing a graph.
>
> Best,
>
> Thomas
>
> btw. the current graphml exporter code is more or less a copy&paste from
> tinkerpop/blueprints
> (https://github.com/tinkerpop/blueprints/blob/master/blueprints-core/src/main/java/com/tinkerpop/blueprints/pgm/util/io/graphml/GraphMLWriter.java)
>
> from a licensing point of view it should be fine, as tinkerpop is
> something like BSD afaik, but it should be mentioned somehow I guess.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
[graph] exporter migration in branch
Posted by Thomas Neidhart <th...@gmail.com>.
Hi,
I have looked into the issue with the graph exporters in the branch, and
as we now store any kind of object as Vertex / Edge, it is not obvious
how to export such objects.
When looking at something like tinkerpop/blueprints, they have a
PropertyGraph that can store arbitrary properties for each node/edge
which is pretty powerful when combining it with a query language like
gremlin, and the export is of course simpler as all properties are exported.
On the other hand we could imagine a javabeans like interface, where
bean properties are exported (default), or the user provides a hint to
the exporter which ones he would like to export.
When thinking further about future importers, we could use beanutils(2?)
to create such beans on the fly when importing a graph.
Best,
Thomas
btw. the current graphml exporter code is more or less a copy&paste from
tinkerpop/blueprints
(https://github.com/tinkerpop/blueprints/blob/master/blueprints-core/src/main/java/com/tinkerpop/blueprints/pgm/util/io/graphml/GraphMLWriter.java)
from a licensing point of view it should be fine, as tinkerpop is
something like BSD afaik, but it should be mentioned somehow I guess.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: svn commit: r1301220 - /commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/
Posted by Simone Tripodi <si...@apache.org>.
thanks a lot in advance, very appreciated!
-Simo
http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/
On Thu, Mar 15, 2012 at 10:56 PM, Thomas Neidhart
<th...@gmail.com> wrote:
> On 03/15/2012 10:50 PM, Simone Tripodi wrote:
>> Hi Thomas!
>> can I kindly ask you please to help me on merging modifications on
>> /trunk to the experimental branch?
>> I completed the "drop the markers" work but I still need to complete
>> the exporters...
>>
>> Hope you can help, thanks in advance!
>
> Hi Simone,
>
> I can take a look tomorrow.
>
> Cheers,
>
> Thomas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: svn commit: r1301220 - /commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/export/
Posted by Thomas Neidhart <th...@gmail.com>.
On 03/15/2012 10:50 PM, Simone Tripodi wrote:
> Hi Thomas!
> can I kindly ask you please to help me on merging modifications on
> /trunk to the experimental branch?
> I completed the "drop the markers" work but I still need to complete
> the exporters...
>
> Hope you can help, thanks in advance!
Hi Simone,
I can take a look tomorrow.
Cheers,
Thomas
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org