--- a/glassfish.common/manifest.mf Tue Jun 04 12:30:26 2013 +0200
+++ a/glassfish.common/manifest.mf Wed Jun 05 10:58:28 2013 +0200
@@ -3,6 +3,6 @@
OpenIDE-Module-Install: org/netbeans/modules/glassfish/common/Installer.class
OpenIDE-Module-Layer: org/netbeans/modules/glassfish/common/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/glassfish/common/Bundle.properties
-OpenIDE-Module-Specification-Version: 1.33
+OpenIDE-Module-Specification-Version: 1.34
OpenIDE-Module-Provides: org.netbeans.modules.glassfish.common
--- a/glassfish.javaee/manifest.mf Tue Jun 04 12:30:26 2013 +0200
+++ a/glassfish.javaee/manifest.mf Wed Jun 05 10:58:28 2013 +0200
@@ -4,5 +4,5 @@
OpenIDE-Module-Layer: org/netbeans/modules/glassfish/javaee/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/glassfish/javaee/Bundle.properties
OpenIDE-Module-Provides: org.netbeans.modules.serverplugins.javaee
-OpenIDE-Module-Specification-Version: 1.23
+OpenIDE-Module-Specification-Version: 1.24
--- a/glassfish.javaee/nbproject/project.xml Tue Jun 04 12:30:26 2013 +0200
+++ a/glassfish.javaee/nbproject/project.xml Wed Jun 05 10:58:28 2013 +0200
@@ -135,7 +135,7 @@
0-1
- 1.30
+ 1.34
--- a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Bundle.properties Tue Jun 04 12:30:26 2013 +0200
+++ a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Bundle.properties Wed Jun 05 10:58:28 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.
--- a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Hk2JavaEEPlatformImpl.java Tue Jun 04 12:30:26 2013 +0200
+++ a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/Hk2JavaEEPlatformImpl.java Wed Jun 05 10:58:28 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,16 @@
@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());
+ } catch (NoClassDefFoundError ex) {
+ missingHk2LibraryProvider();
+ }
}
});
}
@@ -812,7 +829,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 +849,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 +905,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 +943,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 +1006,15 @@
*/
@Override
public boolean isBundled( String classFqn ) {
- List urls = libraryProvider.getJerseyClassPathURLs();
+ List urls;
+ try {
+ Hk2LibraryProvider libraryProvider = Hk2LibraryProvider.getProvider(
+ dm.getCommonServerSupport().getInstance());
+ urls = libraryProvider.getJerseyClassPathURLs();
+ } catch (NoClassDefFoundError ex) {
+ missingHk2LibraryProvider();
+ urls = Collections.emptyList();
+ }
for( URL url : urls ){
FileObject root = URLMapper.findFileObject(url);
if ( FileUtil.isArchiveFile(root)){
--- a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/JavaEEServerModuleFactory.java Tue Jun 04 12:30:26 2013 +0200
+++ a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/JavaEEServerModuleFactory.java Wed Jun 05 10:58:28 2013 +0200
@@ -57,14 +57,16 @@
import org.glassfish.tools.ide.data.GlassFishServer;
import org.netbeans.api.project.libraries.Library;
import org.netbeans.api.project.libraries.LibraryManager;
-import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceProperties;
import org.netbeans.modules.glassfish.spi.GlassfishModule;
import org.netbeans.modules.glassfish.spi.GlassfishModuleFactory;
import org.netbeans.modules.glassfish.spi.RegisteredDerbyServer;
import org.netbeans.modules.glassfish.spi.ServerUtilities;
import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceCreationException;
+import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceProperties;
import org.netbeans.spi.project.libraries.LibraryTypeProvider;
import org.netbeans.spi.project.libraries.support.LibrariesSupport;
+import org.openide.DialogDisplayer;
+import org.openide.NotifyDescriptor;
import org.openide.filesystems.FileUtil;
import org.openide.modules.InstalledFileLocator;
import org.openide.util.Lookup;
@@ -79,6 +81,17 @@
public class JavaEEServerModuleFactory implements GlassfishModuleFactory {
private static final JavaEEServerModuleFactory singleton = new JavaEEServerModuleFactory();
+
+ /**
+ * 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);
+ }
private JavaEEServerModuleFactory() {
}
@@ -205,9 +218,15 @@
}
}
- File j2eeDoc = InstalledFileLocator.getDefault().locate(
+ File j2eeDoc;
+ try {
+ j2eeDoc = InstalledFileLocator.getDefault().locate(
"docs/" + PERSISTENCE_JAVADOC,
Hk2LibraryProvider.JAVAEE_DOC_CODE_BASE, false);
+ } catch (NoClassDefFoundError ex) {
+ missingHk2LibraryProvider();
+ j2eeDoc = null;
+ }
if (j2eeDoc != null) {
docList.add(ServerUtilities.fileToUrl(j2eeDoc));
} else {
@@ -271,7 +290,13 @@
private static boolean ensureGlassFishApiSupport(GlassFishServer server) {
String installRoot = server.getServerRoot();
- List libraryList = Hk2LibraryProvider.getProvider(server).getJavaEEClassPathURLs();
+ List libraryList;
+ try {
+ libraryList = Hk2LibraryProvider.getProvider(server).getJavaEEClassPathURLs();
+ } catch (NoClassDefFoundError ex) {
+ missingHk2LibraryProvider();
+ libraryList = null;
+ }
List docList = new ArrayList();
String name = JAVA_EE_5_LIB;
@@ -279,10 +304,15 @@
if (f != null && f.exists()) {
name = JAVA_EE_6_LIB;
}
-
- File j2eeDoc = InstalledFileLocator.getDefault().locate(
- "docs/" + JAVA_EE_JAVADOC,
- Hk2LibraryProvider.JAVAEE_DOC_CODE_BASE, false);
+ File j2eeDoc;
+ try {
+ j2eeDoc = InstalledFileLocator.getDefault().locate(
+ "docs/" + JAVA_EE_JAVADOC,
+ Hk2LibraryProvider.JAVAEE_DOC_CODE_BASE, false);
+ } catch (NoClassDefFoundError ex) {
+ missingHk2LibraryProvider();
+ j2eeDoc = null;
+ }
if (j2eeDoc != null) {
try {
docList.add(ServerUtilities.fileToUrl(j2eeDoc));
@@ -295,7 +325,7 @@
// additional jar for glassfish-samples support
f = ServerUtilities.getJarName(installRoot, "web-core" + ServerUtilities.GFV3_VERSION_MATCHER);
- if (f != null && f.exists()) {
+ if (f != null && f.exists() && libraryList != null) {
try {
libraryList.add(ServerUtilities.fileToUrl(f));
} catch (MalformedURLException ex) {
@@ -309,7 +339,7 @@
String[] JERSEY_LIBS = (isGFV31 ? JAXRS_LIBRARIES_31 : JAXRS_LIBRARIES);
for (String entry : JERSEY_LIBS) {
f = ServerUtilities.getJarName(installRoot, entry + ServerUtilities.GFV3_VERSION_MATCHER);
- if ((f != null) && (f.exists())) {
+ if ((f != null) && (f.exists()) && libraryList != null) {
try {
libraryList.add(
FileUtil.getArchiveRoot(Utilities.toURI(f).toURL()));