I've created a test harness for the samples currently on my workspace. The harness is essentially a composite application and series of plugins (the samples) that contribute to a new extension point. The result is below.
Granted, it's not overly complex. But there are some subtleties that are worth noting.
- First, the wiki page is conveniently opened describing the concepts contained in the sample. The left navigation you normally see in the wiki is programmatically removed by using the EmbedddBrowser and dynamically removing DOM elements. The result is adjusted browser content that is more readable within the application.
- The folder icon executes the Program.launch() command to open the sample's file directory. This simply aids in locating the sample after installation so that it can be imported into the developer's workspace. To convert plugin JARs to folders, you simply specify that the plugin should unpack itself when creating your feature.
- The script icon does one of two things: either it launches a composite application if the sample is UI related or it programmatically starts the bundle. The start behavior is used as the main entry to launch the sample. Output is enabled by adjusting the Logger's level using setLevel(Level.INFO) and then simply printing to the respective logger. To show the output, the EmbeddedBrowser is again used to automatically open the log file containing the sample's output.