My bad. Fixed.
-mbs
On Tue, 2006-08-01 at 21:22 +0200, Guillaume Nodet wrote:
> Btw, they have recently changed.
> The one to use can be found at
> http://www.apache.org/legal/src-headers#header-text
>
> and
> http://www.apache.org/legal/src-headers#faq-update-scripts
> to update the whole source tree.
>
> On 8/1/06, Paul Brown <[EMAIL PROTECTED]> wrote:
> >
> > Old habits die hard. It looks like Maciej hasn't updated his default
> > header for new classes in a few years...
> >
> > -- Paul
> >
> > On 8/1/06, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
> > > When adding new files, would it be possible to use
> > > apache headers instead of some misleading copyright
> > > assignments ?
> > >
> > > On 8/1/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Author: mszefler
> > > > Date: Tue Aug 1 11:52:47 2006
> > > > New Revision: 427676
> > > >
> > > > URL: http://svn.apache.org/viewvc?rev=427676&view=rev
> > > > Log:
> > > > ODE-16 Replaced missing tools.
> > > >
> > > > Added:
> > > > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/AliasElement.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceElement.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceFileSet.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrOperation.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrTask.java
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAdd.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAlias.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrDrop.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrGet.java
> > > >
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrList.java
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/AliasElement.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/AliasElement.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/AliasElement.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/AliasElement.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,86 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.ant;
> > > > +
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +
> > > > +import java.io.IOException;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +
> > > > +import org.apache.tools.ant.Project;
> > > > +
> > > > +
> > > > +/**
> > > > + * Sub-element of [EMAIL PROTECTED]
> > > > org.apache.ode.tools.rr.ant.RrTask} for
> > > > + * setting up URI <em>aliases</em>. An alias is analogous
> > > > + * to a "soft link": it makes a resource already in the repository
> > > > + * accessible via an alternate URI.
> > > > + *
> > > > + * <p>
> > > > + * For example, the following:
> > > > + * <pre>
> > > > + * <rr ... >
> > > > + * <resource uri="uri:bar" file="bar.xml" />
> > > > + * <alias fromuri="uri:foo" touri="uri:bar" />
> > > > + * </rr >
> > > > + * </pre>
> > > > + * creates a resource repository where the XML resource "bar.xml" is
> > > > accessible both
> > > > + * via the "uri:foo" and "uri:bar" URIs.
> > > > + */
> > > > +public class AliasElement implements RrOperation {
> > > > +
> > > > + private String _fromUri;
> > > > + private String _toUri;
> > > > +
> > > > + /**
> > > > + * Set the alias URI.
> > > > + * @param from alias URI
> > > > + */
> > > > + public void setFromUri(String from) {
> > > > + _fromUri = from;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Get the alias URI.
> > > > + * @return alias URI
> > > > + */
> > > > + public String getFromUri() {
> > > > + return _fromUri;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the <em>aliased</em> URI
> > > > + * @param to <em>aliased</em> URI
> > > > + */
> > > > + public void setToUri(String to) {
> > > > + _toUri = to;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Get the <em>aliased</em> URI.
> > > > + * @return the <em>aliased</em> URI
> > > > + */
> > > > + public String getToUri() {
> > > > + return _toUri;
> > > > + }
> > > > +
> > > > + public void execute(RrTask executingTask, ResourceRepositoryBuilder
> > > > rrb)
> > > > + throws URISyntaxException, IOException {
> > > > + String from = _fromUri;
> > > > + String to = _toUri;
> > > > +
> > > > + if (from == null || to == null) {
> > > > + from = ((from == null) ? "<<null>>" : from);
> > > > + to = ((to == null) ? "<<null>>" : to);
> > > > + executingTask.log("Unable to alias " + from + " to " + to + ";
> > > > skipping.", Project.MSG_WARN);
> > > > + return;
> > > > + }
> > > > +
> > > > + rrb.addAlias(new URI(from), new URI(to));
> > > > + executingTask.log("Aliased " + from + " to " + to,
> > > > Project.MSG_VERBOSE);
> > > > + }
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceElement.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceElement.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceElement.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceElement.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,113 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.ant;
> > > > +
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +
> > > > +import java.io.File;
> > > > +import java.io.IOException;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +import java.net.URL;
> > > > +
> > > > +import org.apache.tools.ant.BuildException;
> > > > +import org.apache.tools.ant.Project;
> > > > +
> > > > +
> > > > +/**
> > > > + * Sub-element of the [EMAIL PROTECTED]
> > > > org.apache.ode.tools.rr.ant.RrTask} used
> > to
> > > > add
> > > > + * individual resources to the repository. This object maintains two
> > > > pieces
> > > > + * of information: the logical name of the resource (it's URI within
> > the
> > > > + * resource repository) and the physical location of the resource
> > (either
> > > > + * a [EMAIL PROTECTED] File} or URL).
> > > > + */
> > > > +public class ResourceElement implements RrOperation {
> > > > +
> > > > + /** Location of the resource (file) */
> > > > + private File _file;
> > > > +
> > > > + /** Location of the resource (URL) */
> > > > + private String _location;
> > > > +
> > > > + /** Optional URI. */
> > > > + private String _uri;
> > > > +
> > > > +
> > > > + /**
> > > > + * The physical location (URL) of the resource. This location must
> > be
> > > > + * accessible through the standard Java [EMAIL PROTECTED]
> > > > java.net.URL}
> > mechanism.
> > > > + * @param url resource location (URL string)
> > > > + */
> > > > + public void setLocation(String url) {
> > > > + _location = url;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Get the physical location of the resource.
> > > > + * @return resource location (URL string)
> > > > + */
> > > > + public String getLocation() {
> > > > + return _location;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the logical name of the resource. The logical name, will be
> > the
> > > > "primary key"
> > > > + * of the resource in the repository; it must be in URI form.
> > > > + * @param uri logical name of the resource (URI string)
> > > > + */
> > > > + public void setUri(String uri) {
> > > > + _uri = uri;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Get the logical name of the resource.
> > > > + * @return logical name of the resource (URI string)
> > > > + */
> > > > + public String getUri() {
> > > > + return _uri;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Get the file containing the resource (as a file).
> > > > + * @return file containing the resource
> > > > + */
> > > > + public File getFile() {
> > > > + return _file;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the physical location of the resource to be a local file.
> > This
> > > > may
> > > > + * be used as an alternative to [EMAIL PROTECTED]
> > > > #setLocation(String)}.
> > > > + * @param file
> > > > + */
> > > > + public void setFile(File file) {
> > > > + _file = file;
> > > > + }
> > > > +
> > > > + public void execute(RrTask executingTask, ResourceRepositoryBuilder
> > > > rrb)
> > > > + throws URISyntaxException, IOException {
> > > > + URL url;
> > > > + URI uri;
> > > > +
> > > > + if (_location != null) {
> > > > + url = new URL(_location);
> > > > + uri = url.toURI();
> > > > + } else if (_file != null) {
> > > > + url = _file.toURI().toURL();
> > > > + uri = _file.toURI();
> > > > + } else {
> > > > + throw new BuildException("Must specify a resource URL or
> > file!");
> > > > + }
> > > > +
> > > > + if (_uri != null) {
> > > > + uri = new URI(_uri);
> > > > + }
> > > > +
> > > > + rrb.addURI(uri, url);
> > > > + executingTask.log("Added " + url + " as " + uri,
> > Project.MSG_VERBOSE
> > > > );
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceFileSet.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceFileSet.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceFileSet.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/ResourceFileSet.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,152 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.ant;
> > > > +
> > > > +import org.apache.ode.utils.fs.TempFileManager;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +import org.apache.ode.utils.xml.capture.XmlDependencyScanner;
> > > > +
> > > > +import java.io.File;
> > > > +import java.net.MalformedURLException;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +import java.net.URL;
> > > > +import java.util.Iterator;
> > > > +import java.util.LinkedList;
> > > > +import java.util.List;
> > > > +
> > > > +import org.apache.tools.ant.BuildException;
> > > > +import org.apache.tools.ant.Project;
> > > > +import org.apache.tools.ant.types.FileSet;
> > > > +
> > > > +/**
> > > > + * Extension of ANT <code>fileset</code> that is used with [EMAIL
> > > > PROTECTED]
> > RrTask}
> > > > to
> > > > + * specify a collection of resources that is to be included in the
> > > > repository.
> > > > + *
> > > > + * <p>
> > > > + * In addition to the standard features of [EMAIL PROTECTED] FileSet}
> > > > this class
> > > > provides
> > > > + * a destination URI and a recursive flag. The destination URI (if
> > > > specified)
> > > > + * makes the resources found through the fileset appear relative to
> > an
> > > > arbitrary
> > > > + * base URI in the resource repository. For example:
> > > > + * <pre>
> > > > + * <rr ... >
> > > > + * <rrfileset desturi="http://www.foo.com/bar/" dir="."
> > > > includes="*.xml" />
> > > > + * </rr >
> > > > + * </pre>
> > > > + * would have the effect of making a file "baz.wsdl" in the local
> > > > directory appear
> > > > + * in the resource repository under URI "
> > http://www.foo.com/bar/baz.wsdl
> > > > ".
> > > > + * </p>
> > > > + *
> > > > + * <p>
> > > > + * In addition to URI mapping, this class provides a recursion
> > > > capability. When
> > > > + * the <code>recursive="yes"</code> attribute is given, each resource
> > in
> > > > the fileset
> > > > + * will be scanned for imports and each import will also be included
> > in
> > > > the resource
> > > > + * repository. The scanning mechanism is aware of XML Schema, WSDL,
> > and
> > > > BPEL
> > > > + * <code>import</code> (and <code>include</code>) statements.
> > > > + * </p>
> > > > + *
> > > > + */
> > > > +public class ResourceFileSet extends FileSet implements RrOperation {
> > > > + /** Recursive (deep) resource imports. */
> > > > + private boolean _recursive;
> > > > +
> > > > + /** Alias (Destination) URI. */
> > > > + private String _destUri;
> > > > +
> > > > +
> > > > + /**
> > > > + * Get the destination URI root.
> > > > + * @return destination URI root
> > > > + */
> > > > + public String getDestUri() {
> > > > + return _destUri;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the destination URI root.
> > > > + * @param desturi destination URI root
> > > > + */
> > > > + public void setDestUri(String desturi) {
> > > > + _destUri = desturi;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Is the <code>recursive</code> flag set?
> > > > + * @return state of the <code>recursive</code> flag.
> > > > + */
> > > > + public boolean isRecursive() {
> > > > + return _recursive;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the <code>recursive</code> flag.
> > > > + * @param recursive recursive flag.
> > > > + */
> > > > + public void setRecursive(boolean recursive) {
> > > > + _recursive = recursive;
> > > > + }
> > > > +
> > > > + public void execute(RrTask executingTask, ResourceRepositoryBuilder
> > > > rrb) throws BuildException {
> > > > +
> > > > + URI destRoot = null;
> > > > + if (_destUri != null)
> > > > + try {
> > > > + destRoot = new URI(_destUri);
> > > > + } catch (URISyntaxException e) {
> > > > + TempFileManager.cleanup();
> > > > + log("Malformed destination URI: " + _destUri, Project.MSG_ERR
> > );
> > > > + throw new BuildException("Malformed destination URI: " +
> > > > _destUri);
> > > > + }
> > > > +
> > > > + String[] files = this.getDirectoryScanner(this.getProject
> > > > ()).getIncludedFiles();
> > > > + File dir = this.getDir(this.getProject());
> > > > +
> > > > + URI srcRoot = dir.toURI();
> > > > + List<URI> todo = new LinkedList<URI>();
> > > > + XmlDependencyScanner scanner = new XmlDependencyScanner();
> > > > + for (int i=0; i < files.length; ++i) {
> > > > + File f = new File(dir,files[i]);
> > > > + if (this.isRecursive()) {
> > > > + scanner.process(f.toURI());
> > > > + if (scanner.isError()) {
> > > > + throw new BuildException("Error scanning " + f.toURI() + ";
> > > > resources could not be loaded: " + scanner.getErrors().keySet());
> > > > + }
> > > > + } else {
> > > > + todo.add(f.toURI());
> > > > + }
> > > > + }
> > > > +
> > > > + if (this.isRecursive()) {
> > > > + todo.addAll(scanner.getURIs());
> > > > + }
> > > > +
> > > > + for (Iterator<URI> i = todo.iterator();i.hasNext(); ) {
> > > > + URI src = i.next();
> > > > + URI relative = srcRoot.relativize(src);
> > > > + URI dest = destRoot == null ? src : destRoot.resolve(relative);
> > > > + URL fu;
> > > > + try {
> > > > + fu = src.toURL();
> > > > + } catch (MalformedURLException mue) {
> > > > + log("Unrecognized URI: " + src,Project.MSG_ERR);
> > > > + if (executingTask.getFailOnError()) {
> > > > + throw new BuildException("Unrecognized URI: " + src);
> > > > + }
> > > > + continue;
> > > > + }
> > > > + try {
> > > > + rrb.addURI(dest,fu);
> > > > + log("Added " + src + " as " + dest,Project.MSG_VERBOSE);
> > > > + } catch (Exception zre) {
> > > > + log("Error writing resource " + dest + " to repository.",
> > > > Project.MSG_ERR);
> > > > + if (executingTask.getFailOnError()) {
> > > > + throw new BuildException(zre);
> > > > + }
> > > > + }
> > > > + }
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrOperation.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrOperation.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrOperation.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrOperation.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,22 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.ant;
> > > > +
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +
> > > > +import java.io.IOException;
> > > > +import java.net.URISyntaxException;
> > > > +
> > > > +/**
> > > > + * Simple common interface for RR operations.
> > > > + */
> > > > +public interface RrOperation {
> > > > +
> > > > + public void execute(RrTask executingTask, ResourceRepositoryBuilder
> > > > rrb)
> > > > + throws URISyntaxException, IOException;
> > > > +
> > > > +}
> > > > +
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrTask.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrTask.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrTask.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/ant/RrTask.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,118 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.ant;
> > > > +
> > > > +import org.apache.ode.utils.fs.TempFileManager;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +
> > > > +import java.io.File;
> > > > +import java.io.IOException;
> > > > +import java.util.ArrayList;
> > > > +import java.util.Iterator;
> > > > +import java.util.List;
> > > > +
> > > > +import org.apache.tools.ant.BuildException;
> > > > +import org.apache.tools.ant.Project;
> > > > +import org.apache.tools.ant.Task;
> > > > +
> > > > +
> > > > +/**
> > > > + * ANT Task for constructing PXE resource repositories.
> > > > + * <p>
> > > > + * Usage:
> > > > + * <pre>
> > > > + * <rr failOnError="yes/no" rrdir="destination.rr">
> > > > + * <rrfileset ... />*
> > > > + * <resource ... />*
> > > > + * <alias ... />*
> > > > + * </rr>
> > > > + * </pre>
> > > > + *
> > > > + * Each resource repository may contain sub-elements corresponding
> > to:
> > > > collections
> > > > + * of resource repositories (<code>rrfileset</codde>s), individual
> > > > resources
> > > > + * (<code>resource</code>s), or resource aliases
> > (<code>alias</code>es).
> > > > + * @see AliasElement
> > > > + * @see ResourceElement
> > > > + * @see ResourceFileSet
> > > > + * </p>
> > > > + */
> > > > +public class RrTask extends Task {
> > > > +
> > > > + private List<RrOperation> _operations = new
> > ArrayList<RrOperation>();
> > > > + private boolean _failOnError = true;
> > > > + private File _rr;
> > > > +
> > > > + /**
> > > > + * Returns the fail-on-error flag.
> > > > + * @return true or false
> > > > + */
> > > > + public boolean getFailOnError() {
> > > > + return _failOnError;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the fail-on-error flag.
> > > > + * @param b value of the fail-on-error flag
> > > > + */
> > > > + public void setFailOnError(boolean b) {
> > > > + _failOnError = b;
> > > > + }
> > > > +
> > > > + /**
> > > > + * Set the destination <em>directory</em> (resource repositories
> > are
> > > > + * directories, not files).
> > > > + * @param f
> > > > + */
> > > > + public void setRrDir(File f) {
> > > > + _rr = f;
> > > > + }
> > > > +
> > > > + public void addRrFileSet(ResourceFileSet fs) {
> > > > + _operations.add(fs);
> > > > + }
> > > > +
> > > > + public void addConfiguredResource(ResourceElement ue) {
> > > > + _operations.add(ue);
> > > > + }
> > > > +
> > > > + public void addConfiguredAlias(AliasElement uae) {
> > > > + _operations.add(uae);
> > > > + }
> > > > +
> > > > + public void execute() throws BuildException {
> > > > + ResourceRepositoryBuilder wcr;
> > > > + _rr.mkdirs();
> > > > +
> > > > + try {
> > > > + wcr = new ResourceRepositoryBuilder(_rr);
> > > > + } catch (IOException ioex) {
> > > > + TempFileManager.cleanup();
> > > > + log("I/O Error",Project.MSG_ERR);
> > > > + if (_failOnError) {
> > > > + throw new BuildException(ioex);
> > > > + }
> > > > + log("Aborting RR modification operation.",Project.MSG_INFO);
> > > > + return;
> > > > + }
> > > > +
> > > > + Iterator<RrOperation> it = _operations.iterator();
> > > > + while (it.hasNext()) {
> > > > + RrOperation o = it.next();
> > > > + try {
> > > > + o.execute(this, wcr);
> > > > + } catch (Exception e) {
> > > > + log("Error processing " + o, Project.MSG_ERR);
> > > > + if (_failOnError) {
> > > > + throw new BuildException(e);
> > > > + }
> > > > + break;
> > > > + }
> > > > + }
> > > > +
> > > > + TempFileManager.cleanup();
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAdd.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAdd.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAdd.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAdd.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,171 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.cline;
> > > > +
> > > > +import org.apache.ode.utils.cli.*;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +import org.apache.ode.utils.xml.capture.XmlDependencyScanner;
> > > > +
> > > > +import java.io.File;
> > > > +import java.io.FileNotFoundException;
> > > > +import java.io.IOException;
> > > > +import java.net.MalformedURLException;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +import java.net.URL;
> > > > +import java.util.Iterator;
> > > > +import java.util.Map;
> > > > +
> > > > +
> > > > +/**
> > > > + * Command-line tool for adding resoruces to resource repository.
> > > > + * @see [EMAIL PROTECTED] com.fs.utils.rr.ResourceRepository}
> > > > + * @see [EMAIL PROTECTED] com.fs.utils.rr.URLResourceRepository}
> > > > + * @see [EMAIL PROTECTED] ResourceRepositoryBuilder}
> > > > + */
> > > > +public class RrAdd extends BaseCommandlineTool {
> > > > +
> > > > + private static final Flag ARG_RECURSE = new Flag("r","add
> > recursively",
> > > > true);
> > > > + private static final FlagWithArgument ARG_BASEDIR = new
> > > > FlagWithArgument("src","src-uri", "source URI (for resolving realtive
> > URIs)
> > > > ", true);
> > > > + private static final FlagWithArgument ARG_ALIAS = new
> > > > FlagWithArgument("dest", "dest-uri", "destination URI", true);
> > > > + private static final Argument ARG_RRDIR = new Argument("rr-dir",
> > > > "destination resource repository directory" ,false);
> > > > + private static final MultiArgument ARG_SRC = new
> > > > MultiArgument("resource", "resource URI(s)", false);
> > > > + private static final Fragments CLINE = new Fragments(new
> > > > CommandlineFragment[] {
> > > > + LOGGING, ARG_RECURSE, ARG_BASEDIR, ARG_ALIAS, ARG_RRDIR,
> > ARG_SRC
> > > > + });
> > > > +
> > > > + private static final String SYNOPSIS = "add resources to a resource
> > > > repository.";
> > > > +
> > > > + public static void main(String[] args) {
> > > > + setClazz(RrAdd.class);
> > > > + if (args.length == 0 || HELP.matches(args)) {
> > > > + ConsoleFormatter.printSynopsis(getProgramName(),SYNOPSIS, new
> > > > Fragments[] {
> > > > + CLINE, HELP
> > > > + });
> > > > + System.exit(0);
> > > > + } else if (!CLINE.matches(args)) {
> > > > + consoleErr("INVALID COMMANDLINE: Try \"" + getProgramName() + "
> > > > -h\" for help.");
> > > > + System.exit(-1);
> > > > + }
> > > > + registerTempFileManager();
> > > > + initLogging();
> > > > + boolean quiet = QUIET_F.isSet();
> > > > + ResourceRepositoryBuilder rr = null;
> > > > + File rrdir = new File(ARG_RRDIR.getValue());
> > > > + rrdir.mkdirs();
> > > > + try {
> > > > + rr = new ResourceRepositoryBuilder(rrdir);
> > > > + } catch (FileNotFoundException fnf) {
> > > > + consoleErr("Resource repository not found.");
> > > > + System.exit(-2);
> > > > + } catch (IOException e) {
> > > > + consoleErr("Error reading resource repository.");
> > > > + System.exit(-2);
> > > > + }
> > > > +
> > > > + URI srcRoot,destRoot;
> > > > + try {
> > > > + srcRoot = ARG_BASEDIR.getValue() == null ? new
> > File("./").toURI() :
> > > > new URI(ARG_BASEDIR.getValue());
> > > > + } catch (URISyntaxException e) {
> > > > + consoleErr("Malformed source URI: " + ARG_BASEDIR.getValue());
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + if (!srcRoot.isAbsolute()) {
> > > > + consoleErr("Source URI must be absolute: " + srcRoot);
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + try {
> > > > + destRoot = ARG_ALIAS.getValue() == null ? null : new
> > > > URI(ARG_ALIAS.getValue());
> > > > + } catch (URISyntaxException e) {
> > > > + consoleErr("Malformed destination URI: " +
> > ARG_ALIAS.getValue());
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + URI original[] = new URI[ARG_SRC.getValues().length];
> > > > + URI source[] = new URI[original.length];
> > > > + URI dest[] = new URI[original.length];
> > > > + URL urls[] = new URL[original.length];
> > > > + if (destRoot != null && srcRoot == null) {
> > > > + consoleErr("A source URI must be specified when a destination
> > URI
> > > > is given.");
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + for (int i = 0; i < original.length; ++i) {
> > > > + try {
> > > > + original[i] = new URI(ARG_SRC.getValues()[i]);
> > > > + } catch (URISyntaxException use) {
> > > > + consoleErr("Malformed resource URI: " +
> > ARG_SRC.getValues()[i]);
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + URI relative = srcRoot.relativize(original[i]);
> > > > + source[i] = srcRoot.resolve(original[i]);
> > > > + dest[i] = destRoot == null ? source[i] : destRoot.resolve
> > > > (relative);
> > > > +
> > > > +
> > > > + try {
> > > > + urls[i] = source[i].toURL();
> > > > + } catch (MalformedURLException e) {
> > > > + consoleErr("Unrecognized URI: " + source[i]);
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > + }
> > > > +
> > > > +
> > > > + for (int i = 0; i < source.length; ++i) {
> > > > + if (ARG_RECURSE.isSet()) {
> > > > + addRecursive(rr,srcRoot,destRoot, source[i]);
> > > > + } else {
> > > > +
> > > > + if (!quiet && rr.containsResource(dest[i]))
> > > > + consoleErr("Overwriting existing resource for " + dest[i]);
> > > > + try {
> > > > + rr.addURI(dest[i],urls[i]);
> > > > + } catch (IOException zre) {
> > > > + consoleErr("Error writing " + dest[i]
> > > > + + " to the repository.");
> > > > + System.exit(-6);
> > > > + }
> > > > + }
> > > > + }
> > > > +
> > > > + System.exit(0);
> > > > + }
> > > > +
> > > > +
> > > > + private static void addRecursive(ResourceRepositoryBuilder rr, URI
> > > > base, URI alias, URI target) {
> > > > + XmlDependencyScanner scanner = new XmlDependencyScanner();
> > > > + scanner.process(target);
> > > > + if (scanner.isError()) {
> > > > + Map.Entry<URI, Exception> e = scanner.getErrors
> > > > ().entrySet().iterator().next();
> > > > + consoleErr("Error scanning " + e.getKey() + " : " + e.getValue
> > ());
> > > > + System.exit(-3);
> > > > + return;
> > > > + }
> > > > +
> > > > + for (Iterator<URI> i = scanner.getURIs().iterator();i.hasNext();
> > ) {
> > > > + URI uri = i.next();
> > > > + URI relative = base.relativize(uri);
> > > > + URI aliased = alias == null ? uri : alias.resolve(relative);
> > > > + try {
> > > > + rr.addURI(aliased,uri.toURL());
> > > > + } catch (IOException ioex) {
> > > > + consoleErr("Error reading/writing resource " + target);
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > + }
> > > > +
> > > > + }
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAlias.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAlias.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAlias.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrAlias.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,100 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.cline;
> > > > +
> > > > +import org.apache.ode.utils.cli.*;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +
> > > > +import java.io.File;
> > > > +import java.io.FileNotFoundException;
> > > > +import java.io.IOException;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +
> > > > +
> > > > +/**
> > > > + * Command-line tool for adding aliases to a resource repository.
> > > > + */
> > > > +public class RrAlias extends BaseCommandlineTool {
> > > > +
> > > > + private static final Argument ARG_RRDIR = new
> > LastArgument("rr-dir",
> > > > + "destination resource repository",false);
> > > > + private static final Argument EXISTING_A = new Argument("resource",
> > > > + "URI of an existing repository resource",false);
> > > > + private static final Argument NEW_A = new Argument("alias",
> > > > + "new alias URI",false);
> > > > +
> > > > + private static final Fragments CLINE = new Fragments(new
> > > > CommandlineFragment[] {
> > > > + LOGGING, ARG_RRDIR, EXISTING_A, NEW_A
> > > > + });
> > > > +
> > > > + private static final String SYNOPSIS = "add an alias from an
> > existing
> > > > URI to a new URI.";
> > > > +
> > > > + public static void main(String[] args) {
> > > > + registerTempFileManager();
> > > > +
> > > > + if (args.length == 0 || HELP.matches(args)) {
> > > > + ConsoleFormatter.printSynopsis(getProgramName(),SYNOPSIS, new
> > > > Fragments[] {
> > > > + CLINE, HELP
> > > > + });
> > > > + System.exit(0);
> > > > + } else if (!CLINE.matches(args)) {
> > > > + consoleErr("INVALID COMMANDLINE: Try \"" + getProgramName() + "
> > > > -h\" for help.");
> > > > + System.exit(-1);
> > > > + }
> > > > +
> > > > +
> > > > + initLogging();
> > > > +
> > > > + URI resource;
> > > > + URI alias;
> > > > + try {
> > > > + resource = new URI(EXISTING_A.getValue());
> > > > + } catch (URISyntaxException e) {
> > > > + consoleErr("Malformed URI " + EXISTING_A.getValue());
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + try {
> > > > + alias = new URI(NEW_A.getValue());
> > > > + } catch (URISyntaxException e) {
> > > > + consoleErr("Malformed URI " + EXISTING_A.getValue());
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + ResourceRepositoryBuilder rr = null;
> > > > + File rrdir = new File(ARG_RRDIR.getValue());
> > > > + rrdir.mkdirs();
> > > > + try {
> > > > + rr = new ResourceRepositoryBuilder(rrdir);
> > > > + } catch (FileNotFoundException fnf) {
> > > > + consoleErr("Resource repository not found.");
> > > > + System.exit(-2);
> > > > + } catch (IOException e) {
> > > > + consoleErr("Error reading resource repository.");
> > > > + System.exit(-2);
> > > > + }
> > > > +
> > > > + if (!rr.containsResource(resource)) {
> > > > + consoleErr("The resource " + resource + " is not in the
> > > > repository.");
> > > > + System.exit(-3);
> > > > + }
> > > > +
> > > > + if (rr.containsResource(alias) && !QUIET_F.isSet()) {
> > > > + consoleErr("The resource " + NEW_A.getValue() +
> > > > + " is already bound in the repository and will be
> > overwritten");
> > > > + }
> > > > +
> > > > + try {
> > > > + rr.addAlias(alias, resource);
> > > > + } catch (IOException ex) {
> > > > + consoleErr("The resource " + resource + " is not in the
> > > > repository.");
> > > > + }
> > > > + System.exit(0);
> > > > + }
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrDrop.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrDrop.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrDrop.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrDrop.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,89 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.cline;
> > > > +
> > > > +import org.apache.ode.utils.cli.*;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryBuilder;
> > > > +
> > > > +import java.io.File;
> > > > +import java.io.IOException;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +
> > > > +
> > > > +/**
> > > > + * Command line tool for removing resources from a resource
> > repository.
> > > > + */
> > > > +public class RrDrop extends BaseCommandlineTool {
> > > > +
> > > > + private static final Argument ZIPRR_LA = new Argument("rr-dir",
> > > > + "resource repository directory",false);
> > > > +
> > > > + private static final MultiArgument RESOURCES_MA = new
> > > > MultiArgument("uri",
> > > > + "URI(s) of resource(s) to remove",false);
> > > > +
> > > > + private static final Fragments CLINE = new Fragments(new
> > > > CommandlineFragment[] {
> > > > + LOGGING, ZIPRR_LA, RESOURCES_MA
> > > > + });
> > > > +
> > > > + private static final String SYNOPSIS =
> > > > + "remove one or more URI references from a resource
> > repository. ";
> > > > +
> > > > + public static void main(String[] args) {
> > > > + registerTempFileManager();
> > > > + if (args.length == 0 || HELP.matches(args)) {
> > > > + ConsoleFormatter.printSynopsis(getProgramName(),SYNOPSIS,new
> > > > Fragments[] {
> > > > + CLINE, HELP
> > > > + });
> > > > + System.exit(-1);
> > > > + }
> > > > +
> > > > + initLogging();
> > > > +
> > > > + URI[] uris = new URI[RESOURCES_MA.getValues().length];
> > > > + for (int i = 0; i < uris.length; ++i)
> > > > + try {
> > > > + uris[i] = new URI(RESOURCES_MA.getValues()[i]);
> > > > + } catch (URISyntaxException use) {
> > > > + consoleErr("Malformed URI " + RESOURCES_MA.getValues()[i]);
> > > > + System.exit(-2);
> > > > + }
> > > > +
> > > > + boolean quiet = QUIET_F.isSet();
> > > > + File rrdir = new File(ZIPRR_LA.getValue());
> > > > + if (!rrdir.exists()) {
> > > > + consoleErr("The resource repository " + rrdir + " does not
> > > > exist.");
> > > > + System.exit(-3);
> > > > + }
> > > > +
> > > > + ResourceRepositoryBuilder rr;
> > > > + try {
> > > > + rr = new ResourceRepositoryBuilder(rrdir);
> > > > + } catch (IOException zre) {
> > > > + consoleErr("Error reading resource repository " + rrdir);
> > > > + System.exit(-2);
> > > > + return;
> > > > + }
> > > > +
> > > > + for (int i=0; i<uris.length; ++i) {
> > > > + if (!rr.containsResource(uris[i])) {
> > > > + if (!quiet) {
> > > > + consoleErr(uris[i] + " is not in the repository.");
> > > > + }
> > > > + } else {
> > > > + try {
> > > > + rr.removeURI(uris[i]);
> > > > + } catch (IOException ioex) {
> > > > + consoleErr("Error removing URI " + uris[i] + " from
> > resource
> > > > repository.");
> > > > + System.exit(-2);
> > > > + return;
> > > > +
> > > > + }
> > > > + }
> > > > + }
> > > > + System.exit(0);
> > > > + }
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrGet.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrGet.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrGet.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrGet.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,89 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.cline;
> > > > +
> > > > +import org.apache.ode.utils.StreamUtils;
> > > > +import org.apache.ode.utils.cli.*;
> > > > +import org.apache.ode.utils.rr.ResourceRepository;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryException;
> > > > +import org.apache.ode.utils.rr.URLResourceRepository;
> > > > +
> > > > +import java.io.File;
> > > > +import java.io.IOException;
> > > > +import java.io.InputStream;
> > > > +import java.net.URI;
> > > > +import java.net.URISyntaxException;
> > > > +
> > > > +
> > > > +/**
> > > > + * Command-line tool for getting (displaying) resources in a resource
> > > > + * repository.
> > > > + */
> > > > +public class RrGet extends BaseCommandlineTool {
> > > > +
> > > > + private static final Argument ARG_RRDIR = new Argument("rr-dir",
> > > > + "resource repository directory"
> > > > + ,false);
> > > > + private static final Argument ARG_RESURI = new Argument("uri",
> > > > + "URI to retrieve",false);
> > > > +
> > > > + private static final Fragments CLINE = new Fragments(new
> > > > CommandlineFragment[] {
> > > > + LOGGING, ARG_RRDIR, ARG_RESURI
> > > > + });
> > > > +
> > > > + private static final String SYNOPSIS = "retrieve a resource from a
> > > > resource repository to standard out";
> > > > +
> > > > + public static void main(String[] args) {
> > > > + setClazz(RrGet.class);
> > > > + if (args.length == 0 || HELP.matches(args)) {
> > > > + ConsoleFormatter.printSynopsis(getProgramName(),SYNOPSIS, new
> > > > Fragments[] {
> > > > + CLINE, HELP
> > > > + });
> > > > + System.exit(0);
> > > > + } else if (!CLINE.matches(args)) {
> > > > + consoleErr("INVALID COMMANDLINE: Try \"" + getProgramName() + "
> > > > -h\" for help.");
> > > > + System.exit(-1);
> > > > + }
> > > > + registerTempFileManager();
> > > > + initLogging();
> > > > + boolean quiet = QUIET_F.isSet();
> > > > +
> > > > + URI uri;
> > > > + try {
> > > > + uri = new URI(ARG_RESURI.getValue());
> > > > + } catch (URISyntaxException ex) {
> > > > + consoleErr("Malformed URI " +
> > > > ARG_RESURI.getValue());
> > > > + System.exit(-2);
> > > > + throw new IllegalStateException();
> > > > + }
> > > > +
> > > > + ResourceRepository rr;
> > > > + try {
> > > > + rr = new URLResourceRepository(new
> > > > File(ARG_RRDIR.getValue()).toURI());
> > > > + } catch (ResourceRepositoryException zre) {
> > > > + consoleErr(zre.getMessage());
> > > > + System.exit(-2);
> > > > + throw new IllegalStateException();
> > > > + }
> > > > +
> > > > + if (rr.containsResource(uri)) {
> > > > + try {
> > > > + InputStream is = rr.resourceAsStream(uri);
> > > > + StreamUtils.copy(System.out,is);
> > > > + rr.close();
> > > > + } catch (IOException ioe) {
> > > > + consoleErr("IO Error reading resource: " + ioe.getMessage());
> > > > + System.exit(-4);
> > > > + }
> > > > + } else {
> > > > + if(!quiet) {
> > > > + consoleErr(ARG_RESURI.getValue() + " is not present in the
> > > > repository.");
> > > > + System.exit(-3);
> > > > + }
> > > > + }
> > > > + System.exit(0);
> > > > + }
> > > > +}
> > > >
> > > > Added:
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrList.java
> > > > URL:
> > > >
> > http://svn.apache.org/viewvc/incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrList.java?rev=427676&view=auto
> > > >
> > > >
> > ==============================================================================
> > > > ---
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrList.java
> > > > (added)
> > > > +++
> > > >
> > incubator/ode/trunk/tools/src/main/java/org/apache/ode/tools/rr/cline/RrList.java
> > > > Tue Aug 1 11:52:47 2006
> > > > @@ -0,0 +1,66 @@
> > > > +/*
> > > > + * File: $RCSfile$
> > > > + * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
> > > > + *
> > > > + */
> > > > +package org.apache.ode.tools.rr.cline;
> > > > +
> > > > +import org.apache.ode.utils.cli.*;
> > > > +import org.apache.ode.utils.rr.ResourceRepositoryException;
> > > > +import org.apache.ode.utils.rr.URLResourceRepository;
> > > > +
> > > > +import java.io.File;
> > > > +import java.net.URI;
> > > > +import java.util.Iterator;
> > > > +import java.util.Map;
> > > > +
> > > > +
> > > > +/**
> > > > + * Command-line utility for listing resources in a resource
> > repository
> > > > + * directory.
> > > > + */
> > > > +public class RrList extends BaseCommandlineTool {
> > > > +
> > > > + private static final Argument ARG_RR = new Argument(
> > > > + "rr-dir","resource repository directory",false);
> > > > +
> > > > + private static final Fragments CLINE = new Fragments(new
> > > > CommandlineFragment[] {
> > > > + LOGGING, ARG_RR
> > > > + });
> > > > +
> > > > + private static final String SYNOPSIS = "enumerate the contents of a
> > > > ZIPRR.";
> > > > +
> > > > + public static void main(String[] args) {
> > > > + registerTempFileManager();
> > > > + if (args.length == 0 || HELP.matches(args)) {
> > > > + ConsoleFormatter.printSynopsis(getProgramName(),SYNOPSIS,new
> > > > Fragments[] {
> > > > + CLINE, HELP
> > > > + });
> > > > + System.exit(0);
> > > > + } else if (!CLINE.matches(args)) {
> > > > + consoleErr("INVALID COMMANDLINE: Try \"" + getProgramName() + "
> > > > -h\" for help.");
> > > > + System.exit(-1);
> > > > + }
> > > > +
> > > > + String rrf = ARG_RR.getValue();
> > > > + initLogging();
> > > > + URLResourceRepository rr;
> > > > + try {
> > > > + rr = new URLResourceRepository(new File(rrf).toURI());
> > > > + } catch (ResourceRepositoryException zre) {
> > > > + consoleErr(zre.getMessage());
> > > > + System.exit(-2);
> > > > + throw new IllegalStateException();
> > > > + }
> > > > + Map<URI, String> resources = rr.getTableOfContents();
> > > > + System.out.println( resources.size()+ " resource" + (
> > resources.size()==1?"":"s")
> > > > +
> > > > + " in " + rr.getBaseURL());
> > > > + for (Iterator<Map.Entry<URI,String>> i = resources.entrySet
> > ().iterator();i.hasNext();)
> > > > {
> > > > + Map.Entry<URI,String> me = i.next();
> > > > + System.out.print(" " + me.getKey() + " --> ");
> > > > + System.out.println(me.getValue());
> > > > + }
> > > > + System.exit(0);
> > > > + }
> > > > +
> > > > +}
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Cheers,
> > > Guillaume Nodet
> > >
> > >
> >
> >
> > --
> > [EMAIL PROTECTED]
> > http://mult.ifario.us/
> >
>
>
>