Author: akazakov
Date: 2011-09-19 14:29:43 -0400 (Mon, 19 Sep 2011)
New Revision: 34858
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/rest/
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/rest/SeamRestExtension.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/WebContent/WEB-INF/lib/seam-rest-api.jar
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/WebContent/WEB-INF/lib/seam-rest.jar
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestClientInjection.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestPath.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/rest/
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/rest/SeamRestValidationTest.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/plugin.xml
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java
Log:
https://issues.jboss.org/browse/JBIDE-9734 CDI validator should not treat @Inject
@RestClient("...") ServiceInterface injection; as an unsatisfied dependency
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF 2011-09-19
18:24:48 UTC (rev 34857)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF 2011-09-19
18:29:43 UTC (rev 34858)
@@ -19,4 +19,10 @@
Bundle-ActivationPolicy: lazy
Export-Package: org.jboss.tools.cdi.seam.core,
org.jboss.tools.cdi.seam.core.international,
- org.jboss.tools.cdi.seam.core.international.el
+ org.jboss.tools.cdi.seam.core.international.el,
+ org.jboss.tools.cdi.seam.core.international.impl,
+ org.jboss.tools.cdi.seam.core.international.scanner,
+ org.jboss.tools.cdi.seam.core.jms,
+ org.jboss.tools.cdi.seam.core.persistence,
+ org.jboss.tools.cdi.seam.core.rest,
+ org.jboss.tools.cdi.seam.core.servlet
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/plugin.xml
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/plugin.xml 2011-09-19 18:24:48 UTC
(rev 34857)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/plugin.xml 2011-09-19 18:29:43 UTC
(rev 34858)
@@ -28,6 +28,10 @@
class="org.jboss.tools.cdi.seam.core.jms.JmsDestinationExtension"
runtime="org.jboss.seam.jms.Seam3JmsExtension">
</cdiextension>
+ <cdiextension
+ class="org.jboss.tools.cdi.seam.core.rest.SeamRestExtension"
+ runtime="org.jboss.seam.rest.client.RestClientExtension">
+ </cdiextension>
</extension>
</plugin>
\ No newline at end of file
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/rest/SeamRestExtension.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/rest/SeamRestExtension.java
(rev 0)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/rest/SeamRestExtension.java 2011-09-19
18:29:43 UTC (rev 34858)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * 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.cdi.seam.core.rest;
+
+import org.eclipse.jdt.core.IType;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.extension.ICDIExtension;
+import org.jboss.tools.cdi.core.extension.feature.IInjectionPointValidatorFeature;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class SeamRestExtension implements ICDIExtension, IInjectionPointValidatorFeature
{
+
+ private static final String REST_CLIENT_TYPE_NAME =
"org.jboss.seam.rest.client.RestClient";
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.cdi.core.extension.feature.IInjectionPointValidatorFeature#shouldIgnoreInjection(org.eclipse.jdt.core.IType,
org.jboss.tools.cdi.core.IInjectionPoint)
+ */
+ @Override
+ public boolean shouldIgnoreInjection(IType typeOfInjectionPoint, IInjectionPoint
injection) {
+ return injection.getAnnotation(REST_CLIENT_TYPE_NAME) != null;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/rest/SeamRestExtension.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/WebContent/WEB-INF/lib/seam-rest-api.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/WebContent/WEB-INF/lib/seam-rest-api.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/WebContent/WEB-INF/lib/seam-rest.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/WebContent/WEB-INF/lib/seam-rest.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestClientInjection.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestClientInjection.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestClientInjection.java 2011-09-19
18:29:43 UTC (rev 34858)
@@ -0,0 +1,19 @@
+package org.jboss.tools.seam.rest.validation.test;
+
+import javax.inject.Inject;
+
+import org.jboss.seam.rest.client.RestClient;
+
+public class RestClientInjection {
+
+ @Inject
+ @RestClient("http://localhost:8080/rest-tasks")
+ RestPath ok;
+
+ @Inject
+ void foo(@RestClient("http://localhost:8080/rest-tasks") RestPath ok) {
+ }
+
+ @Inject
+ RestPath broken;
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestClientInjection.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestPath.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestPath.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestPath.java 2011-09-19
18:29:43 UTC (rev 34858)
@@ -0,0 +1,5 @@
+package org.jboss.tools.seam.rest.validation.test;
+
+public interface RestPath {
+
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/projects/SeamCoreTest/src/org/jboss/tools/seam/rest/validation/test/RestPath.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java 2011-09-19
18:24:48 UTC (rev 34857)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java 2011-09-19
18:29:43 UTC (rev 34858)
@@ -21,6 +21,7 @@
import org.jboss.tools.cdi.seam.core.test.jms.SeamJmsValidationTest;
import org.jboss.tools.cdi.seam.core.test.persistence.SeamPersistenceTest;
import org.jboss.tools.cdi.seam.core.test.persistence.SeamPersistenceTestSetup;
+import org.jboss.tools.cdi.seam.core.test.rest.SeamRestValidationTest;
import org.jboss.tools.cdi.seam.core.test.servlet.SeamServletValidationTest;
import org.jboss.tools.common.base.test.validation.ValidationExceptionTest;
@@ -45,12 +46,13 @@
suite.addTestSuite(BundleModelTest.class);
suite.addTestSuite(SeamJmsValidationTest.class);
suite.addTestSuite(SeamResourceBundleCdiElResolverTest.class);
+ suite.addTestSuite(SeamRestValidationTest.class);
suiteAll.addTest(new SeamCoreTestSetup(suite));
suite = new TestSuite("Seam Persistence Project Tests");
suite.addTestSuite(SeamPersistenceTest.class);
suiteAll.addTest(new SeamPersistenceTestSetup(suite));
-
+
suiteAll.addTestSuite(ValidationExceptionTest.class); // This test should be added
last!
return suiteAll;
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/rest/SeamRestValidationTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/rest/SeamRestValidationTest.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/rest/SeamRestValidationTest.java 2011-09-19
18:29:43 UTC (rev 34858)
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * 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.cdi.seam.core.test.rest;
+
+import org.eclipse.core.resources.IFile;
+import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
+import org.jboss.tools.tests.AbstractResourceMarkerTest;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class SeamRestValidationTest extends SeamCoreTest {
+
+ /**
+ * See
https://issues.jboss.org/browse/JBIDE-9734
+ *
+ * @throws Exception
+ */
+ public void testRestClientInjection() throws Exception {
+ IFile file =
getTestProject().getFile("src/org/jboss/tools/seam/rest/validation/test/RestClientInjection.java");
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.UNSATISFIED_INJECTION_POINTS, 9);
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.UNSATISFIED_INJECTION_POINTS, 14);
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.UNSATISFIED_INJECTION_POINTS, 17);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/rest/SeamRestValidationTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain