List of usage examples for org.apache.maven.plugin.logging Log info
void info(Throwable error);
From source file:org.apache.camel.maven.packaging.PackageArchetypeCatalogMojo.java
License:Apache License
public static void generateArchetypeCatalog(Log log, MavenProject project, MavenProjectHelper projectHelper, File projectBuildDir, File outDir) throws MojoExecutionException, IOException { File rootDir = projectBuildDir.getParentFile(); log.info("Scanning for Camel Maven Archetypes from root directory " + rootDir); // find all archetypes which are in the parent dir of the build dir File[] dirs = rootDir.listFiles(new FileFilter() { @Override//ww w . j a va 2 s.co m public boolean accept(File pathname) { return pathname.getName().startsWith("camel-archetype") && pathname.isDirectory(); } }); List<ArchetypeModel> models = new ArrayList<ArchetypeModel>(); for (File dir : dirs) { File pom = new File(dir, "pom.xml"); if (!pom.exists() && !pom.isFile()) { continue; } boolean parent = false; ArchetypeModel model = new ArchetypeModel(); // just use a simple line by line text parser (no need for DOM) just to grab 4 lines of data for (Object o : FileUtils.readLines(pom)) { String line = o.toString(); // we only want to read version from parent if (line.contains("<parent>")) { parent = true; continue; } if (line.contains("</parent>")) { parent = false; continue; } if (parent) { // grab version from parent String version = between(line, "<version>", "</version>"); if (version != null) { model.setVersion(version); } continue; } String groupId = between(line, "<groupId>", "</groupId>"); String artifactId = between(line, "<artifactId>", "</artifactId>"); String description = between(line, "<description>", "</description>"); if (groupId != null && model.getGroupId() == null) { model.setGroupId(groupId); } if (artifactId != null && model.getArtifactId() == null) { model.setArtifactId(artifactId); } if (description != null && model.getDescription() == null) { model.setDescription(description); } } if (model.getGroupId() != null && model.getArtifactId() != null && model.getVersion() != null) { models.add(model); } } log.info("Found " + models.size() + " archetypes"); if (!models.isEmpty()) { // make sure there is a dir outDir.mkdirs(); File out = new File(outDir, "archetype-catalog.xml"); FileOutputStream fos = new FileOutputStream(out, false); // write top String top = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archetype-catalog>\n <archetypes>"; fos.write(top.getBytes()); // write each archetype for (ArchetypeModel model : models) { fos.write("\n <archetype>".getBytes()); fos.write(("\n <groupId>" + model.getGroupId() + "</groupId>").getBytes()); fos.write(("\n <artifactId>" + model.getArtifactId() + "</artifactId>").getBytes()); fos.write(("\n <version>" + model.getVersion() + "</version>").getBytes()); if (model.getDescription() != null) { fos.write(("\n <description>" + model.getDescription() + "</description>").getBytes()); } fos.write("\n </archetype>".getBytes()); } // write bottom String bottom = "\n </archetypes>\n</archetype-catalog>\n"; fos.write(bottom.getBytes()); fos.close(); log.info("Saved archetype catalog to file " + out); try { if (projectHelper != null) { log.info("Attaching archetype catalog to Maven project: " + project.getArtifactId()); List<String> includes = new ArrayList<String>(); includes.add("archetype-catalog.xml"); projectHelper.addResource(project, outDir.getPath(), includes, new ArrayList<String>()); projectHelper.attachArtifact(project, "xml", "archetype-catalog", out); } } catch (Exception e) { throw new MojoExecutionException("Failed to attach artifact to Maven project. Reason: " + e, e); } } }
From source file:org.apache.camel.maven.packaging.PackageComponentMojo.java
License:Apache License
public static void prepareComponent(Log log, MavenProject project, MavenProjectHelper projectHelper, File componentOutDir) throws MojoExecutionException { File camelMetaDir = new File(componentOutDir, "META-INF/services/org/apache/camel/"); StringBuilder buffer = new StringBuilder(); int count = 0; for (Resource r : project.getBuild().getResources()) { File f = new File(r.getDirectory()); if (!f.exists()) { f = new File(project.getBasedir(), r.getDirectory()); }/*from ww w . java 2 s. c om*/ f = new File(f, "META-INF/services/org/apache/camel/component"); if (f.exists() && f.isDirectory()) { File[] files = f.listFiles(); if (files != null) { for (File file : files) { // skip directories as there may be a sub .resolver directory if (file.isDirectory()) { continue; } String name = file.getName(); if (name.charAt(0) != '.') { count++; if (buffer.length() > 0) { buffer.append(" "); } buffer.append(name); } } } } } if (count > 0) { Properties properties = new Properties(); String names = buffer.toString(); properties.put("components", names); properties.put("groupId", project.getGroupId()); properties.put("artifactId", project.getArtifactId()); properties.put("version", project.getVersion()); properties.put("projectName", project.getName()); if (project.getDescription() != null) { properties.put("projectDescription", project.getDescription()); } camelMetaDir.mkdirs(); File outFile = new File(camelMetaDir, "component.properties"); try { properties.store(new FileWriter(outFile), "Generated by camel-package-maven-plugin"); log.info("Generated " + outFile + " containing " + count + " Camel " + (count > 1 ? "components: " : "component: ") + names); if (projectHelper != null) { List<String> includes = new ArrayList<String>(); includes.add("**/component.properties"); projectHelper.addResource(project, componentOutDir.getPath(), includes, new ArrayList<String>()); projectHelper.attachArtifact(project, "properties", "camelComponent", outFile); } } catch (IOException e) { throw new MojoExecutionException("Failed to write properties to " + outFile + ". Reason: " + e, e); } } else { log.debug( "No META-INF/services/org/apache/camel/component directory found. Are you sure you have created a Camel component?"); } }
From source file:org.apache.camel.maven.packaging.PackageDataFormatMojo.java
License:Apache License
public static void prepareDataFormat(Log log, MavenProject project, MavenProjectHelper projectHelper, File dataFormatOutDir, File schemaOutDir) throws MojoExecutionException { File camelMetaDir = new File(dataFormatOutDir, "META-INF/services/org/apache/camel/"); Map<String, String> javaTypes = new HashMap<String, String>(); StringBuilder buffer = new StringBuilder(); int count = 0; for (Resource r : project.getBuild().getResources()) { File f = new File(r.getDirectory()); if (!f.exists()) { f = new File(project.getBasedir(), r.getDirectory()); }//from w w w. ja v a2 s .co m f = new File(f, "META-INF/services/org/apache/camel/dataformat"); if (f.exists() && f.isDirectory()) { File[] files = f.listFiles(); if (files != null) { for (File file : files) { // skip directories as there may be a sub .resolver directory if (file.isDirectory()) { continue; } String name = file.getName(); if (name.charAt(0) != '.') { count++; if (buffer.length() > 0) { buffer.append(" "); } buffer.append(name); } // find out the javaType for each data format try { String text = loadText(new FileInputStream(file)); Map<String, String> map = parseAsMap(text); String javaType = map.get("class"); if (javaType != null) { javaTypes.put(name, javaType); } } catch (IOException e) { throw new MojoExecutionException("Failed to read file " + file + ". Reason: " + e, e); } } } } } // find camel-core and grab the data format model from there, and enrich this model with information from this artifact // and create json schema model file for this data format try { if (count > 0) { Artifact camelCore = findCamelCoreArtifact(project); if (camelCore != null) { File core = camelCore.getFile(); if (core != null) { URL url = new URL("file", null, core.getAbsolutePath()); URLClassLoader loader = new URLClassLoader(new URL[] { url }); for (Map.Entry<String, String> entry : javaTypes.entrySet()) { String name = entry.getKey(); String javaType = entry.getValue(); String modelName = asModelName(name); InputStream is = loader.getResourceAsStream( "org/apache/camel/model/dataformat/" + modelName + ".json"); if (is == null) { // use file input stream if we build camel-core itself, and thus do not have a JAR which can be loaded by URLClassLoader is = new FileInputStream( new File(core, "org/apache/camel/model/dataformat/" + modelName + ".json")); } String json = loadText(is); if (json != null) { DataFormatModel dataFormatModel = new DataFormatModel(); dataFormatModel.setName(name); dataFormatModel.setTitle(""); dataFormatModel.setModelName(modelName); dataFormatModel.setLabel(""); dataFormatModel.setDescription(project.getDescription()); dataFormatModel.setJavaType(javaType); dataFormatModel.setGroupId(project.getGroupId()); dataFormatModel.setArtifactId(project.getArtifactId()); dataFormatModel.setVersion(project.getVersion()); List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("model", json, false); for (Map<String, String> row : rows) { if (row.containsKey("title")) { String title = row.get("title"); dataFormatModel.setTitle(asModelTitle(name, title)); } if (row.containsKey("label")) { dataFormatModel.setLabel(row.get("label")); } if (row.containsKey("javaType")) { dataFormatModel.setModelJavaType(row.get("javaType")); } // override description for camel-core, as otherwise its too generic if ("camel-core".equals(project.getArtifactId())) { if (row.containsKey("description")) { dataFormatModel.setLabel(row.get("description")); } } } log.debug("Model " + dataFormatModel); // build json schema for the data format String properties = after(json, " \"properties\": {"); String schema = createParameterJsonSchema(dataFormatModel, properties); log.debug("JSon schema\n" + schema); // write this to the directory File dir = new File(schemaOutDir, schemaSubDirectory(dataFormatModel.getJavaType())); dir.mkdirs(); File out = new File(dir, name + ".json"); FileOutputStream fos = new FileOutputStream(out, false); fos.write(schema.getBytes()); fos.close(); log.debug("Generated " + out + " containing JSon schema for " + name + " data format"); } } } } } } catch (Exception e) { throw new MojoExecutionException("Error loading dataformat model from camel-core. Reason: " + e, e); } if (count > 0) { Properties properties = new Properties(); String names = buffer.toString(); properties.put("dataFormats", names); properties.put("groupId", project.getGroupId()); properties.put("artifactId", project.getArtifactId()); properties.put("version", project.getVersion()); properties.put("projectName", project.getName()); if (project.getDescription() != null) { properties.put("projectDescription", project.getDescription()); } camelMetaDir.mkdirs(); File outFile = new File(camelMetaDir, "dataformat.properties"); try { properties.store(new FileWriter(outFile), "Generated by camel-package-maven-plugin"); log.info("Generated " + outFile + " containing " + count + " Camel " + (count > 1 ? "dataformats: " : "dataformat: ") + names); if (projectHelper != null) { List<String> includes = new ArrayList<String>(); includes.add("**/dataformat.properties"); projectHelper.addResource(project, dataFormatOutDir.getPath(), includes, new ArrayList<String>()); projectHelper.attachArtifact(project, "properties", "camelDataFormat", outFile); } } catch (IOException e) { throw new MojoExecutionException("Failed to write properties to " + outFile + ". Reason: " + e, e); } } else { log.debug( "No META-INF/services/org/apache/camel/dataformat directory found. Are you sure you have created a Camel data format?"); } }
From source file:org.apache.camel.maven.packaging.PackageLanguageMojo.java
License:Apache License
public static void prepareLanguage(Log log, MavenProject project, MavenProjectHelper projectHelper, File languageOutDir, File schemaOutDir) throws MojoExecutionException { File camelMetaDir = new File(languageOutDir, "META-INF/services/org/apache/camel/"); Map<String, String> javaTypes = new HashMap<String, String>(); StringBuilder buffer = new StringBuilder(); int count = 0; for (Resource r : project.getBuild().getResources()) { File f = new File(r.getDirectory()); if (!f.exists()) { f = new File(project.getBasedir(), r.getDirectory()); }//from w w w . ja v a 2s. c om f = new File(f, "META-INF/services/org/apache/camel/language"); if (f.exists() && f.isDirectory()) { File[] files = f.listFiles(); if (files != null) { for (File file : files) { // skip directories as there may be a sub .resolver directory such as in camel-script if (file.isDirectory()) { continue; } String name = file.getName(); if (name.charAt(0) != '.') { count++; if (buffer.length() > 0) { buffer.append(" "); } buffer.append(name); } // find out the javaType for each data format try { String text = loadText(new FileInputStream(file)); Map<String, String> map = parseAsMap(text); String javaType = map.get("class"); if (javaType != null) { javaTypes.put(name, javaType); } } catch (IOException e) { throw new MojoExecutionException("Failed to read file " + file + ". Reason: " + e, e); } } } } } // find camel-core and grab the data format model from there, and enrich this model with information from this artifact // and create json schema model file for this data format try { if (count > 0) { Artifact camelCore = findCamelCoreArtifact(project); if (camelCore != null) { File core = camelCore.getFile(); if (core != null) { URL url = new URL("file", null, core.getAbsolutePath()); URLClassLoader loader = new URLClassLoader(new URL[] { url }); for (Map.Entry<String, String> entry : javaTypes.entrySet()) { String name = entry.getKey(); String javaType = entry.getValue(); String modelName = asModelName(name); InputStream is = loader .getResourceAsStream("org/apache/camel/model/language/" + modelName + ".json"); if (is == null) { // use file input stream if we build camel-core itself, and thus do not have a JAR which can be loaded by URLClassLoader is = new FileInputStream( new File(core, "org/apache/camel/model/language/" + modelName + ".json")); } String json = loadText(is); if (json != null) { LanguageModel languageModel = new LanguageModel(); languageModel.setName(name); languageModel.setTitle(""); languageModel.setModelName(modelName); languageModel.setLabel(""); languageModel.setDescription(""); languageModel.setJavaType(javaType); languageModel.setGroupId(project.getGroupId()); languageModel.setArtifactId(project.getArtifactId()); languageModel.setVersion(project.getVersion()); List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("model", json, false); for (Map<String, String> row : rows) { if (row.containsKey("title")) { languageModel.setTitle(row.get("title")); } if (row.containsKey("description")) { languageModel.setDescription(row.get("description")); } if (row.containsKey("label")) { languageModel.setLabel(row.get("label")); } if (row.containsKey("javaType")) { languageModel.setModelJavaType(row.get("javaType")); } } log.debug("Model " + languageModel); // build json schema for the data format String properties = after(json, " \"properties\": {"); String schema = createParameterJsonSchema(languageModel, properties); log.debug("JSon schema\n" + schema); // write this to the directory File dir = new File(schemaOutDir, schemaSubDirectory(languageModel.getJavaType())); dir.mkdirs(); File out = new File(dir, name + ".json"); FileOutputStream fos = new FileOutputStream(out, false); fos.write(schema.getBytes()); fos.close(); log.debug("Generated " + out + " containing JSon schema for " + name + " language"); } } } } } } catch (Exception e) { throw new MojoExecutionException("Error loading language model from camel-core. Reason: " + e, e); } if (count > 0) { Properties properties = new Properties(); String names = buffer.toString(); properties.put("languages", names); properties.put("groupId", project.getGroupId()); properties.put("artifactId", project.getArtifactId()); properties.put("version", project.getVersion()); properties.put("projectName", project.getName()); if (project.getDescription() != null) { properties.put("projectDescription", project.getDescription()); } camelMetaDir.mkdirs(); File outFile = new File(camelMetaDir, "language.properties"); try { properties.store(new FileWriter(outFile), "Generated by camel-package-maven-plugin"); log.info("Generated " + outFile + " containing " + count + " Camel " + (count > 1 ? "languages: " : "language: ") + names); if (projectHelper != null) { List<String> includes = new ArrayList<String>(); includes.add("**/language.properties"); projectHelper.addResource(project, languageOutDir.getPath(), includes, new ArrayList<String>()); projectHelper.attachArtifact(project, "properties", "camelLanguage", outFile); } } catch (IOException e) { throw new MojoExecutionException("Failed to write properties to " + outFile + ". Reason: " + e, e); } } else { log.debug( "No META-INF/services/org/apache/camel/language directory found. Are you sure you have created a Camel language?"); } }
From source file:org.apache.felix.obr.plugin.ObrDeploy.java
License:Apache License
public void execute() throws MojoExecutionException { if (!supportedProjectTypes.contains(project.getPackaging())) { getLog().info("Ignoring packaging type " + project.getPackaging()); return;// www. ja va2s .com } else if ("NONE".equalsIgnoreCase(obrRepository)) { getLog().info("OBR update disabled (enable with -DobrRepository)"); return; } URI tempURI = ObrUtils.findRepositoryXml("", obrRepository); String repositoryName = new File(tempURI.getPath()).getName(); Log log = getLog(); ObrUpdate update; RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log); openRepositoryConnection(remoteFile); // ======== LOCK REMOTE OBR ======== log.info("LOCK " + remoteFile + '/' + repositoryName); remoteFile.lockFile(repositoryName, ignoreLock); File downloadedRepositoryXml = null; try { // ======== DOWNLOAD REMOTE OBR ======== log.info("Downloading " + repositoryName); downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml"); String mavenRepository = localRepository.getBasedir(); URI repositoryXml = downloadedRepositoryXml.toURI(); URI obrXmlFile = ObrUtils.findObrXml(project.getResources()); URI bundleJar = ObrUtils.findBundleJar(localRepository, project.getArtifact()); Config userConfig = new Config(); userConfig.setPathRelative(true); userConfig.setRemoteFile(true); update = new ObrUpdate(repositoryXml, obrXmlFile, project, bundleJar, mavenRepository, userConfig, log); update.updateRepository(); if (downloadedRepositoryXml.exists()) { // ======== UPLOAD MODIFIED OBR ======== log.info("Uploading " + repositoryName); remoteFile.put(downloadedRepositoryXml, repositoryName); } } catch (Exception e) { log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e); } finally { // ======== UNLOCK REMOTE OBR ======== log.info("UNLOCK " + remoteFile + '/' + repositoryName); remoteFile.unlockFile(repositoryName); remoteFile.disconnect(); if (null != downloadedRepositoryXml) { downloadedRepositoryXml.delete(); } } }
From source file:org.apache.felix.obr.plugin.ObrDeployFile.java
License:Apache License
public void execute() throws MojoExecutionException { MavenProject project = getProject(); if (!supportedProjectTypes.contains(project.getPackaging())) { getLog().info("Ignoring packaging type " + project.getPackaging()); return;/* w ww.jav a 2s.c o m*/ } else if ("NONE".equalsIgnoreCase(obrRepository)) { getLog().info("OBR update disabled (enable with -DobrRepository)"); return; } URI tempURI = ObrUtils.findRepositoryXml("", obrRepository); String repositoryName = new File(tempURI.getPath()).getName(); Log log = getLog(); ObrUpdate update; RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log); remoteFile.connect(repositoryId, url); // ======== LOCK REMOTE OBR ======== log.info("LOCK " + remoteFile + '/' + repositoryName); remoteFile.lockFile(repositoryName, ignoreLock); File downloadedRepositoryXml = null; try { // ======== DOWNLOAD REMOTE OBR ======== log.info("Downloading " + repositoryName); downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml"); String mavenRepository = localRepository.getBasedir(); URI repositoryXml = downloadedRepositoryXml.toURI(); URI obrXmlFile = ObrUtils.toFileURI(obrXml); URI bundleJar; if (null == file) { bundleJar = ObrUtils.findBundleJar(localRepository, project.getArtifact()); } else { bundleJar = file.toURI(); } URI remoteBundleURI = null; if (null != bundleUrl) { remoteBundleURI = URI.create(bundleUrl); } else if (null != file) { remoteBundleURI = URI.create(localRepository.pathOf(project.getArtifact())); } Config userConfig = new Config(); userConfig.setRemoteBundle(remoteBundleURI); userConfig.setPathRelative(true); userConfig.setRemoteFile(true); update = new ObrUpdate(repositoryXml, obrXmlFile, project, bundleJar, mavenRepository, userConfig, log); update.updateRepository(); if (downloadedRepositoryXml.exists()) { // ======== UPLOAD MODIFIED OBR ======== log.info("Uploading " + repositoryName); remoteFile.put(downloadedRepositoryXml, repositoryName); } } catch (Exception e) { log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e); } finally { // ======== UNLOCK REMOTE OBR ======== log.info("UNLOCK " + remoteFile + '/' + repositoryName); remoteFile.unlockFile(repositoryName); remoteFile.disconnect(); if (null != downloadedRepositoryXml) { downloadedRepositoryXml.delete(); } } }
From source file:org.apache.felix.obrplugin.ObrDeploy.java
License:Apache License
public void execute() throws MojoExecutionException { String projectType = project.getPackaging(); // ignore unsupported project types, useful when bundleplugin is configured in parent pom if (!supportedProjectTypes.contains(projectType)) { getLog().warn(//w w w . jav a 2 s.c om "Ignoring project type " + projectType + " - supportedProjectTypes = " + supportedProjectTypes); return; } else if ("NONE".equalsIgnoreCase(remoteOBR) || "false".equalsIgnoreCase(remoteOBR)) { getLog().info("Remote OBR update disabled (enable with -DremoteOBR)"); return; } // check for any attached sources or docs for (Iterator i = attachedArtifacts.iterator(); i.hasNext();) { Artifact artifact = (Artifact) i.next(); if ("sources".equals(artifact.getClassifier())) { m_sourceArtifact = artifact; } else if ("javadoc".equals(artifact.getClassifier())) { m_docArtifact = artifact; } } // if the user doesn't supply an explicit name for the remote OBR file, use the local name instead if (null == remoteOBR || remoteOBR.trim().length() == 0 || "true".equalsIgnoreCase(remoteOBR)) { remoteOBR = obrRepository; } URI tempURI = ObrUtils.findRepositoryXml("", remoteOBR); String repositoryName = new File(tempURI.getSchemeSpecificPart()).getName(); Log log = getLog(); ObrUpdate update; RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log); openRepositoryConnection(remoteFile); // ======== LOCK REMOTE OBR ======== log.info("LOCK " + remoteFile + '/' + repositoryName); remoteFile.lockFile(repositoryName, ignoreLock); File downloadedRepositoryXml = null; try { // ======== DOWNLOAD REMOTE OBR ======== log.info("Downloading " + repositoryName); downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml"); String mavenRepository = localRepository.getBasedir(); URI repositoryXml = downloadedRepositoryXml.toURI(); URI obrXmlFile = ObrUtils.findObrXml(project.getResources()); Config userConfig = new Config(); userConfig.setRemoteFile(true); if (bundleUrl != null) { // public URL differs from the bundle file location URI uri = URI.create(bundleUrl); log.info("Computed bundle uri: " + uri); userConfig.setRemoteBundle(uri); } else if (prefixUrl != null) { // support absolute bundle URLs based on given prefix URI bundleJar = ObrUtils.getArtifactURI(localRepository, project.getArtifact()); String relative = ObrUtils.getRelativeURI(ObrUtils.toFileURI(mavenRepository), bundleJar) .toASCIIString(); URL resourceURL = new URL(new URL(prefixUrl + '/'), relative); URI uri = URI.create(resourceURL.toString()); log.info("Computed bundle uri: " + uri); userConfig.setRemoteBundle(uri); } update = new ObrUpdate(repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log); update.parseRepositoryXml(); updateRemoteBundleMetadata(project.getArtifact(), update); for (Iterator i = attachedArtifacts.iterator(); i.hasNext();) { updateRemoteBundleMetadata((Artifact) i.next(), update); } update.writeRepositoryXml(); if (downloadedRepositoryXml.exists()) { // ======== UPLOAD MODIFIED OBR ======== log.info("Uploading " + repositoryName); remoteFile.put(downloadedRepositoryXml, repositoryName); } } catch (Exception e) { log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e); } finally { // ======== UNLOCK REMOTE OBR ======== log.info("UNLOCK " + remoteFile + '/' + repositoryName); remoteFile.unlockFile(repositoryName); remoteFile.disconnect(); if (null != downloadedRepositoryXml) { downloadedRepositoryXml.delete(); } } }
From source file:org.apache.felix.obrplugin.ObrDeployFile.java
License:Apache License
public void execute() throws MojoExecutionException { MavenProject project = getProject(); String projectType = project.getPackaging(); // ignore unsupported project types, useful when bundleplugin is configured in parent pom if (!supportedProjectTypes.contains(projectType)) { getLog().warn(// w ww . ja v a 2 s . c o m "Ignoring project type " + projectType + " - supportedProjectTypes = " + supportedProjectTypes); return; } else if ("NONE".equalsIgnoreCase(remoteOBR) || "false".equalsIgnoreCase(remoteOBR)) { getLog().info("Remote OBR update disabled (enable with -DremoteOBR)"); return; } // if the user doesn't supply an explicit name for the remote OBR file, use the local name instead if (null == remoteOBR || remoteOBR.trim().length() == 0 || "true".equalsIgnoreCase(remoteOBR)) { remoteOBR = obrRepository; } URI tempURI = ObrUtils.findRepositoryXml("", remoteOBR); String repositoryName = new File(tempURI.getSchemeSpecificPart()).getName(); Log log = getLog(); ObrUpdate update; RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log); remoteFile.connect(repositoryId, url); // ======== LOCK REMOTE OBR ======== log.info("LOCK " + remoteFile + '/' + repositoryName); remoteFile.lockFile(repositoryName, ignoreLock); File downloadedRepositoryXml = null; try { // ======== DOWNLOAD REMOTE OBR ======== log.info("Downloading " + repositoryName); downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml"); String mavenRepository = localRepository.getBasedir(); URI repositoryXml = downloadedRepositoryXml.toURI(); URI obrXmlFile = ObrUtils.toFileURI(obrXml); URI bundleJar; if (null == file) { bundleJar = ObrUtils.getArtifactURI(localRepository, project.getArtifact()); } else { bundleJar = file.toURI(); } Config userConfig = new Config(); userConfig.setRemoteFile(true); if (null != bundleUrl) { // public URL differs from the bundle file location URI uri = URI.create(bundleUrl); log.info("Computed bundle uri: " + uri); userConfig.setRemoteBundle(uri); } else if (null != file) { // assume file will be deployed in remote repository, so find the remote relative location URI uri = URI.create(localRepository.pathOf(project.getArtifact())); log.info("Computed bundle uri: " + uri); userConfig.setRemoteBundle(uri); } update = new ObrUpdate(repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log); update.parseRepositoryXml(); update.updateRepository(bundleJar, null, null); update.writeRepositoryXml(); if (downloadedRepositoryXml.exists()) { // ======== UPLOAD MODIFIED OBR ======== log.info("Uploading " + repositoryName); remoteFile.put(downloadedRepositoryXml, repositoryName); } } catch (Exception e) { log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e); } finally { // ======== UNLOCK REMOTE OBR ======== log.info("UNLOCK " + remoteFile + '/' + repositoryName); remoteFile.unlockFile(repositoryName); remoteFile.disconnect(); if (null != downloadedRepositoryXml) { downloadedRepositoryXml.delete(); } } }
From source file:org.apache.felix.obrplugin.ObrIndex.java
License:Apache License
public void execute() throws MojoExecutionException { Log log = getLog(); try {/*from www. j av a2 s . c om*/ log.info("Indexing..."); String repo = mavenRepository; if (repo == null) { repo = localRepository.getBasedir(); } URI mavenRepoUri = new File(repo).toURI(); URI repositoryXml = ObrUtils.findRepositoryXml(repo, obrRepository); log.info("Repository: " + mavenRepoUri); log.info("OBR xml: " + repositoryXml); log.info("URL template: " + urlTemplate); List<File> files = new ArrayList<File>(); findAllJars(new File(repo), files); DataModelHelperImpl dmh = new DataModelHelperImpl(); RepositoryImpl repository; File obrRepoFile = new File(repositoryXml); if (obrRepoFile.isFile()) { repository = (RepositoryImpl) dmh.repository(repositoryXml.toURL()); } else { repository = new RepositoryImpl(); } for (File file : files) { try { ResourceImpl resource = (ResourceImpl) dmh.createResource(file.toURI().toURL()); if (resource != null) { repository.addResource(resource); doTemplate(mavenRepoUri, file, resource); log.info("Adding resource: " + file); } else { log.info("Ignoring non OSGi bundle: " + file); } } catch (Exception e) { log.warn("Error processing bundle: " + file + " " + e.getMessage()); } } Writer writer = new FileWriter(obrRepoFile); try { dmh.writeRepository(repository, writer); } finally { writer.close(); } } catch (Exception e) { log.warn("Exception while updating local OBR: " + e.getLocalizedMessage(), e); } }
From source file:org.apache.felix.obrplugin.ObrRemoteClean.java
License:Apache License
public void execute() throws MojoExecutionException { String projectType = project.getPackaging(); // ignore unsupported project types, useful when bundleplugin is configured in parent pom if (!supportedProjectTypes.contains(projectType)) { getLog().warn(//from ww w. ja v a 2 s. c o m "Ignoring project type " + projectType + " - supportedProjectTypes = " + supportedProjectTypes); return; } else if ("NONE".equalsIgnoreCase(remoteOBR) || "false".equalsIgnoreCase(remoteOBR)) { getLog().info("Remote OBR update disabled (enable with -DremoteOBR)"); return; } // if the user doesn't supply an explicit name for the remote OBR file, use the local name instead if (null == remoteOBR || remoteOBR.trim().length() == 0 || "true".equalsIgnoreCase(remoteOBR)) { remoteOBR = obrRepository; } URI tempURI = ObrUtils.findRepositoryXml("", remoteOBR); String repositoryName = new File(tempURI.getSchemeSpecificPart()).getName(); Log log = getLog(); RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log); openRepositoryConnection(remoteFile); if (null == prefixUrl) { prefixUrl = remoteFile.toString(); } // ======== LOCK REMOTE OBR ======== log.info("LOCK " + remoteFile + '/' + repositoryName); remoteFile.lockFile(repositoryName, ignoreLock); File downloadedRepositoryXml = null; try { // ======== DOWNLOAD REMOTE OBR ======== log.info("Downloading " + repositoryName); downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml"); URI repositoryXml = downloadedRepositoryXml.toURI(); Config userConfig = new Config(); userConfig.setRemoteFile(true); // Clean the downloaded file. Document doc = parseFile(new File(repositoryXml), initConstructor()); Node finalDocument = cleanDocument(doc.getDocumentElement()); if (finalDocument == null) { getLog().info("Nothing to clean in " + repositoryName); } else { writeToFile(repositoryXml, finalDocument); // Write the new file getLog().info("Repository " + repositoryName + " cleaned"); // ======== UPLOAD MODIFIED OBR ======== log.info("Uploading " + repositoryName); remoteFile.put(downloadedRepositoryXml, repositoryName); } } catch (Exception e) { log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e); } finally { // ======== UNLOCK REMOTE OBR ======== log.info("UNLOCK " + remoteFile + '/' + repositoryName); remoteFile.unlockFile(repositoryName); remoteFile.disconnect(); if (null != downloadedRepositoryXml) { downloadedRepositoryXml.delete(); } } }