]> source.dussan.org Git - archiva.git/blob
5d4fd3f0658a5d1edb6f509282c41ec860209542
[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.text.SimpleDateFormat;
27 import java.util.List;
28
29 /**
30  * RepositoryScanStatistics - extension to the RepositoryContentStatistics model.
31  *
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     private SimpleDateFormat df = new SimpleDateFormat();
44
45     public void triggerStart()
46     {
47         startTimestamp = System.currentTimeMillis();
48     }
49
50     public void triggerFinished()
51     {
52         long finished = System.currentTimeMillis();
53         setDuration( finished - startTimestamp );
54         setWhenGathered( new java.util.Date( finished ) );
55     }
56
57     public void increaseFileCount()
58     {
59         long count = getTotalFileCount();
60         setTotalFileCount( ++count );
61     }
62
63     public void increaseNewFileCount()
64     {
65         long count = getNewFileCount();
66         setNewFileCount( ++count );
67     }
68
69     public void setKnownConsumers( List<String> consumers )
70     {
71         knownConsumers = consumers;
72     }
73
74     public void setInvalidConsumers( List<String> consumers )
75     {
76         invalidConsumers = consumers;
77     }
78
79     public String toDump( ManagedRepositoryConfiguration repo )
80     {
81         StringBuffer buf = new StringBuffer();
82
83         buf.append( "\n.\\ Scan of " ).append( this.getRepositoryId() );
84         buf.append( " \\.__________________________________________" );
85
86         buf.append( "\n  Repository Dir    : " ).append( repo.getLocation() );
87         buf.append( "\n  Repository Name   : " ).append( repo.getName() );
88         buf.append( "\n  Repository Layout : " ).append( repo.getLayout() );
89
90         buf.append( "\n  Known Consumers   : " );
91         if ( CollectionUtils.isNotEmpty( knownConsumers ) )
92         {
93             buf.append( "(" ).append( knownConsumers.size() ).append( " configured)" );
94             for ( String id : knownConsumers )
95             {
96                 buf.append( "\n                      " ).append( id );
97             }
98         }
99         else
100         {
101             buf.append( "<none>" );
102         }
103
104         buf.append( "\n  Invalid Consumers : " );
105         if ( CollectionUtils.isNotEmpty( invalidConsumers ) )
106         {
107             buf.append( "(" ).append( invalidConsumers.size() ).append( " configured)" );
108             for ( String id : invalidConsumers )
109             {
110                 buf.append( "\n                      " ).append( id );
111             }
112         }
113         else
114         {
115             buf.append( "<none>" );
116         }
117
118         buf.append( "\n  Duration          : " );
119         buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( this.getDuration() ) );
120         buf.append( "\n  When Gathered     : " );
121         if ( this.getWhenGathered() == null )
122         {
123             buf.append( "<null>" );
124         }
125         else
126         {
127             buf.append( df.format( this.getWhenGathered() ) );
128         }
129
130         buf.append( "\n  Total File Count  : " ).append( this.getTotalFileCount() );
131
132         long averageMsPerFile = 0;
133
134         if ( getTotalFileCount() != 0 )
135         {
136             averageMsPerFile = ( this.getDuration() / this.getTotalFileCount() );
137         }
138
139         buf.append( "\n  Avg Time Per File : " );
140         buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( averageMsPerFile ) );
141         buf.append( "\n______________________________________________________________" );
142
143         return buf.toString();
144     }
145 }