[jbosstools-commits] JBoss Tools SVN: r22902 - in trunk/maven/plugins/org.jboss.tools.maven.seam: META-INF and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Sun Jun 20 14:39:41 EDT 2010


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);
 	}
 
 }



More information about the jbosstools-commits mailing list