Language registry

Language registry model allows to configure scripting engines to be used by WBP for Java activities. This model leverages Java Scripting and adds:

  • Class loading
  • Documentation
  • Tracking of ownership

Version

1.0.0

Resources

Code sample

// Create a resource set to hold the resources.
//
ResourceSet resourceSet = new ResourceSetImpl();
 
// Register the appropriate resource factory to handle all file extensions.
//
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
	(Resource.Factory.Registry.DEFAULT_EXTENSION, 
	 new XMIResourceFactoryImpl());
 
// Register the package to ensure it is available during loading.
//
resourceSet.getPackageRegistry().put
	(LanguagePackage.eNS_URI, 
	 LanguagePackage.eINSTANCE);
 
URI uri = URI.createURI("http://www.hammurapi.com/HammurapiGroup.language_registry");
 
Resource resource = resourceSet.getResource(uri, true);
System.out.println("Loaded " + uri);
 
LanguageRegistry registry = (LanguageRegistry) resource.getContents().get(0);
 
Language tokenExpander = registry.lookup("TokenExpander", null);
ScriptEngineFactory tokenExpanderfactory = tokenExpander.getEngineFactory();
ScriptEngine tokenExpanderEngine = tokenExpanderfactory.getScriptEngine();
SimpleBindings bindings = new SimpleBindings();
bindings.put("z", "88");
System.out.println(tokenExpanderEngine.eval("!!! ${z} !!!", bindings));
 
Language jsp = registry.lookup("JSP", null);
ScriptEngineFactory jspFactory = jsp.getEngineFactory();
ScriptEngine jspEngine = jspFactory.getScriptEngine();
System.out.println(jspEngine.eval("!!! <%=z%> !!!", bindings));				
 
Language java = registry.lookup("Java", null);
ScriptEngineFactory javaFactory = java.getEngineFactory();
ScriptEngine javaEngine = javaFactory.getScriptEngine();
System.out.println(javaEngine.eval("return z;", bindings));
Last modified: 2012/02/05 10:45 by Pavel Vlasov
   
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Hammurapi Group