diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/general/ILibrariesService.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/general/ILibrariesService.java index 242302f478..14e59af948 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/general/ILibrariesService.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/general/ILibrariesService.java @@ -12,6 +12,7 @@ // ============================================================================ package org.talend.core.model.general; +import java.io.File; import java.io.IOException; import java.net.URL; import java.util.List; @@ -59,6 +60,8 @@ public interface ILibrariesService extends IService { public void deployLibrary(URL source) throws IOException; public void deployLibrarys(URL[] source) throws IOException; + + public void deployProjectLibrary(File source) throws IOException; public void undeployLibrary(String jarName) throws IOException; diff --git a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/AbstractLibrariesService.java b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/AbstractLibrariesService.java index 69b581b604..c62f60094d 100644 --- a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/AbstractLibrariesService.java +++ b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/AbstractLibrariesService.java @@ -22,11 +22,15 @@ import java.util.Set; import org.apache.log4j.Logger; import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.talend.commons.exception.BusinessException; import org.talend.commons.exception.CommonExceptionHandler; import org.talend.commons.exception.ExceptionHandler; import org.talend.commons.exception.PersistenceException; +import org.talend.commons.utils.generation.JavaUtils; import org.talend.commons.utils.io.FilesUtils; import org.talend.core.GlobalServiceRegister; import org.talend.core.ILibraryManagerService; @@ -129,6 +133,25 @@ public abstract class AbstractLibrariesService implements ILibrariesService { Context ctx = CoreRuntimePlugin.getInstance().getContext(); return (RepositoryContext) ctx.getProperty(Context.REPOSITORY_CONTEXT_KEY); } + + @Override + public void deployProjectLibrary(File source) throws IOException{ + if (GlobalServiceRegister.getDefault().isServiceRegistered(ILibraryManagerService.class)) { + ILibraryManagerService librairesService = (ILibraryManagerService) GlobalServiceRegister.getDefault().getService( + ILibraryManagerService.class); + if (librairesService != null) { + File sourceFile = new File(librairesService.getJarPath(source.getName())); + if(sourceFile.exists()){ + IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(JavaUtils.JAVA_EXTENSION).append(JavaUtils.JAVA_LIB_DIRECTORY).append(source.getName()); + File targetFile = path.toFile(); + if(targetFile.exists()){ + return; + } + FilesUtils.copyFile(sourceFile, targetFile); + } + } + } + } private void resetAndRefreshLocal(final String names[]) { resetModulesNeeded(); diff --git a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LibrariesService.java b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LibrariesService.java index cd100915d0..49a5bae855 100644 --- a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LibrariesService.java +++ b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LibrariesService.java @@ -12,6 +12,7 @@ // ============================================================================ package org.talend.librariesmanager.model.service; +import java.io.File; import java.io.IOException; import java.net.URL; import java.util.List; @@ -227,4 +228,9 @@ public class LibrariesService implements ILibrariesService { public Set getCodesModuleNeededs(ERepositoryObjectType type) { return getLibrariesService().getCodesModuleNeededs(type); } + + @Override + public void deployProjectLibrary(File source) throws IOException{ + this.getLibrariesService().deployProjectLibrary(source); + } }