You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Bahadir Konu <ba...@gmail.com> on 2011/05/10 21:06:12 UTC

Launching application with a script

Hi everybody,

I have spent a lot of time trying to solve this but there seems to be
something I cannot think of.

I have an application which contains a bundle that extends gogo shell. This
bundle is dependent to built-in "gogo.command" bundle under the /bundle
directory.
When I put my bundles under auto-deploy directory and start the framework,
felix (it seems) tries to install my bundle before the built-in gogo.command
bundle and framewok fails to start. (BundleException: requirement failed..)

To overcome, I declared the start level of my bundles as "2" in the felix
config file. This solves the previous problem I mentioned but there is
another problem:
My bundles are *not* ACTIVE. They are INSTALLED. The built-in bundles are
active but my bundles are not!

What I need is a script that starts the framework and starts my bundles.
(One of the bundles extend gogo shell, and it is the UI of the application.)

So, currently what I can only do is, writing the script that can only
install the bundles. Then I ll tell user to issue START commands from the
shell manually before using the additional gogo commands of my applicaiton.

Is my strategy of launching incorrect? Is there another way of deploying and
launching my bundles with a script? If not, how can I solve the problems
that I mentioned?

Any help is appreciated..

Cheers,
Bahadır Konu

Re: Launching application with a script

Posted by Achim Nierbeck <bc...@googlemail.com>.
Hi Bahadir,

what you are doing sounds a lot like you might be interested in Apache
Karaf as your runtime,
this way you don't have to bother with startup scripts :-)
You might take a look at it

Regards, Achim

2011/5/11 Bahadir Konu <ba...@gmail.com>:
> Hi Richard,
>
> Thanks for the answer.
>
> While I was using maven with OBR repository and obr gogo commands,
> everything was fine.
>
> But after trying to use auto-deploy directory, I found out that I have to
> put this to my POM:
> <Embed-Dependency>org.apache.felix.gogo.runtime;scope=compile|runtime</Embed-Dependency>
>
> Now auto-deploy works.
>
> Cheers,
> Bahadır Konu
>
> On 10 May 2011 22:12, Richard S. Hall <he...@ungoverned.org> wrote:
>
>> The standard framework launcher (aka main), will install and start all
>> bundles contained in the "bundle/" directory by default. If you are putting
>> all of your bundles in there, then you should not get any resolve exceptions
>> since they are installed in one pass, then started in a second pass.
>>
>> If, on the other hand, you are talking about service dependencies and not
>> package dependencies, then it is possible the bundles won't start up in the
>> order you expect. But this likely means your bundles aren't coded properly.
>> They should not expect a particular order for service startup, they should
>> use a technique like service listeners, ServiceTracker, iPOJO, etc. to track
>> when services become available.
>>
>> -> richard
>>
>>
>> On 5/10/11 15:06, Bahadir Konu wrote:
>>
>>> Hi everybody,
>>>
>>> I have spent a lot of time trying to solve this but there seems to be
>>> something I cannot think of.
>>>
>>> I have an application which contains a bundle that extends gogo shell.
>>> This
>>> bundle is dependent to built-in "gogo.command" bundle under the /bundle
>>> directory.
>>> When I put my bundles under auto-deploy directory and start the framework,
>>> felix (it seems) tries to install my bundle before the built-in
>>> gogo.command
>>> bundle and framewok fails to start. (BundleException: requirement
>>> failed..)
>>>
>>> To overcome, I declared the start level of my bundles as "2" in the felix
>>> config file. This solves the previous problem I mentioned but there is
>>> another problem:
>>> My bundles are *not* ACTIVE. They are INSTALLED. The built-in bundles are
>>> active but my bundles are not!
>>>
>>> What I need is a script that starts the framework and starts my bundles.
>>> (One of the bundles extend gogo shell, and it is the UI of the
>>> application.)
>>>
>>> So, currently what I can only do is, writing the script that can only
>>> install the bundles. Then I ll tell user to issue START commands from the
>>> shell manually before using the additional gogo commands of my
>>> applicaiton.
>>>
>>> Is my strategy of launching incorrect? Is there another way of deploying
>>> and
>>> launching my bundles with a script? If not, how can I solve the problems
>>> that I mentioned?
>>>
>>> Any help is appreciated..
>>>
>>> Cheers,
>>> Bahadır Konu
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
>



