public static void executeMaven(final File pom, final Properties properties, final String... goals) { executeMaven(pom, System.out, System.err, properties, goals); }
RepositoryVisitor Visitor = new RepositoryVisitor(); repBean.acceptVisitor(Visitor); repositoryContent = Visitor.getList();
private void loadIndex(String path) { Gson gson = new Gson(); try { JsonReader reader = new JsonReader(new FileReader(path + "/index.json")); Type type = new TypeToken<Map<String, String>>() { }.getType(); oldIdentityHash = gson.fromJson(reader, type); } catch (FileNotFoundException ex) { //The Index doesn't exist yet, it will be generated after the Repository visitor is used for the first time. } }
final MavenProject project = MavenProjectLoader.parseMavenPom(pomStream); RepositoryVisitor repositoryVisitor = new RepositoryVisitor(source.getPath(), project.getName()); System.out.println("Root: " + repositoryVisitor.getRoot().getAbsolutePath()); Map<String, String> identityHash = repositoryVisitor.getIdentityHash(); ioService.delete(source.getPath().resolve("demo.iml")); RepositoryVisitor newRepositoryVisitor = new RepositoryVisitor(source.getPath(), repositoryVisitor.getRoot().getAbsolutePath().trim(), false); System.out.println("Root: " + newRepositoryVisitor.getRoot().getAbsolutePath()); Map<String, String> newIdentityHash = newRepositoryVisitor.getIdentityHash();
final InputStream pomStream = org.uberfire.java.nio.file.Files.newInputStream(projectRoot.resolve("pom.xml")); final MavenProject project = MavenProjectLoader.parseMavenPom(pomStream); RepositoryVisitor repositoryVisitor = new RepositoryVisitor(projectRoot, project.getName()); final String expectedBinary = project.getArtifact().getArtifactId() + "-" + project.getArtifact().getVersion() + "." + project.getArtifact().getType(); source.getPath().resolve("drools-webapp-example"), source.getPath().resolve("target").resolve(expectedBinary).toAbsolutePath(), repositoryVisitor.getRoot().getAbsolutePath(), null); MavenBuildExecutor.executeMaven(pom, properties, goals.toArray(new String[0])); final File file = new File(repositoryVisitor.getRoot().getAbsolutePath() + "/target/" + mavenProject.getExpectedBinary());
private void buildMavenProject(Source source, PrintStream out, PrintStream err) throws org.uberfire.java.nio.IOException, SecurityException, UnsupportedOperationException, IllegalArgumentException { List<String> goals = new ArrayList<>(); goals.add("package"); Properties p = new Properties(); p.setProperty("failIfNoTests", "false"); final InputStream pomStream = org.uberfire.java.nio.file.Files.newInputStream(source.getPath().resolve("pom.xml")); MavenProject project = MavenProjectLoader.parseMavenPom(pomStream); final String expectedBinary = project.getArtifact().getArtifactId() + "-" + project.getArtifact().getVersion() + "." + project.getArtifact().getType(); final org.guvnor.ala.build.maven.model.MavenProject mavenProject = new MavenProjectImpl(project.getId(), project.getArtifact().getType(), project.getName(), expectedBinary, source.getPath(), source.getPath(), source.getPath().resolve("target").resolve(expectedBinary).toAbsolutePath(), null, null); final File pom = new File(getRepositoryVisitor(mavenProject).getRoot(), "pom.xml"); MavenBuildExecutor.executeMaven(pom, out, err, p, goals.toArray(new String[0])); }
repositoryVisitor = new RepositoryVisitor(projectRoot, project.getName()); } else { repositoryVisitor = new RepositoryVisitor(projectRoot, _tempDir, mavenProjectConfig.recreateTempDir()); source.getPath().resolve(mavenProjectConfig.getProjectDir()), source.getPath().resolve("target").resolve(expectedBinary).toAbsolutePath(), repositoryVisitor.getRoot().getAbsolutePath(), buildPlugins);
private RepositoryVisitor getRepositoryVisitor(final Project project) { return new RepositoryVisitor(project.getPath(), project.getName()); } }
public RepositoryVisitor(final Path projectPath, final String _projectRoot, final boolean cleanTempDir) { this.root = makeTempRootDirectory(_projectRoot, cleanTempDir); try { if (_projectRoot != null && !_projectRoot.equals("")) { loadIndex(root.getAbsolutePath()); } visitPaths(root, Files.newDirectoryStream(projectPath)); if (oldIdentityHash != null) { MapDifference<String, String> difference = Maps.difference(oldIdentityHash, identityHash); Map<String, String> deletedFiles = difference.entriesOnlyOnLeft(); for (String path : deletedFiles.keySet()) { boolean deleted = new File(root.getAbsolutePath().replace(projectPath.toString(), "") + "/" + path).delete(); System.out.println("Deleted: " + root.getAbsolutePath().replace(projectPath.toString(), "") + "/" + path + " -> " + deleted); } } storeIndex(root.getAbsolutePath()); } catch (IOException | NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } }
private void visitPaths(final File parent, final DirectoryStream<Path> directoryStream) throws IOException, NoSuchAlgorithmException { for (final org.uberfire.java.nio.file.Path path : directoryStream) { if (Files.isDirectory(path)) { final File newParent = makeTempDirectory(parent, path.getFileName().toString()); visitPaths(newParent, Files.newDirectoryStream(path)); } else { makeTempFile(parent, path); } } }
BUFFER)) { String resourcePath = path.toString(); readFile(origin, data, BUFFER); identityHash.put(resourcePath, getMD5String(dis.getMessageDigest().digest())); && !oldIdentityHash.get(resourcePath).equals(identityHash.get(resourcePath))) { output = writeFile(parent, path, output, } else if (!oldIdentityHash.containsKey(resourcePath)) { output = writeFile(parent, path, output, output = writeFile(parent, path, output,
final MavenEmbedder mavenEmbedder = newMavenEmbedder(); try { if (stdout != null) {
MavenProject project = MavenProjectLoader.parseMavenPom(pomStream); RepositoryVisitor repositoryVisitor = new RepositoryVisitor(source.getPath().resolve("users-new"), project.getName()); System.out.println("Root: " + repositoryVisitor.getRoot().getAbsolutePath()); Map<String, String> identityHash = repositoryVisitor.getIdentityHash(); RepositoryVisitor newRepositoryVisitor = new RepositoryVisitor(source.getPath().resolve("users-new"), repositoryVisitor.getRoot().getAbsolutePath().trim(), false); System.out.println("Root: " + newRepositoryVisitor.getRoot().getAbsolutePath()); Map<String, String> newIdentityHash = newRepositoryVisitor.getIdentityHash();
private void buildMavenProject(Source source, PrintStream out, PrintStream err) throws org.uberfire.java.nio.IOException, InvalidPathException, SecurityException, UnsupportedOperationException, IllegalArgumentException { List<String> goals = new ArrayList<>(); goals.add("package"); Properties p = new Properties(); p.setProperty("failIfNoTests", "false"); final InputStream pomStream = org.uberfire.java.nio.file.Files.newInputStream(source.getPath().resolve("drools-webapp-example").resolve("pom.xml")); MavenProject project = MavenProjectLoader.parseMavenPom(pomStream); final String expectedBinary = project.getArtifact().getArtifactId() + "-" + project.getArtifact().getVersion() + "." + project.getArtifact().getType(); final org.guvnor.ala.build.maven.model.MavenProject mavenProject = new MavenProjectImpl(project.getId(), project.getArtifact().getType(), project.getName(), expectedBinary, source.getPath(), source.getPath().resolve("drools-webapp-example"), source.getPath().resolve("target").resolve(expectedBinary).toAbsolutePath(), null, null); final File pom = new File(getRepositoryVisitor(mavenProject).getRoot(), "pom.xml"); MavenBuildExecutor.executeMaven(pom, out, err, p, goals.toArray(new String[0])); }
public MavenProject build(final Project project, final List<String> goals, final Properties properties) throws BuildException { final File pom = new File(project.getTempDir(), "pom.xml"); executeMaven(pom, properties, goals.toArray(new String[]{})); return MavenProjectLoader.parseMavenPom(pom); } }
private RepositoryVisitor getRepositoryVisitor(final Project project) { return new RepositoryVisitor(project.getPath(), project.getName()); } }
true); new Thread(() -> executeMaven(pom, out, err,
public boolean deploy(List<Binary> binaries) throws Exception { URL nexusContentURL = getNexusContentURL(true); if (nexusContentURL == null) { return false; } String origCustomSettingsProp = System.getProperty(CUSTOM_SETTINGS_PROPERTY); try { System.setProperty(CUSTOM_SETTINGS_PROPERTY, generateSettingsXml()); MavenSettings.reinitSettings(); for (Binary binary : binaries) { MavenBinary mavenBinary = (MavenBinary)binary; File pom = new File(mavenBinary.getProject().getTempDir(), "pom.xml"); Properties props = new Properties(); boolean isSnapshot = mavenBinary.getVersion().endsWith("SNAPSHOT"); String nexusRepoUrl = nexusContentURL + "repositories/" + (isSnapshot ? "snapshots/" : "releases/"); props.setProperty("altDeploymentRepository", "nexus::default::" + nexusRepoUrl); MavenBuildExecutor.executeMaven(pom, props, new String[]{"deploy"}); } } finally { if (origCustomSettingsProp != null) { System.setProperty(CUSTOM_SETTINGS_PROPERTY, origCustomSettingsProp); } else { System.clearProperty(CUSTOM_SETTINGS_PROPERTY); } MavenSettings.reinitSettings(); } return true; }
public boolean deploy(List<Binary> binaries) throws Exception { URL nexusContentURL = getNexusContentURL(true); if (nexusContentURL == null) { return false; } String origCustomSettingsProp = System.getProperty(CUSTOM_SETTINGS_PROPERTY); try { System.setProperty(CUSTOM_SETTINGS_PROPERTY, generateSettingsXml()); MavenSettings.reinitSettings(); for (Binary binary : binaries) { MavenBinary mavenBinary = (MavenBinary)binary; File pom = new File(mavenBinary.getProject().getTempDir(), "pom.xml"); Properties props = new Properties(); boolean isSnapshot = mavenBinary.getVersion().endsWith("SNAPSHOT"); String nexusRepoUrl = nexusContentURL + "repositories/" + (isSnapshot ? "snapshots/" : "releases/"); props.setProperty("altDeploymentRepository", "nexus::default::" + nexusRepoUrl); MavenBuildExecutor.executeMaven(pom, props, new String[]{"deploy"}); } } finally { if (origCustomSettingsProp != null) { System.setProperty(CUSTOM_SETTINGS_PROPERTY, origCustomSettingsProp); } else { System.clearProperty(CUSTOM_SETTINGS_PROPERTY); } MavenSettings.reinitSettings(); } return true; }