Project

General

Profile

FAQ » History » Version 6

Redmine Admin, 20.08.2012 13:23

1 1 Redmine Admin
h1. Frequently Asked Questions
2 2 Redmine Admin
3
{{toc}}
4
5
h2. General questions
6 4 Redmine Admin
7
h3. What is z2 not?
8
9
The z2-environment is not a make tool like ant or maven. It's not a replacement for JEE servlets or other JEE techniques. It's not a Spring competitor. And it's not a new way to write software like aspect orientated programming.
10
11 5 Redmine Admin
h3. So what is z2?
12
13
The z2-environment can be seen as an extension to a common JEE server (like Jetty in our case) that enables the server to retrieve sources directly from the [[Glossary#SCM|SCM]], compiles them on demand and restarts modules that have been changed (plus the depending modules). A key point of traditional developing and running web applications is _pushing_ deployables to the server. Z2 turns this around and _pulls_ the sources by itself, bypassing all kinds of make/build infrastructure and deplyoment processings.
14
15
h3. What's the difference between _push_ and _pull_?
16
17
In a traditional _pushing-environemnt_ the source code is compiled, assembled and packaged into deployable units. These units are activly deployed (i.e. pushed) to the server. Often the deployment of one artefact A requires the deployment of some artefacts B and C containing features required by A. Unfortunately B also might need some changes provided by D and so one. 
18 6 Redmine Admin
In opposite to this the _pulling-environment_ doesn't need the package assembly steps. It just needs the trigger to "synchronize itself with the source repository". Now all changed sources can be easily determined (using the history feature of the [[Glossary#SCM|SCM]]), downloaded and compiled. Then all modules that are affected of the changes are dropped and restarted (this works simalar to the hot-deploy mechanisms provided by modern web containers).
19 5 Redmine Admin
20
h3. Can this work at all?
21
22
A good example that compilation on the server works pretty well are JSPs. You could write your web application using plain JSPs and you can already enjoy the luxary of compile on demand.
23 4 Redmine Admin
24 2 Redmine Admin
25
h2. Installation
26
27
h3. How do I install the z2-environment
28 3 Redmine Admin
29
One of the basic z2 paradigms is: "Don't install, just copy and run". The big benefit of a system-centric approach like z2 is, that the configuration is part of the system; it's like the source code (and there are good reasons to put configuration into code sometimes). The [[Glossary#SCM|SCM]] should contain everything to get your system up a running. You got a new team member? "Copy" the system and start it. You have to scale out your productive site? Just copy the system to the new nodes and start them. "Copy" here means either "do a SVN checkout" or a "Git clone". The advantage over a plain copy is, that you can easily update or system with a simple "svn update" or "git pull".
30 2 Redmine Admin
31
h3. How do I run the z2-environment for development purposes?
32
33
h3. How do I run the z2-environment for productive purposes?