-- 
--
*Achim Nierbeck*


Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
Committer & Project Lead

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Launching application with a script

Posted by "Richard S. Hall" <he...@ungoverned.org>.
On 5/11/11 3:40, Bahadir Konu wrote:
> Hi Richard,
>
> Thanks for the answer.
>
> While I was using maven with OBR repository and obr gogo commands,
> everything was fine.
>
> But after trying to use auto-deploy directory, I found out that I have to
> put this to my POM:
> <Embed-Dependency>org.apache.felix.gogo.runtime;scope=compile|runtime</Embed-Dependency>
>
> Now auto-deploy works.

Sounds odd, unless you are using packages that aren't exported. Without 
seeing the actual error, it is hard to say.

-> richard

> Cheers,
> Bahadır Konu
>
> On 10 May 2011 22:12, Richard S. Hall<he...@ungoverned.org>  wrote:
>
>> The standard framework launcher (aka main), will install and start all
>> bundles contained in the "bundle/" directory by default. If you are putting
>> all of your bundles in there, then you should not get any resolve exceptions
>> since they are installed in one pass, then started in a second pass.
>>
>> If, on the other hand, you are talking about service dependencies and not
>> package dependencies, then it is possible the bundles won't start up in the
>> order you expect. But this likely means your bundles aren't coded properly.
>> They should not expect a particular order for service startup, they should
>> use a technique like service listeners, ServiceTracker, iPOJO, etc. to track
>> when services become available.
>>
>> ->  richard
>>
>>
>> On 5/10/11 15:06, Bahadir Konu wrote:
>>
>>> Hi everybody,
>>>
>>> I have spent a lot of time trying to solve this but there seems to be
>>> something I cannot think of.
>>>
>>> I have an application which contains a bundle that extends gogo shell.
>>> This
>>> bundle is dependent to built-in "gogo.command" bundle under the /bundle
>>> directory.
>>> When I put my bundles under auto-deploy directory and start the framework,
>>> felix (it seems) tries to install my bundle before the built-in
>>> gogo.command
>>> bundle and framewok fails to start. (BundleException: requirement
>>> failed..)
>>>
>>> To overcome, I declared the start level of my bundles as "2" in the felix
>>> config file. This solves the previous problem I mentioned but there is
>>> another problem:
>>> My bundles are *not* ACTIVE. They are INSTALLED. The built-in bundles are
>>> active but my bundles are not!
>>>
>>> What I need is a script that starts the framework and starts my bundles.
>>> (One of the bundles extend gogo shell, and it is the UI of the
>>> application.)
>>>
>>> So, currently what I can only do is, writing the script that can only
>>> install the bundles. Then I ll tell user to issue START commands from the
>>> shell manually before using the additional gogo commands of my
>>> applicaiton.
>>>
>>> Is my strategy of launching incorrect? Is there another way of deploying
>>> and
>>> launching my bundles with a script? If not, how can I solve the problems
>>> that I mentioned?
>>>
>>> Any help is appreciated..
>>>
>>> Cheers,
>>> Bahadır Konu
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Launching application with a script

Posted by Bahadir Konu <ba...@gmail.com>.
Hi Richard,

Thanks for the answer.

While I was using maven with OBR repository and obr gogo commands,
everything was fine.

But after trying to use auto-deploy directory, I found out that I have to
put this to my POM:
<Embed-Dependency>org.apache.felix.gogo.runtime;scope=compile|runtime</Embed-Dependency>

Now auto-deploy works.

Cheers,
Bahadır Konu

On 10 May 2011 22:12, Richard S. Hall <he...@ungoverned.org> wrote:

