Skip to Main Content U.S. Department of Energy

Overview of the MIF Component Builder

The MIF Component Builder (CB) is used by programmers to design MIF pipelines, generate stub code for objects in the pipeline, implement the stubbed code, and execute the resulting pipeline. The CB is capable of round trip development. In other words the process of design, generate, implement, execute can be repeated until the programmer is satisfied with the pipeline. At that point, the components in the pipeline can be deployed to a running MIF instance or stored in a component library for later use.

Component Builder Window Layout

Working in the component builder will feel much like working with a regular Java project, with some additional features for graphically creating the pipeline and for generating stub code. The component builder's graphical features are called out in the following image and described in detail below.

Callout of Graphical Features

Canvas

The canvas is the pane in the center of the tool which represents the diagram file and is where the pipeline is configured. Objects are placed on the canvas and connected to create a pipeline. When objects are moved around the canvas, and the diagram is saved the changes are written to the .mifd file. When new objects are created or modified, the model is written to .mif.

Palette

The palette is the windows on the right side of the tool. It contains all the objects which make up a MIF pipeline model. The objects are selected from the palette with a single click, then placed on the canvas with another single click.

The palette separates objects into different categories for convenience. The Components section holds MIF components and commonly used objects which can appear inside a component (except for modules). The MifModule section contains the MifModule object and other objects which can be placed inside the module. The Communication Endpoint section contains endpoint objects plus the EndpointLink which shows up on the canvas as a dotted line that connects an outbound endpoint on one module to the inbound endpoint on the next.

Package explorer

The package explorer appears on the left side of the application and will be familiar to Java programmers who have used previously Eclipse. This window is used for organizing source files, configuration files, and MIF model files.

Properties window

Properties for objects placed on the canvas are edited using the Eclipse “Properties” window. To edit an entity, click the entity then view and edit the necessary properties in the properties window.

Properties for the whole pipeline can also be set by clicking on the Eclipse canvas, then editing the properties that appear in the properties window. For example, note in the above image that the “Driver Class” property has the value “org.example.MifDriver.” This particular property means that this will be the class name of the generated driver class that runs the pipeline created in the component builder.

Console

The console is just like the Java console in that it displays standard input and standard output within the IDE. In addition, the CB console also outputs status and results of code generation actions.

Pipeline Model Error Checking

Each time a MIF diagram is saved, the underlying MIF model (stored in the .mif file) is checked for validity. This provides an error checking feature which is implemented by imposing constraints on objects in the model, such as “a MifModule must not have an undefined implementationClass.” If such a constraint is not satisfied, the CB places a red “X” icon on the object(s) that are in error. When the user mouses over one of these error icons, the CB provides a hint as to what the problem is.

The error also shows up in Eclipse's “Problems” window as shown in the screen shot below.

Error Checking features in Component Builder

This feature is extremely helpful in building a pipeline as it guides the user by informing her what of minimum set of conditions that must be met for a pipeline to be valid.

 
component_builder_overview.txt · Last modified: 2010/09/25 17:15 by adamw