Project

General

Profile

Actions

FAQ » History » Revision 5

« Previous | Revision 5/8 (diff) | Next »
Redmine Admin, 20.08.2012 13:22


Frequently Asked Questions

General questions

What is z2 not?

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.

So what is z2?

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 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.

What's the difference between push and pull?

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.
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 easily determined (using the history feature of the 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).

Can this work at all?

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.

Installation

How do I install the z2-environment

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 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".

How do I run the z2-environment for development purposes?

How do I run the z2-environment for productive purposes?

Updated by Redmine Admin over 12 years ago · 5 revisions