You are here

Release 1.2.8.200805212156

New release. Various bugs and tweaks. However, there is one nice new feature.

Export as executable model

I'm not sure how useful this will be to the majority of the community, but I've been itching for this functionality. In the IDE you can now choose to export a particular ACT-R project as an executable model. This will perform a serious of steps that will ultimately produce a directory (or zip file) that contains a snapshot of the complete project, all its dependencies, code and resources, and a run configuration for a particular model. Included in this mass of files is the executable version of the model. Run it and watch your model go.

What's so useful about this is the fact that it is taking a complete snapshot. This model will run no matter what happens downstream. This makes an ideal storage mechanism for documentation or deployment.

I'm now using it to take snapshots of my models to record different executable states of the model in its development and, more importantly, archiving verified models that are run on the robot for demonstration purposes.

How?

In the package explorer, select your project and right click to bring up the Export... option. Select jACT-R Export ->Executable Model. It will then prompt you to select the run configuration to use as a template. Clicking on Finish will send it on its way setting your project up with a few configuration files. It will then popup another dialog. Your only concern here is the name of the folder you are creating and the destination for that folder. For now, leave everything else alone. Click on Finish and it should have generated the full package.

Two Caveats

It is recommended that your run configuration be stripped to the bare minimum of listeners. Additionally, Any configuration options that rely upon absolute paths will likely fail, resources should only be accessed through the classpath.

What?

What's going on? Each project is really an OSGi plugin that can be deployed (with its dependencies) as individual jar files that are assembled at runtime. Eclipse has functionality that allows you to specify what plugins go into a deployable package. I'm merely using the dependencies of your project to determine that information and build the configuration files that the deployment tool needs. These are the files created:

configuration/demo/{runName}/environment.xml is the standard environment file that the jACT-R entry point reads for the model and environment information. configuration/demo/{runName}/demo.product is the product file for the project. This defines how the application starts, its name, the plugins it requires, and the java environment needed. The plugin.xml file is also modified to allow Eclipse to see that it has the deployment information. Similarly, META-INFO/Manifest.mf is modified to add demo/{runName} to the classpath (making the files visible).

After the first export, if the run configuration is not changed, the model can be exported again by going directly to the Product Export Wizard (under Plugin Development) and selecting configuration/demo/{runName}/demo.product. If you really want a self-contained system, you can edit the product file to export the entire java environment as well (all java binaries, libraries, native code, etc.).