Hello World!
From CCIL
Contents
Goal
This is the simplest tutorial - we will make a pipeline which outputs the famous "Hello Wold!".
Project
This project contains only a distribution. Once compiled, it will produce a zip which contains all you need to run the application.
ccil-tutorials-hello_world |- distribution \- pom.xml
Setup
Distribution
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>dcmpc-services-dictionary-distribution</artifactId> <name>dcmpc-services-dictionary-distribution</name> <url>http://wiki.datacraftmagic.com/display/SFIND/%23Find+Home</url> <packaging>pom</packaging> <properties> <sharpfind.version>1.0.3</sharpfind.version> </properties> <parent> <groupId>com.datacraftmagic</groupId> <artifactId>dcmpc-services-dictionary</artifactId> <version>1.3.6</version> </parent> <dependencies> <!-- App --> <dependency> <artifactId>ccil-app</artifactId> <groupId>net.ccil</groupId> <version>${ccil.version}</version> </dependency> <dependency> <artifactId>ccil-common-generic</artifactId> <groupId>net.ccil</groupId> <version>${ccil.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.17</version> </dependency> </dependencies> <build> <finalName>${project.name}</finalName> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>bin.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>attached</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <organization> <name>Data Craft and Magic ltd.</name> <url>http://datacraftmagic.com/</url> </organization> </project>
bin.xml
TBA
files
TBA
Startup script
bin/tutorials-dictionary-app.sh
#!/bin/bash CCIL_HOME=`dirname $PWD` CCIL_CONTEXT=$CCIL_HOME/context echo ------------------- echo CCIL_HOME = $CCIL_HOME echo ------------------- java -cp "$CCIL_HOME/lib/*:$CCIL_HOME/config:$CCIL_HOME/launcher/*" -Dserver.config.file=tutorials-hello_world-app.ttl -Dserver.home.dir=$CCIL_HOME -Xmx1024M -Dserver.context.dir=$CCIL_CONTEXT -Dserver.jmx.enabled=false net.ccil.execution.CcilConsoleApp -execute -root $CCIL_HOME/context/apps "$@"
Configuration
/config/hello_world.ttl
# # CCIL console configuration # @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix config: <https://sourceforge.net/projects/cybercore/config#>. @prefix entity: <https://sourceforge.net/projects/cybercore/entities#>. @prefix service: <https://sourceforge.net/projects/cybercore/services#>. @prefix ccil: <https://sourceforge.net/projects/ccil/properties#>. @prefix ccil: <https://sourceforge.net/projects/ccil/properties#>. # generic ----------------------------------------------- service:echo rdf:type entity:service ; entity:implementation "net.ccil.stages.generic.EchoStage" ; entity:classpath "" ; entity:arguments "" .
The application context
# Hello World! #------------------------------------- context.title = Hello World! context.description = Minimalistic CCIL app context.author = Atanas Ilchev context.comment = n/a context.thumbnail = media/logo.png # collection context.fill.pipeline = ECHO ECHO = echo ECHO.value = Hello World! # properties xfer = xfer
Further steps
- Add the current date to the message. You can do it easily with a parameter expression.