/** * POM manipulation methods */ public synchronized ProjectBuildingResult getProjectBuildingResult() throws ProjectBuildingException { return BUILD_MANAGER.getProjectBuildingResult(getModelResource()); }
@Override public Model getModel() { return getModelResource().getCurrentModel(); }
@Override public boolean isInstalled() { MavenModelResource pom = getModelResource(); return pom != null && pom.exists(); }
private synchronized ModelBuildingResult getModelBuildingResult() throws ModelBuildingException { return BUILD_MANAGER.getModelBuildingResult(getModelResource()); }
@Override public Model getEffectiveModel() { try { return BUILD_MANAGER.getModelBuildingResult(getModelResource()).getEffectiveModel(); } catch (ModelBuildingException e) { throw new RuntimeException("Error while building effective model", e); } }
@Override public Map<String, String> getProperties() { Map<String, String> result = new HashMap<>(); try { Properties properties = getEffectiveModel().getProperties(); for (Entry<Object, Object> o : properties.entrySet()) { result.put((String) o.getKey(), (String) o.getValue()); } } catch (Exception e) { log.log(Level.WARNING, "Failed to resolve properties in [" + getModelResource().getFullyQualifiedName() + "]."); log.log(Level.FINE, "Failed to resolve properties in Project [" + getModelResource().getFullyQualifiedName() + "].", e); } return result; }
@Override public void setModel(final Model pom) { MavenModelResource modelResource = getModelResource(); try { modelResource.setCurrentModel(pom); } finally { BUILD_MANAGER.evictFromCache(modelResource); } }
@Override public String resolveProperties(String input) { String result = input; try { if (input != null) { Properties properties = getEffectiveModel().getProperties(); for (Entry<Object, Object> e : properties.entrySet()) { String key = "\\$\\{" + e.getKey().toString() + "\\}"; Object value = e.getValue(); result = result.replaceAll(key, value.toString()); } } } catch (Exception e) { log.log(Level.WARNING, "Failed to resolve properties in [" + getModelResource().getFullyQualifiedName() + "] for input value [" + input + "]."); log.log(Level.FINE, "Failed to resolve properties in Project [" + getModelResource().getFullyQualifiedName() + "].", e); } return result; }
@Override public boolean install() { if (!isInstalled()) { MavenModelResource pom = getModelResource(); if (!pom.createNewFile()) throw new IllegalStateException("Could not create POM file."); pom.setContents(createDefaultPOM()); } return isInstalled(); }
@Override public List<Dependency> getEffectiveDependencies() { List<Dependency> result = new ArrayList<>(); MavenFacetImpl maven = getFaceted().getFacet(MavenFacetImpl.class); try { ProjectBuildingResult projectBuildingResult = maven.getProjectBuildingResult(); DependencyResolutionResult dependencyResolutionResult = projectBuildingResult.getDependencyResolutionResult(); List<Dependency> deps = MavenDependencyAdapter.fromAetherList(dependencyResolutionResult.getDependencies()); for (Dependency dependency : deps) { result.add(resolveProperties(dependency)); } } catch (Exception e) { log.log(Level.SEVERE, "Could not resolve managed dependencies in project [" + maven.getModelResource().getFullyQualifiedName() + "]. ", e); } return result; }