That's brilliant news Aled,

I'm just catching up with this now, and first of all read the email you
sent describing the problem, and it sounded like a real nightmare. Glad to
hear you've got it working. Congrats on solving it!  What a fix though -
`javax.xml.bind*;version=!,` would confuse the life out of me if I came
across it in a pom.  If you're raising a PR for this can you put comments
that explain it a bit, and maybe link to the list archive of your email?

I remember wrestling with `dependency="true"` before now myself. That's a
nice explanation.

Best,
Geoff




On Thu, 5 Dec 2019 at 23:14, Aled Sage <[email protected]> wrote:

> Hi all,
>
> Good news - I have it working. I need to do some more testing, and need
> to look at releasing winrm4j 0.8.0.
>
> I got some great pointers from the CXF mailing list (thanks Alexey
> Markevich!) [1].
>
> The solution is for winrm4j to include:
>
>        <plugin>
>          <groupId>org.apache.felix</groupId>
> <artifactId>maven-bundle-plugin</artifactId>
>          <configuration>
>            <instructions>
>                <Import-Package>
>                  javax.xml.bind*;version=!,
>                  *
>                </Import-Package>
>            </instructions>
>          </configuration>
>        </plugin>
>
> This prevents the package-import for javax.xml.bind.annotation to not
> define a specific version range.
>
> ---
>
> The missing understanding for me was what dependency=true means [2].
>
> For example, in cxf-specs:
>
>      <bundle start-level="10"
>
> dependency="true">mvn:jakarta.xml.bind/jakarta.xml.bind-api/${cxf.jaxb.version}</bundle>
>
> It means that the bundle will only be installed if it is really needed -
> i.e. it provides packages that are not being exported by other bundles.
>
> Because winrm4j now had:
>
>      javax.xml.bind.annotation;version="[2.3,3)"
>
> It meant that the javax.xml.bind.annotation from
> org.apache.felix.framework didn't match. It needed jakarta.xml.bind-api
> to meet the package import dependency.
>
> By excluding the version range for javax.xml.bind.annotation, it was
> happy to just use org.apache.felix.framework.
>
> Aled
>
> [1]
>
> http://mail-archives.apache.org/mod_mbox/cxf-users/201912.mbox/%3C9a1d1ab6-8d00-234d-29b0-c86c31506c87%40gmail.com%3E
>
> [2]
>
> http://karaf.922171.n3.nabble.com/features-xml-dependency-quot-true-quot-td3286359.html
>
>
>
> On 04/12/2019 20:28, Aled Sage wrote:
> >
> > *T**_L;DR_*
> >
> > I was trying to upgrade to CXF 3.3.2 (from 3.2.8) because
> > https://karaf.apache.org/news.html announcement about Karaf 4.2.7
> > lists CXF version 3.3.2.
> >
> > But I've hit a big problem.
> >
> > winrm4j fails in Karaf with CXF 3.3.2: JAXB service construction fails
> > when parsing annotations.
> >
> > Should we abandon the CXF upgrade and stick with 3.2.8?
> >
> > I'll report it to the CXF mailing list, so perhaps reserve judgement
> > to see what they say.
> >
> > _*DETAILS OF ERROR*_
> >
> > The upgrade involved upgrading winrm4j to use CXF 3.3.2, which seemed
> > to go fine (all tests pass outside of Karaf).
> >
> > However, when I test use of WinRM inside Brooklyn Karaf, it fails with
> > the error below:
> >
> > ```
> > 2019-12-03T11:44:16,468 wmhGA3U2-[ut059oi7tk,ltajipcuun] WARN  103
> > i.c.w.c.WinRmClient [ager-Ak6FHXbO-32] Error creating WinRm service
> > with mbean strategy (trying other strategies):
> > org.apache.cxf.service.factory.ServiceConstructionException
> > org.apache.cxf.service.factory.ServiceConstructionException: null
> >         at
> > org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:355)
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:426)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:528)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
>
> > ~[?:?]
> >         at
> >
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:91)
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:159)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142)
>
> > ~[?:?]
> >         at
> >
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:95)
>
> > ~[!/:3.3.2]
> >         at
> >
> io.cloudsoft.winrm4j.client.WinRmFactory.doCreateServiceWithBean(WinRmFactory.java:97)
>
> > ~[!/:?]
> >         at
> >
> io.cloudsoft.winrm4j.client.WinRmFactory.createService(WinRmFactory.java:33)
>
> > [!/:?]
> >         at
> >
> io.cloudsoft.winrm4j.client.WinRmFactory.newInstance(WinRmFactory.java:21)
> > [!/:?]
> >         at
> > io.cloudsoft.winrm4j.client.WinRmClient.getService(WinRmClient.java:191)
> > [!/:?]
> >         at
> > io.cloudsoft.winrm4j.client.WinRmClient.<init>(WinRmClient.java:172)
> > [!/:?]
> >         at
> >
> io.cloudsoft.winrm4j.client.WinRmClientBuilder.build(WinRmClientBuilder.java:194)
>
> > [!/:?]
> >         at
> > io.cloudsoft.winrm4j.winrm.WinRmTool.executeCommand(WinRmTool.java:298)
> > [!/:?]
> >         at
> > io.cloudsoft.winrm4j.winrm.WinRmTool.executeCommand(WinRmTool.java:216)
> > [!/:?]
> >         at
> >
> org.apache.brooklyn.util.core.internal.winrm.winrm4j.Winrm4jTool$1.apply(Winrm4jTool.java:119)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.core.internal.winrm.winrm4j.Winrm4jTool$1.apply(Winrm4jTool.java:117)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.core.internal.winrm.winrm4j.Winrm4jTool.exec(Winrm4jTool.java:185)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.core.internal.winrm.winrm4j.Winrm4jTool.executeCommand(Winrm4jTool.java:117)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.winrm.WinRmMachineLocation.executeCommand(WinRmMachineLocation.java:308)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.JcloudsLocation$5.call(JcloudsLocation.java:2518)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.JcloudsLocation$5.call(JcloudsLocation.java:2514)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.repeat.Repeater.runKeepingError(Repeater.java:399)
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.JcloudsLocation.waitForReachable(JcloudsLocation.java:2741)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.JcloudsLocation.waitForWinRmAvailable(JcloudsLocation.java:2567)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.DefaultConnectivityResolver.checkCredential(DefaultConnectivityResolver.java:404)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.DefaultConnectivityResolver.resolve(DefaultConnectivityResolver.java:196)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.JcloudsLocation.obtainOnce(JcloudsLocation.java:807)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.location.jclouds.JcloudsLocation.obtain(JcloudsLocation.java:614)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:448)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:437)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.core.task.Tasks.withBlockingDetails(Tasks.java:114)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:418)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:393)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at
> >
> org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565)
>
> > [!/:1.0.0-SNAPSHOT]
> >         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > [?:1.8.0_201]
> >         at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>
> > [?:1.8.0_201]
> >         at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>
> > [?:1.8.0_201]
> >         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
> > Caused by:
> > com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2
> > counts of IllegalAnnotationExceptions
> >         at
> >
> com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:91)
>
> > ~[?:1.8.0_201]
> >         at
> >
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:445)
>
> > ~[?:1.8.0_201]
> >         at
> >
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:277)
>
> > ~[?:1.8.0_201]
> >         at
> >
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:124)
>
> > ~[?:1.8.0_201]
> >         at
> >
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1123)
>
> > ~[?:1.8.0_201]
> >         at
> >
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:147)
>
> > ~[?:1.8.0_201]
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > ~[?:1.8.0_201]
> >         at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
> > ~[?:1.8.0_201]
> >         at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> > ~[?:1.8.0_201]
> >         at java.lang.reflect.Method.invoke(Method.java:498)
> ~[?:1.8.0_201]
> >         at
> > javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:222)
> > ~[?:1.8.0_201]
> >         at javax.xml.bind.ContextFinder.find(ContextFinder.java:396)
> > ~[?:1.8.0_201]
> >         at
> > javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:641)
> > ~[?:1.8.0_201]
> >         at
> >
> org.apache.cxf.common.jaxb.JAXBContextCache.createContext(JAXBContextCache.java:357)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.common.jaxb.JAXBContextCache.getCachedContextAndSchemas(JAXBContextCache.java:246)
>
> > ~[!/:3.3.2]
> >         at
> >
> org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContextAndSchemas(JAXBDataBinding.java:498)
>
> > ~[!/:3.3.2]
> >         at
> > org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:353)
> > ~[!/:3.3.2]
> >         ... 43 more
> > ```
> >
> > Looking via a debugger to get the underlying
> > IllegalAnnotatoinExceptions, I see:
> > ```
> >
> ((com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException)e.getCause()).getErrors()
> >  (java.util.Collections$UnmodifiableRandomAccessList<E>) [Two classes
> > have the same XML type name
> > "{http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd}objectFactory";. Use
> > @XmlType.name and @XmlType.namespace to assign different names to them.
> >     this problem is related to the following location:
> >         at io.cloudsoft.winrm4j.client.transfer.ObjectFactory
> >     this problem is related to the following location:
> >         at io.cloudsoft.winrm4j.client.wsman.ObjectFactory, Two
> > classes have the same XML type name
> > "{http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd}objectFactory";. Use
> > @XmlType.name and @XmlType.namespace to assign different names to them.
> >     this problem is related to the following location:
> >         at io.cloudsoft.winrm4j.client.wsman.ObjectFactory
> >     this problem is related to the following location:
> >         at io.cloudsoft.winrm4j.client.shell.ObjectFactory]
> > ```
> >
> >
> > _*INVESTIGATION OF ERROR*_
> >
> > This thread gives some pointers:
> >
> https://stackoverflow.com/questions/7361336/two-classes-have-the-same-xml-type-name-objectfactory
> >
> > It suggests looking at how many javax.xml.bind.annotation.XMLRegistry
> > classes you have on your classpath.
> >
> > Via a debugger, I compared what happens in Karaf with CXF 3.3.2 and
> > CXF 3.2.8:
> >
> > ```
> >
> io.cloudsoft.winrm4j.client.wsman.ObjectFactory.class.getAnnotations()[0].annotationType()
> > [CXV 3.2.8 output] (java.lang.Class<T>) interface
> > javax.xml.bind.annotation.XmlRegistry
> > [CXV 3.3.2 output] (java.lang.Class<T>) interface
> > javax.xml.bind.annotation.XmlRegistry
> >
> >
> io.cloudsoft.winrm4j.client.wsman.ObjectFactory.class.getAnnotations()[0].annotationType().getClassLoader()
> > [CXV 3.2.8 output] null
> > [CXV 3.3.2 output]
> > (org.apache.felix.framework.BundleWiringImpl$BundleClassLoader)
> > jakarta.xml.bind-api [108]
> > ```
> >
> > I interpret the null classloader as meaning it is from the system
> > classloader (e.g. `java.lang.Object.class.getClassLoader()` also
> > returns `null`).
> >
> > Looking in Karaf using `bin/client` (with CXF 3.2.8):
> > ```
> > package:exports | grep javax.xml.bind.annotation
> > javax.xml.bind.annotation.adapters    │ 2.2.8    │ 0 │
> > org.apache.felix.framework
> > javax.xml.bind.annotation             │ 2.2.8    │ 0 │
> > org.apache.felix.framework
> >
> > package:imports | grep winrm | grep javax.xml.bind.annotation
> > Package                               │ Version │ Optional │ ID  │
> > Bundle Name
> > javax.xml.bind.annotation.adapters │        │          │ 103 │
> > io.cloudsoft.windows.winrm4j-client
> > javax.xml.bind.annotation │          │          │ 103 │
> > io.cloudsoft.windows.winrm4j-client
> > ```
> >
> > Compare that with CXF 3.3.2:
> > ```
> > package:exports | grep javax.xml.bind.annotation
> > javax.xml.bind.annotation.adapters    │ 2.2.8    │ 0 │
> > org.apache.felix.framework
> > javax.xml.bind.annotation.adapters    │ 2.3.2    │ 108 │
> > jakarta.xml.bind-api
> > javax.xml.bind.annotation             │ 2.2.8    │ 0 │
> > org.apache.felix.framework
> > javax.xml.bind.annotation             │ 2.3.2    │ 108 │
> > jakarta.xml.bind-api
> >
> > package:imports | grep winrm | grep javax.xml.bind.annotation
> > Package                               │ Version │ Optional │ ID  │
> > Bundle Name
> > javax.xml.bind.annotation.adapters │ [2.3.0,3.0.0) │          │ 103 │
> > io.cloudsoft.windows.winrm4j-client
> > javax.xml.bind.annotation │ [2.3.0,3.0.0) │          │ 103 │
> > io.cloudsoft.windows.winrm4j-client
> > ```
> >
> > Looking at where `jakarta.xml.bind-api` comes from in CXF 3.3.2 (it's
> > not there when we use CXF 3.2.8):
> > ```
> > feature:info cxf-specs
> >
> > Running feature:info cxf-specs
> > Feature cxf-specs 3.3.2
> > ...
> > Feature contains followed bundles:
> >   ...
> >   mvn:jakarta.xml.bind/jakarta.xml.bind-api/2.3.2 start-level=10
> > ```
> > (The cxf-specs feature is a dependency of the cxf-core feature.)
> >
> > Looking at the MANIFEST.mf (or the bundle:headers) of `winrm4j-client`:
> > With CXF 3.3.2, it has:
> > ```
> > javax.xml.bind.annotation;version="[2.3,3)"
> > ```
> > With CXF 3.2.8, it has:
> > ```
> > javax.xml.bind.annotation
> > ```
> > (i.e. no version range is specified).
> >
> > I don't think there are code changes causing this - I think it is
> > inferred from the CXF versions (or perhaps because newer maven plugin
> > versions are used?)
> >
> > But even if it didn't specify a version range with CXF 3.3.2, it would
> > prefer the import from the newer version (i.e. from 2.3.2).
> >
> >
> > _*NEXT STEPS*_
> >
> > We should report the issue on the CXF / Karaf mailing list - I'll do
> that.
> >
> > I lean towards not fixing it (unless the CXF community come back with
> > an easy answer).
> >
> > If we did try to fix it, possibilities include:
> >
> >  1. Change winrm4j bundle's package imports to require 2.2.x of
> >     javax.xml.bind.annotation.
> >     But would that be compatible with the rest of the CXF package
> imports?
> >  2. Or some other mechanism to force the annotation parsing to somehow
> >     use javax.xml.bind.annotation.XmlRegistry version 2.2.8 from
> >     org.apache.felix.framework?!
> >  3. Or try to force use of a particular `JAXBContext` - but winrm4j
> >     isn't instantiating the JAXBContext.
> >     (e.g. https://stackoverflow.com/a/7483425/1393883 tries to force a
> >     particular `META-INF/services/javax.xml.bind.JAXBContext` at the
> >     classloader level).
> >
> >
> > Option (2) feels really hard and risky - the feature `cxf-specs` is
> > pulling in `jakarta.xml.bind-api`, and `cxf-core` pulls in the feature
> > `cxf-specs`. That feels very low level! There could be untold
> > consequences of messing with the bind-api version at that level. Even
> > if our smoke tests pass, I'd be worried about what else we might have
> > broken.
> >
> > Option (1) gives me some of the same worries as for (2) - we'd be
> > importing a different javax.xml.bind.annotation compared to the
> > bundles that the CXF packages come from. That kind of thing can cause
> > weird ClassCastExceptions because things are using different
> classloaders.
> >
> > My gut feel for option (3) is that it's the wrong road to be going
> > down - it's fighting CXF rather than working with it!
> >
> >
> > _*MISCELLANEOUS DEBUGGING NOTES*_
> >
> > I find the script below useful to get a dump of all the features and
> > which bundles they bring in - I normally redirect the output to a file
> > and search through that:
> > ```
> > #!/bin/bash
> >
> > for i in `./bin/client "feature:list" | grep -v "Uninstalled" | awk
> > '{print $1}'`; do
> >     echo "Running feature:info ${i}"
> >     ./bin/client "feature:info ${i}"
> >     echo
> >     echo
> > done
> > ```
> >
> > On 02/12/2019 21:21, Geoff Macartney wrote:
> >> It's always a bit of a maze, isn't it!
> >>
> >> Thanks for looking into this Aled. I think it will be great to get
> >> things brought up to a consistent level with this latest Karaf.
> >>
> >> Cheers
> >> Geoff
> >>
> >>
> >>
> >> On Mon, 2 Dec 2019 at 13:28, Aled Sage <[email protected]
> >> <mailto:[email protected]>> wrote:
> >>
> >>     Hi all,
> >>
> >>     TL;DR: I'm looking at upgading CXF from 3.2.8 to 3.3.2.
> >>
> >>     ---
> >>
> >>     For dependency:
> >>          system//javax/mail/mail: [1.4.7, 1.4.4]
> >>
> >>     Exploring this one shows that v1.4.4 is coming from the old
> >>     cxf-specs
> >>     3.2.8. The Karaf 4.2.7 announcement [1] gives a table of versions
> >>     - it
> >>     shows CXF at 3.3.2. We should look up updating CXF from 3.2.8 to
> >>     3.3.2.
> >>
> >>     That will also require an upgrade of
> >>     mvn:io.cloudsoft.windows/winrm4j
> >>     (as v0.7.0 is built against CXF 3.2.8).
> >>
> >>     I'm looking into this, to see what else breaks when we switch to
> >>     CXF 3.3.2.
> >>
> >>     ---
> >>
> >>     I suggest we ignore:
> >>
>  system//org/apache/aries/spifly/org.apache.aries.spifly.dynamic.bundle:
> >>
> >>     [1.2.2, 1.2]
> >>
> >>     Feature 'jetty' brings in v1.2.2, whereas feature 'pax-jetty'
> >>     brings in
> >>     v1.2, so it's out of our control.
> >>
> >>     Aled
> >>
> >>
> >>     On 02/12/2019 10:38, Aled Sage wrote:
> >>     > Hi all,
> >>     >
> >>     > I see there was great progress with the karaf version bump last
> >>     week
> >>     > and over the weekend, e.g. [1, 2].
> >>     >
> >>     > Looking at brooklyn master karaf dependency versions using `find
> >>     > ${BROOKLYN_HOME}/system/ -name "*.jar"` and running a little
> >>     program
> >>     > to find multiple versions, I see the following concerning
> >>     duplicates:
> >>     >
> >>     >
> >>
>  system//org/apache/aries/spifly/org.apache.aries.spifly.dynamic.bundle:
> >>
> >>     > [1.2.2, 1.2]
> >>     > system//javax/mail/mail: [1.4.7, 1.4.4]
> >>     >
> >>     > The full list is:
> >>     >
> >>     > system//org/ow2/asm/asm: [5.2, 7.1]
> >>     > system//org/ow2/asm/asm-util: [5.2, 7.1]
> >>     > system//org/ow2/asm/asm-tree: [5.2, 7.1]
> >>     > system//org/ow2/asm/asm-analysis: [5.2, 7.1]
> >>     > system//org/ow2/asm/asm-commons: [5.2, 7.1]
> >>     > system//org/yaml/snakeyaml: [1.23, 1.17]
> >>     >
> >>
>  system//org/apache/servicemix/bundles/org.apache.servicemix.bundles.jzlib:
> >>
> >>     > [1.1.3_2, 1.0.7_1]
> >>     >
> >>
>  system//org/apache/servicemix/bundles/org.apache.servicemix.bundles.okhttp:
> >>
> >>     > [3.4.1_1, 2.2.0_1]
> >>     >
> >>
>  system//org/apache/servicemix/bundles/org.apache.servicemix.bundles.okio:
> >>
> >>     > [1.9.0_1, 1.2.0_1]
> >>     >
> >>
>  system//org/apache/aries/spifly/org.apache.aries.spifly.dynamic.bundle:
> >>
> >>     > [1.2.2, 1.2]
> >>     > system//javax/mail/mail: [1.4.7, 1.4.4]
> >>     > system//javax/ws/rs/javax.ws <http://javax.ws>.rs-api: [2.0.1,
> >>     2.1.1]
> >>     >
> >>     > Compare this with Brooklyn version 1.0.0-M1:
> >>     >
> >>     > system//org/ow2/asm/asm-all: [5.2, 5.0.2]
> >>     > system//org/yaml/snakeyaml: [1.17, 1.22]
> >>     >
> >>
>  
> system//org/apache/servicemix/specs/org.apache.servicemix.specs.activation-api-1.1:
> >>
> >>     > [2.5.0, 2.6.0]
> >>     >
> >>
>  system//org/apache/servicemix/bundles/org.apache.servicemix.bundles.jzlib:
> >>
> >>     > [1.1.3_2, 1.0.7_1]
> >>     >
> >>
>  system//org/apache/servicemix/bundles/org.apache.servicemix.bundles.okhttp:
> >>
> >>     > [3.4.1_1, 2.2.0_1]
> >>     >
> >>
>  system//org/apache/servicemix/bundles/org.apache.servicemix.bundles.okio:
> >>
> >>     > [1.9.0_1, 1.2.0_1]
> >>     > system//org/apache/aries/org.apache.aries.util: [1.1.3, 1.1.0]
> >>     > system//com/google/code/gson/gson: [2.5, 2.3]
> >>     >
> >>     > I'll take a look at these and see if they really are a problem
> >>     or not.
> >>     >
> >>     > Aled
> >>     >
> >>     > [1] https://github.com/apache/brooklyn-server/pull/1068
> >>     >
> >>     > [2] https://github.com/apache/brooklyn-server/pull/1069
> >>     >
> >>     >
> >>     >
> >>     >
> >>     > On 02/12/2019 09:27, Aled Sage wrote:
> >>     >> Hi,
> >>     >>
> >>     >> Thanks Ludo, all: - great list, and +1 from me.
> >>     >>
> >>     >> I think most of those sound fairly small and manageable.
> >>     >>
> >>     >> The one that stands out as potentially hard is the "Karaf version
> >>     >> bump" (which would fix the "Two different versions of
> >>     jetty-server").
> >>     >> We've had problems in the past getting all versions
> >>     consistent, and
> >>     >> karaf to start up fast and cleanly (without it restarting a
> >>     bunch of
> >>     >> bundles). Changing the version is really easy - getting all
> >>     versions
> >>     >> of all bundles to be consistent can be a pain! But it's worth
> >>     doing.
> >>     >>
> >>     >> Aled
> >>     >>
> >>     >>
> >>     >> On 01/12/2019 14:47, Geoff Macartney wrote:
> >>     >>> We should definitely include
> >>     >>> https://issues.apache.org/jira/browse/BROOKLYN-597 "Remove
> >>     MD5 and
> >>     >>> SHA-1
> >>     >>> checksums" as part of 1.0.0.  I'd be happy to do this but I
> >>     see it's
> >>     >>> got
> >>     >>> you assigned to it Richard. Do you have work in progress on
> >>     this, or
> >>     >>> would
> >>     >>> you like me to look into it? I have a notion that I might
> >>     polish up the
> >>     >>> signing procedure a bit.
> >>     >>>
> >>     >>> Cheers
> >>     >>> Geoff
> >>     >>>
> >>     >>> On Sun, 1 Dec 2019 at 14:13, Geoff Macartney
> >>     >>> <[email protected] <mailto:[email protected]>>
> >>     >>> wrote:
> >>     >>>
> >>     >>>> Hi Ludo,
> >>     >>>>
> >>     >>>> I am indeed pleased to see this!  I had been thinking of
> >>     mailing the
> >>     >>>> community again on the matter after Christmas was out of the
> >>     way,
> >>     >>>> let's let
> >>     >>>> 2020 be the year of Brooklyn 1.0.0!
> >>     >>>>
> >>     >>>> That's a great list of things to address. One thing to add
> >>     would be
> >>     >>>> removing some deprecated code. Do you think they are all small
> >>     >>>> changes, or
> >>     >>>> do any require extensive work or have a wide impact?
> >>     >>>>
> >>     >>>> The reason I ask is that I think it would be good to restrict
> >>     >>>> ourselves to
> >>     >>>> relatively easy and limited impact changes between now and
> >>     1.0.0.
> >>     >>>> My fear
> >>     >>>> is that larger changes will take a longer time and push back a
> >>     >>>> release even
> >>     >>>> further. It seems to me things are quite stable now; I'd say
> >>     let's
> >>     >>>> polish
> >>     >>>> it up and release it rather than try to make significant
> >>     improvements.
> >>     >>>>
> >>     >>>> What does everyone think?
> >>     >>>>
> >>     >>>> Cheers
> >>     >>>> Geoff
> >>     >>>>
> >>     >>>>
> >>     >>>>
> >>     >>>>
> >>     >>>> On Thu, 28 Nov 2019 at 11:04, Ludovic Farine
> >>     <[email protected] <mailto:[email protected]>>
> >>     >>>> wrote:
> >>     >>>>
> >>     >>>>> Hi everyone,
> >>     >>>>>
> >>     >>>>> Hope you are all doing well!
> >>     >>>>>
> >>     >>>>> Christmas is fast approaching and well hopefully a gift we
> >>     would
> >>     >>>>> all like
> >>     >>>>> to have: Brooklyn 1.0.0 release :) Geoff would be pleased
> >>     to hear!
> >>     >>>>>
> >>     >>>>> Working towards this goal of first official release, these
> >>     are a
> >>     >>>>> few bug
> >>     >>>>> fixes and improvements that I believe are worth considering
> >>     >>>>> (non-exhaustive
> >>     >>>>> and not ordered wishlist!) :
> >>     >>>>>
> >>     >>>>> Bug fixes:
> >>     >>>>>
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     Broken icon links for ELK and DNS entities
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     REST API Swagger error
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     Two different versions of jetty-server
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     Karaf version bump
> >>     >>>>>
> >>     >>>>>
> >>     >>>>> Improvements:
> >>     >>>>>
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     Session Management: introduce expiry settings for
> >>     inactivity or
> >>     >>>>> repeated
> >>     >>>>>     background API calls
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     User Experience: blueprints ordered by date deployed,
> >>     cookies to
> >>     >>>>>     remember preferred sort criteria and palette preferences
> >>     >>>>>
> >>     >>>>>
> >>     >>>>> Clean-up:
> >>     >>>>>
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     Review existing open Pull Requests
> >>     >>>>>     -
> >>     >>>>>
> >>     >>>>>     Fix most of the Jenkins tests
> >>     >>>>>
> >>     >>>>>
> >>     >>>>> What are your thoughts on this scope? Any other suggestions
> >>     you
> >>     >>>>> would like
> >>     >>>>> to deliver in this next release?
> >>     >>>>>
> >>     >>>>> Looking forward to get the community engaging in the next
> >>     weeks and
> >>     >>>>> months.
> >>     >>>>>
> >>     >>>>> Remember you can participate with others on the official Slack
> >>     >>>>> channel
> >>     >>>>> *#brooklyn* on the official Apache group. Sign up here
> >>     >>>>> https://s.apache.org/slack-invite to join the discussion!
> >>     >>>>>
> >>     >>>>> Thanks
> >>     >>>>>
> >>     >>>>> Ludo
> >>     >>>>>
> >>     >>>>>
> >>     >>>>> --
> >>     >>>>>
> >>     >>>>> Ludovic Farine
> >>     >>>>>
> >>     >>>>> Senior Technical Project Manager
> >>     >>>>>
> >>     >>>>>
> >>     >>>>> Cloudsoft <https://cloudsoft.io/> | Bringing Business to
> >>     the Cloud
> >>     >>>>>
> >>     >>>>> E: [email protected] <mailto:[email protected]>
> >>     >>>>>
> >>     >>>>> T: +44 7584 748013
> >>     >>>>>
> >>     >>>>> L: https://www.linkedin.com/in/ludovicfarine/
> >>     >>>>>
> >>
>

Reply via email to