Install and run Z2 in 5 minutes

« Step 1 - What is z2

Prerequisites

Z2 has the following Java Version requirements

Z2 Version Min. Java version required Max Java version supported
2.1 - 2.3.1 Java 6 Java 7
2.4 - master Java 8 Java 8

Note: Most samples suggest to use the master branch. You may choose another version branch (please check the respective repository).
Make sure you have a corresponding Java Development Kit (JDK) or Java Runtime Environment (JRE) installed. If in doubt, go to Download Java SE.

Note: Running v2.1-v2.3.1 on Java 8 is supported by specifying

com.zfabrik.java.level=7

(or 6, if that is your desired compilation language level) in <home>/run/bin/runtime.properties. By this the Java compiler version detection does not fall back to a lower level.

This how-to uses the Git VCS, which has to be installed on your system (we're using Git version 1.7). You can also run Z2 with SVN as described on Step 4 - First steps with Z2 on SVN.

It is beneficial to use the Eclipse IDE (Ganymed, Helios, Indigo, Kepler work all fine). There's a small Eclipse plug-in called "Eclipsoid" which makes it easier to develop z2 applications within Eclipse (see Step 3 - First steps with Z2 on Git for more details). However you can use any IDE (including vi and notepad) together with z2.

Creating a home for Z2

This is a best practice approach (and other approaches are possible). We recommend to keep the repositories and the IDE workspace close together. This way we don't need to adjust the path settings in the Z2 configuration files and they can remain relative paths.

Create a folder called z2-base inside your favorite/home/development/what-ever directory and enter it:

> mkdir z2-base
> cd z2-base

Cloning the Z2 core

As described in Step 1 - What is z2 the z2-base project contains several repositories.
You always start with the core repository. Create a clone from git.z2-environment.net which will checkout the "master" branch automatically (output and numbers vary of course):

> git clone http://git.z2-environment.net/z2-base.core
Cloning into 'z2-base.core'...
remote: Counting objects: 11032, done.
remote: Compressing objects: 100% (2402/2402), done.
remote: Total 11032 (delta 7705), reused 10733 (delta 7602)
Receiving objects: 100% (11032/11032), 18.04 MiB | 222.00 KiB/s, done.
Resolving deltas: 100% (7705/7705), done.
Checking connectivity... done

> cd z2-base.core
> git branch
* master

That's all you need to do in order to install the z2-Environment and you can start the server right away. Before starting, make sure that you have a working Java installation. To test, type

java -version

on a command line. This should output some information on your Java Development Kit of version 1.6 or higher.

Starting the z2-Environment

The start scripts are located inside run/bin and are called go.sh on Unix based systems like Linux and Mac OS and go.bat on Windows. There's also a gui-based version that we will discover later.

> cd run/bin
> ./go.sh

03/08 20:30:29 [1]...hers.HomeLauncher [800]: Z2 Home Launcher, (c) 2010-2013 ZFabrik Software KG
03/08 20:30:30 [1]...ProcessRunnerImpl [800]: Running core build 201310071127 as hb in z2 home /home/hb/copy/install/z2-base.core, timezone Europe/Berlin, language en, region null
03/08 20:30:30 [1]...ProcessRunnerImpl [800]: Using VM v1.7.0_09 by Oracle Corporation at /usr/lib/jvm/jdk1.7.0_09/jre on Linux (arch: 3.11.0-17-generic)
03/08 20:30:30 [1]...ProcessRunnerImpl [800]: ************************************
03/08 20:30:30 [1]...ProcessRunnerImpl [800]: *** Running in DEVELOPMENT mode! ***
03/08 20:30:30 [1]...ProcessRunnerImpl [800]: ************************************
03/08 20:30:30 [1]...entRepositoryImpl [800]: Using GIT-CR: component:com.zfabrik.boot.config/baseRepository,repo:95f655a0,prio:500,checkDepth:1073741823,fileSystem:fs-root:/home/hb/copy/install/z2-base.core/work/repos/95f655a0/git,origin:http://git.z2-environment.net/z2-base.base,branch:master,optional:true
03/08 20:30:30 [1]...entRepositoryImpl [800]: Cloning GIT-CR: component:com.zfabrik.boot.config/baseRepository,repo:95f655a0,prio:500,checkDepth:1073741823,fileSystem:fs-root:/home/hb/copy/install/z2-base.core/work/repos/95f655a0/git,origin:http://git.z2-environment.net/z2-base.base,branch:master,optional:true. This will take some seconds...
03/08 20:31:58 [1]...entRepositoryImpl [800]: Created working-clone within 88266 msec for GIT-CR: component:com.zfabrik.boot.config/baseRepository,repo:95f655a0,prio:500,checkDepth:1073741823,fileSystem:fs-root:/home/hb/copy/install/z2-base.core/work/repos/95f655a0/git,origin:http://git.z2-environment.net/z2-base.base,branch:master,optional:true
03/08 20:31:58 [1]...devcr.DevRepoImpl [800]: Dev Repository: Registered component:com.zfabrik.dev.repo/devRepo,repo:7ea65360,prio:750, workspaces (1): [/home/hb/copy/install]
03/08 20:31:58 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/bootrepo_up
03/08 20:31:58 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/sysrepo_up
03/08 20:32:01 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/process_up
03/08 20:32:01 [18]...ent/webWorker@0.1 [800]: Listening for transport dt_socket at address: 5100
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...ProcessRunnerImpl [800]: Running core build 201310071127 as hb in z2 home /home/hb/copy/install/z2-base.core, timezone , language en, region null
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...ProcessRunnerImpl [800]: Using VM v1.7.0_09 by Oracle Corporation at /usr/lib/jvm/jdk1.7.0_09/jre on Linux (arch: 3.11.0-17-generic)
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...devcr.DevRepoImpl [800]: Dev Repository: Registered component:com.zfabrik.dev.repo/devRepo,repo:7ea65360,prio:750, workspaces (1): [/home/hb/copy/install]
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/bootrepo_up
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/sysrepo_up
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/process_up
03/08 20:32:01 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:01 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/worker_up
03/08 20:32:02 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:02 [1]...pp.WebAppResource [800]: Starting WebApp: com.zfabrik.dev.z2unit/web
03/08 20:32:02 [18]...ent/webWorker@0.1 [800]: INFO  org.eclipse.jetty.server.Server  - jetty-8.1.11.v20130520
03/08 20:32:02 [18]...ent/webWorker@0.1 [800]: INFO  org.eclipse.jetty.server.AbstractConnector  - Started SelectChannelConnector@0.0.0.0:8080
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Done starting Web App (/z2unit): com.zfabrik.dev.z2unit/web
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Starting WebApp: com.zfabrik.dev.eclipsoid.srv/web
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Done starting Web App (/eclipsoid): com.zfabrik.dev.eclipsoid.srv/web
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Starting WebApp: com.zfabrik.samples.calculator/web
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Done starting Web App (/calc): com.zfabrik.samples.calculator/web
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Starting WebApp: com.zfabrik.dev.javadoc/web
03/08 20:32:03 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:03 [1]...pp.WebAppResource [800]: Done starting Web App (/javadoc): com.zfabrik.dev.javadoc/web
03/08 20:32:04 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:04 [1]...pp.WebAppResource [800]: Starting WebApp: com.zfabrik.admin/web
03/08 20:32:04 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:04 [1]...pp.WebAppResource [800]: Done starting Web App (/adm): com.zfabrik.admin/web
03/08 20:32:04 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:04 [1]...stemStateResource [800]: Attained system state: environment/webWorkerUp
03/08 20:32:04 [19]...ent/webWorker@0.2 [800]: 03/08 20:32:04 [1]...worker.WorkerSoul [800]: Completed worker process initialization
03/08 20:32:04 [1]...stemStateResource [800]: Attained system state: com.zfabrik.boot.main/home_up
03/08 20:32:04 [1]...hers.HomeLauncher [800]: Completed home process initialization

press (q)uit, (c)omponents, (f)oundation props, (s)ystem props, s(y)nc repo, (v)erify, (g)c:>

Note: On first startup the runtime needs to clone (and so download) its base repository (z2-base.base). Dependending on your network bandwidth this may require anything between a few seconds to some minutes. Subsequent startups will not require this step again.

When you see the prompt above, the z2-Environment is up and running and excepting requests on localhost port 8080. To verify, open the administration page at http://localhost:8080/adm. Use username z* ("z" followed by an asterisk) and password z.

Essentially the same procedure is used to install the z2-Environment in production. From a system installation point of view, checking out a core distribution as we just did is all that needs to be done.

On the next page we will do some first development step with z2 in combination with the Eclipse IDE.

As it is handy to run the z2 server from inside Eclipse, so you should stop the running server now by pressing 'q'.