Skip to main content
Jump to: navigation, search

Difference between revisions of "QVTo/New and Noteworthy/Helios"

Line 79: Line 79:
  
 
====LPG v2.0.17 adoption====
 
====LPG v2.0.17 adoption====
 +
 +
Parsing infrastructure has been changed so that now it relies on [http://sourceforge.net/projects/lpg/ LPG v2.0.17]. Reasons behind that decision are that LPG v1.x was stated to be deprecated and also that LPG v1.x run-time has some deficiencies relating performance and memory usage.
  
 
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=297966 297966] QVTo grammar is aligned to LPGv2
 
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=297966 297966] QVTo grammar is aligned to LPGv2

Revision as of 13:18, 27 May 2010

Milestone 2

The milestone was completed on Wednesday, 30 September 2009

Enhancements

204085 XMI serialization of AST models created by the QVTo parser

256149 Contextual operation in Java black-box library as non-static Java method

267493 UI creation wizard for QVTo Ant tasks

284989 QVTo Invocation API now handles dynamic models

285007 Semantic highlighting to QVTo editor

287589 Performance improvement of trace generation and look up

287594 Direct support for 'nullable' enumerations

Bugs

287711 Input EObjects having eContainer != null can't be accessed as model extent root objects

Milestone 3

The milestone was completed on Tuesday, 10 November 2009

291458 Content viewer for QVTo concrete syntax files

Milestone 4

The milestone was completed on Wednesday, 16 December 2009

290002 Adopt QVT CST to latest OCL 3.0.0 CST

295060 Transformation executor must accept a generic transformation URI

295844 Implement concept of debuggable QVT Virtual Machine

295845 Provide QVT debug core implementation

296633 Provide debug.ui implementation

Milestone 5

The milestone was completed on Tuesday, 2 February 2010

Enhancements

287685 Support for standalone QVTO execution

Now transformation can be invoked outside Eclipse from Java via org.eclipse.m2m.qvt.oml.TransformationExecutor (see Executing QVTo transformations from Java.

Required dependencies:

//-- EMF and OCL jars ----------
org.eclipse.emf.ecore_2.6.0.v200912121603.jar
org.eclipse.emf.common_2.6.0.v200912121603.jar
org.eclipse.emf.ecore.xmi_2.5.0.v200912121603.jar
net.sourceforge.lpg.lpgjavaruntime_1.1.0.v200803061910.jar
org.eclipse.ocl_3.0.0.v200912161120.jar
org.eclipse.ocl.ecore_3.0.0.v200912161120.jar
//-- QVTo jars ----------
org.eclipse.m2m.qvt.oml
org.eclipse.m2m.qvt.oml.common
org.eclipse.m2m.qvt.oml.cst.parser
org.eclipse.m2m.qvt.oml.emf.util
org.eclipse.m2m.qvt.oml.ecore.imperativeocl

For package (metamodel) registry, resource factories initialization see EMF use in standalone applications

287714 Revise excessive checking for [inout] and [out] transformation parameter types

Now QVTo support custom EMF resource implementations, such as cdo:// etc. resources, as transformation [inout/out] parameters. Before these changes such inputs were only available for [in] parameter types.

LPG v2.0.17 adoption

Parsing infrastructure has been changed so that now it relies on LPG v2.0.17. Reasons behind that decision are that LPG v1.x was stated to be deprecated and also that LPG v1.x run-time has some deficiencies relating performance and memory usage.

297966 QVTo grammar is aligned to LPGv2

300560 Reintroducing official LPGv2 templates

Milestone 6

The milestone was completed on Tuesday, 16 March 2010

Enhancements

302592 New _ (underscore) prefix policies

Now parser supports _'xxx' name escaping policy (along with old _xxx).

Milestone 7

The milestone was completed on Tuesday, 4 May 2010

Enhancements

308049 Accessing Eclipse console from QVTo black-box library

Java black-box implementation now has a mean to access QVTo execution context so transformation configuration properties and standard logging capability are available.


Sample of Java black-box library methods that are declared to have an access to QVTo execution context:

@Operation (kind=Kind.HELPER, withExecutionContext=true)
public void logToConsole(org.eclipse.m2m.qvt.oml.util.IContext context, String param) {
	context.getLog().log(param);
}
 
@Operation (withExecutionContext=true)
public void cancelExecution(org.eclipse.m2m.qvt.oml.util.IContext context) {
	context.getMonitor().cancel();
}
 
@Operation (contextual=true, withExecutionContext=true)
public String getConfigProperty(org.eclipse.m2m.qvt.oml.util.IContext context, String strContext) {
	return context.getConfigProperty(strContext).toString();
}


Sample invocation of the methods above from QVTo script:

import org.bar.Foo;
main() {
	logToConsole('console output from blackbox lib');
 
	log('strTest'.getConfigProperty());
 
	cancelExecution();
}

Back to the top