From ccdbca23ed9f9ef70a18bd8d3ebcdc28dcaae22a Mon Sep 17 00:00:00 2001 From: wchen-talend Date: Mon, 6 Nov 2017 11:10:05 +0800 Subject: [PATCH] fix(TUP-18791):Update the library nexus2 deploy to use aether (#1266) --- .../nexus/Nexus2RepositoryHandler.java | 89 ++++--------------- 1 file changed, 15 insertions(+), 74 deletions(-) diff --git a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/nexus/Nexus2RepositoryHandler.java b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/nexus/Nexus2RepositoryHandler.java index 07377075f3..9842667877 100644 --- a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/nexus/Nexus2RepositoryHandler.java +++ b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/nexus/Nexus2RepositoryHandler.java @@ -13,27 +13,16 @@ package org.talend.librariesmanager.nexus; import java.io.File; -import java.io.IOException; -import java.net.URL; import java.util.ArrayList; import java.util.List; -import org.apache.http.HttpResponse; -import org.apache.http.StatusLine; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.methods.HttpDelete; -import org.apache.http.client.methods.HttpHead; -import org.apache.http.impl.client.DefaultHttpClient; -import org.talend.commons.exception.ExceptionHandler; -import org.talend.core.GlobalServiceRegister; -import org.talend.core.model.general.INexusService; +import org.eclipse.m2e.core.MavenPlugin; import org.talend.core.nexus.IRepositoryArtifactHandler; import org.talend.core.nexus.NexusConstants; import org.talend.core.nexus.NexusServerUtils; import org.talend.core.runtime.maven.MavenArtifact; -import org.talend.core.runtime.maven.MavenConstants; -import org.talend.designer.maven.utils.PomUtil; +import org.talend.core.runtime.maven.MavenUrlHelper; +import org.talend.designer.maven.aether.RepositorySystemFactory; /** * created by wchen on Aug 2, 2017 Detailled comment @@ -102,23 +91,19 @@ public class Nexus2RepositoryHandler extends AbstractArtifactRepositoryHandler { */ @Override public void deploy(File content, String groupId, String artifactId, String classifier, String extension, String version) - throws IOException { - try { - // TODO keep the nexus2 work as before, but need to remove the delete code latter - MavenArtifact artifact = new MavenArtifact(); - artifact.setArtifactId(artifactId); - artifact.setGroupId(groupId); - artifact.setClassifier(classifier); - artifact.setType(version); - artifact.setVersion(version); - deleteOldEntity(artifact, extension); - } catch (Exception e) { - ExceptionHandler.process(e); - } - if (GlobalServiceRegister.getDefault().isServiceRegistered(INexusService.class)) { - INexusService nexusService = (INexusService) GlobalServiceRegister.getDefault().getService(INexusService.class); - nexusService.upload(serverBean, groupId, artifactId, version, content.toURI().toURL()); + throws Exception { + String repositoryId = ""; + boolean isRelease = !version.endsWith(MavenUrlHelper.VERSION_SNAPSHOT); + if (isRelease) { + repositoryId = serverBean.getRepositoryId(); + } else { + repositoryId = serverBean.getSnapshotRepId(); } + String repositoryurl = getRepositoryURL(isRelease); + String localRepository = MavenPlugin.getMaven().getLocalRepositoryPath(); + RepositorySystemFactory.deploy(content, localRepository, repositoryId, repositoryurl, serverBean.getUserName(), + serverBean.getPassword(), groupId, artifactId, classifier, extension, version); + } @Override @@ -131,48 +116,4 @@ public class Nexus2RepositoryHandler extends AbstractArtifactRepositoryHandler { return new Nexus2RepositoryHandler(); } - private void deleteOldEntity(MavenArtifact artifact, String type) throws Exception { - String target = null; - if (artifact.getVersion() != null && !artifact.getVersion().endsWith(MavenConstants.SNAPSHOT)) { - target = getRepositoryURL(true); - } - if (target == null) { - return; - } - String artifactPath = PomUtil.getArtifactPath(artifact); - if (!artifactPath.endsWith(type)) { - if (artifactPath.lastIndexOf(".") != -1) { - artifactPath = artifactPath.substring(0, artifactPath.lastIndexOf(".") + 1) + type; - } else { - artifactPath = artifactPath + "." + type; - } - } - - target = target + artifactPath; - URL targetURL = new URL(target); - - DefaultHttpClient httpClient = new DefaultHttpClient(); - try { - HttpHead httpHead = null; - HttpResponse response = null; - StatusLine statusLine = null; - if (targetURL.getFile() != null && !targetURL.getFile().endsWith("SNAPSHOT.jar")) { - httpClient.getCredentialsProvider().setCredentials(new AuthScope(targetURL.getHost(), targetURL.getPort()), - new UsernamePasswordCredentials(serverBean.getUserName(), serverBean.getPassword())); - httpHead = new HttpHead(targetURL.toString()); - response = httpClient.execute(httpHead); - statusLine = response.getStatusLine(); - int responseResult = statusLine.getStatusCode(); - if (responseResult == 200) { - HttpDelete httpDelete = new HttpDelete(targetURL.toString()); - httpClient.execute(httpDelete); - } - } - } catch (Exception e) { - throw new Exception(targetURL.toString(), e); - } finally { - httpClient.getConnectionManager().shutdown(); - } - } - }