1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  package org.apache.felix.obrplugin;
20  
21  
22  import java.net.URI;
23  import java.util.Arrays;
24  import java.util.List;
25  
26  import org.apache.maven.artifact.repository.ArtifactRepository;
27  import org.apache.maven.plugin.MojoExecutionException;
28  import org.apache.maven.plugin.logging.Log;
29  import org.apache.maven.project.MavenProject;
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  public final class ObrInstallFile extends AbstractFileMojo
42  {
43      
44  
45  
46  
47  
48      private String obrRepository;
49  
50      
51  
52  
53  
54  
55      private List supportedProjectTypes = Arrays.asList( new String[]
56          { "jar", "bundle" } );
57  
58      
59  
60  
61  
62  
63  
64  
65      private ArtifactRepository localRepository;
66  
67  
68      public void execute() throws MojoExecutionException
69      {
70          MavenProject project = getProject();
71          String projectType = project.getPackaging();
72  
73          
74          if ( !supportedProjectTypes.contains( projectType ) )
75          {
76              getLog().warn(
77                  "Ignoring project type " + projectType + " - supportedProjectTypes = " + supportedProjectTypes );
78              return;
79          }
80          else if ( "NONE".equalsIgnoreCase( obrRepository ) || "false".equalsIgnoreCase( obrRepository ) )
81          {
82              getLog().info( "Local OBR update disabled (enable with -DobrRepository)" );
83              return;
84          }
85  
86          Log log = getLog();
87          ObrUpdate update;
88  
89          String mavenRepository = localRepository.getBasedir();
90  
91          URI repositoryXml = ObrUtils.findRepositoryXml( mavenRepository, obrRepository );
92          URI obrXmlFile = ObrUtils.toFileURI( obrXml );
93          URI bundleJar;
94  
95          if ( null == file )
96          {
97              bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
98          }
99          else
100         {
101             bundleJar = file.toURI();
102         }
103 
104         Config userConfig = new Config();
105 
106         update = new ObrUpdate( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
107         update.parseRepositoryXml();
108 
109         update.updateRepository( bundleJar, null, null );
110 
111         update.writeRepositoryXml();
112     }
113 }