> The standard framework launcher (aka main), will install and start all
> bundles contained in the "bundle/" directory by default. If you are putting
> all of your bundles in there, then you should not get any resolve exceptions
> since they are installed in one pass, then started in a second pass.
>
> If, on the other hand, you are talking about service dependencies and not
> package dependencies, then it is possible the bundles won't start up in the
> order you expect. But this likely means your bundles aren't coded properly.
> They should not expect a particular order for service startup, they should
> use a technique like service listeners, ServiceTracker, iPOJO, etc. to track
> when services become available.
>
> -> richard
>
>
> On 5/10/11 15:06, Bahadir Konu wrote:
>
>> Hi everybody,
>>
>> I have spent a lot of time trying to solve this but there seems to be
>> something I cannot think of.
>>
>> I have an application which contains a bundle that extends gogo shell.
>> This
>> bundle is dependent to built-in "gogo.command" bundle under the /bundle
>> directory.
>> When I put my bundles under auto-deploy directory and start the framework,
>> felix (it seems) tries to install my bundle before the built-in
>> gogo.command
>> bundle and framewok fails to start. (BundleException: requirement
>> failed..)
>>
>> To overcome, I declared the start level of my bundles as "2" in the felix
>> config file. This solves the previous problem I mentioned but there is
>> another problem:
>> My bundles are *not* ACTIVE. They are INSTALLED. The built-in bundles are
>> active but my bundles are not!
>>
>> What I need is a script that starts the framework and starts my bundles.
>> (One of the bundles extend gogo shell, and it is the UI of the
>> application.)
>>
>> So, currently what I can only do is, writing the script that can only
>> install the bundles. Then I ll tell user to issue START commands from the
>> shell manually before using the additional gogo commands of my
>> applicaiton.
>>
>> Is my strategy of launching incorrect? Is there another way of deploying
>> and
>> launching my bundles with a script? If not, how can I solve the problems
>> that I mentioned?
>>
>> Any help is appreciated..
>>
>> Cheers,
>> Bahadır Konu
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>

Re: Launching application with a script

Posted by "Richard S. Hall" <he...@ungoverned.org>.
The standard framework launcher (aka main), will install and start all 
bundles contained in the "bundle/" directory by default. If you are 
putting all of your bundles in there, then you should not get any 
resolve exceptions since they are installed in one pass, then started in 
a second pass.

If, on the other hand, you are talking about service dependencies and 
not package dependencies, then it is possible the bundles won't start up 
in the order you expect. But this likely means your bundles aren't coded 
properly. They should not expect a particular order for service startup, 
they should use a technique like service listeners, ServiceTracker, 
iPOJO, etc. to track when services become available.

-> richard

On 5/10/11 15:06, Bahadir Konu wrote:
> Hi everybody,
>
> I have spent a lot of time trying to solve this but there seems to be
> something I cannot think of.
>
> I have an application which contains a bundle that extends gogo shell. This
> bundle is dependent to built-in "gogo.command" bundle under the /bundle
> directory.
> When I put my bundles under auto-deploy directory and start the framework,
> felix (it seems) tries to install my bundle before the built-in gogo.command
> bundle and framewok fails to start. (BundleException: requirement failed..)
>
> To overcome, I declared the start level of my bundles as "2" in the felix
> config file. This solves the previous problem I mentioned but there is
> another problem:
> My bundles are *not* ACTIVE. They are INSTALLED. The built-in bundles are
> active but my bundles are not!
>
> What I need is a script that starts the framework and starts my bundles.
> (One of the bundles extend gogo shell, and it is the UI of the application.)
>
> So, currently what I can only do is, writing the script that can only
> install the bundles. Then I ll tell user to issue START commands from the
> shell manually before using the additional gogo commands of my applicaiton.
>
> Is my strategy of launching incorrect? Is there another way of deploying and
> launching my bundles with a script? If not, how can I solve the problems
> that I mentioned?
>
> Any help is appreciated..
>
> Cheers,
> Bahadır Konu
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org