Thanks, Achim.  I am using a custom Karaf distribution, but maintaining
deployment flexibility using features feels a little tougher than it feels
like it should be (I don't have any better ideas).  I also have issues with
my Karaf integration tests in Bamboo.  Paxexam seems to not be able to
initialize properly for who knows what reason.  Another problem is that I
seem to run into a lot of problems in the tests and can't seem to find
anything in the output or Karaf love that indicate.the problem.  If I run
it normally in Karaf, I usually get clued into what the issue is.

One last thing is that since my development shop uses MacOSx, Docker
containers have to be run in a VM which feels silly and is slow.  I don't
have a choice in that manner.

It would be nice if there was a way to manage feature xml files in a way
that felt more straight forward....  Maybe there is and I'm just not aware
of it.
On Apr 8, 2015 3:07 PM, "Achim Nierbeck" <bcanh...@googlemail.com> wrote:

> Hi,
>
> just recently for a talk with showcase I was thinking about how to create
> a CI/CD build pipeline with Karaf. Maybe some of this does help you.[1]
> In the end I ended up with a setup where I have a pre-configured Karaf
> (custom build) which is startable as Docker Image or can be used as startup
> tar.gz of the Pax Exam integration tests.
> Usually camel routes are more about Integration therefore the most
> use-cases need to be handled by Integration tests. In those scenarios you
> just can't rely only on the camel-core bundles therefore you need more
> features just to have your unit tests/integration tests runnable. In those
> scenarios I usually suggest build your own distribution on top of Karaf and
> use it as your base-image in the pax-exam tests. If there is more external
> infrastructure needed I tend to use either full-integration test systems or
> now a docker based test-environment which can be started via a maven goal
> as pre-intergration phase systems.
>
> regards, Achim
>
> [1] - https://github.com/ANierbeck/JavaLang-Tooling
>
> 2015-04-08 17:24 GMT+02:00 Ryan Moquin <fragility...@gmail.com>:
>
>> Hi,
>>
>> I have another question regarding Karaf and deployments.  I was hoping
>> maybe some others could chime in on how they deal with the following
>> situation.
>>
>> I've been working on a fairly complex Karaf based application.  I'm using
>> features heavily to allow deploying the correct resources in different
>> environments (configuration and bundles).  I find it works very well except
>> for a couple situations:
>>
>> 1.  Unit testing.  It's hard to unit test things like camel routes since
>> I have ended up basically marking all bundle dependencies as provided (in
>> order to keep the created features files .  So if I try to unit test a
>> Camel route, transitive dependencies have to be directly added to the
>> project pom.
>>
>> 2.  I have all my configurations defined in a maven project for
>> assembling the final features xml file.  This of course doesn't make it
>> easy to use any of those configurations in camel integration tests since
>> configurations needed for config admin would have to be added to the
>> projects test resources.
>>
>> Obviously the two brief examples above focus mostly on Camel, but the
>> main problem is that I'm trying to figure out how I can no longer make
>> everything provided in my bundle project provided scope without having to
>> manually maintain the features files.
>>
>> That being said, I was looking at Apache Ace, but I'm not sure if using
>> Apache Ace would cause it to be more work to do Karaf integration testing
>> since Apache Ace doesn't use Karaf features.  I thought about maybe using
>> OBR, but we use Artifactory and so I'm not sure if going down the OBR route
>> might ultimately not be possible (I could be wrong but Artifactory doesn't
>> appear to have OBR support), also I read that OSGi has moved away from OBR
>> to different repository mechanism (forget offhand what it's called).  I
>> looked into Apache Cave, but I don't want to rock the boat where I'm at yet
>> since I'm the only one pushing Karaf and OSGi currently.  I don't want to
>> try to push things out of my organizations comfort zone by getting too
>> radical in my project deployment.  I haven't gotten to read into the Karaf
>> 4.0 profiles yet.
>>
>> What it really boils down to is that I'm not sure which deployment
>> approach with Karaf would be the best to use out of all the options with
>> the goal of moving to a continuous deployment model.
>>
>> Hoping someone might be willing to comment on how they solved these
>> issues or maybe what direction I should look at going down that will allow
>> me to improve these aspects.  It took me a while to get things where they
>> are at, I want to be pretty confident in what path I go down next since if
>> it doesn't pan out, it will be a lot of potentially wasted time and effort.
>> :)
>>
>> Thanks in advance for any thoughts/suggestions.
>>
>> Ryan
>>
>
>
>
> --
>
> Apache Member
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
> Project Lead
> blog <http://notizblog.nierbeck.de/>
> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>
> Software Architect / Project Manager / Scrum Master
>
>

Reply via email to