Author: akazakov
Date: 2011-06-06 20:09:15 -0400 (Mon, 06 Jun 2011)
New Revision: 31854
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/ejbModule/org/domain/Test1/session/TestDuplicateNameOk.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/Seam2ValidatorTest.java
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/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java
Log:
https://issues.jboss.org/browse/JBIDE-9079
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 2011-06-06
23:29:05 UTC (rev 31853)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2011-06-07
00:09:15 UTC (rev 31854)
@@ -46,7 +46,6 @@
import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
-import org.jboss.tools.jst.web.kb.preferences.ELSeverityPreferences;
import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
@@ -631,6 +630,12 @@
validateXmlComponentDeclarations(component);
}
+ private static final String BUILT_IN_COMPONENT_NAME_PREFIX =
"org.jboss.seam.";
+
+ private boolean isBuiltInComponentName(String componentName) {
+ return componentName.startsWith(BUILT_IN_COMPONENT_NAME_PREFIX);
+ }
+
private void validateXmlComponentDeclarations(ISeamComponent component) {
String componentName = component.getName();
if(componentName!=null) {
@@ -691,7 +696,7 @@
if(declaration.getClassName()!=null && javaDec.getName()!=null &&
javaDec.getName().equals(declaration.getName())) {
// Check precedences
String javaPrecedence = "" + javaDec.getPrecedence();
- if(javaPrecedence.equals(precedence)) {
+ if(javaPrecedence.equals(precedence) &&
!isBuiltInComponentName(componentName)) {
if(!markedJavaDeclarations.contains(javaDec)) {
markedJavaDeclarations.add(javaDec);
ITextSourceReference location =
((SeamComponentDeclaration)javaDec).getLocationFor(SeamComponentDeclaration.PATH_OF_NAME);
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/ejbModule/org/domain/Test1/session/TestDuplicateNameOk.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/ejbModule/org/domain/Test1/session/TestDuplicateNameOk.java
(rev 0)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/ejbModule/org/domain/Test1/session/TestDuplicateNameOk.java 2011-06-07
00:09:15 UTC (rev 31854)
@@ -0,0 +1,8 @@
+package org.domain.Test1.session;
+
+import org.jboss.seam.annotations.Name;
+
+(a)Name("org.jboss.seam.security.identity")
+public class TestDuplicateNameOk {
+
+}
\ No newline at end of file
Property changes on:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/Test1-ejb/ejbModule/org/domain/Test1/session/TestDuplicateNameOk.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/Seam2ValidatorTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/Seam2ValidatorTest.java
(rev 0)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/Seam2ValidatorTest.java 2011-06-07
00:09:15 UTC (rev 31854)
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.seam.core.test;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.jboss.tools.seam.core.test.validation.SeamCoreValidatorWrapper;
+import org.jboss.tools.seam.internal.core.validation.SeamValidationMessages;
+import org.jboss.tools.test.util.JobUtils;
+import org.jboss.tools.test.util.ProjectImportTestSetup;
+import org.jboss.tools.test.util.ResourcesUtils;
+import org.jboss.tools.tests.AbstractResourceMarkerTest;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class Seam2ValidatorTest extends AbstractResourceMarkerTest {
+ IProject projectEAR = null;
+ IProject projectWAR = null;
+ IProject projectEJB = null;
+
+ ProjectImportTestSetup setup;
+
+ @Override
+ protected void setUp() throws Exception {
+ setup = new ProjectImportTestSetup(this, "org.jboss.tools.seam.core.test",
new String[]{"projects/Test1-ejb", "projects/Test1-ear",
"projects/Test1"}, new String[]{"Test1-ejb", "Test1-ear",
"Test1"});
+ IProject[] projects = setup.importProjects();
+ projectEJB = projects[0];
+ projectEAR = projects[1];
+ projectWAR = projects[2];
+ projectEJB.build(IncrementalProjectBuilder.FULL_BUILD, null);
+ projectWAR.build(IncrementalProjectBuilder.FULL_BUILD, null);
+ JobUtils.waitForIdle();
+ setProject(projectEJB);
+ }
+
+ public void testDuplicateName() throws CoreException, ValidationException {
+ IFile componentFile =
projectEJB.getFile("ejbModule/org/domain/Test1/session/TestDuplicateNameOk.java");
+ IFile componentsXml =
projectWAR.getFile("WebContent/WEB-INF/components.xml");
+
+ SeamCoreValidatorWrapper seamValidator = new SeamCoreValidatorWrapper(projectWAR);
+ seamValidator.validate(componentFile);
+ seamValidator.validate(componentsXml);
+
+ assertFalse("Validation problem was found", seamValidator.isMessageCreated(
+ SeamValidationMessages.NONUNIQUE_COMPONENT_NAME_MESSAGE, new
Object[]{"org.jboss.seam.security.identity"}));
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ setup.deleteProjects();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/Seam2ValidatorTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
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 2011-06-06
23:29:05 UTC (rev 31853)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java 2011-06-07
00:09:15 UTC (rev 31854)
@@ -43,6 +43,7 @@
suite.addTestSuite(SeamRuntimeManagerTest.class);
suite.addTestSuite(CyclicDependingProjectsTest.class);
suite.addTestSuite(ComponentsFromLibTest.class);
+ suite.addTestSuite(Seam2ValidatorTest.class);
return suite;
}
}
\ No newline at end of file