Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D43FD200B8F for ; Fri, 30 Sep 2016 14:51:33 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D2EF9160AD9; Fri, 30 Sep 2016 12:51:33 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id C7B4F160AC4 for ; Fri, 30 Sep 2016 14:51:32 +0200 (CEST) Received: (qmail 58061 invoked by uid 500); 30 Sep 2016 12:51:31 -0000 Mailing-List: contact dev-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list dev@cxf.apache.org Received: (qmail 58044 invoked by uid 99); 30 Sep 2016 12:51:31 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Sep 2016 12:51:31 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 3701E180510 for ; Fri, 30 Sep 2016 12:51:31 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.379 X-Spam-Level: X-Spam-Status: No, score=0.379 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id lqpx87ykC_yN for ; Fri, 30 Sep 2016 12:51:28 +0000 (UTC) Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 52F425F576 for ; Fri, 30 Sep 2016 12:51:28 +0000 (UTC) Received: by mail-wm0-f66.google.com with SMTP id p197so1856968wmg.1 for ; Fri, 30 Sep 2016 05:51:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=ehuJPjN7L4Id1CjOLjN4cNJOaYIrHQR7t7DttPrdiZ0=; b=afRUZjlbWDcaMVYHNGwU4adHCILnfjbA6Q3QU33ujILIwMHxBHKtgV8rnAXmUq0Klo blyoCL6kjZ6DMkquitug2VsdSZqc3xxu6b6s2SO/KxoiQlMLselURh9WvdFfNy75Ua9C cUpbSoSPmUJtT11qiSRyD3+L64zphyIitwGJA/OAGU7nolzySz5oA1C8bwhlK7pQRPKp NMhC249LW6vsv2s6Tzlpu8TsHxWfGGMSlS/Sf4/pmSQpqgXBrt4ub9W7o1EWPBQZI6nc ySXRO2Jk8SAt1l3tpaxtfxQb7JknOLGbO3F4xewxi7MiUgHx7c2iPiEXfHRHYHmHdLRj LAXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=ehuJPjN7L4Id1CjOLjN4cNJOaYIrHQR7t7DttPrdiZ0=; b=UMa/pBBKEcCPL5PfQS6Uc6mVHcKwXNMluQd+6Af1ElGjC+W/9VGbGyNUld/Ysrkipr Kk3KK/YjHHb9cBzkPEWPmzbWgIhSUHEL+7HT+NlrfQ5p+xo2f2/IvjCzxRE/0vP0C2cJ OQC34rtu7JQXc8bwnw0tQhdrKZ2BzACFyMlFEZJxYiG4ZETzEEw54TEruh2RS7bbEaeZ 783jjTef8aSxw88JejMgPSsANfvpGRsPa/0YbuXJjHXESoW+ZsE9/+9iELXYPQEwe20D cs2oZD04+aoq5Lk1ru529r5hcl71JcB4E1hLt9nTCBAOWkOWlTh0T4zltT7LC/lIPCaw uV7A== X-Gm-Message-State: AA6/9Rmui3FQDvEWE3yX/Cu7f5fddbxJvwtUAy93gLsUdlsyXCen/fl7FZf1VYMguIUFwg== X-Received: by 10.194.30.167 with SMTP id t7mr5888747wjh.199.1475239881050; Fri, 30 Sep 2016 05:51:21 -0700 (PDT) Received: from [10.36.226.98] ([80.169.137.53]) by smtp.googlemail.com with ESMTPSA id 193sm4032157wmo.14.2016.09.30.05.51.20 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 30 Sep 2016 05:51:20 -0700 (PDT) Subject: Re: [Discuss] Move spring and blueprint support out of cxf-core To: dev@cxf.apache.org References: <3c7161cf-124f-ce40-8091-80d66237e656@gmail.com> <43c5d3c2-97ef-1772-739f-727ea3dc34c7@die-schneider.net> <5F59861C-783A-4EAB-8758-A5F0D3E21A01@apache.org> <7ceeeda9-06c1-28db-a2a3-c744f7ee6d7e@die-schneider.net> From: Sergey Beryozkin Message-ID: Date: Fri, 30 Sep 2016 13:51:20 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit archived-at: Fri, 30 Sep 2016 12:51:34 -0000 Christian, I'll be happy to see DOSGI getting more attention but this 'simply use DOSGI' will simply not work - the flexibility of Blueprint (and Spring in or outside of OSGI) is rated highly by the CXF users. DOSGI has its niche but it has its limitations too. Cheers, Sergey On 30/09/16 12:59, Christian Schneider wrote: > Hi Benson, > > DS and CXF already work quite well. Simply use CXF-DOSGi to expose and use > services. > The new samples in version 2.0 all use DS. > > https://github.com/apache/cxf-dosgi/tree/master/samples > > Honestly I think the blueprint / spring namespaces never were such a good > idea. They are much too intrusive. > I plan to point people to using DOSGi as the default way of using CXF in > OSGi. > > Christian > > > > 2016-09-29 17:07 GMT+02:00 Benson Margulies : > >> There's more to OSGi than Blueprint. I'd be very happy to use CXF with >> DS and no blueprint. >> >> On Thu, Sep 29, 2016 at 8:13 AM, Andrei Shakirin >> wrote: >>> Just more detail description: >>> >>> After removing the optional spring imports packages from CXF jars >> Manifests, the users still can use CXF with Spring in Web, JEE and >> standalone deployments, but not in OSGi with SpringDM. >>> >>> Removing can be done for example with maven bundle plugin instruction: >>> >>> org.apache.felix >>> maven-bundle-plugin >>> true >>> >>> >>> >>> !org.springframework*, >>> * >>> >>> >>> >>> >>> >>> CXF reloading issue should be fixed with that. >>> >>> However the OSGi users using CXF in OSGi with SpringDM wouldn't be >> supported anymore. >>> >>> WDYT? >>> >>> Regards, >>> Andrei. >>> >>>> -----Original Message----- >>>> From: Andrei Shakirin [mailto:ashakirin@talend.com] >>>> Sent: Freitag, 23. September 2016 18:09 >>>> To: dev@cxf.apache.org >>>> Subject: RE: [Discuss] Move spring and blueprint support out of cxf-core >>>> >>>> Hi Christian, >>>> >>>> Regarding Karaf4 and OSGi: as Guillaume says the Spring DM isn't >> supported >>>> anymore. >>>> I am not sure how many users still use CXF + Spring in OSGi. >>>> Do you think it will be an option just to remove optional spring >> imports from >>>> the Manifest (for example using maven bundle plugin)? >>>> >>>> Regards, >>>> Andrei. >>>> >>>>> -----Original Message----- >>>>> From: Christian Schneider [mailto:cschneider111@gmail.com] On Behalf >>>>> Of Christian Schneider >>>>> Sent: Freitag, 23. September 2016 17:29 >>>>> To: dev@cxf.apache.org >>>>> Subject: Re: [Discuss] Move spring and blueprint support out of >>>>> cxf-core >>>>> >>>>> Hmm .. the dynamic imports would be worth a try. The namespaces might >>>>> work this way. >>>>> The focus is indeed mainly on spring though as blueprint is pre >>>>> installed most times and is only present in one version. >>>>> >>>>> Christian >>>>> >>>>> On 23.09.2016 16:38, Guillaume Nodet wrote: >>>>>> I think we can solve the refresh problem from blueprint : >>>>>> * remove the bundle activators that registers the blueprint >> handlers >>>>>> * create an extender which will scan for the blueprint.handlers >>>>>> files in bundles and register the namespaces >>>>>> * replace the cxf bundles Import-Package >>>>>> org.apache.aries.blueprint.* and >>>>>> org.osgi.service.blueprint.* packages with DynamicImport-Package(s) >>>>>> I think this way, we should be able to deploy cxf-jaxws, then deploy >>>>>> blueprint, and have blueprint namespaces available without having >>>>>> any cxf bundle refreshed. >>>>>> >>>>>> For spring, I'm not sure we can do the same. Though spring-dm is >>>>>> not supported anymore, so I think at some point, we can safely not >>>>>> support it anymore. It could be replaced by the spring-dm >>>>>> compatible support from aries blueprint, in which case, we have a >> bit more >>>> room to hack there. >>>>>> But even with plain spring-dm, the same idea as above should work, >>>>>> as both spring-dm and the spring support in aries-blueprint do use >>>>>> an extender and scan for META-INF/spring.handlers. >>>>>> >>>>>> >>>>>> >>>>>> 2016-09-23 16:11 GMT+02:00 Christian Schneider >>> schneider.net>: >>>>>> >>>>>>> I agree. I would not make sense to have that many additional jars. >>>>>>> On the other hand we could only create the extra modules for the >>>>>>> most important bundles like jaxrs, jaxws, http and http jetty. >>>>>>> These are the ones that people use a lot and that would cause most >> of the >>>> refreshs. >>>>>>> >>>>>>> Honestly I think we have too many special namespaces anyway. So at >>>>>>> the start I would concentrate on the pain points above. >>>>>>> >>>>>>> Another approach might be to have some generic support for >> namespaces. >>>>>>> After all the namespaces represent configuration. We could define >>>>>>> the configuration in a neutral form (like pojos) and create the >>>>>>> xsds as well as the spring or blueprint namespace handler >>>>>>> registration centrally. Then there could be one module that >>>>>>> collects and registers the spring namespaces and another for the >>>>>>> blueprint ones. These modules would then also parse the user xml >>>>>>> and return the common pojos. The approach might be a bit difficult >>>>>>> to code but would save a lot of code in the individual modules. So >>>>>>> this is not something I would start >>>>> with but it could be a mid term goal. >>>>>>> >>>>>>> Christian >>>>>>> >>>>>>> >>>>>>> On 23.09.2016 15:38, Daniel Kulp wrote: >>>>>>> >>>>>>>> My biggest concern would be the “jar explosion” that would occur >>>>>>>> if you add a -blueprint and -spring jar for each of the jars that >> contains >>>> those. >>>>>>>> We already have a ton of jars, not sure adding another 30-40 is >>>>>>>> the best idea. >>>>>>>> >>>>>>>> Several years ago, I also started experimenting a bit: >>>>>>>> https://github.com/apache/cxf/tree/split-spring < >>>>>>>> https://github.com/apache/cxf/tree/split-spring> >>>>>>>> >>>>>>>> But didn’t really pursue it much further. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Sep 23, 2016, at 8:31 AM, Christian Schneider >>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> On 23.09.2016 14:03, Sergey Beryozkin wrote: >>>>>>>>> >>>>>>>>>> IMHO the most important thing is to preserve the CXF stability. >>>>>>>>>> >>>>>>>>>> FYI, CommomUtil helpers which can use Spring are heavily used - >>>>>>>>>> some of them in JAX-WS and a lot in JAX-RS. >>>>>>>>>> >>>>>>>>>> For example, JAX-RS SpringBoot starter does depend a lot on the >>>>>>>>>> ClassScanner Spring, and JAX-RS runtime depends in various >>>>>>>>>> places on ClassHelper to help with dealing with Spring >> proxified beans. >>>>>>>>>> The code which refers to these helpers can not afford to start >>>>>>>>>> referring to Spring variants because of course not all CXF users >>>>>>>>>> are >>>>> Spring users. >>>>>>>>>> >>>>>>>>>> One needs to be aware that Spring (and now SpringBoot) is very >>>>>>>>>> much a major platform for many CXF users. >>>>>>>>>> >>>>>>>>> We should definitely keep the good support for spring that we >>>>>>>>> currently have. What I am not sure of is if we still need the >>>>>>>>> pretty extensive xml namespaces in the future. The modern spring >>>>>>>>> platform is now almost completely annotation based. So I can >>>>>>>>> imagine that cxf 4 might drop xml namespaces in favor of >>>>>>>>> comprehensive >>>>> annotation based spring support. >>>>>>>>> >>>>>>>>>> Personally I'd like see a very clear and concrete plan first: >>>>>>>>>> - How to preserve the runtime code portability which depends on >>>>>>>>>> CommonUtil helpers such that it works as before in/out of Spring >>>>>>>>>> >>>>>>>>> I am not yet at the stage where I have a concrete plan. My first >>>>>>>>> attempt was just to find out how deeply spring is wired into CXF. >>>>>>>>> As it seems the unwrapping of proxies seems to be the most >>>>>>>>> problematic part. So one first task is to find a good way to make >>>>>>>>> this still work while having a separate module for the spring >> support. >>>>>>>>> >>>>>>>>>> - How to keep CXF Spring user code which depends on Spring >>>>>>>>>> Namespace support (starting from cxf:bus and then for all other >>>>> modules) operating. >>>>>>>>>> >>>>>>>>> As a first step I would simply add the new cxf-core-spring jar to >>>>>>>>> all modules that define namespaces. That might then not provide >>>>>>>>> the full advantage of the separation but it should guarantee that >>>>>>>>> all modules work as before. This change should make sure that >>>>>>>>> refreshs only happen to modules that provide namespaces. >>>>>>>>> As a second step we should then check if we can improve on that. >>>>>>>>> This all of course depends if we find a feasible solution and if >>>>>>>>> the changes have the desired effect. >>>>>>>>> In any case I will make sure that we keep all problematic changes >>>>>>>>> in a branch so we can decide about them before they reach the >> master. >>>>>>>>> >>>>>>>>> Christian >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Christian Schneider >>>>>>>>> http://www.liquid-reality.de >>>>>>>>> >>>>>>>>> Open Source Architect >>>>>>>>> http://www.talend.com >>>>>>>>> >>>>>>>>> >>>>>>> -- >>>>>>> Christian Schneider >>>>>>> http://www.liquid-reality.de >>>>>>> >>>>>>> Open Source Architect >>>>>>> http://www.talend.com >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Christian Schneider >>>>> http://www.liquid-reality.de >>>>> >>>>> Open Source Architect >>>>> http://www.talend.com >>> >> > > >