Example usage for org.eclipse.jdt.core JavaCore setClasspathContainer

List of usage examples for org.eclipse.jdt.core JavaCore setClasspathContainer

Introduction

In this page you can find the example usage for org.eclipse.jdt.core JavaCore setClasspathContainer.

Prototype

public static void setClasspathContainer(IPath containerPath, IJavaProject[] affectedProjects,
        IClasspathContainer[] respectiveContainers, IProgressMonitor monitor) throws JavaModelException 

Source Link

Document

Bind a container reference path to some actual containers (IClasspathContainer).

Usage

From source file:at.bestsolution.efxclipse.tooling.jdt.core.internal.JavaFXClasspathContainerInitializer.java

License:Open Source License

@Override
public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
    if (isValidJUnitContainerPath(containerPath)) {
        JavaFXContainer container = getNewContainer(containerPath, project);

        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project },
                new IClasspathContainer[] { container }, null);
    }//from www. ja v  a2 s .  c  o  m
}

From source file:at.bestsolution.efxclipse.tooling.jdt.ui.internal.buildpath.JavaFXContainerWizardPage.java

License:Open Source License

@Override
public boolean finish() {
    try {//from  ww w  .ja  va2 s  . c o  m
        IJavaProject[] javaProjects = new IJavaProject[] { getPlaceholderProject() };
        IClasspathContainer[] containers = { null };
        JavaCore.setClasspathContainer(fContainerEntryResult.getPath(), javaProjects, containers, null);
    } catch (JavaModelException e) {
        ExceptionHandler.handle(e, getShell(), "JavaFX Container Error",
                "Error configuring JavaFX Classpath Container");
        return false;
    }
    return true;
}

From source file:bndtools.builder.BndIncrementalBuilder.java

License:Open Source License

void rebuildBndProject(IProject project, IProgressMonitor monitor) throws CoreException {
    SubMonitor progress = SubMonitor.convert(monitor, 2);
    IJavaProject javaProject = JavaCore.create(project);

    Project model = Plugin.getDefault().getCentral().getModel(javaProject);
    if (model == null) {
        // Don't try to build... no bnd workspace configured
        Plugin.log(new Status(IStatus.WARNING, Plugin.PLUGIN_ID, 0, MessageFormat.format(
                "Unable to run Bnd on project {0}: Bnd workspace not configured.", project.getName()), null));
        return;/*from   ww  w.j a  v a  2 s  .  co  m*/
    }

    model.refresh();
    model.setChanged();

    // Get or create the build model for this bnd file
    IFile bndFile = project.getFile(Project.BNDFILE);

    // Clear markers
    if (bndFile.exists()) {
        bndFile.deleteMarkers(MARKER_BND_PROBLEM, true, IResource.DEPTH_INFINITE);
    }

    // Update classpath
    JavaCore.setClasspathContainer(BndContainerInitializer.ID, new IJavaProject[] { javaProject },
            new IClasspathContainer[] {
                    new BndContainer(javaProject, BndContainerInitializer.calculateEntries(model)) },
            null);

    // Build
    try {
        final Set<File> deliverableJars = new HashSet<File>();
        bndsToDeliverables.clear();
        Collection<? extends Builder> builders = model.getSubBuilders();
        for (Builder builder : builders) {
            File subBndFile = builder.getPropertiesFile();
            String bsn = builder.getBsn();
            Container deliverable = model.getDeliverable(bsn, null);
            bndsToDeliverables.put(subBndFile, deliverable);
            deliverableJars.add(deliverable.getFile());
        }

        model.build();
        progress.worked(1);

        File targetDir = model.getTarget();
        IContainer target = ResourcesPlugin.getWorkspace().getRoot()
                .getContainerForLocation(new Path(targetDir.getAbsolutePath()));
        target.refreshLocal(IResource.DEPTH_INFINITE, null);

        // Clear any JARs in the target directory that have not just been built by Bnd
        final File[] targetJars = model.getTarget().listFiles(new FileFilter() {
            public boolean accept(File pathname) {
                return pathname.getName().endsWith(".jar");
            }
        });
        WorkspaceJob deleteJob = new WorkspaceJob("delete") {
            @Override
            public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
                SubMonitor progress = SubMonitor.convert(monitor);
                for (File targetJar : targetJars) {
                    if (!deliverableJars.contains(targetJar)) {
                        IFile wsFile = ResourcesPlugin.getWorkspace().getRoot()
                                .getFileForLocation(new Path(targetJar.getAbsolutePath()));
                        if (wsFile != null && wsFile.exists()) {
                            wsFile.delete(true, progress.newChild(1));
                        }
                    }
                }
                return Status.OK_STATUS;
            }
        };
        deleteJob.schedule();
    } catch (Exception e) {
        throw new CoreException(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, "Error building project.", e));
    }

    // Report errors
    List<String> errors = new ArrayList<String>(model.getErrors());
    for (String errorMessage : errors) {
        IMarker marker = bndFile.createMarker(MARKER_BND_PROBLEM);
        marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
        marker.setAttribute(IMarker.MESSAGE, errorMessage);
        marker.setAttribute(IMarker.LINE_NUMBER, 1);
        model.clear();
    }
}

