Return-Path: X-Original-To: apmail-cocoon-dev-archive@www.apache.org Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 99FAD8DA5 for ; Mon, 22 Aug 2011 22:58:36 +0000 (UTC) Received: (qmail 22030 invoked by uid 500); 22 Aug 2011 22:58:36 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 21965 invoked by uid 500); 22 Aug 2011 22:58:35 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@cocoon.apache.org List-Id: Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 21958 invoked by uid 99); 22 Aug 2011 22:58:35 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Aug 2011 22:58:35 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of igorzep@gmail.com designates 209.85.215.171 as permitted sender) Received: from [209.85.215.171] (HELO mail-ey0-f171.google.com) (209.85.215.171) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Aug 2011 22:58:25 +0000 Received: by eyg24 with SMTP id 24so5057059eyg.30 for ; Mon, 22 Aug 2011 15:58:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=5ec2vTtVqloSDPQUQjUVNqpnK94MDYHQtO+GxqfxX9A=; b=J+VySTkiMf61b/l1lGOKdmcwo0sR3n/7oF4LE9cO+k95fq2AYPwqHRbJjR6wHPoVFR fFyEcvj5NaL6gUodLZAJMQ2RaCWfqZXYFfeWFCjTOyeU9d1K9g0v//n7lD+WhGsPZZOs 7TarYMkyIC/1htu2gUvjdcHQ/Yl6J1KaGDA8Q= Received: by 10.14.146.141 with SMTP id r13mr731245eej.15.1314053885101; Mon, 22 Aug 2011 15:58:05 -0700 (PDT) Received: from [192.168.1.68] ([88.196.63.45]) by mx.google.com with ESMTPS id v20sm2910700eeh.46.2011.08.22.15.58.03 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 22 Aug 2011 15:58:04 -0700 (PDT) Message-ID: <4E52DF0A.8020804@gmail.com> Date: Tue, 23 Aug 2011 01:58:18 +0300 From: Igor Malinin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: dev@cocoon.apache.org Subject: Re: "Springification" of C3 - proof of concept References: <4E37378C.9070302@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On 2011-08-04 16:08, Simone Tripodi wrote: > Just my *personal* POV: even if I'm NOT a SpringFramework fan (and I > won't be :P) your work shall be included in a way or another in C3. I am not a big fan of Spring also, but in version 3 it got enough to jump ahead of many other frameworks. And C3 is heavily based on it already... and it uses AOP so much, that it is a pure magic - see my other post about a bug on Jetty 7 related to this... > Anyway I would prefer Spring doesn't play the main role: I mean, > having 3rd parties integrations it more than fine - we already have > indeed modules with 3rd parties integrations, like StringTemplate, > JAX-RS, Optionals (Solr, JAXB) - but IMHO Cocoon *core* components > should not be dependent by any framework, I wouldn't "force" C3 users > learning Cocoon AND Spring as a starting point, or require Spring as > knowledge base to get started with Cocoon. For the *core* it is perfectly good not to touch it and keep totally independent. I am talking exclusively about higher level components that are built on Spring already such as cocoon-sitemap and cocoon-servlet. Making them play together better, especially where spring-mvc has very good functionality is the way to go IMHO. Currently Cocoon does some magic on Spring context so that it often gets unusable for other applications. Also Cocoon SSF proved to not work for embedding something that is not Cocoon sitemap servlet... What I did in the POC is the possibility to run C3 pipelines from the Spring controllers, just by configuring two servlets in web.xml, but I also would like to have possibility to run both pipelines and annotation based spring controllers in one URL space, currently they both are separated by some prefixes in my example. For this running Cocoon as a Spring-MVC HandlerMapping instead of as a servlet should be quite interesting. > So, my suggestions, if you are happy to continue on contributing - and > I really hope you are :) - is: I am doing it for my free-time project, and I decided currently to publish everything that could be interesting for the community on github. I see many things differently than is implemented on Cocoon currently, for example for i18n I prefer some XSLT extensions, not separate transformation steps as a more powerful and convenient alternative. Yep, powerful in different aspects that i18n transformer, as it cannot be used outside of XSLT and bound to specific processor, but I need only one (Saxon), and only within XSLT. And I like to have a single i18n for Spring and Cocoon, Spring already have interfaces for plugging message sources, so why another one in Cocoon... There are many other such cases... I'll publish the results as they come, so later they can be merged to main cocoon or used as a separate project depending on interest and success. > * understand how it is actually organized and check what has been > already implemented (for sure you can help us on improving actual JAXB > implementation, for example) For JAXB - I need it in sitemap, so the existing one doesn't suite me, I am not sure yet what is the best way to do it, experimenting with different strategies... > * starting proposing and discussing modifications/additional > components step by step, not sure everybody would agree on adding > everything as a single big commit ;) I'll keep the list updated when some important happens. I also will prepare some repos at github that can already be used as dependencies and easily monitored for changes. So, everything can be discussed before adding something to the main Cocoon project.