You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/19 08:44:18 UTC
svn commit: r290070 - in
/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean:
RepositoryCleaner.java report/AbstractReporter.java report/FileReporter.java
Author: brett
Date: Sun Sep 18 23:44:12 2005
New Revision: 290070
URL: http://svn.apache.org/viewcvs?rev=290070&view=rev
Log:
refactor reporter
Added:
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java (with props)
Modified:
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/FileReporter.java
Modified: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java?rev=290070&r1=290069&r2=290070&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java (original)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java Sun Sep 18 23:44:12 2005
@@ -23,6 +23,7 @@
import org.apache.maven.tools.repoclean.phase.DiscoveryPhase;
import org.apache.maven.tools.repoclean.phase.RewritePhase;
import org.apache.maven.tools.repoclean.report.FileReporter;
+import org.apache.maven.tools.repoclean.report.Reporter;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.context.Context;
@@ -78,7 +79,7 @@
{
Logger logger = getLogger();
- FileReporter repoReporter = null;
+ Reporter repoReporter = null;
try
{
repoReporter = new FileReporter( reportsBase, "repository.report.txt",
Added: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java?rev=290070&view=auto
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java (added)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java Sun Sep 18 23:44:12 2005
@@ -0,0 +1,125 @@
+package org.apache.maven.tools.repoclean.report;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+/**
+ * Base implementation of reporter.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public abstract class AbstractReporter
+ implements Reporter
+{
+ protected static final String WARN_LEVEL = "[WARNING]";
+
+ protected static final String ERROR_LEVEL = "[ERROR]";
+
+ protected boolean hasError;
+
+ protected boolean hasWarning;
+
+ protected final boolean warningsEnabled;
+
+ protected AbstractReporter( boolean warningsEnabled )
+ {
+ this.warningsEnabled = warningsEnabled;
+ }
+
+ public boolean hasWarning()
+ {
+ return hasWarning;
+ }
+
+ public boolean hasError()
+ {
+ return hasError;
+ }
+
+ protected String getSourceLine()
+ {
+ NullPointerException npe = new NullPointerException();
+
+ StackTraceElement element = npe.getStackTrace()[2];
+
+ return "Reported from: (" + element.getClassName() + "." + element.getMethodName() + "(..):" +
+ element.getLineNumber() + ")\n";
+ }
+
+ protected String format( String level, String source, String message )
+ {
+ return format( level, source, message, null );
+ }
+
+ protected String format( String level, String source, String message, Throwable error )
+ {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append( level );
+ buffer.append( " " );
+ buffer.append( source );
+ buffer.append( " " );
+ buffer.append( message );
+ if ( error != null )
+ {
+ buffer.append( formatThrowable( error ) );
+ }
+ return buffer.toString();
+ }
+
+ private String formatThrowable( Throwable throwable )
+ {
+ StringWriter sWriter = new StringWriter();
+ PrintWriter pWriter = new PrintWriter( sWriter );
+
+ throwable.printStackTrace( pWriter );
+
+ return sWriter.toString();
+ }
+
+ protected abstract void write( String message )
+ throws ReportWriteException;
+
+ public void warn( String message )
+ throws ReportWriteException
+ {
+ if ( warningsEnabled )
+ {
+ hasWarning = true;
+ String source = getSourceLine();
+ write( format( WARN_LEVEL, source, message ) );
+ }
+ }
+
+ public void error( String message, Throwable error )
+ throws ReportWriteException
+ {
+ hasError = true;
+ String source = getSourceLine();
+ write( format( ERROR_LEVEL, source, message, error ) );
+ }
+
+ public void error( String message )
+ throws ReportWriteException
+ {
+ hasError = true;
+ String source = getSourceLine();
+ write( format( ERROR_LEVEL, source, message ) );
+ }
+}
Propchange: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/AbstractReporter.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/FileReporter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/FileReporter.java?rev=290070&r1=290069&r2=290070&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/FileReporter.java (original)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/report/FileReporter.java Sun Sep 18 23:44:12 2005
@@ -21,39 +21,21 @@
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
/**
* @author jdcasey
*/
public class FileReporter
- implements Reporter
+ extends AbstractReporter
{
-
- private static final String WARN_LEVEL = "[WARNING] ";
-
- private static final String ERROR_LEVEL = "[ERROR] ";
-
private File reportsFile;
- private List messages = new ArrayList();
-
- private boolean hasError = false;
-
- private boolean hasWarning = false;
-
private Writer writer;
- private final boolean warningsEnabled;
-
public FileReporter( File reportsBase, String reportPath, boolean warningsEnabled )
{
- this.warningsEnabled = warningsEnabled;
+ super( warningsEnabled );
this.reportsFile = new File( reportsBase, reportPath );
@@ -87,7 +69,7 @@
IOUtil.close( writer );
}
- private void write( Object message )
+ protected void write( String message )
throws ReportWriteException
{
try
@@ -97,14 +79,7 @@
open();
}
- if ( message instanceof List )
- {
- writer.write( format( (List) message ).toString() );
- }
- else
- {
- writer.write( String.valueOf( message ) );
- }
+ writer.write( message );
writer.write( '\n' );
@@ -113,99 +88,6 @@
catch ( IOException e )
{
throw new ReportWriteException( "Cannot write message: " + message + " due to an I/O error.", e );
- }
- }
-
- public boolean hasWarning()
- {
- return hasWarning;
- }
-
- public boolean hasError()
- {
- return hasError;
- }
-
- public void warn( String message )
- throws ReportWriteException
- {
- if ( warningsEnabled )
- {
- hasWarning = true;
- String source = getSourceLine();
- write( new AppendingList( 3 ).append( WARN_LEVEL ).append( source ).append( message ) );
- }
- }
-
- public void error( String message, Throwable error )
- throws ReportWriteException
- {
- hasError = true;
- String source = getSourceLine();
- write( new AppendingList( 4 ).append( ERROR_LEVEL ).append( source ).append( message ).append( error ) );
- }
-
- public void error( String message )
- throws ReportWriteException
- {
- hasError = true;
- String source = getSourceLine();
- write( new AppendingList( 3 ).append( ERROR_LEVEL ).append( source ).append( message ) );
- }
-
- private String getSourceLine()
- {
- NullPointerException npe = new NullPointerException();
-
- StackTraceElement element = npe.getStackTrace()[2];
-
- return " Reported from: (" + element.getClassName() + "." + element.getMethodName() + "(..):" +
- element.getLineNumber() + ")\n";
- }
-
- private CharSequence format( List messageParts )
- {
- StringBuffer buffer = new StringBuffer();
- for ( Iterator it = messageParts.iterator(); it.hasNext(); )
- {
- Object part = it.next();
- if ( part instanceof Throwable )
- {
- part = formatThrowable( (Throwable) part );
- }
-
- buffer.append( part );
- }
-
- return buffer;
- }
-
- private String formatThrowable( Throwable throwable )
- {
- StringWriter sWriter = new StringWriter();
- PrintWriter pWriter = new PrintWriter( sWriter );
-
- throwable.printStackTrace( pWriter );
-
- return sWriter.toString();
- }
-
- private static class AppendingList
- extends ArrayList
- {
- public AppendingList()
- {
- }
-
- public AppendingList( int size )
- {
- super( size );
- }
-
- public AppendingList append( Object item )
- {
- super.add( item );
- return this;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org