View Javadoc

1   package org.apache.maven.util;
2   
3   /* ====================================================================
4    *   Licensed to the Apache Software Foundation (ASF) under one or more
5    *   contributor license agreements.  See the NOTICE file distributed with
6    *   this work for additional information regarding copyright ownership.
7    *   The ASF licenses this file to You under the Apache License, Version 2.0
8    *   (the "License"); you may not use this file except in compliance with
9    *   the License.  You may obtain a copy of the License at
10   *
11   *       http://www.apache.org/licenses/LICENSE-2.0
12   *
13   *   Unless required by applicable law or agreed to in writing, software
14   *   distributed under the License is distributed on an "AS IS" BASIS,
15   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   *   See the License for the specific language governing permissions and
17   *   limitations under the License.
18   * ====================================================================
19   */
20  
21  import org.apache.commons.logging.Log;
22  import org.apache.commons.logging.LogFactory;
23  import org.apache.maven.wagon.events.TransferEvent;
24  import org.apache.maven.wagon.events.TransferListener;
25  
26  /**
27   * Console download progress meter.
28   *
29   * @author <a href="mailto:brett@apache.org">Brett Porter</a>
30   * @version $Id: ConsoleDownloadMeter.java 517014 2007-03-11 21:15:50Z ltheussl $
31   */
32  public class ConsoleDownloadMeter
33      implements TransferListener
34  {
35      /** LOGGER for debug output */
36      private static final Log LOGGER = LogFactory.getLog( BootstrapDownloadMeter.class );
37  
38      private long complete;
39  
40      public void transferInitiated( TransferEvent transferEvent )
41      {
42          // this space left intentionally blank
43      }
44  
45      public void transferStarted( TransferEvent transferEvent )
46      {
47          complete = 0;
48      }
49  
50      public void transferProgress( TransferEvent transferEvent, byte[] buffer, int length )
51      {
52          long total = transferEvent.getResource().getContentLength();
53          complete += length;
54          System.out.print( ( complete / 1024 ) + "/" + ( total == 0 ? "?" : ( total / 1024 ) + "K" ) + "\r" );
55      }
56  
57      public void transferCompleted( TransferEvent transferEvent )
58      {
59          long total = transferEvent.getResource().getContentLength();
60          LOGGER.info( ( total / 1024 ) + "K downloaded" );
61      }
62  
63      public void transferError( TransferEvent transferEvent )
64      {
65          LOGGER.error( transferEvent.getException().getMessage() );
66      }
67  
68      public void debug( String message )
69      {
70          LOGGER.debug( message );
71      }
72  }