Revision 1020
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/main/java/org/gvsig/scripting/impl/DefaultScriptingManager.java | ||
---|---|---|
63 | 63 |
private final Map properties = new HashMap(); |
64 | 64 |
private final Map<String,ScriptEngine> engineGroups = new HashMap<>(); |
65 | 65 |
|
66 |
@SuppressWarnings({"OverridableMethodCallInConstructor", "LeakingThisInConstructor"}) |
|
66 | 67 |
public DefaultScriptingManager() { |
67 | 68 |
this.classLoader = getClass().getClassLoader(); |
68 | 69 |
this.setHomeFolder(null); |
... | ... | |
244 | 245 |
} |
245 | 246 |
engine = factory.getScriptEngine(); |
246 | 247 |
} |
247 |
if( SCALA_LANGUAGE_NAME.equalsIgnoreCase(langName) ) { |
|
248 |
try { |
|
249 |
// https://gist.github.com/takawitter/5479445 |
|
250 |
Object settings = engine.getClass().getMethod("settings", new Class[0]).invoke(engine, new Object[0]); |
|
251 |
settings.getClass().getMethod("processArgumentString", new Class[] { String.class }).invoke(settings, new String[] { "-usejavacp"}); |
|
252 |
} catch(Throwable th) { |
|
253 |
LOG.warn("Can't initialice scala setting -usejavacp",th); |
|
254 |
} |
|
255 |
} |
|
248 |
// if( SCALA_LANGUAGE_NAME.equalsIgnoreCase(langName) ) {
|
|
249 |
// try {
|
|
250 |
// // https://gist.github.com/takawitter/5479445
|
|
251 |
// Object settings = engine.getClass().getMethod("settings", new Class[0]).invoke(engine, new Object[0]);
|
|
252 |
// settings.getClass().getMethod("processArgumentString", new Class[] { String.class }).invoke(settings, new String[] { "-usejavacp"});
|
|
253 |
// } catch(Throwable th) {
|
|
254 |
// LOG.warn("Can't initialice scala setting -usejavacp",th);
|
|
255 |
// }
|
|
256 |
// }
|
|
256 | 257 |
if( !StringUtils.isEmpty(isolationGroup) ) { |
257 | 258 |
this.engineGroups.put(isolationGroup.toLowerCase(), engine); |
258 | 259 |
} |
... | ... | |
281 | 282 |
@Override |
282 | 283 |
public boolean validateUnitId(ScriptingFolder folder, String id) { |
283 | 284 |
File f = new File(folder.getFile(),id+".inf"); |
284 |
if( f.exists() ) { |
|
285 |
return false; |
|
286 |
} |
|
287 |
return true; |
|
288 |
// List<ScriptingUnit> units = folder.getUnits(); |
|
289 |
// String fileName; |
|
290 |
// for (ScriptingUnit unit : units) { |
|
291 |
// fileName = unit.getId(); |
|
292 |
// fileName = FilenameUtils.getBaseName(fileName); |
|
293 |
// if (fileName.equals(id)) { |
|
294 |
// return false; |
|
295 |
// } |
|
296 |
// } |
|
297 |
// return true; |
|
285 |
return !f.exists(); |
|
298 | 286 |
} |
299 | 287 |
|
300 | 288 |
public ScriptingScript createScript(ScriptingFolder folder, String id) { |
... | ... | |
491 | 479 |
|
492 | 480 |
private void initLanguages() { |
493 | 481 |
if (this.extensionOfLanguage == null) { |
494 |
Map<String, String> extensionOfLanguage = new HashMap<>();
|
|
482 |
Map<String, String> theExtensionOfLanguage = new HashMap<>();
|
|
495 | 483 |
List<ScriptEngineFactory> factories = getEngineManager().getEngineFactories(); |
496 | 484 |
for (ScriptEngineFactory factory : factories) { |
497 | 485 |
if( "ognl".equals(factory.getLanguageName()) ) { |
... | ... | |
499 | 487 |
} |
500 | 488 |
List<String> extensions = factory.getExtensions(); |
501 | 489 |
if (extensions != null && !extensions.isEmpty()) { |
502 |
extensionOfLanguage.put(
|
|
490 |
theExtensionOfLanguage.put(
|
|
503 | 491 |
factory.getLanguageName().toLowerCase(), |
504 | 492 |
extensions.get(0).toLowerCase() |
505 | 493 |
); |
506 | 494 |
} |
507 | 495 |
} |
508 |
this.extensionOfLanguage = extensionOfLanguage;
|
|
496 |
this.extensionOfLanguage = theExtensionOfLanguage;
|
|
509 | 497 |
} |
510 | 498 |
if (this.languageOfExtension == null) { |
511 |
Map<String, String> languageOfExtension = new HashMap<>();
|
|
499 |
Map<String, String> theLanguageOfExtension = new HashMap<>();
|
|
512 | 500 |
List<ScriptEngineFactory> factories = getEngineManager().getEngineFactories(); |
513 | 501 |
for (ScriptEngineFactory factory : factories) { |
514 | 502 |
if( "ognl".equals(factory.getLanguageName()) ) { |
... | ... | |
517 | 505 |
List<String> extensions = factory.getExtensions(); |
518 | 506 |
if (extensions != null) { |
519 | 507 |
for (String extension1 : extensions) { |
520 |
languageOfExtension.put(
|
|
508 |
theLanguageOfExtension.put(
|
|
521 | 509 |
extension1.toLowerCase(), |
522 | 510 |
factory.getLanguageName().toLowerCase() |
523 | 511 |
); |
524 | 512 |
} |
525 | 513 |
} |
526 | 514 |
} |
527 |
this.languageOfExtension = languageOfExtension;
|
|
515 |
this.languageOfExtension = theLanguageOfExtension;
|
|
528 | 516 |
} |
529 | 517 |
} |
530 | 518 |
|
... | ... | |
703 | 691 |
return this.createLink(name, link.getFile(), targetPathName); |
704 | 692 |
} |
705 | 693 |
|
706 |
private Map<File,File> links = new HashMap<>(); |
|
694 |
private final Map<File,File> links = new HashMap<>();
|
|
707 | 695 |
|
708 | 696 |
public void addLink(File source, File target) { |
709 | 697 |
this.links.put(FileUtils.getRealFile(target), source); |
Also available in: Unified diff