working on testcases
git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@1309348 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ImplementationSPI.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ImplementationService.java
similarity index 96%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ImplementationSPI.java
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ImplementationService.java
index 0a4a98d..5daa42c 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ImplementationSPI.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ImplementationService.java
@@ -27,7 +27,7 @@
* connector has to implement
* This spi is mirrored into the WeavingContext
*/
-public interface ImplementationSPI
+public interface ImplementationService
{
public void registerClassloadingExtension(ServletContext context);
public Class forName(String clazz);
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
index 2bbe122..489f6be 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
@@ -19,8 +19,10 @@
package org.apache.myfaces.extensions.scripting.core.api;
-import org.apache.myfaces.extensions.scripting.core.api.events.WeavingEvent;
-import org.apache.myfaces.extensions.scripting.core.api.events.WeavingEventListener;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.BeginCompiling;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEventListener;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.EndCompiling;
import org.apache.myfaces.extensions.scripting.core.common.util.ClassUtils;
import org.apache.myfaces.extensions.scripting.core.common.util.ReflectUtil;
import org.apache.myfaces.extensions.scripting.core.engine.FactoryEngines;
@@ -67,7 +69,7 @@
* Service provider for the implementation under which this extension
* runs
*/
- ImplementationSPI _implementation = null;
+ ImplementationService _implementation = null;
/**
* the collection of reloading strategies depending on their artifact type
*/
@@ -323,13 +325,15 @@
for (ScriptingEngine engine : getEngines())
{
if (!engine.needsRecompile()) continue;
+ sendWeavingEvent(new BeginCompiling());
+
compile = true;
log.info("[EXT-SCRIPTING] compiling " + engine.getEngineTypeAsStr() + " files");
CompilationResult result = engine.compile();
if(result != null) {
WeavingContext.getInstance().setCompilationResult(engine.getEngineType(), result);
}
-
+ sendWeavingEvent(new EndCompiling());
log.info("[EXT-SCRIPTING] compiling " + engine.getEngineTypeAsStr() + " files done");
}
return compile;
@@ -397,6 +401,10 @@
new MethodLevelReloadingHandler(o, artifactType));
}
+ public Class forName(String name) {
+ return _implementation.forName(name);
+ }
+
/**
* reload the class dynamically
*/
@@ -471,7 +479,7 @@
//TODO implement this tomorrow
}
- public ImplementationSPI getImplementationSPI() {
+ public ImplementationService getImplementationSPI() {
return MyFacesSPI.getInstance();
}
@@ -643,12 +651,12 @@
return _instance;
}
- public ImplementationSPI getImplementation()
+ public ImplementationService getImplementation()
{
return _implementation;
}
- public void setImplementation(ImplementationSPI implementation)
+ public void setImplementation(ImplementationService implementation)
{
_implementation = implementation;
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/EndLifecycle.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/WeavingEvent.java
similarity index 89%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/EndLifecycle.java
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/WeavingEvent.java
index 483237d..ac3b13b 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/EndLifecycle.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/WeavingEvent.java
@@ -17,13 +17,12 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class EndLifecycle
+public interface WeavingEvent
{
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/WeavingEventListener.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/WeavingEventListener.java
similarity index 93%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/WeavingEventListener.java
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/WeavingEventListener.java
index ee85604..cd03db7 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/WeavingEventListener.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/WeavingEventListener.java
@@ -18,7 +18,7 @@
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling;
/**
* @author Werner Punz (latest modification by $Author$)
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/BeginCompiling.java
similarity index 80%
copy from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
copy to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/BeginCompiling.java
index 4f5a745..220d16e 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/BeginCompiling.java
@@ -17,13 +17,15 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling.events;
+
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class BeginLifecycle
+
+public class BeginCompiling implements WeavingEvent
{
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/BeginLifecycle.java
similarity index 80%
copy from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
copy to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/BeginLifecycle.java
index 4f5a745..d0ec618 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/BeginLifecycle.java
@@ -17,13 +17,15 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling.events;
+
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class BeginLifecycle
+
+public class BeginLifecycle implements WeavingEvent
{
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/ClassReloadedEvent.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/ClassReloadedEvent.java
similarity index 80%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/ClassReloadedEvent.java
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/ClassReloadedEvent.java
index 7aa89de..526b3f3 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/ClassReloadedEvent.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/ClassReloadedEvent.java
@@ -17,13 +17,15 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling.events;
+
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class ClassReloadedEvent
+
+public class ClassReloadedEvent implements WeavingEvent
{
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/EndCompiling.java
similarity index 80%
copy from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
copy to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/EndCompiling.java
index 4f5a745..25fc1d9 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/EndCompiling.java
@@ -17,13 +17,15 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling.events;
+
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class BeginLifecycle
+
+public class EndCompiling implements WeavingEvent
{
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/EndLifecycle.java
similarity index 80%
copy from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
copy to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/EndLifecycle.java
index 4f5a745..8204103 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/EndLifecycle.java
@@ -17,13 +17,15 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling.events;
+
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class BeginLifecycle
+
+public class EndLifecycle implements WeavingEvent
{
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/TaintedEvent.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/TaintedEvent.java
similarity index 86%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/TaintedEvent.java
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/TaintedEvent.java
index e942888..a7eb3e8 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/TaintedEvent.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/events/TaintedEvent.java
@@ -17,8 +17,9 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
+package org.apache.myfaces.extensions.scripting.core.api.eventhandling.events;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
import org.apache.myfaces.extensions.scripting.core.monitor.ClassResource;
/**
@@ -27,8 +28,8 @@
*
* event which is fired if a class resource is tainted
*/
-@WeavingEvent
-public class TaintedEvent
+
+public class TaintedEvent implements WeavingEvent
{
ClassResource resource;
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/readme.txt b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/readme.txt
similarity index 100%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/readme.txt
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/eventhandling/readme.txt
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginCompiling.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginCompiling.java
deleted file mode 100644
index 8149892..0000000
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginCompiling.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.extensions.scripting.core.api.events;
-
-/**
- * @author Werner Punz (latest modification by $Author$)
- * @version $Revision$ $Date$
- */
-@WeavingEvent
-public class BeginCompiling
-{
-}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/EndCompiling.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/EndCompiling.java
deleted file mode 100644
index 56f57fd..0000000
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/EndCompiling.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.extensions.scripting.core.api.events;
-
-/**
- * @author Werner Punz (latest modification by $Author$)
- * @version $Revision$ $Date$
- */
-@WeavingEvent
-public class EndCompiling
-{
-}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/WeavingEvent.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/WeavingEvent.java
deleted file mode 100644
index e51f741..0000000
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/WeavingEvent.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.extensions.scripting.core.api.events;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @author Werner Punz (latest modification by $Author$)
- * @version $Revision$ $Date$
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface WeavingEvent
-{
-}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java
index e5634fe..05582a7 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java
@@ -41,7 +41,7 @@
public abstract class BaseEngine
{
- CopyOnWriteArrayList<String> _sourcePaths = new CopyOnWriteArrayList<String>();
+ Set<String> _sourcePaths = Collections.synchronizedSet(new HashSet<String>());
Map<String, ClassResource> _watchedResources = new ConcurrentHashMap<String, ClassResource>();
//both belong together but the dependencyregistry is just
//a wrapper for the dep map with additional functionality
@@ -61,7 +61,7 @@
return _watchedResources;
}
- public List<String> getSourcePaths()
+ public Collection<String> getSourcePaths()
{
return _sourcePaths;
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java
index 3950082..3773101 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java
@@ -39,7 +39,7 @@
public Collection<String> getPossibleDynamicClasses();
- public List<String> getSourcePaths();
+ public Collection<String> getSourcePaths();
public Map<String, ClassResource> getWatchedResources();
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java
index f02489a..ad17d27 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java
@@ -31,9 +31,13 @@
import javax.tools.JavaFileObject;
import javax.tools.ToolProvider;
import java.io.File;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Locale;
+import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -81,12 +85,26 @@
DiagnosticCollector<JavaFileObject> diagnosticCollector = new DiagnosticCollector<JavaFileObject>();
getLog().info("[EXT-SCRIPTING] Doing a full recompile");
-
+
List<File> sourceFiles = FileUtils.fetchSourceFiles(configuration.getWhitelistedSourceDirs
(ENGINE_TYPE_JSF_JAVA), JAVA_WILDCARD);
+
+ HashSet<String> alreadyProcessed = new HashSet<String>();
+ Iterator<File> sourceIt = sourceFiles.iterator();
+ while(sourceIt.hasNext()) {
+ File currentProcessed = sourceIt.next();
+ if(alreadyProcessed.contains(currentProcessed.getAbsolutePath())) {
+ sourceIt.remove();
+ } else {
+ alreadyProcessed.add(currentProcessed.getAbsolutePath());
+ }
+ }
+
+
for (File sourceFile : sourceFiles)
{
+ System.out.println("-----------------"+sourceFile.getAbsolutePath());
if (!sourceFile.exists())
{
getLog().log(Level.WARNING, "[EXT-SCRIPTING] Source file with path {0} does not exist it might cause an error in the compilation process", sourceFile.getAbsolutePath());
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
index 6138d7e..7620110 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
@@ -21,6 +21,7 @@
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.TaintedEvent;
import org.apache.myfaces.extensions.scripting.core.common.util.ClassUtils;
import java.io.File;
@@ -54,60 +55,6 @@
volatile boolean changedForCompile = false;
- //todo clean up the sourcepath and filename
-
- //--- todo move this into a separate resource handling facility
-
-
-
- @Override
- /**
- * returns the source file in this case
- */
- public File getFile()
- {
- try
- {
- return _sourceFile;
- }
- catch (NullPointerException ex)
- {
- return null;
- }
- }
-
- public void setFile(File sourceFile)
- {
- _sourceFile = sourceFile;
- }
-
- public Class getAClass()
- {
- return _aClass;
- }
-
- public void setAClass(Class aClass)
- {
- this._aClass = aClass;
- }
-
- public int getScriptingEngine()
- {
- return _scriptingEngine;
- }
-
- public void setScriptingEngine(int scriptingEngine)
- {
- this._scriptingEngine = scriptingEngine;
- }
-
- @Override
- protected Object clone() throws CloneNotSupportedException
- {
- ClassResource retVal = (ClassResource) super.clone();
- return retVal;
- }
-
public String getSourceFile()
{
String sourceDir = getSourceDir();
@@ -158,6 +105,7 @@
logger.info("[EXT-SCRIPTING] tainting " + getSourceFile());
WeavingContext.getInstance().addTaintLogEntry(this);
WeavingContext.getInstance().gcTaintLog();
+ WeavingContext.getInstance().sendWeavingEvent(new TaintedEvent(this));
}
tainted = value;
}
@@ -197,4 +145,53 @@
{
this.changedForCompile = changedForCompile;
}
+
+
+ @Override
+ /**
+ * returns the source file in this case
+ */
+ public File getFile()
+ {
+ try
+ {
+ return _sourceFile;
+ }
+ catch (NullPointerException ex)
+ {
+ return null;
+ }
+ }
+
+ public void setFile(File sourceFile)
+ {
+ _sourceFile = sourceFile;
+ }
+
+ public Class getAClass()
+ {
+ return _aClass;
+ }
+
+ public void setAClass(Class aClass)
+ {
+ this._aClass = aClass;
+ }
+
+ public int getScriptingEngine()
+ {
+ return _scriptingEngine;
+ }
+
+ public void setScriptingEngine(int scriptingEngine)
+ {
+ this._scriptingEngine = scriptingEngine;
+ }
+
+ @Override
+ protected Object clone() throws CloneNotSupportedException
+ {
+ ClassResource retVal = (ClassResource) super.clone();
+ return retVal;
+ }
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ResourceMonitor.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ResourceMonitor.java
index 88558e7..e4a1af0 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ResourceMonitor.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ResourceMonitor.java
@@ -20,6 +20,8 @@
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.BeginLifecycle;
+import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.EndLifecycle;
import javax.servlet.ServletContext;
import java.lang.ref.WeakReference;
@@ -124,9 +126,19 @@
}
+ public void stopIt()
+ {
+ super.interrupt();
+ _instance = null;
+ ServletContext context = _externalContext.get();
+ context.setAttribute(CONTEXT_KEY, null);
+ _externalContext = null;
+ }
+
public void performMonitoringTask()
{
synchronized(WeavingContext.getInstance().recompileLock) {
+ WeavingContext.getInstance().sendWeavingEvent(new BeginLifecycle());
WeavingContext context = WeavingContext.getInstance();
context.fullScan();
@@ -138,11 +150,14 @@
//we next retaint all classes according to our dependency graph
context.markTaintedDependends();
}
+ WeavingContext.getInstance().sendWeavingEvent(new EndLifecycle());
}
//context.annotationScan();
}
+
+
private void sleep()
{
try
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/adapters/MyFacesSPI.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/adapters/MyFacesSPI.java
index ad2291a..248957e 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/adapters/MyFacesSPI.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/adapters/MyFacesSPI.java
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.scripting.jsf.adapters;
-import org.apache.myfaces.extensions.scripting.core.api.ImplementationSPI;
+import org.apache.myfaces.extensions.scripting.core.api.ImplementationService;
import org.apache.myfaces.extensions.scripting.core.common.util.ClassUtils;
import org.apache.myfaces.extensions.scripting.jsf.adapters.handlers.MyFacesBeanHandler;
@@ -30,7 +30,7 @@
*
* SPI for various myfaces related tasks
*/
-public class MyFacesSPI implements ImplementationSPI
+public class MyFacesSPI implements ImplementationService
{
CustomChainLoader _loader = null;
MyFacesBeanHandler beanHandler = new MyFacesBeanHandler();
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/context/InitialFullScanTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java
similarity index 78%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/context/InitialFullScanTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java
index a7ce6a9..82093e1 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/context/InitialFullScanTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java
@@ -17,9 +17,10 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.context;
+package org.apache.myfaces.extensions.scripting.core.context;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
@@ -57,26 +58,31 @@
{
ScriptingEngine javaEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_JAVA);
ScriptingEngine groovyEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_GROOVY);
- ClassLoader loader = this.getClass().getClassLoader();
- String canonicalPackageName = this.getClass().getPackage().getName().replaceAll("\\.", File.separator);
+ ScriptingEngine scalaEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_SCALA);
- Enumeration<URL> enumeration = loader.getResources(canonicalPackageName);
+ ClassLoader loader = this.getClass().getClassLoader();
+ String canonicalPackageName = this.getClass().getPackage().getName().replaceAll("\\.", File.separator); Enumeration<URL> enumeration = loader.getResources(canonicalPackageName);
javaEngine.getSourcePaths().clear();
groovyEngine.getSourcePaths().clear();
//TODO source not binary dirs
while(enumeration.hasMoreElements()) {
URL currentDir = enumeration.nextElement();
String currentDirStr = currentDir.getFile();
- currentDirStr = currentDirStr.replaceAll("target\\"+File.separatorChar+"test\\-classes",
+ currentDirStr = currentDirStr.replaceAll("target"+File.separatorChar+"test\\-classes",
"src/main/java");
- currentDirStr = currentDirStr.replaceAll("target\\"+File.separatorChar+"classes",
+ currentDirStr = currentDirStr.replaceAll("target"+File.separatorChar+"classes",
"src/main/java");
+ currentDirStr = currentDirStr.replaceAll("context", "api");
javaEngine.getSourcePaths().add(currentDirStr);
groovyEngine.getSourcePaths().add(currentDirStr);
+ scalaEngine.getSourcePaths().add(currentDirStr);
}
//we now scan for the files
WeavingContext.getInstance().fullScan();
-
+ assertTrue("watched resources must have java files", javaEngine.getWatchedResources().size() > 0);
+ javaEngine.getSourcePaths().clear();;
+ groovyEngine.getSourcePaths().clear();
+ scalaEngine.getSourcePaths().clear();
}
catch (IOException e)
{
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/context/TaintHistoryTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/context/TaintHistoryTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java
index ad8b9f9..5223791 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/context/TaintHistoryTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java
@@ -17,15 +17,14 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.context;
+package org.apache.myfaces.extensions.scripting.core.context;
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
import org.apache.myfaces.extensions.scripting.core.monitor.ClassResource;
-import org.apache.myfaces.extensions.scripting.jsf.components.RendererConst;
import org.apache.myfaces.extensions.scripting.jsf.components.TaintHistory;
import org.apache.myfaces.extensions.scripting.jsf.components.TaintHistoryRenderer;
-import org.apache.myfaces.extensions.scripting.scanningcore.support.ContextUtils;
+import org.apache.myfaces.extensions.scripting.core.support.ContextUtils;
import org.apache.myfaces.renderkit.html.HtmlFormRenderer;
import org.apache.myfaces.test.base.AbstractJsfTestCase;
import org.apache.myfaces.test.mock.MockRenderKitFactory;
@@ -45,7 +44,7 @@
* we try to test here a simple mechanism, the taint history under
* JSF Testing conditions.
*/
-@Ignore
+
public class TaintHistoryTest extends AbstractJsfTestCase
{
@@ -69,7 +68,7 @@
public void setUp() throws Exception
{
super.setUp();
- context = ContextUtils.startupSystem();
+ context = ContextUtils.startupSystem();
_writer = new MockResponseWriter(new StringWriter(), null, null);
facesContext.setResponseWriter(_writer);
@@ -88,6 +87,13 @@
new HtmlFormRenderer());
}
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ ContextUtils.stopSystem();
+ }
+
public void testBooga() {
assertTrue(true);
}
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintTest.java
new file mode 100644
index 0000000..f6e90b0
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintTest.java
@@ -0,0 +1,66 @@
+/*
+ * 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.extensions.scripting.core.context;
+
+import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
+import org.apache.myfaces.extensions.scripting.core.engine.FactoryEngines;
+import org.apache.myfaces.extensions.scripting.core.support.ContextUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.IOException;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+@Ignore
+public class TaintTest
+{
+ FactoryEngines factory = null;
+
+ public TaintTest(FactoryEngines factory)
+ {
+ this.factory = factory;
+
+ }
+
+ public void init() throws IOException
+ {
+ ContextUtils.startupSystem();
+ }
+
+ @Test
+ public void taintTest()
+ {
+ //we sleep 1000 to let the system play catchup
+ try
+ {
+ Thread.sleep(1000);
+ }
+ catch (InterruptedException e)
+ {
+
+ }
+ WeavingContext.getInstance().forName("Test");
+ WeavingContext.getInstance().forName("TestJava");
+ }
+
+}
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/EngineFactoryTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java
similarity index 91%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/EngineFactoryTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java
index a98f5d5..e2e6b0e 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/EngineFactoryTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java
@@ -17,11 +17,10 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.engine;
+package org.apache.myfaces.extensions.scripting.core.engine;
import org.junit.Before;
import org.junit.Test;
-import org.apache.myfaces.extensions.scripting.core.engine.FactoryEngines;
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import static org.junit.Assert.assertFalse;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/CompilationExceptionTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/CompilationExceptionTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java
index cd297bb..cff74d8 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/CompilationExceptionTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.engine.compiler;
+package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.junit.Test;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationException;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/CompilationResultTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java
similarity index 97%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/CompilationResultTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java
index de63fec..028bba6 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/CompilationResultTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.engine.compiler;
+package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.junit.Before;
import org.junit.Test;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/GroovyCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java
similarity index 97%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/GroovyCompilerTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java
index f7657c4..3237677 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/GroovyCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.engine.compiler;
+package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.apache.commons.io.FilenameUtils;
import org.junit.Test;
@@ -26,7 +26,6 @@
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
import org.apache.myfaces.extensions.scripting.core.engine.FactoryEngines;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
-import org.apache.myfaces.extensions.scripting.core.engine.compiler.GroovyCompiler;
import java.io.File;
import java.io.IOException;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/JavaCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/JavaCompilerTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java
index 66c535c..a463676 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/JavaCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java
@@ -17,18 +17,17 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.engine.compiler;
+package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.apache.commons.io.FilenameUtils;
+import org.junit.Ignore;
import org.junit.Test;
import org.apache.myfaces.extensions.scripting.core.api.Configuration;
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
import org.apache.myfaces.extensions.scripting.core.common.util.FileUtils;
import org.apache.myfaces.extensions.scripting.core.engine.FactoryEngines;
-import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationException;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
-import org.apache.myfaces.extensions.scripting.core.engine.compiler.JSR199Compiler;
import java.io.File;
import java.io.IOException;
@@ -139,7 +138,7 @@
result = compiler.compile(root, target, loader);
assertTrue(RESULT_HAS_NO_ERRORS, !result.hasErrors());
-
+ System.out.println(result.getCompilerOutput());
assertTrue(TARGET_DIR_EXISTS, target != null);
File classFile1 = new File(target.getAbsolutePath() + "/compiler/TestProbe1.class");
File classFile2 = new File(target.getAbsolutePath() + "/compiler/TestProbe2.class");
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/ScalaCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java
similarity index 96%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/ScalaCompilerTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java
index 342c4ff..a29e65c 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/engine/compiler/ScalaCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.engine.compiler;
+package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.apache.commons.io.FilenameUtils;
import org.apache.myfaces.extensions.scripting.core.api.Configuration;
@@ -26,7 +26,6 @@
import org.apache.myfaces.extensions.scripting.core.common.util.FileUtils;
import org.apache.myfaces.extensions.scripting.core.engine.FactoryEngines;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
-import org.apache.myfaces.extensions.scripting.core.engine.compiler.JSR199Compiler;
import org.apache.myfaces.extensions.scripting.core.engine.compiler.ScalaCompiler;
import org.junit.Test;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/MethodReloadingProbe.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/MethodReloadingProbe.java
similarity index 84%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/MethodReloadingProbe.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/MethodReloadingProbe.java
index c2bab21..3549fcf 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/MethodReloadingProbe.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/MethodReloadingProbe.java
@@ -1,4 +1,4 @@
-package org.apache.myfaces.extensions.scripting.scanningcore.probes;
+package org.apache.myfaces.extensions.scripting.core.probes;
/**
* Interface which will allow the proxying of our probe
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/Probe.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/Probe.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/Probe.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/Probe.java
index b6af8b4..8cee277 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/Probe.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/Probe.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.probes;
+package org.apache.myfaces.extensions.scripting.core.probes;
import org.junit.Ignore;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/Probe2.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/Probe2.java
similarity index 93%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/Probe2.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/Probe2.java
index 7987cb6..e9d2d2b 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/probes/Probe2.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/probes/Probe2.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.probes;
+package org.apache.myfaces.extensions.scripting.core.probes;
/**
* @author Werner Punz (latest modification by $Author$)
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/AbstractGeneratorTestCase.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/AbstractGeneratorTestCase.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/AbstractGeneratorTestCase.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/AbstractGeneratorTestCase.java
index dfc1772..cfc20a3 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/AbstractGeneratorTestCase.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/AbstractGeneratorTestCase.java
@@ -16,13 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.support;
+package org.apache.myfaces.extensions.scripting.core.support;
import junit.framework.TestCase;
-import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationException;
-import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
-import org.apache.myfaces.extensions.scripting.core.engine.compiler.JSR199Compiler;
-import org.apache.myfaces.extensions.scripting.core.engine.api.Compiler;
import java.io.File;
import java.io.FileOutputStream;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/Consts.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/Consts.java
similarity index 96%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/Consts.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/Consts.java
index a943542..c47a1c0 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/Consts.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/Consts.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.support;
+package org.apache.myfaces.extensions.scripting.core.support;
import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.*;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/ContextUtils.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/ContextUtils.java
similarity index 80%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/ContextUtils.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/ContextUtils.java
index 358bed5..0726dd0 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/ContextUtils.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/ContextUtils.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.support;
+package org.apache.myfaces.extensions.scripting.core.support;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
import org.apache.myfaces.extensions.scripting.core.monitor.ResourceMonitor;
-import org.apache.myfaces.extensions.scripting.scanningcore.support.MockServletContext;
+import org.apache.myfaces.extensions.scripting.jsf.adapters.MyFacesSPI;
import java.io.IOException;
@@ -32,6 +32,12 @@
public class ContextUtils
{
+
+ public static void stopSystem() {
+ //I know we should not
+ ResourceMonitor.getInstance().stopIt();
+ }
+
/**
* A startup routine shared by many tests
* to do the basic weaving initialization
@@ -39,7 +45,7 @@
* @return the mockup servlet context
*/
public static MockServletContext startupSystem() {
- MockServletContext context = new org.apache.myfaces.extensions.scripting.scanningcore.support.MockServletContext();
+ MockServletContext context = new org.apache.myfaces.extensions.scripting.core.support.MockServletContext();
WeavingContext wcontext = WeavingContext.getInstance();
try
@@ -47,8 +53,11 @@
wcontext.initEngines();
wcontext.getConfiguration().init(context);
ResourceMonitor.init(context);
- //TODO ??
+
ResourceMonitor.getInstance().performMonitoringTask();
+ ResourceMonitor.getInstance().start();
+
+ WeavingContext.getInstance().setImplementation(MyFacesSPI.getInstance());
}
catch (IOException e)
{
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/LoggingHandler.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/LoggingHandler.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/LoggingHandler.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/LoggingHandler.java
index 56b35cf..0f0a066 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/LoggingHandler.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/LoggingHandler.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.support;
+package org.apache.myfaces.extensions.scripting.core.support;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/MockServletContext.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/MockServletContext.java
new file mode 100644
index 0000000..67d6824
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/MockServletContext.java
@@ -0,0 +1,106 @@
+/*
+ * 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.extensions.scripting.core.support;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
+import org.apache.myfaces.extensions.scripting.jsf.startup.StartupServletContextPluginChainLoader;
+
+import java.io.File;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Basic unit testing servlet context mock
+ *
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class MockServletContext extends org.apache.myfaces.test.mock.MockServletContext
+{
+
+ Map<String, Object> _attributes = new HashMap<String, Object>();
+ Map<String, String> _initParameters = new HashMap<String, String>();
+ String _resourceRoot = "../../src/test/resources/webapp";
+
+ public MockServletContext()
+ {
+ setResourceRoot(_resourceRoot);
+ addInitParameter(ScriptingConst.INIT_PARAM_MYFACES_PLUGIN, StartupServletContextPluginChainLoader.class.getName());
+ //TODO we reroute the init params to
+ //our logical groovy and java dirs relative
+ //to our classpath
+ //ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ //URL rootDir = loader.getResource("/");
+ //String sRootDir = rootDir.getPath();
+ //String resourceDir = sRootDir+File.separator+"webapp";
+ String resourceDir = getResourceDir();
+
+ String javaDir = resourceDir + File.separator + "WEB-INF" + File.separator + "java";
+ String groovyDir = resourceDir + File.separator + "WEB-INF" + File.separator + "groovy";
+ String scalaDir = resourceDir + File.separator + "WEB-INF" + File.separator + "scala";
+
+ addInitParameter(ScriptingConst.INIT_PARAM_CUSTOM_JAVA_LOADER_PATHS, javaDir);
+ addInitParameter(ScriptingConst.INIT_PARAM_CUSTOM_SCALA_LOADER_PATHS, scalaDir);
+ addInitParameter(ScriptingConst.INIT_PARAM_CUSTOM_GROOVY_LOADER_PATHS, groovyDir);
+ addInitParameter(ScriptingConst.INIT_PARAM_RESOURCE_PATH, resourceDir);
+
+ }
+
+ private String getResourceDir()
+ {
+ //private field access
+ Field f = null;
+ String resourceDir = null;
+ try
+ {
+ f = org.apache.myfaces.test.mock.MockServletContext.class.getDeclaredField("documentRoot");
+ f.setAccessible(true);
+ File docRoot = (File) f.get(this);
+ resourceDir = docRoot.getAbsolutePath();
+ }
+ catch (NoSuchFieldException e)
+ {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ catch (IllegalAccessException e)
+ {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ return resourceDir;
+ }
+
+ public MockServletContext(String resourceRoot)
+ {
+ setResourceRoot(resourceRoot);
+ addInitParameter(ScriptingConst.INIT_PARAM_MYFACES_PLUGIN, StartupServletContextPluginChainLoader.class.getName());
+ }
+
+ public void setResourceRoot(String newRoot)
+ {
+ _resourceRoot = newRoot;
+ super.setDocumentRoot(new File(FilenameUtils.normalize(Thread.currentThread().getContextClassLoader().getResource("./")
+ .getPath() +
+ _resourceRoot)));
+ }
+
+}
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/PathUtils.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/PathUtils.java
similarity index 97%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/PathUtils.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/PathUtils.java
index e84b8ca..d2b2e1d 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/PathUtils.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/PathUtils.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.support;
+package org.apache.myfaces.extensions.scripting.core.support;
import java.io.File;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/utilstest/FileUtilsTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java
similarity index 95%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/utilstest/FileUtilsTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java
index 14f8588..43bd943 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/utilstest/FileUtilsTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.utilstest;
+package org.apache.myfaces.extensions.scripting.core.utilstest;
import org.junit.Before;
import org.junit.Test;
import org.apache.myfaces.extensions.scripting.core.common.util.FileUtils;
-import org.apache.myfaces.extensions.scripting.scanningcore.support.PathUtils;
+import org.apache.myfaces.extensions.scripting.core.support.PathUtils;
import java.io.File;
import java.util.List;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/utilstest/ReflectUtilTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java
similarity index 97%
rename from extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/utilstest/ReflectUtilTest.java
rename to extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java
index ebf37d3..e1bcb40 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/utilstest/ReflectUtilTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.scanningcore.utilstest;
+package org.apache.myfaces.extensions.scripting.core.utilstest;
import org.junit.After;
import org.junit.Before;
@@ -25,7 +25,7 @@
import org.apache.myfaces.extensions.scripting.core.common.util.Cast;
import org.apache.myfaces.extensions.scripting.core.common.util.Null;
import org.apache.myfaces.extensions.scripting.core.common.util.ReflectUtil;
-import org.apache.myfaces.extensions.scripting.scanningcore.probes.Probe;
+import org.apache.myfaces.extensions.scripting.core.probes.Probe;
import java.lang.reflect.Method;
import java.util.Collection;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/MockServletContext.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/MockServletContext.java
deleted file mode 100644
index 9df2b17..0000000
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/scanningcore/support/MockServletContext.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.extensions.scripting.scanningcore.support;
-
-
-import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
-import org.apache.myfaces.extensions.scripting.jsf.startup.StartupServletContextPluginChainLoader;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Basic unit testing servlet context mock
- *
- * @author Werner Punz (latest modification by $Author$)
- * @version $Revision$ $Date$
- */
-
-public class MockServletContext extends org.apache.myfaces.test.mock.MockServletContext {
-
- Map<String, Object> _attributes = new HashMap<String, Object>();
- Map<String, String> _initParameters = new HashMap<String, String>();
- String _resourceRoot = "../../src/test/resources/webapp";
-
- public MockServletContext() {
- setResourceRoot(_resourceRoot);
- addInitParameter(ScriptingConst.INIT_PARAM_MYFACES_PLUGIN, StartupServletContextPluginChainLoader.class.getName());
- }
-
- public MockServletContext(String resourceRoot) {
- setResourceRoot(resourceRoot);
- addInitParameter(ScriptingConst.INIT_PARAM_MYFACES_PLUGIN, StartupServletContextPluginChainLoader.class.getName());
- }
-
- public void setResourceRoot(String newRoot) {
- _resourceRoot = newRoot;
- super.setDocumentRoot(new File(Thread.currentThread().getContextClassLoader().getResource("./").getPath() + _resourceRoot));
- }
-
-}
diff --git a/extscript-core-root/extscript-core/src/test/resources/webapp/WEB-INF/groovy/Test1.groovy b/extscript-core-root/extscript-core/src/test/resources/webapp/WEB-INF/groovy/Test1.groovy
new file mode 100644
index 0000000..5c826fb
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/test/resources/webapp/WEB-INF/groovy/Test1.groovy
@@ -0,0 +1,8 @@
+
+/**
+ *
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+class Test1 {
+}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java b/extscript-core-root/extscript-core/src/test/resources/webapp/WEB-INF/java/Test2.java
similarity index 88%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
rename to extscript-core-root/extscript-core/src/test/resources/webapp/WEB-INF/java/Test2.java
index 4f5a745..58d5cfd 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/events/BeginLifecycle.java
+++ b/extscript-core-root/extscript-core/src/test/resources/webapp/WEB-INF/java/Test2.java
@@ -17,13 +17,11 @@
* under the License.
*/
-package org.apache.myfaces.extensions.scripting.core.api.events;
-
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-@WeavingEvent
-public class BeginLifecycle
+
+public class Test2
{
}