Tasklet/Weblet Bundles

The Tasklet/Weblet Bundles tool lists all the packaged Tasklet and App Bundles available for the user to choose from when creating jobs and applications. A Bundle is nothing more than a packaged modular component with all software and resources files stored in a JAR file (with an extension of .sfb). This tool allows the user to view and manage the available Bundles and view various details about them, including demonstrate any optional GUI interfaces associated with each Bundle, if the Bundle has a GUI associated with it. Tasklet and App Bundles are based on the open source soafaces specification. You can read more about soafaces here.

When listing the available Bundles, you can filter by type. The two types are Application Bundles (contain GUI Weblets only) and Tasklet Bundles which contain server-side Tasklets and optional Weblet/RuntimeViewer GUIs for customizing the Tasklet's input and for viewing the runtime status of the Tasklet.

Job/Tasklet Bundles

Tasklet type Bundles, are Bundles that implement the Tasklet interface and can be used to build and run workflow type backend jobs. The Tasklet is a required interface that must be implemented and is defined in the MANIFEST.MF file contained in the Bundle jar archive file. Other Bundle interfaces (such as a Weblet and RuntimeViewer) are optional and can be used to customize the Tasklet's input JavaBeans and view the status of a Tasklet. Tasklet Bundles can be used to build jobs using the Job Designer tool.

App/Weblet Bundles

App only type Bundles, are Bundles that implement the Weblet interface and do NOT implement the Tasklet interface. The Weblet is a required interface that must be implemented and defined in the MANIFEST.MF file contained in the Bundle jar archive file. This type of Bundle can be used to build only GUI type applications using the Application Builder tool. It can NOT be used to build jobs and workflows since it does not contain a Tasklet.

Description

The Bundle Description button will display basic details about the selected Bundle. This will show the meta information describing the Bundle that is found in the MANIFEST.MF file. An example is shown here:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 10.0-b19 (Sun Microsystems Inc.)
SOAFaces-Name: Hello World 3
SOAFaces-SymbolicName: surda-beansoup-helloworld3
SOAFaces-Version: 1.0.0
SOAFaces-Description: Simple SOAFaces example
SOAFaces-Vendor: Grand Logic, Inc
SOAFaces-Category: example
SOAFaces-Tasklet: org.beansoup.helloworld3.workflow.HelloWorld
SOAFaces-InputBean: org.beansoup.helloworld3.client.HelloWorldInput
SOAFaces-OutputBean:
SOAFaces-Weblet: org.beansoup.helloworld3.HelloWorldGWTModule
SOAFaces-RuntimeViewer:

App/Weblet GUI

The App/Weblet GUI button will display the GWT Weblet associated with the Bundle (if one exists). A Weblet can be used to build a GUI application. When you click the button, the App is displayed in demo mode with limited capabilities. This action provides the user with an example of how the Weblet would functions in an application.

Tasklet Design Time GUI

The Tasklet Design Time GUI button will display the GWT customizer associated with the Bundle (if one exists). This is a Weblet that can be used to build a GUI customizer for a Tasklet to edit the input properties of that Tasklet. When you click the button, the Weblet is displayed in demo mode with limited capabilities. This action provides the user with an example of how the Weblet customizer would functions in a job and Tasklet.

Tasklet Runtime GUI

The Tasklet Runtime GUI button will display the GWT RuntimeViewer associated with a Tasklet (the RuntimeViewer API is optional for Tasklets to use). The RuntimeViewer is displayed in a demo mode with limited capabilities. The RuntimeViewer is used to display the output/input JavaBeans and current runtime status associated with a Tasklet's execution as part of a job. The RuntimeViewer can show the status of the Tasklet as the Tasklet is running or the results of the Tasklet after it finishes running. This can provide a historical snapshot of the output/input JavaBeans associated with a Tasklet at the time the Tasklet was run. This is a great auditing tool to see exactly the output generated by the Tasklet (and thus the corresponding job) when it ran or as it is running.

Statically Compiled vs On-The-Fly Compiled Bundles

Weblets and RuntimeViewer that can be associated with a Bundle are implemented using the GWT framework. When building and deploying a Bundle that includes a Weblet/RuntimeViewer, JobServer will automatically compile the GWT java code into ajax/javascript on the fly. You only need to include the java source code for the Weblet/RuntimeViewer. JobServer handles compiling and deploying the GWT javascript code for you. You can also GWT compile the Weblet/RuntimeViewer yourself and include the javascript in the Bundle (place it in the directory www. If you do not included the compiled GWT code, the first time you access a Weblet (or RuntimeViewer) it might take a moment to display the GUI, because JobServer is busy running the GWT compiler on it. The next time you access that specific Weblet (or RuntimeViewer) it will appear quickly since it is already compiled. If a developer ever deploys a new version of the Bundle, GWT will know to recompile it for you - it is all automatic. There are special override options described below, that give you extra manual control over the GWT compiler but these are typically used in special cases by administrators or someone performing trouble shooting on a Bundle.

When you develop and build a Bundle that has a Weblet or RuntimeViewer, you can choose to include the compiled GWT code in your Bundle archive file or you can let JobServer compile the GWT GUI on the fly into html/javascript. If you do not include the compiled GWT code, JobServer can automiatically compile the GWT code for the Weblet and RuntimeViewer associated with a Bundle for you the first time the Weblet, RuntimeViewer are accessed. The GWT java code is compiled on the fly into javascript/ajax code so be patient while the compiler runs. Note, that for the on-the-fly compiling to work, you must include the GWT java binary and source for the client code in the Bundle. If you do not want JobServer to dynamically (on-the-fly) compile your Weblet/RuntimeViewer, then you can compile it yourself and include the generated GWT html/javascript output and place it in the www directory within the Bundle jar (".sfb" file).

Mark all GWT clients for recompile

This action allows the user to force all the Bundles to have their GWT javascript generated code to be cleared, so that the next time the GWT GUIs are accessed (Weblet or RuntimeViewer) they will be compiled again by the GWT compiler. This feature is only to be used in situations where there might be need to force the GWT compiler to recreate the javascript/ajax code and should only be used in rare circumstances. Note that this action only marks the Bundles for recompile and does not actually force an immediate recompile. The actual GWT recompile process will only happen when each individual Weblet/RuntimeViewer is accessed again. Note that this function does not apply to Bundles who have been statically GWT compiled.

Mark selected Bundle's GWT client for recompile

This action allows the user to force the selected Bundle to have its GWT javascript generated code to be cleared, so that the next time the GWT GUIs are accessed (Weblet or RuntimeViewer) they will be compiled again by the GWT compiler. This feature is only to be used in situations where there might be need to force the GWT compiler to recreate the javascript/ajax code and should only be used in rare circumstances. Note that this action only marks the selected Bundle for recompile and does not actually force an immediate recompile. The actual GWT recompile process will only happen when the individual Bundle is accessed again. Note this function does not apply to Bundles who have been statically GWT compiled.

Delete Bundle

Deletes the selected Bundle.

Upload New Bundle

Upload a new Bundle. The Bundle must have an extension of .sfb and be in a JAR file format.

Manually adding Bundles

You can manually add Bundles to JobServer by dropping the Bundle file into JobServer's soafaces directory. Do NOT expand the Bundle (.sfb file) yourself, JobServer will do this for you.