in deployer/service/src/main/java/org/apache/karaf/cave/deployer/service/DeployerServiceImpl.java [384:417]
protected void uploadArtifact(String groupId, String artifactId, String version, String extension, String classifier, File artifactFile, String repositoryUrl) throws Exception {
DefaultServiceLocator defaultServiceLocator = MavenRepositorySystemUtils.newServiceLocator();
defaultServiceLocator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
defaultServiceLocator.addService(TransporterFactory.class, FileTransporterFactory.class);
defaultServiceLocator.addService(TransporterFactory.class, HttpTransporterFactory.class);
RepositorySystem repositorySystem = defaultServiceLocator.getService(RepositorySystem.class);
DefaultRepositorySystemSession repositorySystemSession = MavenRepositorySystemUtils.newSession();
LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository");
LocalRepositoryManager localRepositoryManager = repositorySystem.newLocalRepositoryManager(repositorySystemSession, localRepository);
repositorySystemSession.setLocalRepositoryManager(localRepositoryManager);
repositorySystemSession.setTransferListener(new ConsoleTransferListener(System.out));
repositorySystemSession.setRepositoryListener(new ConsoleRepositoryListener(System.out));
RemoteRepository remoteRepository = new RemoteRepository.Builder("sdeployer", "default", repositoryUrl).build();
Artifact artifact;
if (classifier != null) {
artifact = new DefaultArtifact(groupId, artifactId, classifier, extension, version);
} else {
artifact = new DefaultArtifact(groupId, artifactId, extension, version);
}
artifact = artifact.setFile(artifactFile);
InstallRequest installRequest = new InstallRequest();
installRequest.addArtifact(artifact);
repositorySystem.install(repositorySystemSession, installRequest);
DeployRequest deployRequest = new DeployRequest();
deployRequest.addArtifact(artifact);
deployRequest.setRepository(remoteRepository);
repositorySystem.deploy(repositorySystemSession, deployRequest);
}