Return-Path: X-Original-To: apmail-zest-dev-archive@minotaur.apache.org Delivered-To: apmail-zest-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B81C618E62 for ; Fri, 24 Apr 2015 11:16:12 +0000 (UTC) Received: (qmail 20030 invoked by uid 500); 24 Apr 2015 11:16:12 -0000 Delivered-To: apmail-zest-dev-archive@zest.apache.org Received: (qmail 19994 invoked by uid 500); 24 Apr 2015 11:16:12 -0000 Mailing-List: contact dev-help@zest.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zest.apache.org Delivered-To: mailing list dev@zest.apache.org Received: (qmail 19982 invoked by uid 99); 24 Apr 2015 11:16:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Apr 2015 11:16:12 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: message received from 54.164.171.186 which is an MX secondary for dev@zest.apache.org) Received: from [54.164.171.186] (HELO mx1-us-east.apache.org) (54.164.171.186) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Apr 2015 11:16:07 +0000 Received: from mail-ig0-f182.google.com (mail-ig0-f182.google.com [209.85.213.182]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTPS id 4AB8A43E1E for ; Fri, 24 Apr 2015 11:15:47 +0000 (UTC) Received: by igblo3 with SMTP id lo3so11758608igb.1 for ; Fri, 24 Apr 2015 04:15:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=g3G1osxzgo/6aL6kUJ6ub/aNvrNFC3KjJpA+AI6RtkI=; b=xoSpyAYldUjoj/Xt6j/ofOOf5kWuVhfXtDul+Mweyr434DBH3inKrb93vLlLqJbKPD YS1cjMSyozS2jvHhdE6kRpBHrGeB1eHSjOcp3Za2GkCHZ6O6yyqeQs8D37xZHz9IUBZp 7ISu2SGApwzrCRviOP/XIFLPTp0OM62YK3hUK3+y0pni0tBeueMf2zy7bFpctVoXC/p/ 6Em5xZkvHjJQGVFfKcCeSDKR7kboyjg/NUfV1oh9YfbDwkzwzgMesKxT4rBeKNUpr2uy VtVExH/46IlK19uU2q6/rmVfSBvfsrwiNW7PiLsmf5MfxLmMz5CgCBp8XUQ+u2x5QUie VWIQ== X-Received: by 10.43.18.194 with SMTP id qh2mr9015100icb.36.1429874146921; Fri, 24 Apr 2015 04:15:46 -0700 (PDT) MIME-Version: 1.0 Sender: hedhman@gmail.com Received: by 10.36.98.18 with HTTP; Fri, 24 Apr 2015 04:15:26 -0700 (PDT) In-Reply-To: References: From: Niclas Hedhman Date: Fri, 24 Apr 2015 19:15:26 +0800 X-Google-Sender-Auth: -X6hmGYKkWY-hH-qz1rmSA9x5dY Message-ID: Subject: Re: Application Code Management tool To: dev Content-Type: multipart/alternative; boundary=bcaec517cc1099d28b0514768473 X-Virus-Checked: Checked by ClamAV on apache.org --bcaec517cc1099d28b0514768473 Content-Type: text/plain; charset=UTF-8 Maybe. I am not sure, until I see some more details. Are you willing to donate it? I want to see that one can create Qi4j applications, where I list what layers, modules and (ready-made) assemblers I want. And literally have a fully-structured, Restful HelloWorld running in 1 minute, complete with build system and a re-usable 'model'. Tower might be useful, I would like to know more... Welcome back, Jiri. On Fri, Apr 24, 2015 at 6:34 PM, Jiri Jetmar wrote: > 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 : > > > 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 - New Energy for Java > > > -- Niclas Hedhman, Software Developer http://zest.apache.org/qi4j - New Energy for Java --bcaec517cc1099d28b0514768473--