You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by bl...@apache.org on 2003/07/07 18:50:44 UTC
cvs commit: avalon-excalibur Avalon Excalibur.iml build.xml depchecker.xml forrestbuild.xml maven-common-gump-build.xml maven.xml project.xml status.xml
bloritsch 2003/07/07 09:50:43
Modified: compatibility/src/xdocs index.xml
compatibility project.xml
component/examples/instrument-manager/conf components.xml
instrument.xml
component/examples/instrument-manager project.properties
component/src/xdocs index.xml
component project.xml
configuration project.properties
datasource project.properties
event project.properties
extension/src/xdocs index.xml
i18n/src/xdocs book.xml
instrument/src/xdocs instrumentables.xml instruments.xml
lifecycle/src/xdocs extension.xml
logger/src/test/org/apache/avalon/excalibur/logger/test
log4j.xml
site/src/xdocs index.xml
sourceresolve/src/java/org/apache/excalibur/source/impl
FTPSource.java FTPSourceFactory.java
sourceresolve/src/test/org/apache/excalibur/source/test
SourceUtilTestCase.java
sourceresolve build.xml fortress-meta.xml
xmlutil/src/xdocs index.xml
. build.xml depchecker.xml forrestbuild.xml
maven-common-gump-build.xml maven.xml project.xml
status.xml
Added: . Avalon Excalibur.iml
Log:
Fix CRLF and fix inadvertant adding of intermediate files
Revision Changes Path
1.2 +15 -15 avalon-excalibur/compatibility/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/compatibility/src/xdocs/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 11 Mar 2003 14:08:27 -0000 1.1
+++ index.xml 7 Jul 2003 16:50:40 -0000 1.2
@@ -12,30 +12,30 @@
<section><title>Introduction</title>
<p>
Avalon is minimizing the number of projects and utilities it maintains
- because we need to focus on our charter. However, we do have users
- who have used some of the projects that were previously released. We
- can't just ignore their needs. The compatibility project is the
- graveyard for projects we are no longer supporting. It exists simply
- to let our users (and in some cases, our users' users) continue to
- use their legacy components until they migrate to better supported
- libraries.
+ because we need to focus on our charter. However, we do have users
+ who have used some of the projects that were previously released. We
+ can't just ignore their needs. The compatibility project is the
+ graveyard for projects we are no longer supporting. It exists simply
+ to let our users (and in some cases, our users' users) continue to
+ use their legacy components until they migrate to better supported
+ libraries.
</p>
<p>
Most of the packages in this project have replacement libraries, but
- it is inevitable that some in here may not have a replacement yet--
- but the package falls outside our charter. If you would like to
- volunteer to maintain those packages in your own library, please
- contact the <link href="mailto:dev@avalon.apache.org">Avalon
+ it is inevitable that some in here may not have a replacement yet--
+ but the package falls outside our charter. If you would like to
+ volunteer to maintain those packages in your own library, please
+ contact the <link href="mailto:dev@avalon.apache.org">Avalon
Developer's List</link> and let them know of your availability.
Packages with a definite and released replacement will be completely
- deprecated and point to the new classes in the new library.
+ deprecated and point to the new classes in the new library.
</p>
</section>
<section><title>Contents</title>
<p>
Currently the Compatibility has the packages in the following list.
- If the package has a replacement, then the replacement will be listed
- as well:
+ If the package has a replacement, then the replacement will be listed
+ as well:
</p>
<ul>
<li>org.apache.avalon.excalibur.cli --> <link href="http://jakarta.apache.org/commons/cli/index.html">Jakarta Commons CLI</link></li>
1.5 +1 -1 avalon-excalibur/compatibility/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/compatibility/project.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- project.xml 7 Jun 2003 15:12:19 -0000 1.4
+++ project.xml 7 Jul 2003 16:50:40 -0000 1.5
@@ -28,4 +28,4 @@
library.
</description>
-</project>
\ No newline at end of file
+</project>
1.3 +1 -1 avalon-excalibur/component/examples/instrument-manager/conf/components.xml
Index: components.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/component/examples/instrument-manager/conf/components.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- components.xml 16 Aug 2002 03:44:14 -0000 1.2
+++ components.xml 7 Jul 2003 16:50:40 -0000 1.3
@@ -3,4 +3,4 @@
<!-- Application components. -->
<!-- =============================================================== -->
<example-instrumentable logger="example-instrumentable"/>
-</components>
\ No newline at end of file
+</components>
1.3 +1 -1 avalon-excalibur/component/examples/instrument-manager/conf/instrument.xml
Index: instrument.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/component/examples/instrument-manager/conf/instrument.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- instrument.xml 16 Aug 2002 03:44:14 -0000 1.2
+++ instrument.xml 7 Jul 2003 16:50:40 -0000 1.3
@@ -87,4 +87,4 @@
</instrument>
</instrumentable>
</instrumentables>
-</instrument>
\ No newline at end of file
+</instrument>
1.2 +1 -1 avalon-excalibur/component/examples/instrument-manager/project.properties
Index: project.properties
===================================================================
RCS file: /home/cvs/avalon-excalibur/component/examples/instrument-manager/project.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project.properties 7 Jun 2003 19:19:15 -0000 1.1
+++ project.properties 7 Jul 2003 16:50:40 -0000 1.2
@@ -3,4 +3,4 @@
# P R O J E C T P R O P E R T I E S
# -------------------------------------------------------------------
maven.repo.remote = http://lsd.student.utwente.nl/repository,http://www.apache.org/dist/avalon,http://www.ibiblio.org/maven
-
\ No newline at end of file
+
1.10 +9 -9 avalon-excalibur/component/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/component/src/xdocs/index.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- index.xml 7 Jul 2003 16:31:13 -0000 1.9
+++ index.xml 7 Jul 2003 16:50:40 -0000 1.10
@@ -33,17 +33,17 @@
<section><title>Automated Component Management</title>
<p>
The <code>org.apache.avalon.excalibur.component</code> package
- in Excalibur will allow you to manage components specified in
- a configuration file. The beauty of this approach is that the
- ComponentManagers and ComponentSelectors become the Container
- and automagically maintain your Component's lifecycle.
+ in Excalibur will allow you to manage components specified in
+ a configuration file. The beauty of this approach is that the
+ ComponentManagers and ComponentSelectors become the Container
+ and automagically maintain your Component's lifecycle.
</p>
<p>
The Excalibur Component Management infrastructure uses a
- RoleManager to help your configuration files remain readable.
- All classes are instantiated using the current thread's
- ContextClassLoader--unless you pass a different one in the
- constructor.
+ RoleManager to help your configuration files remain readable.
+ All classes are instantiated using the current thread's
+ ContextClassLoader--unless you pass a different one in the
+ constructor.
</p>
</section>
<section><title>The Developing with Avalon paper</title>
1.2 +1 -1 avalon-excalibur/component/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/component/project.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project.xml 7 Jun 2003 16:30:24 -0000 1.1
+++ project.xml 7 Jul 2003 16:50:40 -0000 1.2
@@ -73,4 +73,4 @@
<properties>
<use-forrest>true</use-forrest>
</properties>
-</project>
\ No newline at end of file
+</project>
1.2 +1 -1 avalon-excalibur/configuration/project.properties
Index: project.properties
===================================================================
RCS file: /home/cvs/avalon-excalibur/configuration/project.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project.properties 7 Jun 2003 16:43:52 -0000 1.1
+++ project.properties 7 Jul 2003 16:50:40 -0000 1.2
@@ -3,4 +3,4 @@
# P R O J E C T P R O P E R T I E S
# -------------------------------------------------------------------
maven.repo.remote = http://lsd.student.utwente.nl/repository,http://www.apache.org/dist/avalon,http://www.ibiblio.org/maven
-
\ No newline at end of file
+
1.4 +1 -1 avalon-excalibur/datasource/project.properties
Index: project.properties
===================================================================
RCS file: /home/cvs/avalon-excalibur/datasource/project.properties,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- project.properties 7 Jun 2003 19:21:06 -0000 1.3
+++ project.properties 7 Jul 2003 16:50:40 -0000 1.4
@@ -3,4 +3,4 @@
# P R O J E C T P R O P E R T I E S
# -------------------------------------------------------------------
maven.repo.remote = http://lsd.student.utwente.nl/repository,http://www.apache.org/dist/avalon,http://www.ibiblio.org/maven
-
\ No newline at end of file
+
1.7 +1 -1 avalon-excalibur/event/project.properties
Index: project.properties
===================================================================
RCS file: /home/cvs/avalon-excalibur/event/project.properties,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- project.properties 7 Jun 2003 19:26:23 -0000 1.6
+++ project.properties 7 Jul 2003 16:50:41 -0000 1.7
@@ -3,4 +3,4 @@
# P R O J E C T P R O P E R T I E S
# -------------------------------------------------------------------
maven.repo.remote = http://lsd.student.utwente.nl/repository,http://www.apache.org/dist/avalon,http://www.ibiblio.org/maven
-
\ No newline at end of file
+
1.7 +1 -1 avalon-excalibur/extension/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/extension/src/xdocs/index.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- index.xml 8 Aug 2002 05:11:23 -0000 1.6
+++ index.xml 7 Jul 2003 16:50:41 -0000 1.7
@@ -21,4 +21,4 @@
</p>
</s1>
</body>
-</document>
\ No newline at end of file
+</document>
1.7 +1 -1 avalon-excalibur/i18n/src/xdocs/book.xml
Index: book.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/i18n/src/xdocs/book.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- book.xml 27 Feb 2003 19:18:25 -0000 1.6
+++ book.xml 7 Jul 2003 16:50:41 -0000 1.7
@@ -2,7 +2,7 @@
<!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" "book-cocoon-v10.dtd">
<book software="Excalibur Fortress"
- title="Excalibur Fortress"
+ title="Excalibur Fortress"
copyright="@year@ The Apache Software Foundation"
xmlns:xlink="http://www.w3.org/1999/xlink">
1.8 +7 -7 avalon-excalibur/instrument/src/xdocs/instrumentables.xml
Index: instrumentables.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/instrument/src/xdocs/instrumentables.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- instrumentables.xml 26 Mar 2003 10:40:23 -0000 1.7
+++ instrumentables.xml 7 Jul 2003 16:50:41 -0000 1.8
@@ -34,13 +34,13 @@
The third and fourth methods, getInstruments and getChildInstrumentables, are
each called once by an InstrumentManager to query the Instrumentable for a list
of the Instruments and child Instrumentables that it is making available.
- </p>
- <!-- temporarily commented out until there is some content
+ </p>
+ <!-- temporarily commented out until there is some content
<p>
- Please see the <link href="instrumentable-howto.html">Instrumentable How-To</link>
+ Please see the <link href="instrumentable-howto.html">Instrumentable How-To</link>
for an example.
- </p>
- -->
+ </p>
+ -->
<p>
Implementing the Instrumentable interface directly requires a little bit of work,
but is necessary in cases where the parent class can not be controlled. In most
@@ -54,9 +54,9 @@
classpath.)
</p>
<p>
- <!-- Please see the
+ <!-- Please see the
<link href="abstract-instrumentable-howto.html">AbstractInstrumentable How-To</link>
- for an example. --> An example of the AbstractLogEnabledInstrumentable helper class is
+ for an example. --> An example of the AbstractLogEnabledInstrumentable helper class is
not included as its usage is identical to AbstractInstrumentable.
</p>
</section>
1.4 +1 -1 avalon-excalibur/instrument/src/xdocs/instruments.xml
Index: instruments.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/instrument/src/xdocs/instruments.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- instruments.xml 28 Feb 2003 16:26:04 -0000 1.3
+++ instruments.xml 7 Jul 2003 16:50:41 -0000 1.4
@@ -23,7 +23,7 @@
where an InstrumentManager is not present, or where it is present but output is
not currently being collected, the Instrument effectively becomes a noop.
</p>
- <p>
+ <p>
There are currently two types of Instruments available for use by components.
So far they have proven to be enough to profile any type of quantitative
information.
1.3 +13 -13 avalon-excalibur/lifecycle/src/xdocs/extension.xml
Index: extension.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/lifecycle/src/xdocs/extension.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- extension.xml 11 Mar 2003 15:53:56 -0000 1.2
+++ extension.xml 7 Jul 2003 16:50:41 -0000 1.3
@@ -82,9 +82,9 @@
</p>
<ol>
- <li>Define the new component interface
+ <li>Define the new component interface
- <br/><br/>
+ <br/><br/>
Create the new interface defining the operations that should be called upon components
that implement this interface. Using the previously mentioned examples, this would be
your <code>SecurityManageable</code>, <code>Cacheable</code>, <code>Decryptable</code>,
@@ -92,9 +92,9 @@
</li>
<li>Define an extension object that calls upon the methods defined in the new interface,
- during one or more of the pre-defined phases of component's lifecycle
+ during one or more of the pre-defined phases of component's lifecycle
- <br/><br/>
+ <br/><br/>
Create a class that implements the <code>Creator</code> and/or <code>Accessor</code>
interfaces and implemets the interaction with target components supplied under the
create, destroy, access and relase operations.
@@ -102,7 +102,7 @@
<li>Register your extension object
- <br/><br/>
+ <br/><br/>
This depends on the container you are using. In
Merlin you need to include the <extensions> tag in the component .xinfo file and
Merlin will automatically recognize it. In Fortress you register the extension object
@@ -110,8 +110,8 @@
</li>
<li>Implement the new component interface on your component
- <br/><br/>
-
+ <br/><br/>
+
Add the new <code>implements</code> clause to your Component, or Component implementation,
and write any methods defined in the implemented interface.
<br/><br/>
@@ -129,28 +129,28 @@
</p>
<ol>
- <li>Creation
+ <li>Creation
- <br/><br/>
+ <br/><br/>
When the component is instantiated.
</li>
<li>Access
- <br/><br/>
+ <br/><br/>
When the component is accessed via a ServiceManager/Selector
(<code>lookup()/select()</code>).
</li>
<li>Release
- <br/><br/>
+ <br/><br/>
When the component is released via a ServiceManager/Selector (<code>release()</code>).
</li>
<li>Destruction
- <br/><br/>
+ <br/><br/>
When the component is decommissioned, ready for garbage collection.
</li>
1.2 +1 -1 avalon-excalibur/logger/src/test/org/apache/avalon/excalibur/logger/test/log4j.xml
Index: log4j.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/logger/src/test/org/apache/avalon/excalibur/logger/test/log4j.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- log4j.xml 28 Oct 2002 00:36:03 -0000 1.1
+++ log4j.xml 7 Jul 2003 16:50:41 -0000 1.2
@@ -14,4 +14,4 @@
<appender-ref ref="FILE"/>
</root>
-</log4j:configuration>
\ No newline at end of file
+</log4j:configuration>
1.11 +7 -7 avalon-excalibur/site/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/site/src/xdocs/index.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- index.xml 2 Mar 2003 06:58:15 -0000 1.10
+++ index.xml 7 Jul 2003 16:50:41 -0000 1.11
@@ -17,15 +17,15 @@
</p>
<p>
Not all of the code in excalibur CVS nor all the packages
- listed in the menu have been released; some are in an
- alpha or planning stage.
- Individual packages inside Excalibur that have been released
- can be downloaded from
- <a href="http://avalon.apache.org/bindownload.cgi">here</a>.
+ listed in the menu have been released; some are in an
+ alpha or planning stage.
+ Individual packages inside Excalibur that have been released
+ can be downloaded from
+ <a href="http://avalon.apache.org/bindownload.cgi">here</a>.
</p>
<warn>
Packages that have not been officially released are of varying
- quality and/or stability. They are <strong>NOT</strong>
+ quality and/or stability. They are <strong>NOT</strong>
meant for production use. You have been warned.
</warn>
</section>
1.3 +295 -295 avalon-excalibur/sourceresolve/src/java/org/apache/excalibur/source/impl/FTPSource.java
Index: FTPSource.java
===================================================================
RCS file: /home/cvs/avalon-excalibur/sourceresolve/src/java/org/apache/excalibur/source/impl/FTPSource.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FTPSource.java 4 Jul 2003 15:09:49 -0000 1.2
+++ FTPSource.java 7 Jul 2003 16:50:41 -0000 1.3
@@ -71,307 +71,307 @@
* @author <a href="mailto:unico@hippo.nl">Unico Hommes</a>
*/
public class FTPSource extends URLSource implements ModifiableSource
-{
-
- public FTPSource()
- {
- super();
- }
+{
+
+ public FTPSource()
+ {
+ super();
+ }
- /**
- * Can the data sent to an <code>OutputStream</code> returned by
- * {@link #getOutputStream()} be cancelled ?
- *
- * @return <code>true</code> if the stream can be cancelled
- */
- public boolean canCancel( final OutputStream stream )
- {
- if (stream instanceof FTPSourceOutputStream)
- {
- FTPSourceOutputStream fsos = (FTPSourceOutputStream) stream;
- if ( fsos.getSource() == this )
- {
- return fsos.canCancel();
- }
- }
+ /**
+ * Can the data sent to an <code>OutputStream</code> returned by
+ * {@link #getOutputStream()} be cancelled ?
+ *
+ * @return <code>true</code> if the stream can be cancelled
+ */
+ public boolean canCancel( final OutputStream stream )
+ {
+ if (stream instanceof FTPSourceOutputStream)
+ {
+ FTPSourceOutputStream fsos = (FTPSourceOutputStream) stream;
+ if ( fsos.getSource() == this )
+ {
+ return fsos.canCancel();
+ }
+ }
- throw new IllegalArgumentException( "The stream is not associated to this source" );
- }
+ throw new IllegalArgumentException( "The stream is not associated to this source" );
+ }
- /**
- * Cancel the data sent to an <code>OutputStream</code> returned by
- * {@link #getOutputStream()}.
- * <p>
- * After cancel, the stream should not be used.
- */
- public void cancel( final OutputStream stream ) throws IOException
- {
- if (stream instanceof FTPSourceOutputStream)
- {
- FTPSourceOutputStream fsos = (FTPSourceOutputStream) stream;
- if ( fsos.getSource() == this )
- {
- try
- {
- fsos.cancel();
- }
- catch ( Exception e )
- {
- throw new SourceException( "Exception during cancel.", e );
- }
- return;
- }
- }
+ /**
+ * Cancel the data sent to an <code>OutputStream</code> returned by
+ * {@link #getOutputStream()}.
+ * <p>
+ * After cancel, the stream should not be used.
+ */
+ public void cancel( final OutputStream stream ) throws IOException
+ {
+ if (stream instanceof FTPSourceOutputStream)
+ {
+ FTPSourceOutputStream fsos = (FTPSourceOutputStream) stream;
+ if ( fsos.getSource() == this )
+ {
+ try
+ {
+ fsos.cancel();
+ }
+ catch ( Exception e )
+ {
+ throw new SourceException( "Exception during cancel.", e );
+ }
+ return;
+ }
+ }
- throw new IllegalArgumentException( "The stream is not associated to this source" );
- }
+ throw new IllegalArgumentException( "The stream is not associated to this source" );
+ }
- /**
- * Delete the source.
- */
- public void delete() throws SourceException
- {
- EnhancedFtpClient ftpClient = null;
- try
- {
- ftpClient = getFtpClient();
- final String relativePath = m_url.getPath().substring( 1 );
- ftpClient.delete( relativePath );
- }
- catch ( IOException e )
- {
- if ( e instanceof FileNotFoundException )
- {
- throw new SourceNotFoundException( e.getMessage() );
- }
- else
- {
- final String message =
- "Failure during delete";
- throw new SourceException( message, e );
- }
- }
- finally
- {
- if ( ftpClient != null )
- {
- try
- {
- ftpClient.closeServer();
- }
- catch ( IOException e ) {}
- }
- }
- }
+ /**
+ * Delete the source.
+ */
+ public void delete() throws SourceException
+ {
+ EnhancedFtpClient ftpClient = null;
+ try
+ {
+ ftpClient = getFtpClient();
+ final String relativePath = m_url.getPath().substring( 1 );
+ ftpClient.delete( relativePath );
+ }
+ catch ( IOException e )
+ {
+ if ( e instanceof FileNotFoundException )
+ {
+ throw new SourceNotFoundException( e.getMessage() );
+ }
+ else
+ {
+ final String message =
+ "Failure during delete";
+ throw new SourceException( message, e );
+ }
+ }
+ finally
+ {
+ if ( ftpClient != null )
+ {
+ try
+ {
+ ftpClient.closeServer();
+ }
+ catch ( IOException e ) {}
+ }
+ }
+ }
- /**
- * Return an {@link OutputStream} to write to.
- */
- public OutputStream getOutputStream() throws IOException
- {
- return new FTPSourceOutputStream( this );
- }
-
- /**
- * Creates an FtpClient and logs in the current user.
- */
- private final EnhancedFtpClient getFtpClient()
- throws IOException
- {
- final EnhancedFtpClient ftpClient =
- new EnhancedFtpClient( m_url.getHost() );
- ftpClient.login( getUser(), getPassword() );
- return ftpClient;
- }
-
- /**
- * @return the user part of the user info string,
- * <code>null</code> if there is no user info.
- */
- private final String getUser()
- {
- final String userInfo = m_url.getUserInfo();
- if ( userInfo != null )
- {
- int index = userInfo.indexOf( ':' );
- if ( index != -1 )
- {
- return userInfo.substring( 0, index );
- }
- }
- return null;
- }
-
- /**
- * @return the password part of the user info string,
- * <code>null</code> if there is no user info.
- */
- private final String getPassword()
- {
- final String userInfo = m_url.getUserInfo();
- if ( userInfo != null )
- {
- int index = userInfo.indexOf( ':' );
- if ( index != -1 && userInfo.length() > index + 1 )
- {
- return userInfo.substring( index + 1 );
- }
- }
- return null;
- }
-
- /**
- * Need to extend FtpClient in order to get to protected issueCommand
- * and implement additional functionality.
- */
- private static class EnhancedFtpClient extends FtpClient
- {
-
- private EnhancedFtpClient( String host ) throws IOException
- {
- super( host );
- }
-
- void delete( final String path ) throws IOException
- {
- issueCommand( "DELE " + path );
- }
-
- /**
- * Create a directory in the current working directory.
- */
- void mkdir( final String directoryName ) throws IOException
- {
- issueCommand( "MKD " + directoryName );
- }
-
- /**
- * Create all directories along a directory path if they
- * do not already exist.
- *
- * The algorithm traverses the directory tree in reversed
- * direction. cd'ing first to the deepest level
- * and if that directory doesn't exist try cd'ing to its
- * parent from where it can be created.
- *
- * NOTE: after completion the current working directory
- * will be the directory identified by directoryPath.
- */
- void mkdirs( final String directoryPath ) throws IOException
- {
- try
- {
- cd( directoryPath );
- }
- catch ( FileNotFoundException e )
- {
- // doesn't exist, create it
- String directoryName = null;
- final int index = directoryPath.lastIndexOf( '/' );
- if ( index != -1 )
- {
- final String parentDirectoryPath =
- directoryPath.substring( 0, index );
- directoryName = directoryPath.substring( index + 1 );
- mkdirs( parentDirectoryPath );
- }
- else
- {
- directoryName = directoryPath;
- }
- mkdir( directoryName );
- cd( directoryName );
- }
- }
-
- }
-
- /**
- * Buffers the output in a byte array and only writes to the remote
- * FTP location at closing time.
- */
- private static class FTPSourceOutputStream extends ByteArrayOutputStream
- {
- private final FTPSource m_source;
- private boolean m_isClosed = false;
-
- FTPSourceOutputStream( final FTPSource source )
- {
- super( 8192 );
- m_source = source;
- }
-
- public void close() throws IOException
- {
- if ( !m_isClosed )
- {
- EnhancedFtpClient ftpClient = null;
- OutputStream out = null;
- try
- {
- ftpClient = m_source.getFtpClient();
- String parentPath = null;
- String fileName = null;
- final String relativePath = m_source.m_url.getPath().substring( 1 );
- final int index = relativePath.lastIndexOf( '/' );
- if ( index != -1 )
- {
- parentPath = relativePath.substring( 0, index );
- fileName = relativePath.substring( index + 1 );
- ftpClient.mkdirs( parentPath );
- }
- else
- {
- fileName = relativePath;
- }
- out = ftpClient.put( fileName );
- final byte[] bytes = toByteArray();
- out.write( bytes );
- }
- finally
- {
- if ( out != null )
- {
- try
- {
- out.close();
- }
- catch ( IOException e ) {}
- }
- if ( ftpClient != null )
- {
- try
- {
- ftpClient.closeServer();
- }
- catch ( IOException e ) {}
- }
- m_isClosed = true;
- }
- }
- }
-
- boolean canCancel()
- {
- return !m_isClosed;
- }
+ /**
+ * Return an {@link OutputStream} to write to.
+ */
+ public OutputStream getOutputStream() throws IOException
+ {
+ return new FTPSourceOutputStream( this );
+ }
+
+ /**
+ * Creates an FtpClient and logs in the current user.
+ */
+ private final EnhancedFtpClient getFtpClient()
+ throws IOException
+ {
+ final EnhancedFtpClient ftpClient =
+ new EnhancedFtpClient( m_url.getHost() );
+ ftpClient.login( getUser(), getPassword() );
+ return ftpClient;
+ }
+
+ /**
+ * @return the user part of the user info string,
+ * <code>null</code> if there is no user info.
+ */
+ private final String getUser()
+ {
+ final String userInfo = m_url.getUserInfo();
+ if ( userInfo != null )
+ {
+ int index = userInfo.indexOf( ':' );
+ if ( index != -1 )
+ {
+ return userInfo.substring( 0, index );
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @return the password part of the user info string,
+ * <code>null</code> if there is no user info.
+ */
+ private final String getPassword()
+ {
+ final String userInfo = m_url.getUserInfo();
+ if ( userInfo != null )
+ {
+ int index = userInfo.indexOf( ':' );
+ if ( index != -1 && userInfo.length() > index + 1 )
+ {
+ return userInfo.substring( index + 1 );
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Need to extend FtpClient in order to get to protected issueCommand
+ * and implement additional functionality.
+ */
+ private static class EnhancedFtpClient extends FtpClient
+ {
+
+ private EnhancedFtpClient( String host ) throws IOException
+ {
+ super( host );
+ }
+
+ void delete( final String path ) throws IOException
+ {
+ issueCommand( "DELE " + path );
+ }
+
+ /**
+ * Create a directory in the current working directory.
+ */
+ void mkdir( final String directoryName ) throws IOException
+ {
+ issueCommand( "MKD " + directoryName );
+ }
+
+ /**
+ * Create all directories along a directory path if they
+ * do not already exist.
+ *
+ * The algorithm traverses the directory tree in reversed
+ * direction. cd'ing first to the deepest level
+ * and if that directory doesn't exist try cd'ing to its
+ * parent from where it can be created.
+ *
+ * NOTE: after completion the current working directory
+ * will be the directory identified by directoryPath.
+ */
+ void mkdirs( final String directoryPath ) throws IOException
+ {
+ try
+ {
+ cd( directoryPath );
+ }
+ catch ( FileNotFoundException e )
+ {
+ // doesn't exist, create it
+ String directoryName = null;
+ final int index = directoryPath.lastIndexOf( '/' );
+ if ( index != -1 )
+ {
+ final String parentDirectoryPath =
+ directoryPath.substring( 0, index );
+ directoryName = directoryPath.substring( index + 1 );
+ mkdirs( parentDirectoryPath );
+ }
+ else
+ {
+ directoryName = directoryPath;
+ }
+ mkdir( directoryName );
+ cd( directoryName );
+ }
+ }
+
+ }
+
+ /**
+ * Buffers the output in a byte array and only writes to the remote
+ * FTP location at closing time.
+ */
+ private static class FTPSourceOutputStream extends ByteArrayOutputStream
+ {
+ private final FTPSource m_source;
+ private boolean m_isClosed = false;
+
+ FTPSourceOutputStream( final FTPSource source )
+ {
+ super( 8192 );
+ m_source = source;
+ }
+
+ public void close() throws IOException
+ {
+ if ( !m_isClosed )
+ {
+ EnhancedFtpClient ftpClient = null;
+ OutputStream out = null;
+ try
+ {
+ ftpClient = m_source.getFtpClient();
+ String parentPath = null;
+ String fileName = null;
+ final String relativePath = m_source.m_url.getPath().substring( 1 );
+ final int index = relativePath.lastIndexOf( '/' );
+ if ( index != -1 )
+ {
+ parentPath = relativePath.substring( 0, index );
+ fileName = relativePath.substring( index + 1 );
+ ftpClient.mkdirs( parentPath );
+ }
+ else
+ {
+ fileName = relativePath;
+ }
+ out = ftpClient.put( fileName );
+ final byte[] bytes = toByteArray();
+ out.write( bytes );
+ }
+ finally
+ {
+ if ( out != null )
+ {
+ try
+ {
+ out.close();
+ }
+ catch ( IOException e ) {}
+ }
+ if ( ftpClient != null )
+ {
+ try
+ {
+ ftpClient.closeServer();
+ }
+ catch ( IOException e ) {}
+ }
+ m_isClosed = true;
+ }
+ }
+ }
+
+ boolean canCancel()
+ {
+ return !m_isClosed;
+ }
- void cancel() throws Exception
- {
- if ( m_isClosed )
- {
- final String message =
- "Cannot cancel: outputstrem is already closed";
- throw new IllegalStateException( message );
- }
- m_isClosed = true;
- }
-
- FTPSource getSource()
- {
- return m_source;
- }
-
- }
+ void cancel() throws Exception
+ {
+ if ( m_isClosed )
+ {
+ final String message =
+ "Cannot cancel: outputstrem is already closed";
+ throw new IllegalStateException( message );
+ }
+ m_isClosed = true;
+ }
+
+ FTPSource getSource()
+ {
+ return m_source;
+ }
+
+ }
}
1.2 +15 -15 avalon-excalibur/sourceresolve/src/java/org/apache/excalibur/source/impl/FTPSourceFactory.java
Index: FTPSourceFactory.java
===================================================================
RCS file: /home/cvs/avalon-excalibur/sourceresolve/src/java/org/apache/excalibur/source/impl/FTPSourceFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FTPSourceFactory.java 24 Jun 2003 12:39:41 -0000 1.1
+++ FTPSourceFactory.java 7 Jul 2003 16:50:41 -0000 1.2
@@ -76,20 +76,20 @@
public final class FTPSourceFactory extends URLSourceFactory implements SourceFactory, ThreadSafe
{
- public FTPSourceFactory()
- {
- super();
- }
+ public FTPSourceFactory()
+ {
+ super();
+ }
- /**
- * Creates an FTPSource.
- */
- protected Source createURLSource( final URL url, final Map parameters )
- throws MalformedURLException, IOException
- {
- URLSource result = new FTPSource();
- result.init(url, parameters);
- return result;
- }
-
+ /**
+ * Creates an FTPSource.
+ */
+ protected Source createURLSource( final URL url, final Map parameters )
+ throws MalformedURLException, IOException
+ {
+ URLSource result = new FTPSource();
+ result.init(url, parameters);
+ return result;
+ }
+
}
1.5 +2 -2 avalon-excalibur/sourceresolve/src/test/org/apache/excalibur/source/test/SourceUtilTestCase.java
Index: SourceUtilTestCase.java
===================================================================
RCS file: /home/cvs/avalon-excalibur/sourceresolve/src/test/org/apache/excalibur/source/test/SourceUtilTestCase.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SourceUtilTestCase.java 10 Jun 2003 14:40:28 -0000 1.4
+++ SourceUtilTestCase.java 7 Jul 2003 16:50:41 -0000 1.5
@@ -126,7 +126,7 @@
assertEquals(-1, SourceUtil.indexOfSchemeColon("h~ttp:foo"));
assertEquals(-1, SourceUtil.indexOfSchemeColon("~http:foo"));
assertEquals(-1, SourceUtil.indexOfSchemeColon("http~:foo"));
- }
+ }
public void testAbsolutize()
{
1.45 +7 -7 avalon-excalibur/sourceresolve/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/sourceresolve/build.xml,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- build.xml 2 Jul 2003 13:23:45 -0000 1.44
+++ build.xml 7 Jul 2003 16:50:42 -0000 1.45
@@ -29,7 +29,7 @@
<path id="test.class.path">
<pathelement location="${build.testclasses}"/>
<pathelement location="${junit.jar}"/>
- <pathelement location="${commons-logging.jar}"/>
+ <pathelement location="${commons-logging.jar}"/>
<path refid="project.class.path"/>
</path>
<property name="cp" refid="test.class.path"/>
@@ -74,8 +74,8 @@
target="1.2">
<classpath refid="project.class.path" />
<include name="**/*.java"/>
- <exclude name="**/HTTPClient*"
- unless="commons-httpclient.present"/>
+ <exclude name="**/HTTPClient*"
+ unless="commons-httpclient.present"/>
</javac>
<!-- copy resources to same location as .class files -->
@@ -110,8 +110,8 @@
target="1.2">
<classpath refid="test.class.path" />
<include name="**/*.java"/>
- <exclude name="**/HTTPClient*"
- unless="commons-httpclient.present"/>
+ <exclude name="**/HTTPClient*"
+ unless="commons-httpclient.present"/>
</javac>
<copy todir="${build.testclasses}">
@@ -204,8 +204,8 @@
<fileset dir="${build.testclasses}">
<include name="**/test/*TestCase.class"/>
<exclude name="**/Abstract*"/>
- <exclude name="**/test/HTTPClient*"
- unless="commons-httpclient.present"/>
+ <exclude name="**/test/HTTPClient*"
+ unless="commons-httpclient.present"/>
</fileset>
</batchtest>
1.2 +1 -1 avalon-excalibur/sourceresolve/fortress-meta.xml
Index: fortress-meta.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/sourceresolve/fortress-meta.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- fortress-meta.xml 23 May 2003 16:13:40 -0000 1.1
+++ fortress-meta.xml 7 Jul 2003 16:50:42 -0000 1.2
@@ -174,4 +174,4 @@
property="fortress.meta.generated"/>
</target>
-</project>
\ No newline at end of file
+</project>
1.4 +1 -1 avalon-excalibur/xmlutil/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/xmlutil/src/xdocs/index.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- index.xml 7 Jul 2002 08:00:57 -0000 1.3
+++ index.xml 7 Jul 2003 16:50:42 -0000 1.4
@@ -15,4 +15,4 @@
</p>
</section>
</body>
-</document>
\ No newline at end of file
+</document>
1.209 +6 -6 avalon-excalibur/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/build.xml,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -r1.208 -r1.209
--- build.xml 4 Jun 2003 13:24:15 -0000 1.208
+++ build.xml 7 Jul 2003 16:50:42 -0000 1.209
@@ -87,7 +87,7 @@
</target>
<target name="prj-lifecycle">
- <ant dir="lifecycle" target="${subproject-target}"/>
+ <ant dir="lifecycle" target="${subproject-target}"/>
</target>
<!-- Logger -->
@@ -127,7 +127,7 @@
<!-- Ant to decide on the correct build order. -->
<target name="build-all-subprojects"
depends="prj-compatibility,
- prj-i18n, prj-extension,
+ prj-i18n, prj-extension,
prj-configuration, prj-event,
prj-thread, prj-monitor, prj-fortress, prj-datasource,
prj-instrument, prj-store, prj-logger,
@@ -165,14 +165,14 @@
<pathelement location="instrument/src/client"/>
<pathelement location="instrument/src/manager"/>
<pathelement location="instrument/src/test"/>
- <pathelement location="compatibility/src/java"/>
- <pathelement location="compatibility/src/test"/>
+ <pathelement location="compatibility/src/java"/>
+ <pathelement location="compatibility/src/test"/>
<pathelement location="extension/src/java"/>
<pathelement location="extension/src/test"/>
<pathelement location="i18n/src/java"/>
<pathelement location="i18n/src/test"/>
- <pathelement location="lifecycle/src/java"/>
- <pathelement location="lifecycle/src/test"/>
+ <pathelement location="lifecycle/src/java"/>
+ <pathelement location="lifecycle/src/test"/>
<pathelement location="monitor/src/java"/>
<pathelement location="monitor/src/test"/>
<pathelement location="naming/src/java"/>
1.55 +4 -4 avalon-excalibur/depchecker.xml
Index: depchecker.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/depchecker.xml,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- depchecker.xml 15 Jun 2003 16:08:53 -0000 1.54
+++ depchecker.xml 7 Jul 2003 16:50:43 -0000 1.55
@@ -375,8 +375,8 @@
<target name="checkCompatibility">
<ant antfile="${depchecker.prefix}/depchecker.xml" target="checkRequiredFile">
<property name="proj.jar.name" value="excalibur-compatibility-1.0.jar"/>
- <property name="path" value="${excalibur-compatibility.jar}"/>
- <property name="proj.home" value="${basedir}/../compatibility"/>
+ <property name="path" value="${excalibur-compatibility.jar}"/>
+ <property name="proj.home" value="${basedir}/../compatibility"/>
</ant>
</target>
<target name="checkInstrument">
@@ -420,7 +420,7 @@
<target name="checkLifecycle">
<ant antfile="${depchecker.prefix}/depchecker.xml" target="checkRequiredFile">
<property name="proj.jar.name" value="excalibur-lifecycle.jar"/>
- <property name="path" value="${excalibur-lifecycle.jar}"/>
+ <property name="path" value="${excalibur-lifecycle.jar}"/>
<property name="proj.home" value="${basedir}/../lifecycle"/>
</ant>
</target>
1.3 +2 -2 avalon-excalibur/forrestbuild.xml
Index: forrestbuild.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/forrestbuild.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- forrestbuild.xml 5 Mar 2003 04:01:41 -0000 1.2
+++ forrestbuild.xml 7 Jul 2003 16:50:43 -0000 1.3
@@ -11,8 +11,8 @@
-->
<target name="site" depends="forrest.init" description="Generates static HTML documentation">
- <property name="project.home" value="../"/>
- <delete dir="${project.home}/build"/>
+ <property name="project.home" value="../"/>
+ <delete dir="${project.home}/build"/>
<ant antfile="${forrest.home}/forrest.antproxy.xml" target="site"/>
</target>
1.3 +1 -1 avalon-excalibur/maven-common-gump-build.xml
Index: maven-common-gump-build.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/maven-common-gump-build.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- maven-common-gump-build.xml 8 Jun 2003 13:51:22 -0000 1.2
+++ maven-common-gump-build.xml 7 Jul 2003 16:50:43 -0000 1.3
@@ -186,4 +186,4 @@
</javadoc>
</target>
-</project>
\ No newline at end of file
+</project>
1.5 +1 -1 avalon-excalibur/maven.xml
Index: maven.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/maven.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- maven.xml 8 Jun 2003 14:13:37 -0000 1.4
+++ maven.xml 7 Jul 2003 16:50:43 -0000 1.5
@@ -608,4 +608,4 @@
<attainGoal name="excalibur:write-gump-module.xml"/>
</goal>
-</project>
\ No newline at end of file
+</project>
1.3 +1 -1 avalon-excalibur/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/project.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- project.xml 7 Jun 2003 15:12:19 -0000 1.2
+++ project.xml 7 Jul 2003 16:50:43 -0000 1.3
@@ -27,4 +27,4 @@
<unitTestSourceDirectory></unitTestSourceDirectory>
</build>
-</project>
\ No newline at end of file
+</project>
1.3 +357 -357 avalon-excalibur/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/status.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- status.xml 8 Apr 2003 18:35:29 -0000 1.2
+++ status.xml 7 Jul 2003 16:50:43 -0000 1.3
@@ -1,357 +1,357 @@
-<?xml version="1.0"?>
-<!DOCTYPE changes PUBLIC "-//APACHE//DTD Changes V1.1//EN" "changes-v11.dtd">
-
-<changes title="Avalon Excalibur History of Changes">
- <devs>
- <person name="Berin Loritsch" email="bloritsch@apache.org" id="BL"/>
- <person name="Leo Simons" email="mail@leosimons.com" id="LS"/>
- <person name="Peter Donald" email="peter at apache.org" id="PD"/>
- <person name="Jeff Turner" email="jeff@socialchange.net.au" id="JT"/>
- <person name="Neeme Praks" email="neeme.praks@one.ee" id="NP"/>
- <person name="Giacomo Pati" email="giacomo@apache.org" id="GP"/>
- <person name="Paul Hammant" email="hammant@apache.org" id="PH"/>
- <person name="Leif Mortenson" email="leif@apache.org" id="LM"/>
- <person name="Eung-ju Park" email="colus@apache.org" id="EP"/>
- <person name="Carston Ziegler" email="cziegler@apache.org" id="CZ"/>
- <person name="Peter Royal" email="proyal@apache.org" id="PR"/>
- </devs>
- <release version="@version@" date="@date@">
- <action dev="PR" type="fix">
- Fixing proxy-based datasource code.
- </action>
- <action dev="PR" type="fix">
- PriorityFilterTargetFactory throws a ConfigurationException
- upon invalid targets
- </action>
- <action dev="CZ" type="add">
- The ExcaliburComponentSelector does not instantiate a Component
- for the hasComponent() test anymore.
- </action>
- <action dev="CZ" type="add">
- Adding XMLizer to the xmlbundle subproject for converting different
- data (identitied by a mime-type) to XML.
- </action>
- <action dev="CZ" type="add">
- Finished port of Cocoon's source resolver as the new sourceresolve
- subproject.
- </action>
- <action dev="CZ" type="add">
- Added XML Parser role and implementation, EntityResolver role and
- some misc. XML support (from Cocoon).
- </action>
- <action dev="Whole Team" type="add">
- Broken Excalibur from single jar into multiple smaller jars.
- </action>
-
- </release>
- <release version="4.1" date="January 30, 2002">
- <action dev="CZ" type="add">
- Initial port of Cocoon's Source resolvers and XML parsers
- </action>
- <action dev="NP" type="update">
- Added many fixes to the XML Resource Bundles and Resource Bundle
- access code.
- </action>
- <action dev="PD" type="update">
- Update the extension management code and make it more robust.
- </action>
- <action dev="BL" type="add">
- Add new Container abstraction to separate ComponentManager from
- Container code (i.e. ExcaliburComponentManager violates this).
- The new ContainerManager and Container abstraction make the system
- much easier to manage.
- </action>
- <action dev="BL" type="add">
- Add new CommandManager architecture to manage all asynchronous
- commands and the ThreadManager architecture to manage the thread
- allocation policy for the CommandManager.
- </action>
- <action dev="DP" type="add">
- New component to handle automatic XML Catalog resolution.
- </action>
- <action dev="EP" type="update">
- Many improvements to the cache component. Extended cache validation
- support, multiple store backends, and more.
- </action>
- <action dev="JT" type="add">
- Add an XPathProcessor abstraction Component with ThreadSafe
- implementations for Jaxen and Xalan backed XPath processors.
- </action>
- <action dev="PD" type="update">
- Made automatic proxy code even more robust.
- </action>
- <action dev="PD" type="update">
- Add support for recursive property resolution. Added appropriate
- unit test to accompany feature.
- </action>
- <action dev="BL" type="update">
- Optimized pool implementations, and provided a new abstraction for
- managed pools (in scratchpad).
- </action>
- <action dev="GP" type="add">
- Add many new LogTargetFactories to LogKitManager.
- </action>
- <action dev="BL" type="add">
- Add new LoggerManager abstraction that works with the new framework
- Logger abstractions.
- </action>
- <action dev="PD" type="fix">
- Fixed some classloader issues in the i18n package for loading resources.
- Also fixed some i18n related issues in FileUtil and IOUtil.
- </action>
- <action dev="LM" type="update">
- Applied many optimizations and logic fixes to DataSourceComponent
- code.
- </action>
- <action dev="BL" type="fix">
- Applied fixes to ReadWriteLock from Avi Drissman (drissman@acm.org)
- </action>
- <action dev="BL" type="update">
- Officially deprecate Lock in favor of Mutex. They have the same
- purpose, and Mutex is more correct.
- </action>
- <action dev="BL" type="update">
- Optimize logging calls throughout components. Also, make the log
- messages more informative.
- </action>
- <action dev="PD" type="update">
- ListUtils now checks for duplicates when merging Lists.
- </action>
- <action dev="PD" type="update">
- Make BinaryHeap and PriorityQueue use Objects instead of Comparables.
- Optimize BinaryHeap code.
- </action>
- <action dev="BL" type="add">
- Add new Buffer classes to the collections package. These are amazingly
- performant. It is based on CircularBuffer, which is now deprecated.
- </action>
- <action dev="BL" type="update">
- Shake out some more performance of CLI Util, as well as better support
- for DUPLICATES_ALLOWED.
- </action>
- <action dev="LM" type="update">
- Added some build improvements.
- </action>
- <action dev="BL" type="add">
- Add new profiler instrumentation interfaces inspired by Matt Welsh's
- SEDA architecture.
- </action>
- <action dev="BL" type="add">
- Add new asynchronous event queue system inspired by Matt Welsh's
- SEDA architecture.
- </action>
- <action dev="BL" type="update">
- Update all the components to the new LogEnabled interface.
- </action>
- </release>
- <release version="4.0" date="September 11, 2001">
- <action dev="BL" type="update">
- Update user docs.
- </action>
- <action dev="PD" type="remove">
- Remove dead code in scratchpad.
- </action>
- <action dev="PD" type="update">
- Rework thread pooling package to a new design. This provides a mechanism
- to run a cleanup thread when the JVM is killed.
- </action>
- <action dev="PD" type="add">
- Add classloader extension framework into the extension package.
- </action>
- <action dev="PD" type="add">
- Add Container mechanism from Avalon Phoenix.
- </action>
- <action dev="PD" type="update">
- Add support for recursive property resolution. Added appropriate unit test
- to accompany feature. (Property utils).
- </action>
- <action dev="PD" type="fix">
- Problem Fixed: I've encountered a problem with the SingleThreadedPool in
- that it alternatley returns valid and null pooled objects until you've got
- the "initial" constructor argument + 1 and then it starts returning
- (Poolable)m_factory.newInstance(). Submitted by: "Corey O'Donovan".
- </action>
- <action dev="BL" type="fix">
- Fix some bugs found by Pool Profiling tests.
- </action>
- <action dev="BL" type="add">
- Add new resource monitoring facility. This allows you to actively
- monitor resources and be notified if they are changed by outside
- forces.
- </action>
- <action dev="DP" type="update">
- Set hierarchy via constructor to allow LogKit to work in sub classloaders.
- Submitted By: Sylvain Wallez.
- </action>
- <action dev="DP" type="update">
- Update FileUtils with methods to count size of a directory,
- input argument check, fix javadoc, and method to convert an array of
- Files into URLs.
- </action>
- <action dev="PH" type="add">
- ClassLoaderObjectInputStream moves from Cornerstone to Excalibur.
- </action>
- <action dev="DP" type="update">
- Promote the i18n ResourceManager code to Excalibur production.
- </action>
- <action dev="BL" type="update">
- Updated log messages for JdbcConnection--as well as added runtime
- detection if no connections could be created. This provides better
- reporting if the connection has configuration errors or other mitigating
- errors.
- </action>
- <action dev="BL" type="add">
- Add direct support for Informix connection pooling. Requires the most
- recent JDBC drivers from Informix to use this feature.
- </action>
- <action dev="BL" type="update">
- Deprecated the oradb attribute in JdbcDataSourceComponent, and added a
- keepalive element.This way we can test the line with valid SQL statements
- no matter what the DB is. Informix had trouble with the "select 1" and I
- am sure there are others.
- </action>
- <action dev="BL" type="fix">
- Fix bugs found by ReadWriteLock Test Case in the concurrent package.
- </action>
- <action dev="DP" type="update">
- Update component package with support for Paremeterizable components
- (patch from Mircea Toma)
- </action>
- <action dev="BL" type="update">
- Add support to display if an option is required. Patch was from
- Tom Jordahl (from xml-axis project).
- </action>
- <action dev="PD" type="fix" fixes-bug="3255">
- Fixed bug "CLArgsParser loops infinitely on OPTIONAL options" like
- "-Fa -B" where F optionally has an argument. Added unit tests to verify
- that it has been fixed.
- </action>
- <action dev="JT" type="update">
- Update javadocs with '@since' tags so that we know when components
- have been introduced.
- </action>
- <action dev="BL" type="update">
- Update JDBC datasource component so that you can specify your keep-alive
- query. This is for databases that don't like "SELECT 1;" as a query.
- </action>
- <action dev="GP" type="add">
- Add new JUnit TestCase for automatically setting up Avalon Components
- and running tests.
- </action>
- <action dev="BL" type="fix">
- Fix a number of tests, and provided a couple new tests.
- </action>
- <action dev="PD" type="fix">
- Fix build process for tests and fix some of the tests.
- </action>
- <action dev="GP" type="add">
- Add new LogKit Management framework to allow each component to have unique
- logger implementations and provide fine grained control over logging.
- </action>
- <action dev="PD" type="add">
- Add new JNDI package to Excalibur with Memmory and RMI providers.
- </action>
- <action dev="BL" type="update">
- Updated Announcement.xml to not refer to Testlet anymore.
- </action>
- </release>
- <release version="4.0b4" date="August 10, 2001">
- <action dev="BL" type="fix">
- Fixed race condition brought to my attention by Tom Klaasen. His excellent
- analysis of the problem enabled me to not only fix the race condition but
- also increase the efficiency of the pool in some cases by 200%
- </action>
- <action dev="BL" type="add">
- Added new InformixDataSource that uses the Informix JDBC 2.2 driver
- and Cadastre to provide pooled connections from Informix. Unfortunately
- the drivers do not yet support transactions. I need to look further
- into this, as it might be a server configuration issue as opposed to
- a driver issue.
- </action>
- <action dev="BL" type="fix">
- Fixed errors in utilities discovered by the tests.
- </action>
- <action dev="BL" type="change">
- Converted tests from Testlet to JUnit.
- </action>
- <action dev="BL" type="fix">
- Fixed the build structure so that everything builds correctly.
- </action>
- <action dev="BL" type="add">
- Added extra convenience methods to discover if a component exists.
- </action>
- <action dev="BL" type="add">
- Added stylesheet to convert Stylebook markup to DocBook markup.
- </action>
- <action dev="BL" type="change">
- Changed the documentation build process to use Cocoon to build
- the site.
- </action>
- <action dev="BL" type="add">
- Add new configuration element "driver" to JdbcDataSource so that
- the class is loaded in the current context classloader when the
- component is first set up.
- </action>
- <action dev="BL" type="update">
- Optimize all logging functions to make it easier for JVMs to decide
- whether or not to concatenate strings for log messages.
- </action>
- <action dev="NP" type="update">
- Extensive reworking of the excalibur.i18n package (XML Resource bundles).
- </action>
- <action dev="JT" type="update">
- Extensive additions to IOUtils so that it accepts numerous different
- stream/writer types. Also will convert streams to strings using a
- specific encoder or else by using default platform encoder.
- </action>
- <action dev="PD" type="add">
- Added EndianUtil to excalibur.io to help when need to work with little endian data.
- </action>
- <action dev="BL" type="add">
- Added "ROLE" attribute to DataSource--to comply with practices
- outlined in whitepaper.
- </action>
- </release>
- <release version="4.0b3" date="June 6, 2001">
- <action dev="BL" type="update">
- Release 4.0b3
- </action>
- <action dev="BL" type="fix">
- Repair major showstopper in Excalibur Component Manager. This
- showstopper manifests itself as a NullPointerException with
- ExcaliburComponentSelectors. Because of the reflective code
- in the ComponentFactory, this was originally missed in the
- Beta 2 release.
- </action>
- </release>
-<release version="4.0b2" date="June 4, 2001">
- <action dev="BL" type="update">
- Release 4.0b2
- </action>
- <action dev="BL" type="update">
- Updated Component Package to be Initializable, so that all components
- can be initialized once it is ready.
- </action>
- <action dev="BL" type="add">
- Added initial documentation for Excalibur.
- </action>
- <action dev="BL" type="fix">
- Fixed issues introduced with removing "throws Exception" from
- Disposable.
- </action>
- <action dev="BL" type="fix">
- Made connections expire after 15 uses. This avoids problems with
- buggy client code or buggy drivers from causing serious issues
- in the long run.
- </action>
- <action dev="BL" type="fix">
- Made Component Manager fixes to use the Thread's context classloader.
- </action>
-</release>
-<release version="4.0b1" date="May 11, 2001">
- <action dev="BL" type="change">
- Initial beta release.
- </action>
-</release>
-
-</changes>
+<?xml version="1.0"?>
+<!DOCTYPE changes PUBLIC "-//APACHE//DTD Changes V1.1//EN" "changes-v11.dtd">
+
+<changes title="Avalon Excalibur History of Changes">
+ <devs>
+ <person name="Berin Loritsch" email="bloritsch@apache.org" id="BL"/>
+ <person name="Leo Simons" email="mail@leosimons.com" id="LS"/>
+ <person name="Peter Donald" email="peter at apache.org" id="PD"/>
+ <person name="Jeff Turner" email="jeff@socialchange.net.au" id="JT"/>
+ <person name="Neeme Praks" email="neeme.praks@one.ee" id="NP"/>
+ <person name="Giacomo Pati" email="giacomo@apache.org" id="GP"/>
+ <person name="Paul Hammant" email="hammant@apache.org" id="PH"/>
+ <person name="Leif Mortenson" email="leif@apache.org" id="LM"/>
+ <person name="Eung-ju Park" email="colus@apache.org" id="EP"/>
+ <person name="Carston Ziegler" email="cziegler@apache.org" id="CZ"/>
+ <person name="Peter Royal" email="proyal@apache.org" id="PR"/>
+ </devs>
+ <release version="@version@" date="@date@">
+ <action dev="PR" type="fix">
+ Fixing proxy-based datasource code.
+ </action>
+ <action dev="PR" type="fix">
+ PriorityFilterTargetFactory throws a ConfigurationException
+ upon invalid targets
+ </action>
+ <action dev="CZ" type="add">
+ The ExcaliburComponentSelector does not instantiate a Component
+ for the hasComponent() test anymore.
+ </action>
+ <action dev="CZ" type="add">
+ Adding XMLizer to the xmlbundle subproject for converting different
+ data (identitied by a mime-type) to XML.
+ </action>
+ <action dev="CZ" type="add">
+ Finished port of Cocoon's source resolver as the new sourceresolve
+ subproject.
+ </action>
+ <action dev="CZ" type="add">
+ Added XML Parser role and implementation, EntityResolver role and
+ some misc. XML support (from Cocoon).
+ </action>
+ <action dev="Whole Team" type="add">
+ Broken Excalibur from single jar into multiple smaller jars.
+ </action>
+
+ </release>
+ <release version="4.1" date="January 30, 2002">
+ <action dev="CZ" type="add">
+ Initial port of Cocoon's Source resolvers and XML parsers
+ </action>
+ <action dev="NP" type="update">
+ Added many fixes to the XML Resource Bundles and Resource Bundle
+ access code.
+ </action>
+ <action dev="PD" type="update">
+ Update the extension management code and make it more robust.
+ </action>
+ <action dev="BL" type="add">
+ Add new Container abstraction to separate ComponentManager from
+ Container code (i.e. ExcaliburComponentManager violates this).
+ The new ContainerManager and Container abstraction make the system
+ much easier to manage.
+ </action>
+ <action dev="BL" type="add">
+ Add new CommandManager architecture to manage all asynchronous
+ commands and the ThreadManager architecture to manage the thread
+ allocation policy for the CommandManager.
+ </action>
+ <action dev="DP" type="add">
+ New component to handle automatic XML Catalog resolution.
+ </action>
+ <action dev="EP" type="update">
+ Many improvements to the cache component. Extended cache validation
+ support, multiple store backends, and more.
+ </action>
+ <action dev="JT" type="add">
+ Add an XPathProcessor abstraction Component with ThreadSafe
+ implementations for Jaxen and Xalan backed XPath processors.
+ </action>
+ <action dev="PD" type="update">
+ Made automatic proxy code even more robust.
+ </action>
+ <action dev="PD" type="update">
+ Add support for recursive property resolution. Added appropriate
+ unit test to accompany feature.
+ </action>
+ <action dev="BL" type="update">
+ Optimized pool implementations, and provided a new abstraction for
+ managed pools (in scratchpad).
+ </action>
+ <action dev="GP" type="add">
+ Add many new LogTargetFactories to LogKitManager.
+ </action>
+ <action dev="BL" type="add">
+ Add new LoggerManager abstraction that works with the new framework
+ Logger abstractions.
+ </action>
+ <action dev="PD" type="fix">
+ Fixed some classloader issues in the i18n package for loading resources.
+ Also fixed some i18n related issues in FileUtil and IOUtil.
+ </action>
+ <action dev="LM" type="update">
+ Applied many optimizations and logic fixes to DataSourceComponent
+ code.
+ </action>
+ <action dev="BL" type="fix">
+ Applied fixes to ReadWriteLock from Avi Drissman (drissman@acm.org)
+ </action>
+ <action dev="BL" type="update">
+ Officially deprecate Lock in favor of Mutex. They have the same
+ purpose, and Mutex is more correct.
+ </action>
+ <action dev="BL" type="update">
+ Optimize logging calls throughout components. Also, make the log
+ messages more informative.
+ </action>
+ <action dev="PD" type="update">
+ ListUtils now checks for duplicates when merging Lists.
+ </action>
+ <action dev="PD" type="update">
+ Make BinaryHeap and PriorityQueue use Objects instead of Comparables.
+ Optimize BinaryHeap code.
+ </action>
+ <action dev="BL" type="add">
+ Add new Buffer classes to the collections package. These are amazingly
+ performant. It is based on CircularBuffer, which is now deprecated.
+ </action>
+ <action dev="BL" type="update">
+ Shake out some more performance of CLI Util, as well as better support
+ for DUPLICATES_ALLOWED.
+ </action>
+ <action dev="LM" type="update">
+ Added some build improvements.
+ </action>
+ <action dev="BL" type="add">
+ Add new profiler instrumentation interfaces inspired by Matt Welsh's
+ SEDA architecture.
+ </action>
+ <action dev="BL" type="add">
+ Add new asynchronous event queue system inspired by Matt Welsh's
+ SEDA architecture.
+ </action>
+ <action dev="BL" type="update">
+ Update all the components to the new LogEnabled interface.
+ </action>
+ </release>
+ <release version="4.0" date="September 11, 2001">
+ <action dev="BL" type="update">
+ Update user docs.
+ </action>
+ <action dev="PD" type="remove">
+ Remove dead code in scratchpad.
+ </action>
+ <action dev="PD" type="update">
+ Rework thread pooling package to a new design. This provides a mechanism
+ to run a cleanup thread when the JVM is killed.
+ </action>
+ <action dev="PD" type="add">
+ Add classloader extension framework into the extension package.
+ </action>
+ <action dev="PD" type="add">
+ Add Container mechanism from Avalon Phoenix.
+ </action>
+ <action dev="PD" type="update">
+ Add support for recursive property resolution. Added appropriate unit test
+ to accompany feature. (Property utils).
+ </action>
+ <action dev="PD" type="fix">
+ Problem Fixed: I've encountered a problem with the SingleThreadedPool in
+ that it alternatley returns valid and null pooled objects until you've got
+ the "initial" constructor argument + 1 and then it starts returning
+ (Poolable)m_factory.newInstance(). Submitted by: "Corey O'Donovan".
+ </action>
+ <action dev="BL" type="fix">
+ Fix some bugs found by Pool Profiling tests.
+ </action>
+ <action dev="BL" type="add">
+ Add new resource monitoring facility. This allows you to actively
+ monitor resources and be notified if they are changed by outside
+ forces.
+ </action>
+ <action dev="DP" type="update">
+ Set hierarchy via constructor to allow LogKit to work in sub classloaders.
+ Submitted By: Sylvain Wallez.
+ </action>
+ <action dev="DP" type="update">
+ Update FileUtils with methods to count size of a directory,
+ input argument check, fix javadoc, and method to convert an array of
+ Files into URLs.
+ </action>
+ <action dev="PH" type="add">
+ ClassLoaderObjectInputStream moves from Cornerstone to Excalibur.
+ </action>
+ <action dev="DP" type="update">
+ Promote the i18n ResourceManager code to Excalibur production.
+ </action>
+ <action dev="BL" type="update">
+ Updated log messages for JdbcConnection--as well as added runtime
+ detection if no connections could be created. This provides better
+ reporting if the connection has configuration errors or other mitigating
+ errors.
+ </action>
+ <action dev="BL" type="add">
+ Add direct support for Informix connection pooling. Requires the most
+ recent JDBC drivers from Informix to use this feature.
+ </action>
+ <action dev="BL" type="update">
+ Deprecated the oradb attribute in JdbcDataSourceComponent, and added a
+ keepalive element.This way we can test the line with valid SQL statements
+ no matter what the DB is. Informix had trouble with the "select 1" and I
+ am sure there are others.
+ </action>
+ <action dev="BL" type="fix">
+ Fix bugs found by ReadWriteLock Test Case in the concurrent package.
+ </action>
+ <action dev="DP" type="update">
+ Update component package with support for Paremeterizable components
+ (patch from Mircea Toma)
+ </action>
+ <action dev="BL" type="update">
+ Add support to display if an option is required. Patch was from
+ Tom Jordahl (from xml-axis project).
+ </action>
+ <action dev="PD" type="fix" fixes-bug="3255">
+ Fixed bug "CLArgsParser loops infinitely on OPTIONAL options" like
+ "-Fa -B" where F optionally has an argument. Added unit tests to verify
+ that it has been fixed.
+ </action>
+ <action dev="JT" type="update">
+ Update javadocs with '@since' tags so that we know when components
+ have been introduced.
+ </action>
+ <action dev="BL" type="update">
+ Update JDBC datasource component so that you can specify your keep-alive
+ query. This is for databases that don't like "SELECT 1;" as a query.
+ </action>
+ <action dev="GP" type="add">
+ Add new JUnit TestCase for automatically setting up Avalon Components
+ and running tests.
+ </action>
+ <action dev="BL" type="fix">
+ Fix a number of tests, and provided a couple new tests.
+ </action>
+ <action dev="PD" type="fix">
+ Fix build process for tests and fix some of the tests.
+ </action>
+ <action dev="GP" type="add">
+ Add new LogKit Management framework to allow each component to have unique
+ logger implementations and provide fine grained control over logging.
+ </action>
+ <action dev="PD" type="add">
+ Add new JNDI package to Excalibur with Memmory and RMI providers.
+ </action>
+ <action dev="BL" type="update">
+ Updated Announcement.xml to not refer to Testlet anymore.
+ </action>
+ </release>
+ <release version="4.0b4" date="August 10, 2001">
+ <action dev="BL" type="fix">
+ Fixed race condition brought to my attention by Tom Klaasen. His excellent
+ analysis of the problem enabled me to not only fix the race condition but
+ also increase the efficiency of the pool in some cases by 200%
+ </action>
+ <action dev="BL" type="add">
+ Added new InformixDataSource that uses the Informix JDBC 2.2 driver
+ and Cadastre to provide pooled connections from Informix. Unfortunately
+ the drivers do not yet support transactions. I need to look further
+ into this, as it might be a server configuration issue as opposed to
+ a driver issue.
+ </action>
+ <action dev="BL" type="fix">
+ Fixed errors in utilities discovered by the tests.
+ </action>
+ <action dev="BL" type="change">
+ Converted tests from Testlet to JUnit.
+ </action>
+ <action dev="BL" type="fix">
+ Fixed the build structure so that everything builds correctly.
+ </action>
+ <action dev="BL" type="add">
+ Added extra convenience methods to discover if a component exists.
+ </action>
+ <action dev="BL" type="add">
+ Added stylesheet to convert Stylebook markup to DocBook markup.
+ </action>
+ <action dev="BL" type="change">
+ Changed the documentation build process to use Cocoon to build
+ the site.
+ </action>
+ <action dev="BL" type="add">
+ Add new configuration element "driver" to JdbcDataSource so that
+ the class is loaded in the current context classloader when the
+ component is first set up.
+ </action>
+ <action dev="BL" type="update">
+ Optimize all logging functions to make it easier for JVMs to decide
+ whether or not to concatenate strings for log messages.
+ </action>
+ <action dev="NP" type="update">
+ Extensive reworking of the excalibur.i18n package (XML Resource bundles).
+ </action>
+ <action dev="JT" type="update">
+ Extensive additions to IOUtils so that it accepts numerous different
+ stream/writer types. Also will convert streams to strings using a
+ specific encoder or else by using default platform encoder.
+ </action>
+ <action dev="PD" type="add">
+ Added EndianUtil to excalibur.io to help when need to work with little endian data.
+ </action>
+ <action dev="BL" type="add">
+ Added "ROLE" attribute to DataSource--to comply with practices
+ outlined in whitepaper.
+ </action>
+ </release>
+ <release version="4.0b3" date="June 6, 2001">
+ <action dev="BL" type="update">
+ Release 4.0b3
+ </action>
+ <action dev="BL" type="fix">
+ Repair major showstopper in Excalibur Component Manager. This
+ showstopper manifests itself as a NullPointerException with
+ ExcaliburComponentSelectors. Because of the reflective code
+ in the ComponentFactory, this was originally missed in the
+ Beta 2 release.
+ </action>
+ </release>
+<release version="4.0b2" date="June 4, 2001">
+ <action dev="BL" type="update">
+ Release 4.0b2
+ </action>
+ <action dev="BL" type="update">
+ Updated Component Package to be Initializable, so that all components
+ can be initialized once it is ready.
+ </action>
+ <action dev="BL" type="add">
+ Added initial documentation for Excalibur.
+ </action>
+ <action dev="BL" type="fix">
+ Fixed issues introduced with removing "throws Exception" from
+ Disposable.
+ </action>
+ <action dev="BL" type="fix">
+ Made connections expire after 15 uses. This avoids problems with
+ buggy client code or buggy drivers from causing serious issues
+ in the long run.
+ </action>
+ <action dev="BL" type="fix">
+ Made Component Manager fixes to use the Thread's context classloader.
+ </action>
+</release>
+<release version="4.0b1" date="May 11, 2001">
+ <action dev="BL" type="change">
+ Initial beta release.
+ </action>
+</release>
+
+</changes>
No revision
No revision
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org