85 |
85 |
*/
|
86 |
86 |
public static GSERunner createGSERunner(String[] urls) {
|
87 |
87 |
|
88 |
|
GSERunner gse = null;
|
|
88 |
GSERunner gse = null;
|
89 |
89 |
|
90 |
|
// ArrayList<String> roots2 = new ArrayList<String>(200);
|
91 |
|
// roots2.add(roots[0]);
|
92 |
|
// roots2.add(roots[1]);
|
93 |
|
// roots2.add(roots[2]);
|
94 |
|
//
|
95 |
|
//
|
96 |
|
// HashMap<String, Bundle> bundleWithActivators = new HashMap<String, Bundle>();
|
97 |
90 |
HashSet<ClassLoader> loaders = new HashSet<ClassLoader>();
|
98 |
91 |
BundleContext bundleContext = InternalPlatform.getDefault().getBundleContext();
|
99 |
|
// String[] bundlesRoots = new String[bundleContext.getBundles().length];
|
100 |
92 |
|
101 |
93 |
for (Bundle b : bundleContext.getBundles()) {
|
102 |
|
|
103 |
|
//FIXME: debug
|
104 |
|
// System.out.println("ExecuteGroovyScript.executeScript(): bundle symbolic name: " + b.getSymbolicName());
|
105 |
|
// System.out.println("ExecuteGroovyScript.executeScript(): bundle id: " + b.getBundleId());
|
106 |
|
// System.out.println("ExecuteGroovyScript.executeScript(): bundle location: " + b.getLocation());
|
107 |
|
// try {
|
108 |
|
// System.out.println("ExecuteGroovyScript.executeScript(): bundle file location: " + FileLocator.getBundleFile(b).getAbsolutePath());
|
109 |
|
// }
|
110 |
|
// catch(IOException e) {
|
111 |
|
// // TODO Auto-generated catch block
|
112 |
|
// e.printStackTrace();
|
113 |
|
// }
|
114 |
|
|
115 |
94 |
BundleWiring bundleWiring = b.adapt(BundleWiring.class);
|
116 |
95 |
loaders.add(bundleWiring.getClassLoader());
|
117 |
96 |
|
118 |
97 |
//FIXME: debug
|
119 |
98 |
System.out.println("GSERunner.createGSERunner(): class loader added: " + bundleWiring.getClassLoader());
|
120 |
|
// try {
|
121 |
|
// roots2.add(FileLocator.getBundleFile(b).getAbsolutePath());
|
122 |
|
// }
|
123 |
|
// catch(IOException e) {
|
124 |
|
// // TODO Auto-generated catch block
|
125 |
|
// e.printStackTrace();
|
126 |
|
// }
|
127 |
|
|
128 |
|
|
129 |
|
|
130 |
|
// String acName = b.getHeaders().get("Bundle-Activator");
|
131 |
|
// if (acName != null) {
|
132 |
|
// if (!bundleWithActivators.containsKey(b.getSymbolicName())) {
|
133 |
|
// bundleWithActivators.put(b.getSymbolicName(),b);
|
134 |
|
// } else {
|
135 |
|
// Bundle b2 = bundleWithActivators.get(b.getSymbolicName());
|
136 |
|
// if (b2.getVersion().compareTo(b.getVersion()) < 0) {
|
137 |
|
// bundleWithActivators.put(b.getSymbolicName(),b);
|
138 |
|
// }
|
139 |
|
// }
|
140 |
|
// }
|
141 |
99 |
}
|
142 |
100 |
|
143 |
|
// for (Bundle b : bundleWithActivators.values()) {
|
144 |
|
// try {
|
145 |
|
// String acName = b.getHeaders().get("Bundle-Activator");
|
146 |
|
// Class<?> ac = b.loadClass(acName);
|
147 |
|
// loaders.add(ac.getClassLoader());
|
148 |
|
// //FIXME: debug
|
149 |
|
// System.out.println("ExecuteGroovyScript.executeScript(): loaders: " + ac.getClassLoader());
|
150 |
|
// } catch (ClassNotFoundException e) {
|
151 |
|
// e.printStackTrace();
|
152 |
|
// }
|
153 |
|
// }
|
154 |
101 |
Log.info("Initializing TXMClassLoader with " + loaders.size() + " bundles.");
|
155 |
102 |
TXMClassLoader scl = new TXMClassLoader(loaders);
|
156 |
103 |
|
157 |
104 |
try {
|
158 |
105 |
gse = new GSERunner(urls, scl);
|
159 |
|
// gse = new GSERunner(roots, ExecuteGroovyScript.class.getClassLoader());
|
160 |
|
//String[] roots3 = roots2.toArray(new String[roots2.size()]);
|
161 |
|
//gse = new GSERunner(roots3, ExecuteGroovyScript.class.getClassLoader());
|
162 |
|
} catch (IOException e) {
|
|
106 |
}
|
|
107 |
catch (IOException e) {
|
163 |
108 |
e.printStackTrace();
|
164 |
109 |
}
|
165 |
110 |
|