Hello, after playng with the embedder for some time, I have a few comments regarding integration with IDEs.
1. I'm using the embedder to load the project definition. I didn't manage to setup the embedder to be completely offline and not to check remote repositories at all. That can results in serious performance hits when the dependencies and everyting is not resolved locally. Since my netbeans IDE projects representation is based purely on maven data, I need to load fast, possibly not precisely correct and completely resolved data but fast. Opening plexus for example means opening 30+ projects (when one opens all the subprojects of the root parent pom.) It takes forever on a machine that didn't have the plexus sources prebuilt and everything resolved and cached locally. 2. when the data loads I need to be able to figure that something is not really correct with the setup. Example: To display dependencies of the project, I use the MavenProject.getCompile/Text/RuntimeArtifacts methods. I visually indicate which dependencies are direct and which are transitive. Fine. For plexus projects that I never built before, the metods didn't return anything. (I was off the net, in a train at that time) That way it pretended that there are no dependencies. I would like to have a visual indication in the UI somehow that the dependency is not found and that completion/compilation will not work and let use resolve these.. Will looking at getDependencies() list and comparing it to the artifacts help me here? 3. Error messaging. I have no idea how to handle that. Any hints? Currently it prints out some stuff to console. In the ideal case I would like to get the info in a format where I would be able to react to certain error conditions in the UI. For that matter I need to identify the problem precisely. Parsing the output is no good. (how do I redirect it elsewhere at least? 4. What are the memory requirements of embedder? I seems to me to be an overkill to start up a new instance of embedder for each project opened in the IDE. Can I get in trouble if I use single instance of embedder for loading of all projects and then have separate embedder instances for executing maven builds? Do I need to synchronize access to the singleton embedder instance? 5. plugin information is currently not implemented. any schedule? any hints how to implement it? 6. based on dependency artifact of the current project I would like to lookup the sources and javadocs in local repository. If not there, then on user request download it from the remote repositories. Thanks Milos Kleint
