abstratt / cloudfier

Cloudfier is a model-driven tool for rapid development of business applications
http://cloudfier.com
Other
22 stars 4 forks source link

Cloudfier

Travis CI: Build Status on Travis CI

This repository contains the code for Cloudfier, a web-based environment for modeling with support for editing, testing, deploying and generating business applications based on executable models.

Just want to use Cloudfier?

If you just want to learn about Cloudfier, and how to use to develop model-based applications, stop reading this and instead head to the Cloudfier documentation.

Code organization

The components that make up Cloudfier are divided among subsystems:

Also, the TextUML Toolkit project, which has its own repository, provides a number of core components to Cloudfier: model repository management, front-end infrastructure and support for the primary notation (TextUML), and a number of model manipulation utilities.

Developing Cloudfier

Requirements

You also need a database named "cloudfier" accessible (can create/drop schemas) to a user named "cloudfier" with no password.

Building

You can build and run the tests the usual way:

mvn clean install

Running

This is a work-in-progress. The instructions won't allow you yet to run a fully functional Cloudfier instance (steps for configuring the development environment integration are not included yet), but you can use this server via the cloudfier-maven-plugin (details below).

After building, you can run the tooling/runtime back-end this way (on Linux - the build is currently not generating packages for other platforms, help wanted here):

cd server/com.abstratt.kirra.server.product/
find target -name kirra-server

which will show the target platforms available, for example, on a Linux box:

target/products/com.abstratt.kirra.server.product/linux/gtk/x86_64/kirra-server

Change into the directory of choice, and run:

./kirra-server -data {path/to/workspace}

which will show:

!SESSION 2015-04-23 12:58:11.358 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_31
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86 -console -consolelog

!ENTRY com.abstratt.mdd.frontend.web 1 0 2015-04-23 12:58:12.095
!MESSAGE Started endpoint
    External: http://localhost/services/
    Internal: http://localhost/services/
osgi> 

Your local Cloudfier server is now up and running.

Using your local Cloudfier server via the cloudfier-maven-plugin

You can use those Cloudfier features exposed via the cloudfier-maven-plugin (starting with version 0.12.0 of the plugin). In order to do that, once the server is up and running, follow the instructions in the cloudfier-maven-plugin project, and make sure you always specify the -Dkirra.uri property pointing to your local instance, for example:

mvn com.abstratt:cloudfier-maven-plugin:publish -Dkirra.uri=http://localhost:8081/services

Running the Orion integration

In order to run a local development environment, you need to install Orion.

TBD

Continuous builds

Continuous builds run as GitHub actions.

Bumping the version

Example:

mvn org.eclipse.tycho:tycho-versions-plugin:2.5.0:set-version -DnewVersion=2.13.0-SNAPSHOT -DupdateVersionRangeMatchingBounds=true

Developing Cloudfier in the IDE

Requirements

You can easily obtain M2E, Xtext and EGit from the Eclipse Marketplace. If you don't have the Marketplace client installed (check Help > Eclipse Marketplace), install it from here: https://www.eclipse.org/mpc/

Importing the source code into Eclipse

Use the M2E import wizard (Import... > Maven > Existing Maven Projects) and point it to the root directory for the cloudfier git workspace. It should find all Cloudfier modules inside that directory.

After the sources are imported, you should choose the target definition file cloudfier/kirra-dependencies/kirra-dependencies.target as your target platform (Window > Preferences > Plug-n Development > Target Platform > Kirra Dependencies Target, or kirra-ide-dependencies.target if you also have the TextUML Toolkit source code loaded into Eclipse). Loading the target platform may take a long time (several minutes, much of it apparently stuck at 0%), so be patient and wait until the "Load Target Platform" job completes. Once it completes, you should have no error markers in your workspace.

Running Cloudfier as an Eclipse application

  1. Open the kirra.product product definition file (find it with Ctrl-Shift-R)
  2. Launch the product from the Testing section on the Overview page. For more information, see this
  3. From there on, you can use the launch configuration that was created during the previous step for relaunching Cloudfier

Licensing

The code in this repository is licensed under one of the following licenses: EPL or AGPL. Look for the closest LICENSE file for more details.

Related repositories

This is just for your information about where other related pieces live. You should NOT need to load any of the following respositories to develop Cloudfier.

cloudfier-examples

https://github.com/abstratt/cloudfier-examples

Simple Cloudfier applications that help demonstrate and validate Cloudfier. You can clone that repo into your Cloudfier repository and play with Cloudfier's features.

codegen-examples

https://github.com/abstratt/codegen-examples

Command-line (bash-only) tools for generating code for the target platforms supported in Cloudfier.

cloudfier-maven-plugin

https://github.com/abstratt/cloudfier-maven-plugin

Plugin that exposes the functionality of a Cloudfier server to a Maven build.

TextUML

https://github.com/abstratt/textuml

The core model compilation functionality using TextUML as front-end notation.