Hi Stephen,

the package is exported as public (not friend), so You should be able to look for the implementation (which might not be public, but we only need the FQCN).

What "parameter 3" are You referring to?

Regards
P.



Am 25.05.2018 um 14:44 schrieb sgpa...@mainscreen.com:
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





---------------------------------------------------------------------
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