Project

General

Profile

V30-experimental retired » History » Version 11

Henning Blohm, 19.11.2014 20:23

1 1 Henning Blohm
h1. Z2-Environment version 3.0
2
3
Version 3.0 is in progress
4
5 3 Henning Blohm
The main goals for 3.0 is to provide features that simplify user adoption.
6
7 9 Henning Blohm
h2. Simplified Entry-Level Operations
8 3 Henning Blohm
9
In order to reduce the initial usage barrier, the following should be possible (or simplified)
10
11
* Have a system layout consisting of a number of auto-discovered co-located file system repositories
12
** Much like the dev repo but actually based on the FSCR and "always armed"
13
** Benefit: Supports Git-branching approaches out of the box
14
** Benefit: Allows System Releases as a single ZIP to be exploded without any online access (a regular "copy" deployment)
15
 
16
* Provide consistent and complete system export
17
** Support binary or source-preserving export
18
** Provide clean component name escaping so we can also export mvn-provided artifacts if desired
19
** so we can offer a complete base distribution as binary download
20
** Running samples means to clone co-located Git Repos
21 1 Henning Blohm
** Make re-binding of repository locations simpler (e.g. a remote repo becomes a local FS repo after export)
22 5 Henning Blohm
23 6 Henning Blohm
* Support single-process mode (e.g. no Worker mode - move worker support into an add-on)
24 3 Henning Blohm
25
h2. Free Web Container Choice
26 1 Henning Blohm
27 4 Henning Blohm
It should be possible to use a Web Container of choice, as long as it is Jetty or Tomcat. Our tests indicate that it should be simple to programmatically control any pre-installed instance.
28 1 Henning Blohm
29 4 Henning Blohm
* Provide a web container resource that hooks up with a pre-configured web container OR a self-hosted web container
30
* This will require some creative business with the servlet/jsp and Web Container class path
31
32
h2. Improvements
33 1 Henning Blohm
34 7 Henning Blohm
* Provide a z2 for dummies introduction that starts with simple, include-based web apps
35 1 Henning Blohm
* Seamless support of Maven repositories (see [[V23]], [[maven_repo_support]])
36 7 Henning Blohm
** Including install into repository from z2
37
* Use string revisions rather than longs (so that natural versions are better supported)
38 1 Henning Blohm
* Introduce "Java Templates", Java (and others) Component configuration made simpler (see [[smart_props]])
39 2 Henning Blohm
* Port add-ons and samples to maven repos for external artifacts
40 11 Henning Blohm
* Drop "I" interface notation
41
* Drop resource instance on every invalidation.
42
* Define component name escaping for the file system repo helper
43
* Introduce boot repository *at* Z2_HOME into ComponentsManager 
44
** Auto-discover other repos at Z2_HOME
45
** Default "." as dev repo workspace
46
** launch purely from "java -jar z.jar"
47
** Introduce moduleName property for "free-floating" components
48
** Introduce repository adapter type.
49
* Folders for operation
50
** org.zlight.home --> shared repos entry point, work and data store (==> repos, in particular DEV repo must use folder-unique work key). Defaults from Z2_HOME.
51
** org.zlight.dev.workspaces --> workspaces to check for dev repo component overrides. Defaults from "."
52
* Use /code instead of /java to be more agnostic to the language in use
53
54
55 8 Henning Blohm
56
h2. Proposals
57
58
h3. Local Install Layout
59
60
By means module virtualization (already today via the module name property of the dev repo) we can essentially turn anything that has a "z.properties" into a component and use a declared name as the module "namespace".
61
62
Combined with an "adapter component type" concept we can introduce for example
63
64
* Tomcat Adapter Component: Tells the Tomcat based web container integration about the location of a Tomcat installation.
65
* and similarly for other component types that depend on "local/external" defined resources
66
67
The follwing _typical_ layout is suggested:
68
69
<pre>
70
+-<tomcat-folder>
71
|  +- z.properties  (adapter declaration)
72
|  +- LOCAL (tagging)
73
|  +- <whatever tomcat stuff>
74
|
75
+-zlight
76
|  +-zlight.core (core)
77
|  +-zlight.base (base stuff)
78
|  +-<more fs repos>
79
|
80
+-<armed module 1>
81
+-<armed module 2>
82
|
83
+-<git repo 1>
84
</pre>
85
86
h3. Web Container Integration
87
88
As outlined above, we will support re-use of existing pre-configured web container instances.
89
90
h3. Repository Export
91
92
We will enhance the repository export so that given a number of repository component names (possibly including mvn repos), a complete export, in source or binary, will be put into a structure as outlined above. 
93
94
* Repository Component Names can be mapped
95 1 Henning Blohm
* We will introduce a component name escaping pattern to support maven originated components as well 
96 10 Henning Blohm
97
h3. Review of Software Component Responsibilities
98
99
+core+
100
101
* Component and Module Model
102
* Component Types:
103
** System State
104
** Java / Compiler
105
** "main" programs
106
** "any"
107
108
+base+
109
110
...