1 package org.eclipse.aether.internal.impl;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import javax.inject.Inject;
23 import javax.inject.Named;
24
25 import org.eclipse.aether.RepositorySystemSession;
26 import org.eclipse.aether.repository.LocalRepository;
27 import org.eclipse.aether.repository.LocalRepositoryManager;
28 import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
29 import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
30 import org.eclipse.aether.spi.locator.Service;
31 import org.eclipse.aether.spi.locator.ServiceLocator;
32 import org.eclipse.aether.spi.log.Logger;
33 import org.eclipse.aether.spi.log.LoggerFactory;
34 import org.eclipse.aether.spi.log.NullLoggerFactory;
35
36
37
38
39
40
41
42
43 @Named( "enhanced" )
44 public class EnhancedLocalRepositoryManagerFactory
45 implements LocalRepositoryManagerFactory, Service
46 {
47
48 private Logger logger = NullLoggerFactory.LOGGER;
49
50 private float priority = 10.0f;
51
52 public EnhancedLocalRepositoryManagerFactory()
53 {
54
55 }
56
57 @Inject
58 EnhancedLocalRepositoryManagerFactory( LoggerFactory loggerFactory )
59 {
60 setLoggerFactory( loggerFactory );
61 }
62
63 public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository )
64 throws NoLocalRepositoryManagerException
65 {
66 if ( "".equals( repository.getContentType() ) || "default".equals( repository.getContentType() ) )
67 {
68 return new EnhancedLocalRepositoryManager( repository.getBasedir(), session ).setLogger( logger );
69 }
70 else
71 {
72 throw new NoLocalRepositoryManagerException( repository );
73 }
74 }
75
76 public void initService( ServiceLocator locator )
77 {
78 setLoggerFactory( locator.getService( LoggerFactory.class ) );
79 }
80
81 public EnhancedLocalRepositoryManagerFactory setLoggerFactory( LoggerFactory loggerFactory )
82 {
83 this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, EnhancedLocalRepositoryManager.class );
84 return this;
85 }
86
87 public float getPriority()
88 {
89 return priority;
90 }
91
92
93
94
95
96
97
98 public EnhancedLocalRepositoryManagerFactory setPriority( float priority )
99 {
100 this.priority = priority;
101 return this;
102 }
103
104 }