Author: snjeza
Date: 2010-06-20 14:39:41 -0400 (Sun, 20 Jun 2010)
New Revision: 22902
Added:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/HibernateProjectConfigurator.java
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/META-INF/MANIFEST.MF
trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.properties
trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.xml
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/Messages.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/messages.properties
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java
Log:
https://jira.jboss.org/browse/JBIDE-6487 Add Maven Hibernate Configurator
Modified: trunk/maven/plugins/org.jboss.tools.maven.seam/META-INF/MANIFEST.MF
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.seam/META-INF/MANIFEST.MF 2010-06-19
08:11:00 UTC (rev 22901)
+++ trunk/maven/plugins/org.jboss.tools.maven.seam/META-INF/MANIFEST.MF 2010-06-20
18:39:41 UTC (rev 22902)
@@ -17,7 +17,8 @@
org.eclipse.jst.j2ee,
org.eclipse.wst.common.emfworkbench.integration,
org.eclipse.jst.jsf.core,
- org.jboss.tools.cdi.core
+ org.jboss.tools.cdi.core,
+ org.hibernate.eclipse.console
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: %Bundle-Vendor
Modified: trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.properties 2010-06-19 08:11:00
UTC (rev 22901)
+++ trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.properties 2010-06-20 18:39:41
UTC (rev 22902)
@@ -3,6 +3,7 @@
Bundle-Name = Integration Seam projects with Maven
Seam_Project_configurator = Seam Project configurator
CDI_Project_configurator = CDI Project configurator
+Hibernate_Project_configurator = Hibernate Project configurator
JSF_Project_configurator = JSF Project configurator
Portlet_Core_Project_configurator = Portlet Core Project configurator
JBoss_Maven_Integration = JBoss Maven Integration
\ No newline at end of file
Modified: trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.xml
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.xml 2010-06-19 08:11:00 UTC (rev
22901)
+++ trunk/maven/plugins/org.jboss.tools.maven.seam/plugin.xml 2010-06-20 18:39:41 UTC (rev
22902)
@@ -23,6 +23,13 @@
<extension point="org.maven.ide.eclipse.projectConfigurators">
<configurator
+ id="org.jboss.tools.maven.cdi.configurator"
+
class="org.jboss.tools.maven.seam.configurators.HibernateProjectConfigurator"
+ name="%Hibernate_Project_configurator" priority="250"/>
+ </extension>
+
+ <extension point="org.maven.ide.eclipse.projectConfigurators">
+ <configurator
id="org.jboss.tools.maven.jsf.configurator"
class="org.jboss.tools.maven.seam.configurators.JSFProjectConfigurator"
name="%JSF_Project_configurator" priority="150"/>
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java 2010-06-19
08:11:00 UTC (rev 22901)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java 2010-06-20
18:39:41 UTC (rev 22902)
@@ -109,6 +109,10 @@
public static final boolean CONFIGURE_CDI_VALUE = true;
+ public static final String CONFIGURE_HIBERNATE = "configureHibernate";
//$NON-NLS-1$
+
+ public static final boolean CONFIGURE_HIBERNATE_VALUE = true;
+
// The shared instance
private static MavenSeamActivator plugin;
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/Messages.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/Messages.java 2010-06-19
08:11:00 UTC (rev 22901)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/Messages.java 2010-06-20
18:39:41 UTC (rev 22902)
@@ -14,6 +14,7 @@
public static String SeamConfiguratorPreferencePage_Configure_JBoss_Seam_Portlet_facet;
public static String SeamConfiguratorPreferencePage_Configure_JSF_facet;
public static String SeamConfiguratorPreferencePage_Configure_CDI_facet;
+ public static String SeamConfiguratorPreferencePage_Configure_Hibernate;
public static String SeamConfiguratorPreferencePage_Configure_Seam_Artifacts;
public static String SeamConfiguratorPreferencePage_Configure_Seam_Runtime;
public static String
SeamConfiguratorPreferencePage_Configure_Seam_when_importing_Maven_projects;
Added:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/HibernateProjectConfigurator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/HibernateProjectConfigurator.java
(rev 0)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/HibernateProjectConfigurator.java 2010-06-20
18:39:41 UTC (rev 22902)
@@ -0,0 +1,82 @@
+package org.jboss.tools.maven.seam.configurators;
+
+import java.util.List;
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.project.MavenProject;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.hibernate.eclipse.console.properties.HibernatePropertiesConstants;
+import org.hibernate.eclipse.console.utils.ProjectUtils;
+import org.jboss.tools.maven.seam.MavenSeamActivator;
+import org.maven.ide.eclipse.project.IMavenProjectFacade;
+import org.maven.ide.eclipse.project.MavenProjectChangedEvent;
+import org.maven.ide.eclipse.project.configurator.AbstractProjectConfigurator;
+import org.maven.ide.eclipse.project.configurator.ProjectConfigurationRequest;
+import org.osgi.service.prefs.Preferences;
+
+public class HibernateProjectConfigurator extends AbstractProjectConfigurator {
+
+ private static final String HIBERNATE_GROUP_ID = "org.hibernate";
//$NON-NLS-1$
+ private static final String HIBERNATE_ARTIFACT_ID_PREFIX = "hibernate";
//$NON-NLS-1$
+
+ @Override
+ public void configure(ProjectConfigurationRequest request,
+ IProgressMonitor monitor) throws CoreException {
+ MavenProject mavenProject = request.getMavenProject();
+ IProject project = request.getProject();
+ configureInternal(mavenProject,project, monitor);
+ }
+
+ private void configureInternal(MavenProject mavenProject,IProject project,
+ IProgressMonitor monitor) throws CoreException {
+ IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
+ boolean configureHibernate = store.getBoolean(MavenSeamActivator.CONFIGURE_HIBERNATE);
+ if (!configureHibernate) {
+ return;
+ }
+
+ if (isHibernateProject(mavenProject)) {
+ IScopeContext scope = new ProjectScope(project);
+ Preferences node =
scope.getNode(HibernatePropertiesConstants.HIBERNATE_CONSOLE_NODE);
+ if (node != null) {
+ boolean enabled = node.getBoolean(HibernatePropertiesConstants.HIBERNATE3_ENABLED,
false);
+ if (enabled) {
+ return;
+ }
+ }
+ ProjectUtils.toggleHibernateOnProject(project, true, ""); //$NON-NLS-1$
+ }
+ }
+
+
+ @Override
+ protected void mavenProjectChanged(MavenProjectChangedEvent event,
+ IProgressMonitor monitor) throws CoreException {
+ IMavenProjectFacade facade = event.getMavenProject();
+ if(facade != null) {
+ IProject project = facade.getProject();
+ MavenProject mavenProject = facade.getMavenProject(monitor);
+ configureInternal(mavenProject, project, monitor);
+ }
+ super.mavenProjectChanged(event, monitor);
+ }
+
+ private boolean isHibernateProject(MavenProject mavenProject) {
+ List<Dependency> dependencies = mavenProject.getDependencies();
+ for (Dependency dependency:dependencies) {
+ String groupId = dependency.getGroupId();
+ if (groupId != null && HIBERNATE_GROUP_ID.equals(groupId)) {
+ String artifactId = dependency.getArtifactId();
+ if (artifactId != null &&
artifactId.startsWith(HIBERNATE_ARTIFACT_ID_PREFIX)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/messages.properties
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/messages.properties 2010-06-19
08:11:00 UTC (rev 22901)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/messages.properties 2010-06-20
18:39:41 UTC (rev 22902)
@@ -3,11 +3,12 @@
MavenSeamActivator_The_file_does_not_exist=The {0} file doesn't exist.
MavenSeamActivator_The_folder_does_not_exist=The {0} folder doesn't exist.
PortletProjectConfigurator_The_project_does_not_contain_the_Web_Module_facet=The project
doesn't contain the Web Module facet.
-SeamConfiguratorPreferencePage_Configure_JBoss_JSF_Portlet_facet=Configure JBoss JSF
Portlet facet when importing Maven projects
-SeamConfiguratorPreferencePage_Configure_JBoss_Portlet_Core_facet=Configure JBoss Portlet
Core facet when importing Maven projects
-SeamConfiguratorPreferencePage_Configure_JBoss_Seam_Portlet_facet=Configure JBoss Seam
Portlet facet when importing Maven projects
-SeamConfiguratorPreferencePage_Configure_JSF_facet=Configure JSF facet when importing
Maven projects
-SeamConfiguratorPreferencePage_Configure_CDI_facet=Configure CDI facet when importing
Maven projects
-SeamConfiguratorPreferencePage_Configure_Seam_Artifacts=Configure Seam Artifacts (view
folder, model source folder, package ...)
-SeamConfiguratorPreferencePage_Configure_Seam_Runtime=Configure Seam Runtime
-SeamConfiguratorPreferencePage_Configure_Seam_when_importing_Maven_projects=Configure
Seam when importing Maven projects
+SeamConfiguratorPreferencePage_Configure_JBoss_JSF_Portlet_facet=JBoss JSF Portlet facet
+SeamConfiguratorPreferencePage_Configure_JBoss_Portlet_Core_facet=JBoss Portlet Core
facet
+SeamConfiguratorPreferencePage_Configure_JBoss_Seam_Portlet_facet=JBoss Seam Portlet
facet
+SeamConfiguratorPreferencePage_Configure_JSF_facet=JSF facet
+SeamConfiguratorPreferencePage_Configure_CDI_facet=CDI facet
+SeamConfiguratorPreferencePage_Configure_Hibernate=Hibernate
+SeamConfiguratorPreferencePage_Configure_Seam_Artifacts=Seam Artifacts (view folder,
model source folder, package ...)
+SeamConfiguratorPreferencePage_Configure_Seam_Runtime=Seam Runtime
+SeamConfiguratorPreferencePage_Configure_Seam_when_importing_Maven_projects=Seam
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java 2010-06-19
08:11:00 UTC (rev 22901)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java 2010-06-20
18:39:41 UTC (rev 22902)
@@ -9,6 +9,7 @@
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.jboss.tools.maven.seam.MavenSeamActivator;
@@ -26,6 +27,7 @@
private Button configureJSFPortletButton;
private Button configureSeamPortletButton;
private Button configureCDIButton;
+ private Button configureHibernateButton;
@Override
protected Control createContents(Composite parent) {
@@ -35,6 +37,8 @@
layout.marginHeight = 0;
composite.setLayout(layout);
+ Label label = new Label(composite, SWT.NONE);
+ label.setText("When importing Maven projects configure the following:");
configureSeamButton = new Button(composite,SWT.CHECK);
configureSeamButton.setText(Messages.SeamConfiguratorPreferencePage_Configure_Seam_when_importing_Maven_projects);
IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
@@ -87,6 +91,12 @@
configureCDIButton.setText(Messages.SeamConfiguratorPreferencePage_Configure_CDI_facet);
boolean configureCDI = store.getBoolean(MavenSeamActivator.CONFIGURE_CDI);
configureCDIButton.setSelection(configureCDI);
+
+ configureHibernateButton = new Button(composite,SWT.CHECK);
+ configureHibernateButton.setText(Messages.SeamConfiguratorPreferencePage_Configure_Hibernate);
+ boolean configureHibernate = store.getBoolean(MavenSeamActivator.CONFIGURE_HIBERNATE);
+ configureHibernateButton.setSelection(configureHibernate);
+
return composite;
}
@@ -103,6 +113,7 @@
configureJSFPortletButton.setSelection(MavenSeamActivator.CONFIGURE_JSFPORTLET_VALUE);
configureSeamPortletButton.setSelection(MavenSeamActivator.CONFIGURE_SEAMPORTLET_VALUE);
configureCDIButton.setSelection(MavenSeamActivator.CONFIGURE_CDI_VALUE);
+ configureHibernateButton.setSelection(MavenSeamActivator.CONFIGURE_HIBERNATE_VALUE);
IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
store.setValue(MavenSeamActivator.CONFIGURE_SEAM,
MavenSeamActivator.CONFIGURE_SEAM_VALUE);
@@ -113,6 +124,7 @@
store.setValue(MavenSeamActivator.CONFIGURE_SEAM_RUNTIME,
MavenSeamActivator.CONFIGURE_SEAM_RUNTIME_VALUE);
store.setValue(MavenSeamActivator.CONFIGURE_SEAM_ARTIFACTS,
MavenSeamActivator.CONFIGURE_SEAM_ARTIFACTS_VALUE);
store.setValue(MavenSeamActivator.CONFIGURE_CDI,
MavenSeamActivator.CONFIGURE_CDI_VALUE);
+ store.setValue(MavenSeamActivator.CONFIGURE_HIBERNATE,
MavenSeamActivator.CONFIGURE_HIBERNATE_VALUE);
configureSeamRuntimeButton.setEnabled(configureSeamButton.getSelection());
configureSeamArtifactsButton.setEnabled(configureSeamButton.getSelection());
super.performDefaults();
@@ -129,6 +141,8 @@
store.setValue(MavenSeamActivator.CONFIGURE_SEAM_RUNTIME,
configureSeamRuntimeButton.getSelection());
store.setValue(MavenSeamActivator.CONFIGURE_SEAM_ARTIFACTS,
configureSeamArtifactsButton.getSelection());
store.setValue(MavenSeamActivator.CONFIGURE_CDI, configureCDIButton.getSelection());
+ store.setValue(MavenSeamActivator.CONFIGURE_HIBERNATE,
configureHibernateButton.getSelection());
+
return super.performOk();
}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java 2010-06-19
08:11:00 UTC (rev 22901)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java 2010-06-20
18:39:41 UTC (rev 22902)
@@ -37,6 +37,9 @@
node.putBoolean(
MavenSeamActivator.CONFIGURE_CDI,
MavenSeamActivator.CONFIGURE_CDI_VALUE);
+ node.putBoolean(
+ MavenSeamActivator.CONFIGURE_HIBERNATE,
+ MavenSeamActivator.CONFIGURE_HIBERNATE_VALUE);
}
}