ICE App Store Usage (Experimental)
ICE Science App Store (Experimental)
The ICE team has been developing a new Scientific Application Store that can be accessed through the Developer menu. This App Store enables the creation of what we are calling 'scientific environments'. An environment is everything required to develop, build, and execute scientific applications. These environments contain information about the Operating System the environment builds off of, the primary application the environment provides, and all of that applications software dependencies.
We have designed this App Store, and specifically the environment concept itself, to be modeled as Docker images and containers (we also have support coming online for local host environment installs as an advanced feature). Users construct all the pertinent information required to describe the environment, which is actually a description of the Dockerfile build for a corresponding Docker image. Environments can be built and connected to - for the case of Docker, this means an image created with 'docker build' and a container launched with 'docker run'. Environments can also be persisted for use in later executions of ICE.
To provide the means to develop on the environment primary application, we have configured support for PTP Synchronized Projects. When the environment is connected to (ie, a new container created), we configure a remote SSH connection and a subsequent Parallel Tools Project Synchronized Project, which provides a mechanism for editing code remotely and automatically syncing those changes on a remote host. In the case of the App Store and environments, we treat the docker containers as remote hosts, and configure an ssh connection and PTP Synchronized Project accordingly.
The remainder of this document is to detail the steps required to get this new App Store functionality up and running. It is in the very early stages - this is an early prototype and as such we do not have a completely working build of ICE with this feature added. However, you can try it out by launching a new instance of ICE from a running instance of ICE. All this work is currently under version control in the Eclipse ICE mccaskey/appstore branch.
How to use the App Store
From the Git Perspective in Eclipse ICE, clone the ICE repository (hosted at https://github.com/eclipse/ice), and make sure to specify that you want to start on the mccaskey/appstore branch. Import all the projects once its been cloned. You should make sure that you now have in the Project Explorer the org.eclipse.ice.developer.apps* bundles.
Open a terminal and cd to the cloned ice/org.eclipse.ice.developer.apps.ui directory. In this directory, run mvn clean verify. It will fail, but that is ok - the point was to make sure that the correct Vaadin bundles are available in your local .m2 repository (otherwise there are errors in Eclipse in the apps.ui bundle.
Once you've done that, you should just be able to go to the Run Configurations wizard, select the appropriate existing Eclipse Application run configuration for your OS, validate your bundles, then run.
ICE will open up, and you can now navigate to Developer > App Store > Create to start the app/environment creation workflow. At this point, you must provide a valid Source Package (Add from Git Repo) to serve as the environment's primary application. This will be the project that we configure for a PTP Synchronized Project.