1 package org.apache.maven.index.examples.indexing;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24 import org.springframework.stereotype.Component;
25
26 import javax.annotation.PreDestroy;
27 import javax.inject.Singleton;
28 import java.io.IOException;
29 import java.util.LinkedHashMap;
30 import java.util.Map;
31
32
33
34
35
36
37 @Singleton
38 @Component
39 public class RepositoryIndexManager
40 {
41
42 private static final Logger LOGGER = LoggerFactory.getLogger( RepositoryIndexManager.class );
43
44
45
46
47
48 private Map<String, RepositoryIndexer> indexes = new LinkedHashMap<>();
49
50
51 public RepositoryIndexManager()
52 {
53
54 }
55
56
57
58
59
60
61
62 @PreDestroy
63 private void close()
64 {
65 for ( String repositoryId : indexes.keySet() )
66 {
67 try
68 {
69 final RepositoryIndexer repositoryIndexer = indexes.get( repositoryId );
70
71 LOGGER.debug( "Closing indexer for " + repositoryIndexer.getRepositoryId() + "..." );
72
73 repositoryIndexer.close();
74
75 LOGGER.debug( "Closed indexer for " + repositoryIndexer.getRepositoryId() + "." );
76 }
77 catch ( IOException e )
78 {
79 LOGGER.error( e.getMessage(), e );
80 }
81 }
82 }
83
84 public Map<String, RepositoryIndexer> getIndexes()
85 {
86 return indexes;
87 }
88
89 public void setIndexes( Map<String, RepositoryIndexer> indexes )
90 {
91 this.indexes = indexes;
92 }
93
94 public RepositoryIndexer getRepositoryIndex( String repositoryId )
95 {
96 return indexes.get( repositoryId );
97 }
98
99 public RepositoryIndexer addRepositoryIndex( String repositoryId, RepositoryIndexer value )
100 {
101 return indexes.put( repositoryId, value );
102 }
103
104 public RepositoryIndexer removeRepositoryIndex( String repositoryId )
105 {
106 return indexes.remove( repositoryId );
107 }
108
109 }