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 }