> To: [email protected]
> Subject: Re: Maven use for integration
> From: [email protected]
> Date: Tue, 25 Nov 2014 16:26:17 -0500
> 
> No, not a zip. I just need the bundles to be in the file system so that 
> when the server packaging starts, they get packaged.
> 
> The job of the integrator is just to download the artifacts from nexus and 
> leave them in the filesystem of the server's image. The fact that i want 
> to use the info in the poms to minimize maintenance of the integration 
> list is kind of orthogonal, i could do everything just with wget, but i 
> would need a list of every single bundle to download.
> 
> Maybe a bit of description of how building the server work will make it 
> clearer. We download all the bundles from nexus (this is the part I do 
> with maven), compile kernel drivers unrelated to the bundles, prepare OS 
> configuration scripts, etc etc and then the whole system is packaged into 
> an image that gets deployed to the client. This packaging into an image 
> has nothing to do with maven, only the artifact download is done by maven 
> at the server creation job (and not even for all the artifacts, just for 
> OSGi bundle artifacts)
> 
> And yes, you're right that for non-osgi artifacts this wouldn't work due 
> to the classloader, so I definitely understand the default behaviour of 
> maven, but this is in an OSGi context. Is there any way to bypass this 
> core behaviour? a system property, flag?? it is very convenient to do 
> integrations with maven due to the rich info in the poms. But obviously, 
> the pom data could be used outside of maven so maybe what I'm missing is a 
> different tool altogether.
MG>Eclipse OSGI console would give you a high level view of your OSGI 
components and access to commands such as  start, stop..
MG>https://wiki.eclipse.org/OSGI_component_support_in_Service_Creation#Existing_OSGI_tooling

