Updated 11 March 2008

Introduction

Penumbra is a Visualworks Smalltalk application that makes the Eclipse application accessible from within Smalltalk using the JavaConnect library. Penumbra and its applications were developed by Johan Brichau and Coen De Roover. It is released under the MIT Open Source license.

Download and Get Started!

Penumbra is written for Visualworks Smalltalk, and connects to the latest Eclipse (3.3). It has been tested on Mac (PPC and Intel) as well as Linux and Windows. Some cross-platform issues with file locations can still exist on the Linux and Windows platforms. Please report any if you find them.

Screenshots (click to enlarge)

The Penumbra console: each pane contains settings for a specific Penumbra application. The main pane, which is included in the Penumbra main bundle, allows to select an Eclipse workspace and start or stop Eclipse. Other panes are inserted as you install other Penumbra applications.

An example workspace that uses the API of the Penumbra Eclipse plugin, which is available as the sole instance of the JavaWorld.org.dmp.penumbra.PenumbraApplication class. More information about the API can be found below. The code of the workspace prints the names of all Java compilation units (.java files) in all projects of the workspace on the Transcript.

 

Penumbra Applications

Soul-Cava

This Penumbra application allows the logic metaprogramming language SOUL to reason about Java code in an Eclipse project. Cava was written as an extension to LiCoR (Library for Code Reasoning) and, apart from a particular brand of wine, it's an abbreviation for 'Code reasoning for Java'.

Soul-Cava is a bundle that can be obtained from the same DMP store as JavaConnect and Penumbra. All prerequisites (Soul, Penumbra, LiCoR and JavaConnect) are loaded automatically.

Penumbra-Moose

As an extension to the MOOSE reengineering environment, this Penumbra application allows to load Java code directly into a FAMIX model. The main advantage of this way of importing Java code into MOOSE is that the original parsetrees, and thus the complete codebase, is annotated on the FAMIX model. In particular, this has allowed us to interface MOOSE with the IntensiVE toolsuite.

The Penumbra-Moose package is directly loadable from DMP store. Mind that it requires MOOSE to be loaded from the SCG store.

Penumbra CDT

coming soon

An extension to Penumbra allows to use the CDT instead of the JDT. This application thus allows to work with C and C++ projects instead of Java projects.

 

Programmatic access to Eclipse

The Eclipse plugin is a Java instance that is available as the sole instance of the JavaWorld.org.dmp.penumbra.PenumbraApplication class. You can obtain that instance by evaluating:

JavaWorld.org.dmp.penumbra.PenumbraApplication current.

Here is the API of the org.dmp.penumbra.PenumbraApplication class: