List of usage examples for org.eclipse.jdt.core IClasspathEntry getPath
IPath getPath();
From source file:com.google.cloud.tools.eclipse.appengine.libraries.AppEngineLibraryContainerInitializer.java
License:Apache License
private void validateJarPaths(LibraryClasspathContainer container) throws LibraryRepositoryServiceException { IClasspathEntry[] classpathEntries = container.getClasspathEntries(); for (int i = 0; i < classpathEntries.length; i++) { IClasspathEntry classpathEntry = classpathEntries[i]; if (!classpathEntry.getPath().toFile().exists()) { classpathEntries[i] = repositoryService.rebuildClasspathEntry(classpathEntry); }/*from ww w .ja va 2s . c o m*/ } }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.AppEngineLibraryContainerInitializerTest.java
License:Apache License
/** * This test relies on the {@link TestAppEngineLibraryContainerInitializer} defined in the fragment.xml for * <code>TEST_CONTAINER_PATH</code>. When the test is launched, the Platform will try to initialize the container * defined for the test project (field <code>testProject</code>), but due to the empty implementation of * {@link TestAppEngineLibraryContainerInitializer#initialize(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)} * the container will remain unresolved. * Then the {@link AppEngineLibraryContainerInitializer} instance created in this method will initialize the container * and the test will verify it./*from w w w . j a v a 2 s . c om*/ * This approach is required by the fact that the production {@link AppEngineLibraryContainerInitializer} is defined * in the host project's plugin.xml and it is not possible to remove/override it. */ @Test public void testInitialize_resolvesContainerToJar() throws CoreException { AppEngineLibraryContainerInitializer containerInitializer = new AppEngineLibraryContainerInitializer( new IConfigurationElement[] { configurationElement }, libraryFactory, TEST_CONTAINER_PATH, serializer, repositoryService); containerInitializer.initialize(new Path(TEST_LIBRARY_PATH), testProject.getJavaProject()); IClasspathEntry[] resolvedClasspath = testProject.getJavaProject().getResolvedClasspath(false); assertThat(resolvedClasspath.length, is(2)); IClasspathEntry libJar = resolvedClasspath[1]; assertThat(libJar.getPath().toOSString(), is("/test/path/artifactId.jar")); assertThat(libJar.getSourceAttachmentPath().toOSString(), is("/test/path/artifactId-sources.jar")); }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.AppEngineLibraryContainerInitializerTest.java
License:Apache License
@Test public void testInitialize_libraryFactoryErrorDoesNotPreventOtherLibraries() throws Exception { Library library = new Library(TEST_LIBRARY_ID); library.setLibraryFiles(//from w ww . j a va2s . c om Collections.singletonList(new LibraryFile(new MavenCoordinates("groupId", "artifactId")))); // this will override what is set in setupLibraryFactory() when setUp() is executed doThrow(LibraryFactoryException.class).doReturn(library).when(libraryFactory) .create(any(IConfigurationElement.class)); AppEngineLibraryContainerInitializer containerInitializer = new AppEngineLibraryContainerInitializer( new IConfigurationElement[] { configurationElement, configurationElement }, libraryFactory, TEST_CONTAINER_PATH, serializer, repositoryService); containerInitializer.initialize(new Path(TEST_LIBRARY_PATH), testProject.getJavaProject()); IClasspathEntry[] resolvedClasspath = testProject.getJavaProject().getResolvedClasspath(false); assertThat(resolvedClasspath.length, is(2)); IClasspathEntry libJar = resolvedClasspath[1]; assertThat(libJar.getPath().toOSString(), is("/test/path/artifactId.jar")); assertThat(libJar.getSourceAttachmentPath().toOSString(), is("/test/path/artifactId-sources.jar")); }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.AppEngineLibraryContainerResolverJob.java
License:Apache License
@Override protected IStatus run(IProgressMonitor monitor) { // TODO parse library definition in ILibraryConfigService (or similar) started when the plugin/bundle starts // https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/856 try {//from www. java 2s .c o m if (libraries == null) { // in tests libraries will be initialized via the test constructor, this would override mocks/stubs. IConfigurationElement[] configurationElements = RegistryFactory.getRegistry() .getConfigurationElementsFor(LIBRARIES_EXTENSION_POINT); initializeLibraries(configurationElements, new LibraryFactory()); } IClasspathEntry[] rawClasspath = javaProject.getRawClasspath(); SubMonitor subMonitor = SubMonitor.convert(monitor, Messages.TaskResolveLibraries, getTotalwork(rawClasspath)); for (int i = 0; i < rawClasspath.length; i++) { IClasspathEntry classpathEntry = rawClasspath[i]; String libraryId = classpathEntry.getPath().segment(1); Library library = libraries.get(libraryId); if (library != null) { LibraryClasspathContainer container = resolveLibraryFiles(classpathEntry, library, subMonitor.newChild(1)); JavaCore.setClasspathContainer(classpathEntry.getPath(), new IJavaProject[] { javaProject }, new IClasspathContainer[] { container }, null); serializer.saveContainer(javaProject, container); } } } catch (LibraryRepositoryServiceException | CoreException | IOException ex) { return StatusUtil.error(this, Messages.TaskResolveLibrariesError, ex); } return Status.OK_STATUS; }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.AppEngineLibraryContainerResolverJob.java
License:Apache License
private LibraryClasspathContainer resolveLibraryFiles(IClasspathEntry classpathEntry, Library library, IProgressMonitor monitor) throws LibraryRepositoryServiceException { List<LibraryFile> libraryFiles = library.getLibraryFiles(); SubMonitor subMonitor = SubMonitor.convert(monitor, libraryFiles.size()); subMonitor.subTask(NLS.bind(Messages.TaskResolveArtifacts, getLibraryDescription(library))); SubMonitor child = subMonitor.newChild(libraryFiles.size()); IClasspathEntry[] entries = new IClasspathEntry[libraryFiles.size()]; int idx = 0;/*from w ww. jav a 2 s . com*/ for (LibraryFile libraryFile : libraryFiles) { entries[idx++] = repositoryService.getLibraryClasspathEntry(libraryFile); child.worked(1); } monitor.done(); LibraryClasspathContainer container = new LibraryClasspathContainer(classpathEntry.getPath(), getLibraryDescription(library), entries); return container; }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.AppEngineLibraryContainerResolverJob.java
License:Apache License
private static int getTotalwork(IClasspathEntry[] rawClasspath) { int sum = 0;//from w ww . j ava 2 s.c om for (IClasspathEntry element : rawClasspath) { if (isLibraryClasspathEntry(element.getPath())) { ++sum; } } return sum; }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.LibraryClasspathContainerInitializer.java
License:Apache License
private static boolean jarPathsAreValid(LibraryClasspathContainer container) { IClasspathEntry[] classpathEntries = container.getClasspathEntries(); for (int i = 0; i < classpathEntries.length; i++) { IClasspathEntry classpathEntry = classpathEntries[i]; if (!classpathEntry.getPath().toFile().exists() || (classpathEntry.getSourceAttachmentPath() != null && !classpathEntry.getSourceAttachmentPath().toFile().exists())) { return false; }//from w w w . j a v a 2 s .co m } return true; }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.LibraryClasspathContainerInitializerTest.java
License:Apache License
@Test public void testInitialize_ifArtifactJarPathIsInvalidContainerResolvedFromScratch() throws CoreException, IOException { assertFalse(new File(NON_EXISTENT_FILE).exists()); IClasspathEntry entry = mock(IClasspathEntry.class); when(entry.getPath()).thenReturn(new Path(NON_EXISTENT_FILE)); IClasspathEntry[] entries = new IClasspathEntry[] { entry }; LibraryClasspathContainer container = mock(LibraryClasspathContainer.class); when(container.getClasspathEntries()).thenReturn(entries); when(serializer.loadContainer(any(IJavaProject.class), any(IPath.class))).thenReturn(container); LibraryClasspathContainerInitializer containerInitializer = new LibraryClasspathContainerInitializer( TEST_CONTAINER_PATH, serializer, resolverService); containerInitializer.initialize(new Path(TEST_LIBRARY_PATH), testProject.getJavaProject()); verifyContainerResolvedFromScratch(); }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.LibraryClasspathContainerInitializerTest.java
License:Apache License
@Test public void testInitialize_ifSourceArtifactJarPathInvalidContainerResolvedFromScratch() throws CoreException, IOException { File artifactFile = temporaryFolder.newFile(); assertFalse(new File(NON_EXISTENT_FILE).exists()); IClasspathEntry entry = mock(IClasspathEntry.class); when(entry.getPath()).thenReturn(new Path(artifactFile.getAbsolutePath())); when(entry.getSourceAttachmentPath()).thenReturn(new Path(NON_EXISTENT_FILE)); IClasspathEntry[] entries = new IClasspathEntry[] { entry }; LibraryClasspathContainer container = mock(LibraryClasspathContainer.class); when(container.getClasspathEntries()).thenReturn(entries); when(serializer.loadContainer(any(IJavaProject.class), any(IPath.class))).thenReturn(container); LibraryClasspathContainerInitializer containerInitializer = new LibraryClasspathContainerInitializer( TEST_CONTAINER_PATH, serializer, resolverService); containerInitializer.initialize(new Path(TEST_LIBRARY_PATH), testProject.getJavaProject()); verifyContainerResolvedFromScratch(); }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.persistence.LibraryClasspathContainerSerializerTest.java
License:Apache License
private void compare(LibraryClasspathContainer container, LibraryClasspathContainer otherContainer) { assertEquals(container.getPath(), otherContainer.getPath()); assertEquals(container.getKind(), otherContainer.getKind()); assertEquals(container.getDescription(), otherContainer.getDescription()); for (int i = 0; i < container.getClasspathEntries().length; i++) { IClasspathEntry classpathEntry = container.getClasspathEntries()[i]; IClasspathEntry otherClasspathEntry = otherContainer.getClasspathEntries()[i]; assertEquals(classpathEntry.getPath(), otherClasspathEntry.getPath()); assertEquals(classpathEntry.getEntryKind(), otherClasspathEntry.getEntryKind()); assertEquals(classpathEntry.getSourceAttachmentPath(), otherClasspathEntry.getSourceAttachmentPath()); assertEquals(classpathEntry.isExported(), otherClasspathEntry.isExported()); for (int j = 0; j < classpathEntry.getAccessRules().length; j++) { IAccessRule accessRule = classpathEntry.getAccessRules()[j]; IAccessRule otherAccessRule = otherClasspathEntry.getAccessRules()[j]; assertEquals(accessRule.getKind(), otherAccessRule.getKind()); assertEquals(accessRule.getPattern(), otherAccessRule.getPattern()); }/*from w ww . j a v a 2 s . c o m*/ for (int k = 0; k < classpathEntry.getExtraAttributes().length; k++) { IClasspathAttribute classpathAttribute = classpathEntry.getExtraAttributes()[k]; IClasspathAttribute otherClasspathAttribute = otherClasspathEntry.getExtraAttributes()[k]; assertEquals(classpathAttribute.getName(), otherClasspathAttribute.getName()); assertEquals(classpathAttribute.getValue(), otherClasspathAttribute.getValue()); } } }