On Thu, Mar 24, 2016 at 4:10 PM, Quinn Stevenson
<qu...@pronoia-solutions.com> wrote:
> I’d be happy to take a shot at the conversion.  Is there an appropriate JIRA 
> created already?  Or should I continue what you started on the osgi-trouble 
> branch?
>

I suggest to start a new branch. The osgi-trouble branch includes
another upgrade as well that surfaced a bug in the old felix
bundle-plugin. If we get the osgi fixed then we can cherry-pick the
caffiene upgrade that are in this branch also.

The new branch could try to aim at

- try to use the bnd plugin
- if that fails try to upgrade to newer felix plugin
- upgrade to newer osgi (is that version 5.0 ?)
- there is some default osgi imports in the parent pom.xml that likely
need upgrades (i think its in the parent pom)

And a related project is to upgrade the osgi tests in the tests
directory to use karaf 4.x by default.




>> On Mar 24, 2016, at 8:37 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>
>> Hi
>>
>> Thanks for sharing the details about the bnd maven plugin. Sounds
>> promising if its more active maintained and is better.
>>
>> Anyone is surely welcome to give it a go on the Camel master branch.
>> The build system is a bit complicated as there is some default stuff
>> in parent pom.xml and some ant magic to "massage" maven vs osgi
>> versions when using SNAPSHOTs and whatnot. Its all part of some old
>> stuff we needed many years ago when OSGi was new and more buggy.
>>
>> I am not so sure we need all that anymore, it would be lovely to make
>> the build system simpler and easier.
>>
>> Sadly I have not seen any tools that can compare a set of JARs against
>> other JARs to see if their MANIFEST.MF is "the same". Its a bit scary
>> if the new plugin generates "wrong" imports/exports and the only way
>> to be sure it works is to run it all in a real osgi container and try
>> all the components for real. Not only just see if the component can be
>> installed.
>>
>> But then this is what the community is for - to help test - especially
>> for the people who are using OSGi.
>> People who are not, you are missing out all the fun ;) ..... or maybe not.
>>
>> A fallback plan is to keep using the old 2.3.7 plugin and then maybe
>> "hand craft" the camel-core pom.xml instead of generating it to
>> workaround its issue with Java 1.8 and the caffeine cache. But then we
>> are stuck on this old dead horse still.
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Mar 24, 2016 at 2:47 PM, Quinn Stevenson
>> <qu...@pronoia-solutions.com> wrote:
>>> Antonin/Claus -
>>>
>>> I’ve used the bnd-maven-plugin, and it dramatically reduced the amount of 
>>> configuration I had to do for my bundles.  I hit a bug in 
>>> maven-bundle-plugin (https://issues.apache.org/jira/browse/FELIX-5179) and 
>>> moving to the bnd-maven-plugin allowed me to what I needed to do.  I even 
>>> provided a patch for the maven-bundle-plugin, but it has yet to be applied.
>>>
>>> I haven’t explored the intricacies of the Camel build as far as bundle 
>>> manifests are concerned, but I think it would be worthwhile to try the 
>>> bnd-maven-plugin.
>>>
>>>
>>>> On Mar 24, 2016, at 2:28 AM, Antonin Stefanutti <anto...@stefanutti.fr> 
>>>> wrote:
>>>>
>>>> Hi Claus,
>>>>
>>>> Just in case for info, there is apparently a new BND Maven plugin [1] that 
>>>> is supposed to alleviate some of the issues encountered with 
>>>> maven-bundle-plugin.
>>>>
>>>> I haven’t tried it (nor am knowledgeable in the area) but that may be good 
>>>> to know at some point for that piece of work.
>>>>
>>>> [1]: http://njbartlett.name/2015/03/27/announcing-bnd-maven-plugin.html
>>>>
>>>> Antonin
>>>>
>>>>> On 24 Mar 2016, at 07:44, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> m)
>>>>> Upgrade OSGi
>>>>>
>>>>> We are using osgi 4.3.1 version which whatever OSGi version that is.
>>>>> But there is a OSGi 5.0 that newer Karaf containers uses.
>>>>>
>>>>> But the big pain is upgrading maven-bundle-plugin. We are currently
>>>>> using an old 2.3.7. But the newer versions have their new sets of
>>>>> problems / fixes.
>>>>>
>>>>> i have struggled with newer versions generating missing details in the
>>>>> manifest.mf files. For example camel-core did not export all its
>>>>> packages etc. A bit scary. But we do have a fair bit of maven
>>>>> properties and other osgi "magic" to make the build process build OSGi
>>>>> modules across all the 250 or so artifacts.
>>>>>
>>>>> I pushed to a branch called osgi-trouble where you can see some of this 
>>>>> problems
>>>>> https://github.com/apache/camel/commits/osgi-trouble
>>>>>
>>>>> Using the latest 3.0.1 bundle plugin fails to build camel-core. It
>>>>> complains something about the osgi activator.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Mar 23, 2016 at 11:07 AM, Claus Ibsen <claus.ib...@gmail.com> 
>>>>> wrote:
>>>>>> Hi
>>>>>>
>>>>>> So Camel 2.17 was the last release supporting Java 1.7.
>>>>>> The next Camel 2.18 is requiring Java 1.8.
>>>>>>
>>>>>> Here is some thoughts of mine about this release up for discussion.
>>>>>>
>>>>>>
>>>>>>
>>>>>> a)
>>>>>> I see the overall goal of Camel 2.18 as a stepping stone towards Java
>>>>>> 1.8 and Camel 3.0.
>>>>>>
>>>>>> By that I mean the release should be a way of moving our existing
>>>>>> users from Java 1.7 and the current Camel APIs and the likes gradually
>>>>>> towards Java 1.8 and eventually Camel 3.0.
>>>>>>
>>>>>> In other words we should not get carried away to change/break APIs and
>>>>>> whatnot just because Java 1.8 lambdas and functions.
>>>>>>
>>>>>> There are too many current users that rely on the current Camel API
>>>>>> and we cannot go around change processor / expression / predicate /
>>>>>> aggregation strategy and other interfaces to be java 8 functional if
>>>>>> that means current code cannot compile. And certainly not adding
>>>>>> Optional<X> as return types all over.
>>>>>>
>>>>>> The following releases (Camel 2.19 or 3.0) can pick up that torch and
>>>>>> be more Java 1.8 aggressive. For example Camel 3.0 can expect API
>>>>>> changes that are Java 8 lambda / functional based. And as well changes
>>>>>> in the DSL to go with that.
>>>>>>
>>>>>> There are some minor code changes needed to make the source compile as
>>>>>> source 1.8 to go in this Camel 2.18 let alone.
>>>>>>
>>>>>>
>>>>>> b)
>>>>>> Drop components that do not support and run on Java 1.8
>>>>>> And potentially remove some deprecated components
>>>>>>
>>>>>>
>>>>>> c)
>>>>>> Drop karaf 2.x.
>>>>>> And move to karaf 4.x for all our testing.
>>>>>>
>>>>>>
>>>>>> d)
>>>>>> Drop Jetty 8.x.
>>>>>>
>>>>>> This also requires to upgrade at least two components that currently
>>>>>> rely on Jetty 8 to use Jetty 9.
>>>>>>
>>>>>>
>>>>>> e)
>>>>>> Upgrade to latest Jetty 9.
>>>>>> Jetty 9.3 (or is it 9.4) requires Java 1.8
>>>>>>
>>>>>>
>>>>>> f)
>>>>>> Drop support for older versions of Spring. We have a number of
>>>>>> camel-test-spring3 etc modules that can be dropped. And maybe even
>>>>>> spring 4.0. as its also EOL.
>>>>>>
>>>>>>
>>>>>> g)
>>>>>> Potentially move spring-dm out of camel-spring into a camel-spring-dm
>>>>>> module. So camel-spring can use latest version of Spring safely. This
>>>>>> also makes it easier to deprecated spring-dm and remove it eventually.
>>>>>> The Karaf team is working on a sping -> blueprint layer so you can use
>>>>>> spring xml files but Karaf will "convert" that under the hood to
>>>>>> blueprint and run it as blueprint. When that is ready we no longer
>>>>>> need spring-dm.
>>>>>>
>>>>>>
>>>>>> h)
>>>>>> Continue adding components docs in the source, eg src/main/doc files.
>>>>>> So we eventually have as many/all of them. This is an ongoing effort,
>>>>>> as we need to do this for the EIPs and the other parts of the docs.
>>>>>>
>>>>>> However I see this as a great step for a new documentation and
>>>>>> website, that IMHO is a big goal for Camel 3.0. To make the project
>>>>>> website fresh and modern. And make the documentation easier for end
>>>>>> users to use and view.
>>>>>>
>>>>>>
>>>>>> i)
>>>>>> Add camel-hysterix component and integrate camel's circuit breaker
>>>>>> into turbine/hysterix so you can see metrics from camel in the
>>>>>> dashboard. Eg to integrate with the popular Netflix OSS stack.
>>>>>>
>>>>>>
>>>>>> j)
>>>>>> Split camel-cxf into modules so we can separate WS and RS and also
>>>>>> spring vs blueprint. Today its big ball of dependencies that is a bit
>>>>>> hard to slice and dice. Specially for MSA style with REST and you dont
>>>>>> want to add in a bunch of extra not needed JARs.
>>>>>>
>>>>>>
>>>>>> k)
>>>>>> Continue as usual by adding new components, data formats, fix bugs, and 
>>>>>> so on.
>>>>>>
>>>>>>
>>>>>> l)
>>>>>> Timeline. This release do not need to have 6-8 months timeframe. We
>>>>>> could try to get this "stepping stone" release done sooner, so it can
>>>>>> be released during/shortly after summer.
>>>>>>
>>>>>> There is plenty of "first work" that we must do with the java 8
>>>>>> upgrade and dropping older techs etc, that we have our hands full for
>>>>>> a while.
>>>>>>
>>>>>> Doing a release with these changes allows our end users to migrate
>>>>>> along in a easy way, than a big bang - breaking apis - release would
>>>>>> do. And the latter would be more appropriate to be released as Camel
>>>>>> 3.0.
>>>>>>
>>>>>> Then towards the end of this year, we can see where we are and plan
>>>>>> for a Camel 3.0 with a new website and documentation that such a
>>>>>> release deserve. For example if we release Camel 3.0 in start of 2017
>>>>>> then its also Camel's 10 year birthday year.
>>>>>>
>>>>>> And doing such a release with a rewamped website with fresh looking
>>>>>> documentation and content, is what helps the project a lot.
>>>>>>
>>>>>> The current website looks the same as it did when it was created:
>>>>>> https://web.archive.org/web/20070701184530/http://activemq.apache.org/camel/
>>>>>>
>>>>>> PS: We surely also need a better "what is Camel" story on the front
>>>>>> page. Its still that very first one with all the tech jumble that was
>>>>>> initially created.
>>>>>>
>>>>>> PPS: I would also love to see a new Camel logo. The current one is a
>>>>>> bit dull and boring.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> -----------------
>>>>>> http://davsclaus.com @davsclaus
>>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> -----------------
>>>>> http://davsclaus.com @davsclaus
>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> http://davsclaus.com @davsclaus
>> Camel in Action 2: https://www.manning.com/ibsen2
>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to