AFAIK, installing a p2 feature means not just copying set of files. It
computes required dependency trees too. Looking at the content.xml I think
it can take sometime for computation. But always better to check with
p2-dev as there can be cases which can be configured to
avoid unnecessary dependency checks.

 - Chethiya

On Mon, Sep 10, 2012 at 4:37 PM, Dileepa Jayakody <[email protected]> wrote:

> Hi Rajika,
>
> Thanks for the pointers.
> In the feature-manager we are using p2 sdk, calling the p2-api under the
> hood.
>
> For eg: to add and load a repository following code is used by us.
>
> IMetadataRepositoryManager metadataRepositoryManager =
> ServiceHolder.getMetadataRepositoryManager();
> IArtifactRepositoryManager artifactRepositoryManager =
> ServiceHolder.getArtifactRepositoryManager();
>
>             //adding metadata and artifact repositories
>             metadataRepositoryManager.addRepository(location);
>             artifactRepositoryManager.addRepository(location);
>             //Loading the metadata repository
>             metadataRepositoryManager.loadRepository(location, new
> NullProgressMonitor());
>             metadataRepositoryManager.setRepositoryProperty(location,
> IRepository.PROP_NICKNAME, nickName);
>
>             //Loading the artifact repository
>             artifactRepositoryManager.loadRepository(location, new
> NullProgressMonitor());
>             artifactRepositoryManager.setRepositoryProperty(location,
> IRepository.PROP_NICKNAME, nickName);
>
> First we need to clarify how p2-works under the hood when loading a
> repository from a given location.
> Ideally it should just index the feature list by reading the the
> repository's content.xml and artifacts.xml at this point without loading
> all the features to the memory ( I believe this is what you are also
> suggesting).
> I will discuss this with p2-dev also and see how we can improve our
> feature manager based on that.
>
> Thanks,
> Dileepa
>
>
> On Mon, Sep 10, 2012 at 4:12 PM, Rajika Kumarasiri <[email protected]>wrote:
>
>> I meant the consumer task should do the feature installation
>> asynchronously.
>>
>> Rajika
>>
>>
>> On Mon, Sep 10, 2012 at 3:54 PM, Rajika Kumarasiri <[email protected]>wrote:
>>
>>> If you have not done already, here how it should be done.
>>>
>>> There should be an instance of blocking queue instance which keeps track
>>> of requested features to install. There should be a producer task which
>>> drop next requested feature list to install into the blocking queue. There
>>> should be a consumer task will remove items from the blocking queue. For
>>> producing and consuming use
>>> http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html#put<http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html#put%28E%29>
>>>  and
>>> http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html#take()
>>>  so
>>> that your  consumer and producer task will not kill the CPU.
>>>
>>> Since Feature manager will not use frequently this model may not make
>>> sense much, but I think it will be useful when our p2 feature repository
>>> starts to grow.
>>>
>>> Hope this helps.
>>>
>>> Rajika
>>>
>>> On Mon, Sep 10, 2012 at 2:47 PM, Dileepa Jayakody <[email protected]>wrote:
>>>
>>>> Hi Rajika,
>>>>
>>>> Is the repository you are adding a local-repository or a remote
>>>> repository?
>>>>
>>>> Thanks,
>>>> Dileepa
>>>>
>>>> On Mon, Sep 10, 2012 at 2:44 PM, Rajika Kumarasiri <[email protected]>wrote:
>>>>
>>>>> I just tried to add the feature repository of 4.0.1 into a AS (built
>>>>> from 4.0.1 branch) and it seems it just take too much time.
>>>>>
>>>>> I still can see the message "Adding repository.." and it just there.
>>>>>
>>>>> This need to improve. We just need to load the list features (just
>>>>> names) and install any selected features asynchronously.
>>>>>
>>>>> It seems this loads the whole features into memory.
>>>>>
>>>>> Rajika
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> [email protected]
>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Dileepa Jayakody,
>>>> Software Engineer, WSO2 Inc.
>>>> Lean . Enterprise . Middleware
>>>>
>>>> Mobile : +94777-857616
>>>>
>>>>
>>>
>>
>
>
> --
> Dileepa Jayakody,
> Software Engineer, WSO2 Inc.
> Lean . Enterprise . Middleware
>
> Mobile : +94777-857616
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Chethiya Abeysinghe
Software Engineer; WSO2, Inc.;  http://wso2.com/
email: [email protected]     phone: +94 777444891
blog: chethiya3000.blogspot.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to