From source file:ch.mlutz.plugins.t4e.container.T4eClasspathContainerInitializer.java

License:Open Source License

public void initialize(IPath containerPath, final IJavaProject project) {
    if (isT4eClasspathContainer(containerPath)) {
        IClasspathContainer container;//w  ww . j  a  v  a 2 s .  com
        final Activator plugin = Activator.getDefault();
        try {
            container = JavaCore.getClasspathContainer(containerPath, project);
        } catch (JavaModelException e) {
            log.error("Unable to get container for " + containerPath.toString(), e);
            return;
        }

        // plugin.getMavenModelManager().initModels(new NullProgressMonitor());

        T4eClasspathContainer t4eContainer;
        if (container == null) {

            // parse the pom.xml
            IProject resourceProject = project.getProject();

            PomParser pomParser = new PomParser();

            IFile pomFile = resourceProject.getFile("pom.xml");
            List<Dependency> dependencies;
            if (pomFile.exists()) {

                try {
                    pomParser.parse(pomFile.getContents());
                } catch (UnsupportedEncodingException e) {
                    log.warn("Unsupported encoding in pom.xml: " + e);
                } catch (CoreException e) {
                    log.warn("CoreException when getting contents of pom.xml: " + e);
                }

                dependencies = pomParser.getDependencyManagement();
                log.info("DependencyManagement dependencies count: " + String.valueOf(dependencies.size()));
                dependencies = pomParser.getDependencies();
                log.info("Dependencies count: " + String.valueOf(dependencies.size()));
            } else {
                log.warn("pom.xml doesn't seem to exist.");
            }

            // add dependency management entries to T4eClasspathContainer7
            List<IClasspathEntry> entryList = new ArrayList<IClasspathEntry>();

            String mavenRepositoryBasePath = MavenTools.getMavenLocalRepoPath().replaceAll("\\\\", "/");
            dependencies = pomParser.getDependencyManagement();
            for (Dependency dependency : dependencies) {
                Path path = new Path(
                        mavenRepositoryBasePath + "/" + dependency.getGroupId().replaceAll("\\.", "/") + "/"
                                + dependency.getArtifactId() + "/" + dependency.getVersion() + "/"
                                + dependency.getArtifactId() + "-" + dependency.getVersion() + ".jar");
                entryList.add(JavaCore.newLibraryEntry(path, null, null, true));
            }

            t4eContainer = new T4eClasspathContainer(new Path(Constants.CONTAINER_ID),
                    (IClasspathEntry[]) entryList.toArray(new IClasspathEntry[0]));
        } else {
            t4eContainer = new T4eClasspathContainer(containerPath, container.getClasspathEntries());
        }

        try {
            JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project },
                    new IClasspathContainer[] { t4eContainer }, new NullProgressMonitor());
        } catch (JavaModelException e) {
            log.warn("Unable to set container for " + containerPath.toString(), e);
            return;
        }

        if (container != null) {
            return;
        }

        /*
        plugin.getBuildpathManager().scheduleUpdateClasspathContainer(project.getProject());
        */
    }
}

From source file:ch.powerunit.poweruniteclipse.PowerunitClasspathInitializer.java

License:Open Source License

@Override
public void initialize(final IPath containerPath, final IJavaProject project) throws CoreException {
    JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project },
            new IClasspathContainer[] { DEFAULT }, null);
}

From source file:ch.powerunit.poweruniteclipse.PowerunitContainerWizardPage.java

License:Open Source License

@Override
public boolean finish() {
    IJavaProject[] javaProjects = new IJavaProject[] { project };
    IClasspathContainer[] containers = { PowerunitClasspathInitializer.DEFAULT };
    try {// w  ww  .ja  v  a 2s .c om
        JavaCore.setClasspathContainer(getSelection().getPath(), javaProjects, containers, null);
    } catch (JavaModelException e) {
        return false;
    }

    return true;
}

From source file:cn.ieclipse.adt.ext.jdt.AormClasspathContainerInitializer.java

License:Apache License

@Override
public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
    if (AormClasspathContainer.CON_PATH.equals(containerPath.toString())) {
        IClasspathContainer container = allocateAndroidContainer(project);
        if (container != null)
            JavaCore.setClasspathContainer(new Path(AormClasspathContainer.CON_PATH),
                    new IJavaProject[] { project }, new IClasspathContainer[] { container },
                    new NullProgressMonitor());
    }/*from   w  w  w. j a  v  a  2s.c  o  m*/

}

From source file:com.amazonaws.eclipse.android.sdk.classpath.AndroidSdkClasspathContainerInitializer.java

License:Open Source License

