Re: Maven search that uses the online APIs instead of the local index

Emilian Bold <[email protected]>
Newsgroups gmane.comp.java.netbeans.devel
Message-ID <CAL6R17DjY_zK5PVYzDgWUm+AttE3h5jr=-CQ4XWTJi_CoMN9hg@mail.gmail.com>
>For the start, or if nothing else, i would suggest we change the api so
that you can access the queries and RepositoryQueries.Result and see how
far you get with other queries ...

Yes, please. I also need access to the Accessor so I can instantiate Result.

>a bit ‘heavy’ - do you see this as a principial problem or did you already
run into particular performance problems?

The online Maven API doesn't provide as much data as you could query from
Lucene. So, I would have to make multiple requests in order to get the
artifacts and then for each artifact all the versions. But this is largely
not necessary since I doubt people expand all the artifact nodes to see the
versions -- only one or two nodes will be expanded. This is why
lazy-loading the children for those nodes would be better and it would
allow me to make fewer http requests.

This would imply some changes in MavenNodeFactory.

Right now a generic query only returns the latestVersion.

>- the user should be able to make the choice if the online or offline
index should be used

Yes, some settings panel would be nice for this.

>- not all repos provide the search service

I am explicitly using this only for 'central'.

> - how to deal with cases when the network isn't available

I can probably add some icon in the status bar then.

I would also add the repository as 'skipped' in RepositoryQueries.Result.
This will be shown in the UI as containing partial results.

--emi



On Mon, Jan 11, 2016 at 3:18 PM, Tomas Stupka <[email protected]>
wrote:

> Hi,
>
> we looked into it some time ago and weren’t satisfied with how the api
> worked. Can’t remember out of the top of my head, but from a brief look
> right now it seems that all (or most) of the queries could be covered by
> the api
>
> > Let me know what do you think so far and how could we get the existing
> maven.indexer APIs to a point where I can at least publish the plugin in
> the Plugin Portal for testing.
> For the start, or if nothing else, i would suggest we change the api so
> that you can access the queries and RepositoryQueries.Result and see how
> far you get with other queries ...
> On the way we can get a better idea what other areas of the IDE it will
> impact. (as mentioned bellow)
>
> > * the Add Dependency UI and logic is a bit 'heavy' compared to the
> online APIs. For example, it loads all the versions for a given artifact at
> once instead of lazy loading the versions only when a node is expanded (see
> MavenNodeFactory). Lazy loading would map better to a 2nd search using the
> online API.
> a bit ‘heavy’ - do you see this as a principial problem or did you already
> run into particular performance problems?
> feel free to file a task for this (patches are, of course, welcome)
>
> > * existing code assumes a single GenericFindQuery service provider (I
> fixed this by adding a composite service on the 1st position)
> on the long turn we would have to figure out a better solution. Also that
> there will be more problems we would have to resolve in the maven
> infrastructure and UI if this has to work properly.
> - the user should be able to make the choice if the online or offline
> index should be used
> - not all repos provide the search service
> - how to deal with cases when the network isn't available
> - etc.
>
> regards
> t.
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.