- TeDMeT Scope v1
- TeDMeT Tutorial
- TeDMeT Download
- TeDMeT Workflow
- TeDMeT Path Code Completion Mockups
The TeDMeT project is currently in a research stage. The code being built is a prototype, not intended for production use, but for evaluation and study only. The project may go through a series of iterations as we learn more about the direction we want to take the potential feature being studied. The current prototype may be dubbed "version 1", for purposes of scoping and reference.
Test-Driven Message Transformation (TeDMeT) is a research project that aims to provide a limited message mapping facility in a Java editor in NetBeans.
It is based on the direct manipulation of DOM trees in Java through calls on a runtime utility (DomUtil), using references to
automatically generated descriptors to represent paths in the DOM trees.
The "non-classic" side of CAPS 6.x does not currently have a message mapping facility that is the equivalent of the classic CAPS JCE (Java Collaboration Editor). This research project explores how we can provide a low-cost addition to the non-classic side that does not rely on proprietary representation formats or tools (JCDs, OTDs), and does not preclude direct manipulation of DOM trees.
This describes the scope of the initial prototype ("version 1").
The feature provided to the user comprises the following
- Runtime support code to manipulate DOM trees through "path" descriptor objects called aliases.
- Generator code to take a sample XML data input and output file, and generate an initial set of alias classes defining aliases for the paths to data present in the samples.
- Generator code to create a "seeded mapping" that writes Java code to reproduce the sample output through runtime calls using the aliases.
- A code completion panel extension to present information on the available aliases and (if available) their sample data values, so the user can insert alias reference without manual coding.
- A dialog to create aliases for new paths not present in the sample data.
Workflow and quantitative limits
- Seeding only happens once in the beginning (no "re-seeding" of existing mapping code).
- We aim to cover the 90% case.
- Typical mapping uses 10 - 100 nodes per message:
- average 62 nodes
- median 26 nodes
- max of 704 upper bound
We do not currently aim to include support to following use-cases:
- Non-XML data.
- XML grammars other than XSD (so no DTD).
- Mappings using > 100 paths per alias class.
Restrictions in prototype
Consider the data flow in the current prototype architecture for code completion:
Code completion data flow
The alias class scanner is simple-minded and requires a specific Java token sequence to recognize path definitions.
It may also incorrectly accept path defitions that have been placed outside the actual alias class definition body.
In short: stick to the generated format and the prototype will work; if you add other code, results may vary.