You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/12/21 17:37:33 UTC
svn commit: r892870 - in /myfaces/extensions/scripting/trunk/core/core/src:
main/java/org/apache/myfaces/scripting/core/dependencyScan/
test/java/org/apache/myfaces/extensions/scripting/dependencyScan/
test/java/org/apache/myfaces/extensions/scripting/...
Author: werpu
Date: Mon Dec 21 16:37:32 2009
New Revision: 892870
URL: http://svn.apache.org/viewvc?rev=892870&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-39
works on dependency scanning, added an inheritance scan!
Added:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java (with props)
myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/ProbeParent.java
- copied, changed from r892677, myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java
Modified:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DependencyScanner.java
myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java
myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java
Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java?rev=892870&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java Mon Dec 21 16:37:32 2009
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.scripting.core.dependencyScan;
+
+import org.apache.tools.ant.taskdefs.Classloader;
+import org.objectweb.asm.ClassReader;
+
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ * <p/>
+ * A dependency scanner for
+ * our classes
+ */
+public class DefaultDependencyScanner implements DependencyScanner {
+
+ static final ClassScanVisitor cp = new ClassScanVisitor();
+
+ /**
+ * @param className
+ * @return
+ */
+ public final Set<String> fetchDependencies(String className) {
+ Set<String> retVal = new HashSet<String>();
+
+ cp.setDependencyTarget(retVal);
+ ClassReader cr = null;
+
+ try {
+ cr = new ClassReader("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe");
+ cr.accept(cp, 0);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ investigateInheritanceHierarchy(retVal);
+
+
+ return retVal;
+ }
+
+ /**
+ * this investigates the classes inheritance hierarchy for
+ * more dependencies, for now annotations and interfaces
+ * are omitted since they are not vital to our jsf dependency checks
+ * (maybe in the long run we will add interfaces and annotations as well
+ * but for now we will leave them away for speed reasons)
+ *
+ * @param retVal
+ */
+ private void investigateInheritanceHierarchy(Set<String> retVal) {
+ //we now have to fetch the parent hierarchy
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ try {
+ Class toCheck = loader.loadClass("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe");
+ Class parent = toCheck.getSuperclass();
+
+ while (parent != null && !ClassLogUtils.isStandard(parent.getName())) {
+ retVal.add(parent.getName());
+ parent = parent.getSuperclass();
+ }
+
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ }
+
+
+}
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DependencyScanner.java?rev=892870&r1=892869&r2=892870&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DependencyScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DependencyScanner.java Mon Dec 21 16:37:32 2009
@@ -1,59 +1,10 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
package org.apache.myfaces.scripting.core.dependencyScan;
-import org.objectweb.asm.ClassReader;
-
-import java.io.IOException;
-import java.util.HashSet;
import java.util.Set;
/**
- * @author Werner Punz (latest modification by $Author$)
- * @version $Revision$ $Date$
- *
- * A dependency scanner for
- * our classes
- */
-public class DependencyScanner {
-
- static final ClassScanVisitor cp = new ClassScanVisitor();
-
- /**
- * @param className
- * @return
- */
- public static final Set<String> fetchDependencies(String className) {
- Set<String> retVal = new HashSet<String>();
-
- cp.setDependencyTarget(retVal);
- ClassReader cr = null;
-
- try {
- cr = new ClassReader("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe");
- cr.accept(cp, 0);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- return retVal;
- }
+ */
+public interface DependencyScanner {
+ public Set<String> fetchDependencies(String className);
}
Modified: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java?rev=892870&r1=892869&r2=892870&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java Mon Dec 21 16:37:32 2009
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.scripting.dependencyScan;
-import org.apache.myfaces.scripting.core.dependencyScan.DependencyScanner;
+import org.apache.myfaces.scripting.core.dependencyScan.DefaultDependencyScanner;
import org.junit.Test;
import java.util.Set;
@@ -34,7 +34,7 @@
@Test
public void testScan() {
- Set<String> retVal = DependencyScanner.fetchDependencies("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe");
+ Set<String> retVal = (new DefaultDependencyScanner()).fetchDependencies("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe");
assertTrue(retVal.size() > 0);
assertFalse(retVal.contains("java.lang.String"));
@@ -42,5 +42,7 @@
assertTrue(retVal.contains("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe2"));
assertTrue(retVal.contains("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe3"));
assertTrue(retVal.contains("org.apache.myfaces.extensions.scripting.dependencyScan.probes.Probe4"));
+ assertTrue(retVal.contains("org.apache.myfaces.extensions.scripting.dependencyScan.probes.ProbeParent"));
+
}
}
Modified: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java?rev=892870&r1=892869&r2=892870&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java Mon Dec 21 16:37:32 2009
@@ -27,7 +27,7 @@
* Probe for class scanning
*/
@Ignore
-public class Probe {
+public class Probe extends ProbeParent{
String prop1;
public static int myTest(StringBuilder myBuilder, Object val2) {
Copied: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/ProbeParent.java (from r892677, myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/ProbeParent.java?p2=myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/ProbeParent.java&p1=myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java&r1=892677&r2=892870&rev=892870&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/Probe.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/probes/ProbeParent.java Mon Dec 21 16:37:32 2009
@@ -21,26 +21,10 @@
import org.junit.Ignore;
/**
+ * Testing probe for inheritance dependency checks
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
- * <p/>
- * Probe for class scanning
*/
@Ignore
-public class Probe {
- String prop1;
-
- public static int myTest(StringBuilder myBuilder, Object val2) {
- return (Integer) 1;
- }
-
- public Object myTest2(Object parm) {
- try {
- Probe4 [] probes = new Probe4[1];
- return (Probe2) parm;
- } catch (RuntimeException ex) {
- return (Probe3) parm;
- }
- }
-
+public class ProbeParent {
}