/
LiferayRuntimeStubClasspathProvider.java
56 lines (44 loc) · 1.83 KB
/
LiferayRuntimeStubClasspathProvider.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.liferay.ide.eclipse.server.core;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jst.server.core.RuntimeClasspathProviderDelegate;
import org.eclipse.wst.server.core.IRuntime;
public class LiferayRuntimeStubClasspathProvider extends RuntimeClasspathProviderDelegate {
private static final NullProgressMonitor npm = new NullProgressMonitor();
protected RuntimeClasspathProviderDelegate stubDelegate = null;
public LiferayRuntimeStubClasspathProvider() {
super();
}
@Override
public IClasspathEntry[] resolveClasspathContainer( IProject project, IRuntime runtime ) {
IClasspathEntry[] retval = null;
if ( stubDelegate == null ) {
LiferayRuntimeStubDelegate delegate =
(LiferayRuntimeStubDelegate) runtime.loadAdapter( LiferayRuntimeStubDelegate.class, npm );
String runtimeStubTypeId = delegate.getRuntimeStubTypeId();
IConfigurationElement[] elements =
Platform.getExtensionRegistry().getConfigurationElementsFor(
"org.eclipse.jst.server.core.runtimeClasspathProviders" );
for ( IConfigurationElement element : elements ) {
String runtimeTypeIds = element.getAttribute( "runtimeTypeIds" );
if ( runtimeTypeIds.contains( runtimeStubTypeId ) ) {
try {
stubDelegate = (RuntimeClasspathProviderDelegate) element.createExecutableExtension( "class" );
break;
}
catch ( CoreException e ) {
e.printStackTrace();
}
}
}
}
if ( stubDelegate != null ) {
retval = stubDelegate.resolveClasspathContainer( project, runtime );
}
return retval;
}
}