I'll try looking up the pcpmi if the visibility will let me - The pcpmi can at 
least provide a list of the extensible source groups, which should lead to the 
right value for the second parameter to addLibraries. How do get the list of 
types for parameter 3 I wonder?

On 2018/05/25 11:57:42, Peter Nabbefeld <peter.nabbef...@gmx.de> wrote: 
> 
> Hi Stephen,
> 
> I've found the following source code:
> 
>      @SuppressWarnings("deprecation")
>      public static 
> org.netbeans.spi.java.project.classpath.ProjectClassPathExtender 
> extenderForModifier(final Project p) {
>          return new 
> org.netbeans.spi.java.project.classpath.ProjectClassPathExtender() {
>              @Override public boolean addLibrary(Library library) throws 
> IOException {
>                  ProjectClassPathModifierImplementation pcpmi = 
> p.getLookup().lookup(ProjectClassPathModifierImplementation.class);
>                  return pcpmi != null ? 
> extenderForModifier(pcpmi).addLibrary(library) : false;
>              }
>      ...
> 
> As the J2SE implementation is rather old, I'd guess it does not provide 
> its own ProjectClassPathModifierImplementation - could You check its 
> exact type (FQCN)? That will probably make things more clear (and easier 
> to find the implementation code).
> 
> Kind regards
> Peter
> 
> 
> Am 25.05.2018 um 12:59 schrieb sgpa...@mainscreen.com:
> > Hi Peter,
> > Thanks for the quick reply.
> > The plugin adds a library to the classpath, currently by rewriting the 
> > projevct properties file. I am trying to use the API instead. I can get it 
> > working using ProjectClassPathExtender but not ProjectClassPathModifier, 
> > which gives me:
> > Java.lang.UnsupportedOperationException: Project in 
> > C:\Users\sparry\ownCloud\development\NetbeansProjects\JavaApplication16 of 
> > class org.netbeans.modules.java.j2seproject.J2SEProject has a 
> > ProjectClassPathModifierImplementation but it will not handle 
> > classpath/compile for 
> > C:\Users\sparry\ownCloud\development\NetbeansProjects\JavaApplication16 
> > extensible source groups: 
> > C:\Users\sparry\ownCloud\development\NetbeansProjects\JavaApplication16\src
> > at 
> > org.netbeans.api.java.project.classpath.ProjectClassPathModifier.findExtensible(ProjectClassPathModifier.java:388)
> >
> > The code I have been trying, including the three different variations I 
> > have tried follows:
> >              FileObject projectRoot = project.getProjectDirectory();
> >              Sources sources = ProjectUtils.getSources(project);
> >              SourceGroup sourceGroup = 
> > sources.getSourceGroups(Sources.TYPE_GENERIC)[0];
> >              FileObject sgRoot = sourceGroup.getRootFolder();
> >              Library lib = libraryManager.getLibrary(LIB_NAME);
> >              ProjectClassPathModifier pcpm = 
> > projectLookup.lookup(ProjectClassPathModifier.class);
> >              ProjectClassPathExtender pcpe = 
> > pcpm.extenderForModifier(project);
> >              pcpe.addLibrary(lib); // Works but deprecated
> >              pcpm.addLibraries(new Library[]{lib}, projectRoot, 
> > ClassPath.COMPILE); // Fails regardless
> >              pcpm.addLibraries(new Library[]{lib}, sgRoot, 
> > ClassPath.COMPILE); // Fails regardless
> >
> >
> > On 2018/05/25 10:11:41, Peter Nabbefeld <peter.nabbef...@gmx.de> wrote:
> >> Hi Stephen,
> >>
> >> what does it mean, You "cannot get it working"? Which problems
> >> (behaviour or exceptions) do You have exactly?
> >>
> >> Kind regards
> >> Peter
> >>
> >>
> >> Am 25.05.2018 um 11:50 schrieb sgpa...@mainscreen.com:
> >>> Hi,
> >>> Can someone please direct me to the correct place for asking questions 
> >>> regarding plugin devlopment?
> >>> I am having trouble contributing a fix to a bug in a third-party NB 8 
> >>> plugin - I have a fix using the deprecated ProjectClassPathExtender class 
> >>> but I want to use the replacement ProjectClassPathModifier class, but I 
> >>> cannot get it working.
> >>> Thanks
> >>> Stephen Parry
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
> >>> For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
> >>>
> >>> For further information about the NetBeans mailing lists, visit:
> >>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>>
> >>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
> >> For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
> >>
> >> For further information about the NetBeans mailing lists, visit:
> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>
> >>
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
> > For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
> >
> > For further information about the NetBeans mailing lists, visit:
> > https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
> For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
> 
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> 
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to