20
20
package org .elasticsearch .repositories ;
21
21
22
22
import org .elasticsearch .action .admin .cluster .snapshots .status .TransportNodesSnapshotsStatus ;
23
+ import org .elasticsearch .cluster .service .ClusterService ;
23
24
import org .elasticsearch .common .inject .AbstractModule ;
24
- import org .elasticsearch .common .inject .multibindings .MapBinder ;
25
25
import org .elasticsearch .common .xcontent .NamedXContentRegistry ;
26
26
import org .elasticsearch .env .Environment ;
27
27
import org .elasticsearch .plugins .RepositoryPlugin ;
28
28
import org .elasticsearch .repositories .fs .FsRepository ;
29
29
import org .elasticsearch .snapshots .RestoreService ;
30
30
import org .elasticsearch .snapshots .SnapshotShardsService ;
31
31
import org .elasticsearch .snapshots .SnapshotsService ;
32
+ import org .elasticsearch .threadpool .ThreadPool ;
33
+ import org .elasticsearch .transport .TransportService ;
32
34
33
35
import java .util .Collections ;
34
36
import java .util .HashMap ;
40
42
*/
41
43
public class RepositoriesModule extends AbstractModule {
42
44
43
- private final Map < String , Repository . Factory > repositoryTypes ;
45
+ private final RepositoriesService repositoriesService ;
44
46
45
- public RepositoriesModule (Environment env , List <RepositoryPlugin > repoPlugins , NamedXContentRegistry namedXContentRegistry ) {
47
+ public RepositoriesModule (Environment env , List <RepositoryPlugin > repoPlugins , TransportService transportService ,
48
+ ClusterService clusterService , ThreadPool threadPool , NamedXContentRegistry namedXContentRegistry ) {
46
49
Map <String , Repository .Factory > factories = new HashMap <>();
47
50
factories .put (FsRepository .TYPE , (metadata ) -> new FsRepository (metadata , env , namedXContentRegistry ));
48
51
@@ -54,17 +57,17 @@ public RepositoriesModule(Environment env, List<RepositoryPlugin> repoPlugins, N
54
57
}
55
58
}
56
59
}
57
- repositoryTypes = Collections .unmodifiableMap (factories );
60
+
61
+ Map <String , Repository .Factory > repositoryTypes = Collections .unmodifiableMap (factories );
62
+ repositoriesService = new RepositoriesService (env .settings (), clusterService , transportService , repositoryTypes , threadPool );
58
63
}
59
64
60
65
@ Override
61
66
protected void configure () {
62
- bind (RepositoriesService .class ).asEagerSingleton ( );
67
+ bind (RepositoriesService .class ).toInstance ( repositoriesService );
63
68
bind (SnapshotsService .class ).asEagerSingleton ();
64
69
bind (SnapshotShardsService .class ).asEagerSingleton ();
65
70
bind (TransportNodesSnapshotsStatus .class ).asEagerSingleton ();
66
71
bind (RestoreService .class ).asEagerSingleton ();
67
- MapBinder <String , Repository .Factory > typesBinder = MapBinder .newMapBinder (binder (), String .class , Repository .Factory .class );
68
- repositoryTypes .forEach ((k , v ) -> typesBinder .addBinding (k ).toInstance (v ));
69
72
}
70
73
}
0 commit comments