@Override
public void initialize(IPath containerPath, IJavaProject javaProject) throws CoreException {
    try {//from  www.  ja  v a  2  s. c o m
        SdkProjectMetadata sdkProjectMetadataFile = new SdkProjectMetadata(javaProject.getProject());
        File sdkInstallRoot = sdkProjectMetadataFile.getSdkInstallRootForProject();

        if (sdkInstallRoot == null)
            throw new Exception("No SDK install directory specified");

        AndroidSdkInstall sdkInstall = new AndroidSdkInstallFactory().createSdkInstallFromDisk(sdkInstallRoot);

        if (sdkInstall.isValidSdkInstall() == false)
            throw new Exception("Invalid SDK install directory specified: " + sdkInstall.getRootDirectory());

        copySdkJarToProject(javaProject.getProject(), sdkInstall);

        AndroidSdkClasspathContainer classpathContainer = new AndroidSdkClasspathContainer(sdkInstall,
                javaProject.getProject());
        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { javaProject },
                new IClasspathContainer[] { classpathContainer }, null);
    } catch (Exception e) {
        AndroidSdkInstall defaultSdkInstall = AndroidSdkManager.getInstance().getDefaultSdkInstall();
        if (defaultSdkInstall == null)
            throw new CoreException(new Status(IStatus.ERROR, JavaSdkPlugin.PLUGIN_ID, "No SDKs available"));

        AndroidSdkClasspathContainer classpathContainer = new AndroidSdkClasspathContainer(defaultSdkInstall,
                javaProject.getProject());
        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { javaProject },
                new IClasspathContainer[] { classpathContainer }, null);
        try {
            defaultSdkInstall.writeMetadataToProject(javaProject);
        } catch (IOException ioe) {
            StatusManager.getManager().handle(
                    new Status(Status.WARNING, JavaSdkPlugin.PLUGIN_ID, ioe.getMessage(), ioe),
                    StatusManager.LOG);
        }

        String message = "Unable to initialize previous AWS SDK for Android classpath entries - defaulting to latest version";
        Status status = new Status(Status.WARNING, JavaSdkPlugin.PLUGIN_ID, message, e);
        StatusManager.getManager().handle(status, StatusManager.LOG);
    }
}

From source file:com.amazonaws.eclipse.lambda.project.classpath.LambdaRuntimeClasspathContainerInitializer.java

License:Open Source License

@Override
public void initialize(IPath containerPath, IJavaProject javaProject) throws CoreException {
    try {//from www. j  av a2  s .c om
        LambdaRuntimeLibraryVersion lastestRuntimeJar = LambdaRuntimeLibraryManager.getInstance()
                .getLatestVersion();

        LambdaRuntimeClasspathContainer classpathContainer = new LambdaRuntimeClasspathContainer(
                lastestRuntimeJar);
        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { javaProject },
                new IClasspathContainer[] { classpathContainer }, null);

    } catch (Exception e) {
        String message = "Unable to initialize Lambda Java Runtime classpath.";
        LambdaPlugin.getDefault().reportException(message, e);
    }
}

From source file:com.amazonaws.eclipse.sdk.ui.classpath.ClasspathContainerInitializer.java

License:Open Source License

@Override
public void initialize(IPath containerPath, IJavaProject javaProject) throws CoreException {
    try {//from w  ww .  j a  va 2  s  . c  o m
        SdkProjectMetadata sdkProjectMetadataFile = new SdkProjectMetadata(javaProject.getProject());
        File sdkInstallRoot = sdkProjectMetadataFile.getSdkInstallRootForProject();

        if (sdkInstallRoot == null)
            throw new Exception("No SDK install directory specified");

        SdkInstall sdkInstall = new SdkInstall(sdkInstallRoot);
        if (sdkInstall.isValidSdkInstall() == false)
            throw new Exception("Invalid SDK install directory specified: " + sdkInstall.getRootDirectory());

        AwsClasspathContainer classpathContainer = new AwsClasspathContainer(sdkInstall);
        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { javaProject },
                new IClasspathContainer[] { classpathContainer }, null);
    } catch (Exception e) {
        SdkInstall defaultSdkInstall = SdkManager.getInstance().getDefaultSdkInstall();
        AwsClasspathContainer classpathContainer = new AwsClasspathContainer(defaultSdkInstall);
        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { javaProject },
                new IClasspathContainer[] { classpathContainer }, null);
        try {
            defaultSdkInstall.writeMetadataToProject(javaProject);
        } catch (IOException ioe) {
            StatusManager.getManager().handle(
                    new Status(Status.WARNING, SdkPlugin.PLUGIN_ID, ioe.getMessage(), ioe), StatusManager.LOG);
        }

        String message = "Unable to initialize previous AWS SDK for Java classpath entries - defaulting to latest version";
        Status status = new Status(Status.WARNING, SdkPlugin.PLUGIN_ID, message, e);
        StatusManager.getManager().handle(status, StatusManager.LOG);
    }
}