polygene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jiri Jetmar <juergen.jet...@gmail.com>
Subject Re: Application Code Management tool
Date Fri, 24 Apr 2015 10:34:22 GMT
Hi Guys,

we did in the past something similar to structure & deploy our Qi4j Apps.
We are using the Term "Tower"
that contains all relevant components to deliver a service to the client.

This components are :

- (State Model) - Domain Model describes the possible states of a solution.
It also exposes a DM API that is used by above layers.
-  (Behavioral Model) - Context, Roles
- (Interaction Model) Service REST API. We are using here http://rest.li/
- Configuration & Bootstrapping (e.g. initial Data)
- (Infrastructure) EntityStore + Index, Logging (Fluentd setup), Monitoring
- (Deployment) Docker based approach to "bake" docker images
- Gradle based approach to glue, structure & automate the above approach
and steps

The whole approach is like to peel an onion :

Hardware > OS > Docker > App > Tower(s) > Qi4j Modules and layers

It took as a while to bring all the stuff working together but now it is
pretty robust and it is
fun to use it..

I;m not sure Niclas if this  goes to the direction you are thinking on - I
mean in
terms of simplifying and decreasing the entry level for future Qi4j
hackers. We needed
an approach to push Qi4j-based Apps to production in a robust, automated
and
easy way.

Thank you.

Cheers,
Jiri



2015-04-24 5:16 GMT+02:00 Niclas Hedhman <niclas@hedhman.org>:

> Gang,
> After the presentation in Romania, one of the feedbacks received was that
> it is too hard to get going with Qi4j. Not only does it require quite a
> steep learning curve to grasp Qi4j itself, but it is tedious to set up a
> working build for a new project.
>
> So, I want to create something similar to Maven Archetypes, but with much
> better understanding of Qi4j structures.
>
> I have created a branch for this; Gradle_archetype_toolchain
> Name was set before I realize what I want to do, but Gradle will be the
> first supported build system, but I think at least Maven should also be
> supported, and possibly be able to create Eclipse Workspaces and IntelliJ
> projects as well.
>
> Problem domain;
>   + Support Pre-packaged application structures, i.e. templating
>   + Support creation/removal of all Qi4j primary types, Application, Layer,
> Module, Composites
>   + Support weaving in custom code, so generation can occur more than once.
>   + Support generation to many different build tools.
>
> Solution domain;
>   * Strong domain model, which is kept in an entity store and modified
> interactively or via scripting
>   * Set of commands for manipulating the model
>   * The entire entity store can be used as a "template" for new projects
>   * Generators will use the model and generate the structures
>   * Commands are also used to start generation
>
> Example Use-case 1
> Developer Alex want to use Qi4j for a RESTful server application. He isues
> the 'create-project' command and selects the 'rest-server' application
> type, and the tool creates a operational skeleton application that serves a
> 'Hello, Zest' response from http://localhost:8080/
>
>
> WDYT?
>
> Cheers
> --
> Niclas Hedhman, Software Developer
> http://zest.apache.org/qi4j <http://www.qi4j.org> - New Energy for Java
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message