Yes Chethiya p2 computes the dependencies before installing features. It is called a provisioning plan.
But Rajika's concern is that it's taking a long time at repository adding stage, which should not be performing any dependency computations. But I suspect p2 might be loading all the features in the repo to memory at this stage. Have to clarify with p2-dev. Thanks, Dileepa On Mon, Sep 10, 2012 at 5:47 PM, Chethiya Abeysinghe <[email protected]>wrote: > 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 > > > -- 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
