Author: akazakov
Date: 2009-05-26 16:44:06 -0400 (Tue, 26 May 2009)
New Revision: 15521
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/DuplicateFactory
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/.project
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4378 Fixed
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2009-05-26
18:07:05 UTC (rev 15520)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2009-05-26
20:44:06 UTC (rev 15521)
@@ -36,7 +36,6 @@
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.seam.core.BijectedAttributeType;
import org.jboss.tools.seam.core.IBijectedAttribute;
-import org.jboss.tools.seam.core.IRole;
import org.jboss.tools.seam.core.ISeamAnnotatedFactory;
import org.jboss.tools.seam.core.ISeamComponent;
import org.jboss.tools.seam.core.ISeamComponentDeclaration;
@@ -284,22 +283,13 @@
private void validateAnnotatedFactory(ISeamAnnotatedFactory factory, Set<String>
markedDuplicateFactoryNames) {
IMember sourceMember = factory.getSourceMember();
if(sourceMember instanceof IMethod) {
- IMethod method = (IMethod)sourceMember;
- try {
- String returnType = method.getReturnType();
- if("V".equals(returnType)) { //$NON-NLS-1$
- // return type is void
- String factoryName = factory.getName();
- if(factoryName==null) {
- // Unknown factory name
- SeamCorePlugin.getDefault().logError(NLS.bind(SeamCoreMessages.SEAM_CORE_VALIDATOR_FACTORY_METHOD_MUST_HAVE_NAME,factory.getResource()));
- return;
- }
- validateFactoryName(factory, factoryName, markedDuplicateFactoryNames, true);
- }
- } catch (JavaModelException e) {
- SeamCorePlugin.getDefault().logError(SeamCoreMessages.SEAM_CORE_VALIDATOR_ERROR_VALIDATING_SEAM_CORE,
e);
+ String factoryName = factory.getName();
+ if(factoryName==null) {
+ // Unknown factory name
+ SeamCorePlugin.getDefault().logError(NLS.bind(SeamCoreMessages.SEAM_CORE_VALIDATOR_FACTORY_METHOD_MUST_HAVE_NAME,factory.getResource()));
+ return;
}
+ validateFactoryName(factory, factoryName, markedDuplicateFactoryNames, true);
} else {
// factory must be java method!
// JDT should mark it.
@@ -341,7 +331,23 @@
if(firstDuplicateVariableWasMarked) {
markedDuplicateFactoryNames.add(factoryName);
}
- if(unknownVariable && validateUnknownName) {
+ boolean voidReturnType = false;
+ if(factory instanceof ISeamAnnotatedFactory) {
+ IMember sourceMember = ((ISeamAnnotatedFactory)factory).getSourceMember();
+ if(sourceMember instanceof IMethod) {
+ IMethod method = (IMethod)sourceMember;
+ try {
+ String returnType = method.getReturnType();
+ if("V".equals(returnType)) { //$NON-NLS-1$
+ // return type is void
+ voidReturnType = true;
+ }
+ } catch (JavaModelException e) {
+ SeamCorePlugin.getDefault().logError(SeamCoreMessages.SEAM_CORE_VALIDATOR_ERROR_VALIDATING_SEAM_CORE,
e);
+ }
+ }
+ }
+ if(unknownVariable && validateUnknownName && voidReturnType) {
// mark unknown factory name
// save link to factory resource
validationContext.addLinkedCoreResource(factoryName, factory.getSourcePath());
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/DuplicateFactory
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/DuplicateFactory
(rev 0)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/DuplicateFactory 2009-05-26
20:44:06 UTC (rev 15521)
@@ -0,0 +1,25 @@
+package org.domain.SeamWebWarTestProject.session;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.log.Log;
+import org.jboss.seam.core.FacesMessages;
+
+@Name("component12")
+public class Component12 {
+ @Factory("testFactory1")
+ public String getComp() {
+ return "";
+ }
+
+ @Factory("testFactory1")
+ public String getComp2() {
+ return "";
+ }
+}
\ No newline at end of file
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/.project
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/.project 2009-05-26
18:07:05 UTC (rev 15520)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/.project 2009-05-26
20:44:06 UTC (rev 15521)
@@ -16,7 +16,7 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.jboss.ide.eclipse.archives.core.archivesBuilder</name>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
@@ -25,13 +25,18 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.hibernate.eclipse.console.hibernateBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
- <nature>org.jboss.ide.eclipse.archives.core.archivesNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.jboss.tools.seam.core.seamnature</nature>
+ <nature>org.hibernate.eclipse.console.hibernateNature</nature>
</natures>
</projectDescription>
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java 2009-05-26
18:07:05 UTC (rev 15520)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java 2009-05-26
20:44:06 UTC (rev 15521)
@@ -13,10 +13,6 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.tools.seam.core.test.project.facet.Seam12XFacetTestSuite121EAP;
-import org.jboss.tools.seam.core.test.project.facet.Seam20XFacetTestSuite201GA;
-import org.jboss.tools.seam.core.test.project.facet.Seam2FacetInstallDelegateTest;
-import org.jboss.tools.seam.core.test.project.facet.SeamFacetInstallDelegateTest;
import org.jboss.tools.seam.core.test.project.facet.SeamRuntimeListConverterTest;
import org.jboss.tools.seam.core.test.project.facet.SeamRuntimeManagerTest;
import org.jboss.tools.seam.core.test.refactoring.SeamRefactoringAllTests;
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2009-05-26
18:07:05 UTC (rev 15520)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2009-05-26
20:44:06 UTC (rev 15521)
@@ -477,19 +477,19 @@
}
public void testFactoriesValidator() {
- IFile Component12File =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/Component12.java");
+ IFile �omponent12File =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/Component12.java");
refreshProject(project);
- int number = getMarkersNumber(Component12File);
+ int number = getMarkersNumber(�omponent12File);
assertTrue("Problem marker was found in Component12.java", number == 0);
// Unknown factory name
System.out.println("Test - Unknown factory name");
- IFile Component12File2 =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/Component12.2");
+ IFile �omponent12File2 =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/Component12.2");
try{
- Component12File.setContents(Component12File2.getContents(), true, false, null);
+ �omponent12File.setContents(�omponent12File2.getContents(), true, false, null);
}catch(Exception ex){
JUnitUtils.fail("Error in changing 'Component12File2.java' content to
" +
"'Component12File2.2'", ex);
@@ -497,18 +497,31 @@
refreshProject(project);
- number = getMarkersNumber(Component12File);
+ number = getMarkersNumber(�omponent12File);
assertFalse("Problem marker 'Unknown factory name' was not found",
number == 0);
- String[] messages = getMarkersMessage(Component12File);
+ String[] messages = getMarkersMessage(�omponent12File);
assertEquals("Problem marker 'Unknown factory name' was not found",
"Factory method \"messageList2\" with a void return type must have an
associated @Out/Databinder", messages[0]);
- int[] lineNumbers = getMarkersNumbersOfLine(Component12File);
+ int[] lineNumbers = getMarkersNumbersOfLine(�omponent12File);
assertEquals("Problem marker has wrong line number", 24, lineNumbers[0]);
+
+ �omponent12File2 =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/DuplicateFactory");
+ try{
+ �omponent12File.setContents(�omponent12File2.getContents(), true, false, null);
+ }catch(Exception ex){
+ JUnitUtils.fail("Error in changing 'Component12File2.java' content to
" +
+ "'DuplicateFactory'", ex);
+ }
+
+ refreshProject(project);
+
+ number = getMarkersNumber(�omponent12File);
+ assertEquals("Duplicate factory name markers were not found", 2, number);
}
-
+
public void testBijectionsValidator() {
IFile selectionTestFile =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/SelectionTest.java");
IFile selectionIndexTestFile =
project.getFile("src/action/org/domain/SeamWebWarTestProject/session/SelectionIndexTest.java");
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java 2009-05-26
18:07:05 UTC (rev 15520)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java 2009-05-26
20:44:06 UTC (rev 15521)
@@ -3,13 +3,13 @@
import java.util.ArrayList;
import java.util.List;
+import junit.framework.TestCase;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.TextFileChange;
import org.jboss.tools.common.util.FileUtil;
import org.jboss.tools.seam.core.ISeamComponent;
import org.jboss.tools.seam.core.ISeamProject;
@@ -18,8 +18,6 @@
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ProjectImportTestSetup;
-import junit.framework.TestCase;
-
public class SeamComponentRefactoringTest extends TestCase {
static String warProjectName = "Test1";
static String earProjectName = "Test1-ear";
@@ -56,6 +54,7 @@
private ISeamProject loadSeamProject(IProject project) throws CoreException {
JobUtils.waitForIdle();
+
System.out.println("Project - "+project);
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
assertNotNull("Seam project for " + project.getName() + " is null",
seamProject);
@@ -113,7 +112,6 @@
}
private void renameComponent(ISeamProject seamProject, String componentName, String
newName, List<TestChangeStructure> changeList) throws CoreException{
-
// Test before renaming
ISeamComponent component = seamProject.getComponent(componentName);
assertNotNull(component);
@@ -125,9 +123,8 @@
assertNotSame(changeStructure.getText(),
content.substring(changeStructure.getOffset(),
changeStructure.getOffset()+changeStructure.getLength()));
}
- if(component.getJavaDeclaration() == null)
- fail("Component 'test' does not have java declaration");
-
+ assertNotNull("Component " + component.getName() + " does not have java
declaration.", component.getJavaDeclaration());
+
// Rename Seam Component
RenameComponentProcessor processor = new RenameComponentProcessor(component);
processor.setNewComponentName(newName);