diff -r 8997f97391c0 glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Bundle.properties --- a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Bundle.properties Tue Jun 04 12:30:26 2013 +0200 +++ b/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Bundle.properties Tue Jun 04 19:42:26 2013 +0200 @@ -98,3 +98,6 @@ DNAME_GF_JAVA_EE_IMPL=Java EE from GlassFish DESC_GF_JAVA_EE_IMPL=Java EE jars that are bundled with the most recently registered GlassFish installation + +Hk2JavaEEPlatformImpl.missingHk2LibraryProvider=Class Hk2LibraryProvider was \ +not found. Please check for GlassFish Server modules update. diff -r 8997f97391c0 glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Hk2JavaEEPlatformImpl.java --- a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Hk2JavaEEPlatformImpl.java Tue Jun 04 12:30:26 2013 +0200 +++ b/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Hk2JavaEEPlatformImpl.java Tue Jun 04 19:42:26 2013 +0200 @@ -67,6 +67,7 @@ import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.SourceGroup; +import org.netbeans.api.project.libraries.Library; import org.netbeans.modules.glassfish.spi.GlassfishModule; import org.netbeans.modules.glassfish.spi.ServerUtilities; import org.netbeans.modules.j2ee.deployment.common.api.J2eeLibraryTypeProvider; @@ -80,11 +81,13 @@ import org.netbeans.modules.javaee.specs.support.spi.JaxRsStackSupportImplementation; import org.netbeans.modules.websvc.wsstack.api.WSStack; import org.netbeans.modules.websvc.wsstack.spi.WSStackFactory; -import org.netbeans.api.project.libraries.Library; import org.netbeans.spi.project.libraries.LibraryImplementation; +import org.openide.DialogDisplayer; +import org.openide.NotifyDescriptor; import org.openide.filesystems.*; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.util.RequestProcessor; import org.openide.util.Utilities; import org.openide.util.lookup.Lookups; @@ -125,12 +128,21 @@ /** Keep local Lookup instance to be returned by getLookup method. */ private volatile Lookup lkp; - /** Jersey Library support. */ - private Hk2LibraryProvider libraryProvider; - //////////////////////////////////////////////////////////////////////////// // Static methods // //////////////////////////////////////////////////////////////////////////// + + /** + * Display missing Hk2LibraryProvider class warning. + */ + private static void missingHk2LibraryProvider() { + String message = NbBundle.getMessage(Hk2JavaEEPlatformImpl.class, + "Hk2JavaEEPlatformImpl.missingHk2LibraryProvider"); + NotifyDescriptor notifyDescriptor + = new NotifyDescriptor.Message(message); + DialogDisplayer.getDefault().notify(notifyDescriptor); + } + /** * Map GlassFish tooling SDK JavaSE platforms to NetBeans JavaSE platforms. *
@@ -300,8 +312,6 @@ this.displayName = displayName; this.libraryName = libraryName; this.lookupKey = lookupKey; - this.libraryProvider = Hk2LibraryProvider.getProvider( - dm.getCommonServerSupport().getInstance()); addFcl(); initLibraries(); } @@ -649,9 +659,17 @@ @Override public void run() { - libraryProvider.setJavaEELibraryImplementation( - lib, libraryName); - firePropertyChange(PROP_LIBRARIES, null, libraries.clone()); + try { + Hk2LibraryProvider libraryProvider + = Hk2LibraryProvider.getProvider( + dm.getCommonServerSupport().getInstance()); + libraryProvider + .setJavaEELibraryImplementation(lib, libraryName); + firePropertyChange(PROP_LIBRARIES, null, libraries.clone()); + throw new NoClassDefFoundError(); + } catch (NoClassDefFoundError ex) { + missingHk2LibraryProvider(); + } } }); } @@ -812,7 +830,14 @@ * @return GlassFish bundled libraries provider. */ public Hk2LibraryProvider getLibraryProvider() { - return libraryProvider; + try { + Hk2LibraryProvider libraryProvider = Hk2LibraryProvider.getProvider( + dm.getCommonServerSupport().getInstance()); + return libraryProvider; + } catch (NoClassDefFoundError ex) { + missingHk2LibraryProvider(); + return null; + } } private class JaxRsStackSupportImpl implements JaxRsStackSupportImplementation { @@ -825,7 +850,15 @@ */ @Override public boolean addJsr311Api( Project project ) { - Library library = libraryProvider.getJaxRsLibrary(); + Library library; + try { + Hk2LibraryProvider libraryProvider = Hk2LibraryProvider.getProvider( + dm.getCommonServerSupport().getInstance()); + library = libraryProvider.getJaxRsLibrary(); + } catch (NoClassDefFoundError ex) { + missingHk2LibraryProvider(); + library = null; + } if ( library!= null ){ try { return ProjectClassPathModifier.addLibraries( @@ -873,7 +906,15 @@ */ @Override public boolean extendsJerseyProjectClasspath( Project project ) { - Library library = libraryProvider.getJerseyLibrary(); + Library library; + try { + Hk2LibraryProvider libraryProvider = Hk2LibraryProvider.getProvider( + dm.getCommonServerSupport().getInstance()); + library = libraryProvider.getJerseyLibrary(); + } catch (NoClassDefFoundError ex) { + missingHk2LibraryProvider(); + library = null; + } FileObject sourceRoot = getSourceRoot(project); if (sourceRoot == null) { return false; @@ -903,7 +944,15 @@ @Override public void removeJaxRsLibraries(Project project) { - Library library = libraryProvider.getJerseyLibrary(); + Library library; + try { + Hk2LibraryProvider libraryProvider = Hk2LibraryProvider.getProvider( + dm.getCommonServerSupport().getInstance()); + library = libraryProvider.getJerseyLibrary(); + } catch (NoClassDefFoundError ex) { + missingHk2LibraryProvider(); + library = null; + } FileObject sourceRoot = getSourceRoot(project); if ( sourceRoot != null){ String[] classPathTypes = new String[]{ ClassPath.COMPILE , @@ -958,7 +1007,15 @@ */ @Override public boolean isBundled( String classFqn ) { - List