> 
> Another option would be a maven-plugin that creates its own dependency 
> graph and doesn't rely on the one provided by maven core, which supports 
> only a single version of a given artifact (at least that's what it looks 
> like)
> 
> 
> Alejandro Endo | Software Designer/Concepteur de logiciels 
> 
> 
> 
> 
> From:   Ron Wheeler <[email protected]>
> To:     [email protected], 
> Date:   2014-11-25 03:07 PM
> Subject:        Re: Maven use for integration
> 
> 
> 
> It is still a bit unclear about what you will end up with if your idea 
> works.
> Are you just hoping to get a zip file of OSGi artifacts that you can 
> unzip to deploy?
> 
> Multiple versions of non-OSGi artifacts will not work since the 
> classloader will only load the first version that it finds.
> 
> 
> On 25/11/2014 1:45 PM, [email protected] wrote:
> > Hi Ron,
> > #1. I don't understand your question. You mean the poms of the artifacts
> > deployed in nexus? they each have their own pom and instructions on how 
> to
> > build itself, just like a regular maven artifact
> > So I have an artifact A that gets deployed to nexus with groupId foo.bar
> > and artifactId A and version 1.0 and then six months later A gets 
> updated
> > to version 2.0
> > All this has nothing to do with integration
> >
> > Now the integration job will say, bring all the artifacts and their
> > dependencies to be able to run. One of them will be A 1.0.
> > Once a 2.0 is released, i don't want to integrate ONLY 2.0. I want to
> > integrate 1.0 and 2.0. So in my integration pom i have two dependencies,
> > one foo.bar:A:1.0 and another dependency foo.bar:A:2.0. This is were 
> maven
> > core complains and ends up resolving one over the other, hence when i do 
> a
> > copy-dependencies it only ends up integrating one of them
> So the 2 versions of A are on a list that you manually maintain in an 
> integration file.
> Could you not keep that outside a pom and just get each version from the 
> repo and use the pom of foo.bar:A:1.0 and foo.bar:A:2.0 to get their 
> respective dependencies to build a list of the other artifacts. As long 
> as you are talking about OSGi, you are OK.
> >
> > #2. Yes, I am. The problem is that via the nexus API there's no way to
> > have a list of ONLY entry points where i can say explicitly in a list
> > (that i'm trying to keep as small as possible) integrate A and that 
> would
> > imply B and C if A depends on B and C. When I do it with maven, in my
> > integration pom I only declare a dependency on A and the dependency 
> plugin
> > will copy transitive dependencies. This allows me to keep the manually
> > maintained list as small as possible and never forgetting to update it
> > when i introduce new dependencies since those new dependencies will be
> > pulled by the dependency plugin just because the POM already contains 
> the
> > relationship information
> So once you have resolved the dependencies, you can get the Artifacts 
> and repeat the resolution using these new dependencies eliminating 
> duplicates if you find any.
> 
> > I hope everything is clearer now, let me know
> You can use the Maven code to build the dependency resolution but you 
> will have to glue this together with some top level code that reads your 
> list of "seed" artifacts including the multiple versions of the ones 
> that you care about and probably something to eliminate duplicate 
> transitive dependencies and resolve version conflicts for non-OSGi 
> artifacts if these are part of your requirement.
> 
> It is hard to see how Maven alone is going to be happy building 
> Artifacts that contain multiple versions of jar files without some help 
> to let it know when it is OK and when it will lead to grief.
> 
> 
> > Thanks for replying
> >
> >
> > Alejandro Endo | Software Designer/Concepteur de logiciels
> >
> >
> >
> >
> > From:   Ron Wheeler <[email protected]>
> > To:     [email protected],
> > Date:   2014-11-25 01:33 PM
> > Subject:        Re: Maven use for integration
> >
> >
> >
> > Since you are not getting any responses, let me ask some questions to
> > get some more details on the table.
> >
> > 1) Where is the definitive single source of dependency info that you use
> > to create the GAV ids for Nexus? How can a single pom reference 2
> > versions of an artifact?
> >
> > 2) Are you aware of the API for Nexus? Can you use this to get the
> > artifacts once you have the list of artifacts?
> >
> > Perhaps these answers will stimulate some ideas.
> > Ron
> >
> > On 25/11/2014 10:55 AM, [email protected] wrote:
> >> Hello everyone,
> >>
> >> I wanted to ask what you guys though about using maven as an 
> integration
> >> tool. Is it out of the scope of maven? is anyone else doing this? What 
> I
> >> mean by integration is that the artifacts are built (also by maven but
> > in
> >> other jobs) and deployed to nexus, but I still need to download them 
> all
> >> to a server for deployment.
> >> The build of this server invokes maven and I hooked to it via a pom 
> that
> >> points to some artifacts that serve as an entry point to the dependency
> >> graph and then use the dependency:copy-dependencies goal. The point of
> >> this was to leverage the dependency information available in poms so I
> >> didn't have to keep a list of ALL the artifacts needed (osgi bundles
> > BTW),
> >> just of an entry point for maven to crawl the graph and pull 
> everything.
> >> The problem I'm encountering that tells me maybe Maven is not meant for
> >> this is that I need to pull two artifacts where only the version is
> >> different (since in OSGi both can coexist just fine) but maven chooses
> >> only one and the other one doesn't get integrated. So, are there ways 
> to
> >> force maven to not drop the second version when resolving its model or
> > am
> >> I just stretching what maven can do? if so, are there any other tools
> > that
> >> leverage pom information to download artifacts from a maven repo? i
> > don't
> >> want to have to maintain that dependency information in two different
> >> places
> >>
> >> Thank you,
> >>
> >> Alejandro Endo | Software Designer/Concepteur de logiciels
> >>
> >> DISCLAIMER:
> >> Privileged and/or Confidential information may be contained in this
> >> message. If you are not the addressee of this message, you may not
> >> copy, use or deliver this message to anyone. In such event, you
> >> should destroy the message and kindly notify the sender by reply
> >> e-mail. It is understood that opinions or conclusions that do not
> >> relate to the official business of the company are neither given
> >> nor endorsed by the company.
> >> Thank You.
> >>
> >
> 
> 
> -- 
> Ron Wheeler
> President
> Artifact Software Inc
> email: [email protected]
> skype: ronaldmwheeler
> phone: 866-970-2435, ext 102
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 
> DISCLAIMER:
> Privileged and/or Confidential information may be contained in this
> message. If you are not the addressee of this message, you may not
> copy, use or deliver this message to anyone. In such event, you
> should destroy the message and kindly notify the sender by reply
> e-mail. It is understood that opinions or conclusions that do not
> relate to the official business of the company are neither given
> nor endorsed by the company.
> Thank You.
                                          

Reply via email to