diff --git a/j2ee.common/src/org/netbeans/modules/j2ee/common/J2eeProjectCapabilities.java b/j2ee.common/src/org/netbeans/modules/j2ee/common/J2eeProjectCapabilities.java
--- a/j2ee.common/src/org/netbeans/modules/j2ee/common/J2eeProjectCapabilities.java
+++ b/j2ee.common/src/org/netbeans/modules/j2ee/common/J2eeProjectCapabilities.java
@@ -128,6 +128,11 @@
&& platform.isToolSupported("defaultPersistenceProviderJavaEE5"); // NOI18N
}
+ public boolean isServerInstanceSet() {
+ return getPlatform() != null;
+ }
+
+
private J2eePlatform getPlatform() {
try {
String instance = provider.getServerInstanceID();
diff --git a/j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarJPAModuleInfo.java b/j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarJPAModuleInfo.java
--- a/j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarJPAModuleInfo.java
+++ b/j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarJPAModuleInfo.java
@@ -41,6 +41,7 @@
package org.netbeans.modules.j2ee.ejbjarproject;
+import org.netbeans.modules.j2ee.common.J2eeProjectCapabilities;
import org.netbeans.modules.j2ee.persistence.spi.moduleinfo.JPAModuleInfo;
/**
@@ -64,4 +65,10 @@
return project.getEjbModule().getModuleVersion();
}
+ @Override
+ public boolean isServerInstanceSet() {
+ return J2eeProjectCapabilities.forProject(project).isServerInstanceSet();
+ }
+
+
}
diff --git a/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/spi/moduleinfo/JPAModuleInfo.java b/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/spi/moduleinfo/JPAModuleInfo.java
--- a/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/spi/moduleinfo/JPAModuleInfo.java
+++ b/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/spi/moduleinfo/JPAModuleInfo.java
@@ -69,5 +69,7 @@
* @return the version number of the module.
*/
String getVersion();
+
+ boolean isServerInstanceSet();
}
diff --git a/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/Util.java b/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/Util.java
--- a/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/Util.java
+++ b/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/Util.java
@@ -226,6 +226,18 @@
return Util.isSupportedJavaEEVersion(project) && providerSupplier != null && providerSupplier.supportsDefaultProvider();
}
+ /** Returns true if the project represents a Java EE project (not Java SE), which does
+ * not have a server instance set. This could be e.g. a Maven project without a server set,
+ * or Ant project with broken server reference.
+ */
+ public static boolean isServerInstanceMissing(Project project) {
+ JPAModuleInfo moduleInfo = project.getLookup().lookup(JPAModuleInfo.class);
+ if (moduleInfo == null) {
+ return false;
+ }
+ return !moduleInfo.isServerInstanceSet();
+ }
+
public static Provider getDefaultProvider(Project project) {
PersistenceProviderSupplier providerSupplier = project.getLookup().lookup(PersistenceProviderSupplier.class);
return (providerSupplier != null && providerSupplier.supportsDefaultProvider()) ? providerSupplier.getSupportedProviders().get(0) : null;
diff --git a/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardPanelJdbc.java b/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardPanelJdbc.java
--- a/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardPanelJdbc.java
+++ b/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardPanelJdbc.java
@@ -61,6 +61,7 @@
import org.netbeans.modules.j2ee.persistence.provider.ProviderUtil;
import org.netbeans.modules.j2ee.persistence.util.PersistenceProviderComboboxHelper;
import org.netbeans.modules.j2ee.persistence.util.SourceLevelChecker;
+import org.netbeans.modules.j2ee.persistence.wizard.Util;
import org.netbeans.modules.j2ee.persistence.wizard.unit.PersistenceUnitWizardPanel.TableGeneration;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle;
@@ -210,6 +211,11 @@
}
}
}
+ if (warning == null) {
+ if (Util.isServerInstanceMissing(project)) {
+ warning = "You should set the server!";
+ }
+ }
ImageIcon icon = null;
if(warning != null){
icon = ImageUtilities.loadImageIcon("org/netbeans/modules/j2ee/persistence/ui/resources/warning.gif", false); //NOI18N
diff --git a/maven.j2ee/src/org/netbeans/modules/maven/j2ee/JPAStuffImpl.java b/maven.j2ee/src/org/netbeans/modules/maven/j2ee/JPAStuffImpl.java
--- a/maven.j2ee/src/org/netbeans/modules/maven/j2ee/JPAStuffImpl.java
+++ b/maven.j2ee/src/org/netbeans/modules/maven/j2ee/JPAStuffImpl.java
@@ -47,8 +47,11 @@
import org.netbeans.modules.maven.j2ee.ejb.*;
import org.netbeans.api.project.Project;
import org.netbeans.modules.j2ee.common.DatasourceUIHelper;
+import org.netbeans.modules.j2ee.common.J2eeProjectCapabilities;
import org.netbeans.modules.j2ee.deployment.common.api.ConfigurationException;
import org.netbeans.modules.j2ee.deployment.common.api.Datasource;
+import org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment;
+import org.netbeans.modules.j2ee.deployment.devmodules.api.InstanceRemovedException;
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
import org.netbeans.modules.j2ee.persistence.spi.datasource.JPADataSource;
import org.netbeans.modules.j2ee.persistence.spi.datasource.JPADataSourcePopulator;
@@ -130,6 +133,21 @@
return null;
}
+ @Override
+ public boolean isServerInstanceSet() {
+ return J2eeProjectCapabilities.forProject(project).isServerInstanceSet();
+// J2eeModuleProvider; prvd = project.getLookup().lookup(J2eeModuleProvider.class);
+// if (prvd == null) {
+// return false;
+// }
+// try {
+// return Deployment.getDefault().
+// getServerInstance(prvd.getServerInstanceID()).getJ2eePlatform() != null;
+// } catch (InstanceRemovedException e) {
+// return false;
+// }
+ }
+
/**
* Provides JPADataSource
interface for Datasource
s.
diff --git a/web.project/src/org/netbeans/modules/web/project/WebJPAModuleInfo.java b/web.project/src/org/netbeans/modules/web/project/WebJPAModuleInfo.java
--- a/web.project/src/org/netbeans/modules/web/project/WebJPAModuleInfo.java
+++ b/web.project/src/org/netbeans/modules/web/project/WebJPAModuleInfo.java
@@ -41,6 +41,7 @@
package org.netbeans.modules.web.project;
+import org.netbeans.modules.j2ee.common.J2eeProjectCapabilities;
import org.netbeans.modules.j2ee.persistence.spi.moduleinfo.JPAModuleInfo;
import org.netbeans.modules.j2ee.persistence.spi.moduleinfo.JPAModuleInfo.ModuleType;
@@ -67,4 +68,10 @@
return project.getWebModule().getModuleVersion();
}
+ @Override
+ public boolean isServerInstanceSet() {
+ return J2eeProjectCapabilities.forProject(project).isServerInstanceSet();
+ }
+
+
}