]> source.dussan.org Git - archiva.git/blob
2e19eb64006fe959f08772b397cec793e95ecd98
[archiva.git] /
1 package org.apache.archiva.indexer.merger;
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.archiva.redback.components.scheduler.AbstractJob;
23 import org.apache.maven.index.context.IndexingContext;
24 import org.quartz.JobExecutionContext;
25 import org.quartz.JobExecutionException;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29 import java.io.File;
30
31 /**
32  * @author Olivier Lamy
33  * @since 2.0.0
34  */
35 public class MergedRemoteIndexesTask
36     implements Runnable
37 {
38
39     private Logger logger = LoggerFactory.getLogger( getClass() );
40
41     private MergedRemoteIndexesTaskRequest mergedRemoteIndexesTaskRequest;
42
43     public MergedRemoteIndexesTask( MergedRemoteIndexesTaskRequest mergedRemoteIndexesTaskRequest )
44     {
45         this.mergedRemoteIndexesTaskRequest = mergedRemoteIndexesTaskRequest;
46     }
47
48     @Override
49     public void run()
50     {
51         try
52         {
53             this.execute();
54         }
55         catch ( IndexMergerException e )
56         {
57             logger.error( e.getMessage(), e );
58         }
59     }
60
61     public MergedRemoteIndexesTaskResult execute( )
62         throws IndexMergerException
63     {
64         IndexMerger indexMerger = mergedRemoteIndexesTaskRequest.indexMerger;
65
66         IndexingContext indexingContext =
67             indexMerger.buildMergedIndex( mergedRemoteIndexesTaskRequest.indexMergerRequest );
68
69         return new MergedRemoteIndexesTaskResult( indexingContext );
70     }
71
72     public static class MergedRemoteIndexesTaskRequest
73     {
74         private IndexMergerRequest indexMergerRequest;
75
76         private IndexMerger indexMerger;
77
78         public MergedRemoteIndexesTaskRequest( IndexMergerRequest indexMergerRequest, IndexMerger indexMerger )
79         {
80             this.indexMergerRequest = indexMergerRequest;
81             this.indexMerger = indexMerger;
82         }
83
84         public IndexMergerRequest getIndexMergerRequest()
85         {
86             return indexMergerRequest;
87         }
88
89         public void setIndexMergerRequest( IndexMergerRequest indexMergerRequest )
90         {
91             this.indexMergerRequest = indexMergerRequest;
92         }
93
94         public IndexMerger getIndexMerger()
95         {
96             return indexMerger;
97         }
98
99         public void setIndexMerger( IndexMerger indexMerger )
100         {
101             this.indexMerger = indexMerger;
102         }
103     }
104
105     public static class MergedRemoteIndexesTaskResult
106     {
107         private IndexingContext indexingContext;
108
109         public MergedRemoteIndexesTaskResult( IndexingContext indexingContext )
110         {
111             this.indexingContext = indexingContext;
112         }
113
114         public IndexingContext getIndexingContext()
115         {
116             return indexingContext;
117         }
118
119         public void setIndexingContext( IndexingContext indexingContext )
120         {
121             this.indexingContext = indexingContext;
122         }
123     }
124 }