]> source.dussan.org Git - archiva.git/blob
ba664af596fadd7a6c1f60700d23c8b96b6196cd
[archiva.git] /
1 package org.apache.maven.archiva.repository.scanner;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.commons.collections.CollectionUtils;
23 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
24 import org.apache.maven.archiva.model.RepositoryContentStatistics;
25
26 import java.util.List;
27
28 /**
29  * RepositoryScanStatistics - extension to the RepositoryContentStatistics model.
30  *
31  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
32  * @version $Id$
33  */
34 public class RepositoryScanStatistics
35     extends RepositoryContentStatistics
36 {
37     private transient List<String> knownConsumers;
38
39     private transient List<String> invalidConsumers;
40
41     private transient long startTimestamp;
42
43     public void triggerStart()
44     {
45         startTimestamp = System.currentTimeMillis();
46     }
47
48     public void triggerFinished()
49     {
50         long finished = System.currentTimeMillis();
51         setDuration( finished - startTimestamp );
52         setWhenGathered( new java.util.Date( finished ) );
53     }
54
55     public void increaseFileCount()
56     {
57         long count = getTotalFileCount();
58         setTotalFileCount( ++count );
59     }
60
61     public void increaseNewFileCount()
62     {
63         long count = getNewFileCount();
64         setNewFileCount( ++count );
65     }
66
67     public void setKnownConsumers( List<String> consumers )
68     {
69         knownConsumers = consumers;
70     }
71
72     public void setInvalidConsumers( List<String> consumers )
73     {
74         invalidConsumers = consumers;
75     }
76
77     public String toDump( ManagedRepositoryConfiguration repo )
78     {
79         java.text.SimpleDateFormat df = new java.text.SimpleDateFormat();
80         StringBuffer buf = new StringBuffer();
81
82         buf.append( "\n.\\ Scan of " ).append( this.getRepositoryId() );
83         buf.append( " \\.__________________________________________" );
84
85         buf.append( "\n  Repository Dir    : " ).append( repo.getLocation() );
86         buf.append( "\n  Repository Name   : " ).append( repo.getName() );
87         buf.append( "\n  Repository Layout : " ).append( repo.getLayout() );
88
89         buf.append( "\n  Known Consumers   : " );
90         if ( CollectionUtils.isNotEmpty( knownConsumers ) )
91         {
92             buf.append( "(" ).append( knownConsumers.size() ).append( " configured)" );
93             for ( String id : knownConsumers )
94             {
95                 buf.append( "\n                      " ).append( id );
96             }
97         }
98         else
99         {
100             buf.append( "<none>" );
101         }
102
103         buf.append( "\n  Invalid Consumers : " );
104         if ( CollectionUtils.isNotEmpty( invalidConsumers ) )
105         {
106             buf.append( "(" ).append( invalidConsumers.size() ).append( " configured)" );
107             for ( String id : invalidConsumers )
108             {
109                 buf.append( "\n                      " ).append( id );
110             }
111         }
112         else
113         {
114             buf.append( "<none>" );
115         }
116
117         buf.append( "\n  Duration          : " );
118         buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( this.getDuration() ) );
119         buf.append( "\n  When Gathered     : " );
120         if ( this.getWhenGathered() == null )
121         {
122             buf.append( "<null>" );
123         }
124         else
125         {
126             buf.append( df.format( this.getWhenGathered() ) );
127         }
128
129         buf.append( "\n  Total File Count  : " ).append( this.getTotalFileCount() );
130
131         long averageMsPerFile = 0;
132
133         if ( getTotalFileCount() != 0 )
134         {
135             averageMsPerFile = ( this.getDuration() / this.getTotalFileCount() );
136         }
137
138         buf.append( "\n  Avg Time Per File : " );
139         buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( averageMsPerFile ) );
140         buf.append( "\n______________________________________________________________" );
141
142         return buf.toString();
143     }
144 }