Below are general frequently asked questions about VSA.
Do I have to pay to use VSA?
No, it is free.
If VSA is free, is it supported?
Yes it is supported. Issues can be reported, and we will fix them.
Does OpenCloud use VSA to build its apps/services?
What's the difference between VSA and VIA? Can the tools interact with each other?
VSA and VIA have different purposes. VSA is a tool to help build new apps. VIA is a tool that lets you configure compositions with multiple services. The tools do not interact with each other (they don't need to).
How do I install VSA as an Eclipse plug-in?
See the installation instructions in the VSA User Guide.
What's the roadmap for further releases and capabilities?
VSA has a strong roadmap for the coming 12-18 months. Watch this space!
One key item is that we are looking for direct feedback from the development community, so we have a clear understanding of what you think is missing and what you would like to see in the product. This will help us focus on the functionality that matters the most.
Does VSA impact our productivity?
The philosophy of VSA is really to work with you, to help you be more productive by doing common repetitive tasks, leaving your time free to develop apps and services. There are several high-level descriptions in the VSA Overview and Concepts section of the VSA docs.
Will you be adding more templates to VSA?
Yes, we intend to have more templates in the template repository and pre-baked components in subsequent releases.
How does VSA help me test my apps?
VSA is based on the FSM model, and the FSM model approach forces users to think about the behaviour of the application rather than just writing code. This approach reduces the test/fix cycle overall, since users have a better understanding of the overall picture.
- FSMs can be generated as SPBs or POJOs. POJOs can be tested as part of unit testing, so the behaviour of the application can be tested in isolation from the SLEE.
- VSA also supports continuous integration and the automated testing that comes with it, by providing ANT targets that VSA generates for a project, without having the VSA GUI running.
Why do you have this approach of FSMs instead of flowcharts like most of the other creation environments?
VSA supports flowcharts as actions — users specify an FSM action as a flowchart in VSA. OpenCloud believe that FSMs are a better way of modelling communication services than flowcharts. FSMs force users to think about the app behaviour, so this provides much more control up front. FSMs also have a number of available ways to check their integrity, which is not the case with flowcharts.
Will the apps developed with this version be forward-compatible with future versions of VSA?
I want to generate code with my own modifications (for example, some helper tracing to your facilities accessor methods). Should/can I change your templates to do that?
Yes, you can change the templates. VSA uses FSMTool, and FSMTool can be parameterized with your code-generation templates. OpenCloud do not recommend you changing OpenCloud code; but we recommend users writing their own templates that do what is required. Users can also make a feature request to OpenCloud.
How do I integrate with my version control system?
If VSA is installed as a plugin, it will have access to any version-control plugins you already have installed in your Eclipse instance. You can then use these tools as normal to manage the VSA artifacts in the version-control system. The RCP version of VSA also has support for Subversion built in. For more information, see the VSA User Guide.
Below are frequently asked questions about developing services with VSA.
Can I edit the Java source but still return to VSA later? How will this change in future releases?
Yes, one of the guiding principles of VSA is that there is no lock-in as such. You can use VSA, then hand-code in Java, then come back to VSA. One restriction is that new states and new actions must be added in VSA, but other than that developers are free to do what they want — it really is quite flexible.
How well does VSA let you edit DSL text, and then see the diagrams?
There is an overwrite option in the Reinitialize from DSLs action. So when you edit your DSLs by editing the text, you can use the 'Reinitialize' workflow to bring those changes into your existing diagram. Note however that currently the diagram reverts to the default layout after the overwrite.
How can I add behaviors/FSM templates to my own RAs?
You don't add them to the RAs. You write 'Interface definitions' similar to those which are available for protocols like CAPv2 and its Application Contexts. These 'Interface definitions' then contain the behavioural descriptions in the form of normal FSM Tool-compatible DSL files.
How can I import any proprietary CGIN protocols?
The Import DU functionality can be used to import an RA as well. If the RA has proprietary protocols, they get imported into VSA.
How can I import and use my own Java libraries (such as a library to decode and encode the SDP body of a SIP message)?
VSA supports importing JSLEE DUs. In this particular case, you would import a library DU that would contains the required classes.
Can I add my own components so my team can re-use them? How?
Developers can define their own FSMs and applications, and existing SPBs, RAs, and so on can be imported. Users can also freely modify the FSM Template repository. Right-clicking on a template gives a Delete option, and right-clicking on an FSM gives the Add as new FSM template option.
In Assign, Compare, and similar elements, I can currently only specify elementary datatypes (such as string, int, or short) and arrays of these as literals. Why can't I (for example) access the various CGIN enum datatypes' enumeration literals?
The workaround is to put a JavaAction before the (for example) Compare diagram element. In the Compare element, instead of using a literal to compare against, compare against the content of a 'local variable'. Then use the JavaAction to implement code that actually puts the desired literal value into the 'local variable'.
What is the difference between 'Action Reference' and 'Action'?
'Action References' are the visual entries in the states' compartments, and effectively only 'point' to actions. 'Actions' are the real deal, the elements in the FSM's action dictionary, which contain the flowchart elements.
Because of the difference between 'Action' and 'Action Reference' (see above), it is easy to have leftover unreferenced actions sitting in the FSM. How can I clean these up?
To remove unreferenced actions, right-click in the background canvas of the FSM, and select Edit Action Dictionary. Delete the leftover action from the list, and click OK.
When I make changes to the generated Ant build.xml in the project's main directory, these get overwritten every time I build the VSA project. How can I prevent this?
The plan is for future version of VSA to use merging techniques to preserve user-made changes. Until then, please copy your customized build.xml into the build directory. The build directory needs to be created by the user, and is not touched by the VSA build process.
When I link an ActionImpl class and set it as new source, Eclipse shows errors related to package name and location, and suggests putting the calls into the default package. Code-generation runs fail when trying to assemble build directories. What is the workaround?
You will need to close and then re-open the project, or close and re-open the whole VSA workbench.
Deleting an FSM from the diagram automatically removes the associated DSL file. I wanted to retain my DSL file even though the FSM is deleted from the diagram. How can I do this?
VSA tries to keep your set of DSL files in sync with the elements on the diagram. To retain the DSL file for an FSM before deleting an FSM from the diagram, make a copy of it before you delete the FSM element from the diagram.
The source and/or Javadoc of packaged standard libraries (such as slee.jar) are not included in the VSA distribution build. How can I link them in VSA?
The procedure is as follows:
- Download the Java from here: https://developer.opencloud.com/devportal/devporta.../slee/1.1/slee-1.1-javadoc.zip
- Right-click on the VSA project, and select Build Path ► Configure Build Path.
- In the Libraries tab of the Java Build Path dialog box, click Add JARs....
- Select slee-1.1.jar in VSA Project/generated/lib.
- Select the Order and Export tab of the Java Build Path dialog box.
- Open the slee1.1.jar entry, and select the Javadoc location. Then click Edit....
- Select Javadoc in archive and then External file. Browse to the slee-1.1-javadoc.zip file. The path within archive is slee/1.1/slee-1.1-javadoc.
- Click Validate....
You should see this message:
Location is likely valid. Files 'package-list' and 'index.html' have been found.
- Return to the Java Build Path dialog box.
- Move the slee-1.1.jar to the top, below the JRE System Library, and above VSA Dependencies.
- Click OK to close the Java Build Path dialog box.
Currently when importing the Freephone example into a fresh VSA install, the UserDataLookup component in the project's application scenario will have an error marker which complains that it points to a component which is no longer contained in the Component Repository. Why is this showing up as an error, and what do I need to do?
This happens because the Freephone example depends upon a special profile specification which is not contained by default in the Component Repository that comes with VSA. Use the Import DU wizard to import the Freephone profile specification vsa-freephone-profile-du.jar from the examples directory, before importing the Freephone example project.
Is there any performance overhead in the end result as a result of using VSA?
Absolutely not. There is no overhead using VSA. In fact, OpenCloud is using VSA internally to develop large, high-performance, scalable, commercial offerings.
Using VSA with other applications and projects
Below are frequently asked questions about using VSA with other applications and projects.
How can we use our existing FSMTool projects within VSA?
VSA caters for this through several means; for example, you can:
- import existing project trees as new VSA projects
- link ActionImplementation classes
- configure the FSM DSL file path.
How can I import to VSA the apps that I developed without the FSMTool?
You can import the DUs for those apps into VSA using Import DU function.
What do I do with my FSMs that I built using an earlier version of FSMTool? Can I get them in?
VSA directly supports importing FSM DSL files conforming to FSM Tool 1.0. FSMTool 0.8.5 is not supported directly; but you can use FSMTool's migration capability to first convert your FSM DSL files before importing them into VSA.
To get an FSM Tool DSL file into VSA, you can:
- Use Import DSL to grab the DSL from somewhere on the file system, and import it as new FSM into your project.
The new FSM's DSL will NOT be linked to the original file.
- If the FSM DSL file is part of your project tree, use the Reinitialize from DSLs action.
This creates an FSM which has its DSL linked to the original DSL file.
Can I use VSA to design/build JAIN SLEE applications for use in non-OpenCloud containers? Is this supported?
The applications built using VSA are fully compliant with the JAIN SLEE 1.1 specification. OpenCloud support the use of VSA and other OpenCloud tools on the OpenCloud Rhino platform.
VSA supports an older version of the OpenCloud RA <xyz>. How can I import the new version of the RA to VSA?
You can import newer versions of the RA Types (and RA) into the VSA ComponentRepository. You will then need to either modify your existing Interface Definitions or add new ones for the new RA Types, and then change associations for the Downcall Template repository.