Author: dgeraskov
Date: 2011-06-22 08:06:20 -0400 (Wed, 22 Jun 2011)
New Revision: 32285
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java
Log:
https://issues.jboss.org/browse/JBIDE-9201
Eclipse frozen when starting workspace with JPA projects
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java 2011-06-22
12:06:09 UTC (rev 32284)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java 2011-06-22
12:06:20 UTC (rev 32285)
@@ -11,6 +11,7 @@
package org.jboss.tools.hibernate.jpt.core.internal.context;
import java.io.File;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -26,7 +27,12 @@
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jpt.common.utility.internal.CollectionTools;
import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
+import org.eclipse.jpt.jpa.core.context.Generator;
+import org.eclipse.jpt.jpa.core.context.GeneratorContainer;
+import org.eclipse.jpt.jpa.core.context.Query;
+import org.eclipse.jpt.jpa.core.context.QueryContainer;
import org.eclipse.jpt.jpa.core.context.persistence.Persistence;
import org.eclipse.jpt.jpa.core.internal.context.persistence.AbstractPersistenceUnit;
import org.eclipse.jpt.jpa.core.resource.persistence.XmlPersistenceUnit;
@@ -37,6 +43,7 @@
import
org.jboss.tools.hibernate.jpt.core.internal.context.basic.BasicHibernateProperties;
import org.jboss.tools.hibernate.jpt.core.internal.context.basic.Hibernate;
import
org.jboss.tools.hibernate.jpt.core.internal.context.basic.HibernatePersistenceUnitProperties;
+import
org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaQueryContainer;
import org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaTypeDef;
import
org.jboss.tools.hibernate.jpt.core.internal.context.persistence.HibernatePersistenceUnitPropertiesBuilder;
@@ -138,6 +145,28 @@
}
}
}
+
+ @Override
+ protected void addQueriesTo(QueryContainer queryContainer,
+ ArrayList<Query> queryList) {
+ super.addQueriesTo(queryContainer, queryList);
+ if (queryContainer instanceof HibernateJavaQueryContainer) {
+ CollectionTools.addAll(queryList,
((HibernateJavaQueryContainer)queryContainer).hibernateNamedQueries());
+ CollectionTools.addAll(queryList,
((HibernateJavaQueryContainer)queryContainer).hibernateNamedNativeQueries());
+ }
+
+ }
+
+ @Override
+ protected void addGeneratorsTo(GeneratorContainer generatorContainer,
+ ArrayList<Generator> generatorList) {
+ super.addGeneratorsTo(generatorContainer, generatorList);
+ //it could be orm generators container
+ //which is not implemented for hibernate platform
+ if (generatorContainer instanceof HibernateGeneratorContainer) {
+ CollectionTools.addAll(generatorList,
((HibernateGeneratorContainer)generatorContainer).genericGenerators());
+ }
+ }
// ********** Validation ***********************************************
@Override
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java 2011-06-22
12:06:09 UTC (rev 32284)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java 2011-06-22
12:06:20 UTC (rev 32285)
@@ -57,7 +57,7 @@
@Override
public void synchronizeWithResourceModel() {
super.synchronizeWithResourceModel();
- this.initializeGenericGenerators();
+ this.syncGenericGenerators();
}
@Override
@@ -196,24 +196,6 @@
}
/* (non-Javadoc)
- * @see
org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaGeneratorContainer#validate(java.util.List,
org.eclipse.wst.validation.internal.provisional.core.IReporter,
org.eclipse.jdt.core.dom.CompilationUnit)
- */
- @Override
- public void validate(List<IMessage> messages, IReporter reporter,
- CompilationUnit astRoot) {
- super.validate(messages, reporter, astRoot);
- this.validateGenericGenerators(messages, reporter, astRoot);
- }
-
-
- protected void validateGenericGenerators(List<IMessage> messages, IReporter
reporter, CompilationUnit astRoot) {
- ListIterator<JavaGenericGenerator> genericGenerators = genericGenerators();
- while (genericGenerators.hasNext()) {
- genericGenerators.next().validate(messages, reporter, astRoot);
- }
- }
-
- /* (non-Javadoc)
* @see
org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaGeneratorContainer#javaCompletionProposals(int,
org.eclipse.jpt.common.utility.Filter, org.eclipse.jdt.core.dom.CompilationUnit)
*/
@Override
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java 2011-06-22
12:06:09 UTC (rev 32284)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java 2011-06-22
12:06:20 UTC (rev 32285)
@@ -14,6 +14,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+import java.util.Vector;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
@@ -23,6 +24,8 @@
import org.eclipse.jpt.common.utility.internal.CollectionTools;
import org.eclipse.jpt.common.utility.internal.StringTools;
import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable;
+import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
+import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable;
import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
import org.eclipse.jpt.jpa.core.context.Generator;
import org.eclipse.jpt.jpa.core.context.java.JavaJpaContextNode;
@@ -46,7 +49,7 @@
private String strategy;
- protected final List<JavaParameter> parameters;
+ protected final Vector<JavaParameter> parameters = new
Vector<JavaParameter>();
public static List<String> generatorClasses = new ArrayList<String>();
@@ -73,23 +76,22 @@
*/
public JavaGenericGeneratorImpl(JavaJpaContextNode parent, GenericGeneratorAnnotation
generatorAnnotation) {
super(parent, generatorAnnotation);
- this.parameters = new ArrayList<JavaParameter>();
+ this.initializeParameters();
}
@Override
public void synchronizeWithResourceModel() {
super.synchronizeWithResourceModel();
- this.name = this.generatorAnnotation.getName();
- this.strategy = this.generatorAnnotation.getStrategy();
- this.initializeParameters();
+ this.setStrategy_(this.generatorAnnotation.getStrategy());
+ this.updateParameters();
}
@Override
public void update() {
+ super.update();
this.setName_(this.generatorAnnotation.getName());
- this.setSpecifiedStrategy_(this.generatorAnnotation.getStrategy());
- this.updateParameters();
- this.getPersistenceUnit().addGenerator(this);
+ this.setStrategy_(this.generatorAnnotation.getStrategy());
+ this.updateNodes(this.getParameters());
}
@Override
@@ -110,13 +112,11 @@
}
public void setStrategy(String strategy) {
- String oldStrategy = this.strategy;
- this.strategy = strategy;
getGeneratorAnnotation().setStrategy(strategy);
- firePropertyChanged(GENERIC_STRATEGY_PROPERTY, oldStrategy, strategy);
+ setStrategy_(strategy);
}
- protected void setSpecifiedStrategy_(String strategy) {
+ protected void setStrategy_(String strategy) {
String oldStrategy = this.strategy;
this.strategy = strategy;
firePropertyChanged(GENERIC_STRATEGY_PROPERTY, oldStrategy, strategy);
@@ -192,7 +192,8 @@
public JavaParameter addParameter(int index) {
JavaParameter parameter = getJpaFactory().buildJavaParameter(this);
this.parameters.add(index, parameter);
- this.getGeneratorAnnotation().addParameter(index);
+ ParameterAnnotation parameterAnnotation =
this.getGeneratorAnnotation().addParameter(index);
+ parameter.initialize(parameterAnnotation);
this.fireItemAdded(GenericGenerator.PARAMETERS_LIST, index, parameter);
return parameter;
}
@@ -224,6 +225,10 @@
this.getGeneratorAnnotation().moveParameter(targetIndex, sourceIndex);
fireItemMoved(GenericGenerator.PARAMETERS_LIST, targetIndex, sourceIndex);
}
+
+ public ListIterable<JavaParameter> getParameters() {
+ return new LiveCloneListIterable<JavaParameter>(this.parameters);
+ }
public ListIterator<JavaParameter> parameters() {
return new CloneListIterator<JavaParameter>(this.parameters);