https://issues.apache.org/jira/browse/EXTSCRIPT-177
git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@1400851 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java
index 0cf5d77..d1a6f04 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java
@@ -25,7 +25,6 @@
import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEventListener;
import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.RefreshBeginEvent;
import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.TaintedEvent;
-import org.apache.myfaces.extensions.scripting.core.engine.ThrowAwayClassloader;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java
index 1f5018f..3a85f7f 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java
@@ -19,11 +19,9 @@
package org.apache.myfaces.extensions.scripting.cdi.startup;
-import javax.servlet.ServletContextEvent;
-
-import org.apache.myfaces.extensions.scripting.cdi.core.ReloadingListener;
import org.apache.myfaces.extensions.scripting.core.api.Plugin;
-import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
+
+import javax.servlet.ServletContextEvent;
/**
* @author Werner Punz (latest modification by $Author$)
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/StartupExtension.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/StartupExtension.java
index 814e2f5..52f3b76 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/StartupExtension.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/StartupExtension.java
@@ -20,15 +20,12 @@
package org.apache.myfaces.extensions.scripting.cdi.startup;
import org.apache.myfaces.extensions.scripting.cdi.core.CDIThrowAwayClassloader;
-import org.apache.myfaces.extensions.scripting.core.engine.ThrowAwayClassloader;
-import org.apache.myfaces.extensions.scripting.jsf.startup.StartupServletContextPluginChainLoader;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.AfterDeploymentValidation;
import javax.enterprise.inject.spi.BeforeBeanDiscovery;
import javax.enterprise.inject.spi.Extension;
-import java.io.IOException;
/**
* @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/Configuration.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java
index 05f2b7e..341c32e 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java
@@ -28,21 +28,18 @@
import java.io.FilenameFilter;
import java.lang.ref.WeakReference;
import java.net.MalformedURLException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.CopyOnWriteArrayList;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINETYPE_JSF_JRUBY;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINE_TYPE_JSF_GROOVY;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINE_TYPE_JSF_JAVA;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.GROOVY_FILE_ENDING;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.JRUBY_FILE_ENDING;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.INIT_PARAM_INITIAL_COMPILE;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.INIT_PARAM_RESOURCE_PATH;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.INIT_PARAM_SCRIPTING_ADDITIONAL_CLASSPATH;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.INIT_PARAM_SCRIPTING_PACKAGE_WHITELIST;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.JAVA_FILE_ENDING;
+import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.*;
/**
* @author Werner Punz (latest modification by $Author$)
@@ -155,7 +152,7 @@
return JAVA_FILE_ENDING;
case ENGINE_TYPE_JSF_GROOVY:
return GROOVY_FILE_ENDING;
- case ENGINETYPE_JSF_JRUBY:
+ case ENGINE_TYPE_JSF_JRUBY:
return JRUBY_FILE_ENDING;
default:
throw new UnsupportedOperationException("Engine type unknown");
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java
index 9af70c2..0c469f5 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java
@@ -62,7 +62,7 @@
public static final int ENGINE_TYPE_JSF_GROOVY = 0;
public static final int ENGINE_TYPE_JSF_JAVA = 1;
public static final int ENGINE_TYPE_JSF_SCALA = 2;
- public static final int ENGINETYPE_JSF_JRUBY = 3;
+ public static final int ENGINE_TYPE_JSF_JRUBY = 3;
public static final int ARTIFACT_TYPE_UNKNOWN = -1;
public static final int ARTIFACT_TYPE_MANAGEDBEAN = 1;
public static final int ARTIFACT_TYPE_MANAGEDPROPERTY = 2;
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
index 06a0fcf..fe90dad 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
@@ -45,7 +45,7 @@
{
List<String> _scanPaths = new LinkedList<String>();
DependencyScanner _depencyScanner = new StandardDependencyScanner();
- Logger _log = Logger.getLogger(JavaDependencyScanner.class.getName());
+ Logger _log = Logger.getLogger(BaseScanner.class.getName());
public abstract int getEngineType();
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineJRuby.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineJRuby.java
index da2f3af..272d801 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineJRuby.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineJRuby.java
@@ -26,7 +26,6 @@
import org.apache.myfaces.extensions.scripting.core.common.util.ClassUtils;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
import org.apache.myfaces.extensions.scripting.core.engine.api.ScriptingEngine;
-import org.apache.myfaces.extensions.scripting.core.engine.compiler.GroovyCompiler;
import org.apache.myfaces.extensions.scripting.core.engine.compiler.JRubyCompiler;
import org.apache.myfaces.extensions.scripting.core.reloading.SimpleReloadingStrategy;
import org.jruby.RubyObject;
@@ -38,8 +37,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINETYPE_JSF_JRUBY;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINE_TYPE_JSF_GROOVY;
+import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINE_TYPE_JSF_JRUBY;
import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.INIT_PARAM_CUSTOM_JRUBY_LOADER_PATHS;
import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.JRUBY_SOURCE_ROOT;
@@ -61,7 +59,7 @@
@Override
public int getEngineType()
{
- return ENGINE_TYPE_JSF_GROOVY;
+ return ENGINE_TYPE_JSF_JRUBY;
}
public String getEngineTypeAsStr()
@@ -115,7 +113,7 @@
Configuration configuration = context.getConfiguration();
JRubyCompiler compiler = new JRubyCompiler();
File targetDir = configuration.getCompileTarget();
- Collection<String> sourceDirs = configuration.getSourceDirs(ENGINETYPE_JSF_JRUBY);
+ Collection<String> sourceDirs = configuration.getSourceDirs(ENGINE_TYPE_JSF_JRUBY);
CompilationResult res = null;
for (String sourceRoot : sourceDirs)
{
@@ -126,10 +124,10 @@
public void scanDependencies()
{
- log.info("[EXT-SCRIPTING] starting dependency scan");
- //GroovyDependencyScanner scanner = new GroovyDependencyScanner();
- //scanner.scanPaths();
- log.info("[EXT-SCRIPTING] ending dependency scan");
+ log.info("[EXT-SCRIPTING] starting jruby dependency scan");
+ JRubyDependencyScanner scanner = new JRubyDependencyScanner();
+ scanner.scanPaths();
+ log.info("[EXT-SCRIPTING] ending jruby dependency scan");
}
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/FactoryEngines.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/FactoryEngines.java
index ee83650..e2da97e 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/FactoryEngines.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/FactoryEngines.java
@@ -49,6 +49,7 @@
ScriptingEngine javaEngine = new EngineJava();
ScriptingEngine groovyEngine = null;
ScriptingEngine scalaEngine = null;
+ ScriptingEngine jrubyEngine = null;
try
{
ClassUtils.getContextClassLoader().loadClass("groovy.lang.GroovyObject");
@@ -67,6 +68,15 @@
catch (Exception ex)
{
}
+ try
+ {
+ ClassUtils.getContextClassLoader().loadClass("org.jruby.RubyObject");
+ jrubyEngine = (ScriptingEngine) ReflectUtil.instantiate("org.apache.myfaces.extensions.scripting.core" +
+ ".engine.EngineJRuby");
+ }
+ catch (Exception ex)
+ {
+ }
if (_engines.isEmpty())
{
@@ -77,18 +87,20 @@
_engines.put(groovyEngine.getEngineType(), groovyEngine);
if (scalaEngine != null)
_engines.put(scalaEngine.getEngineType(), scalaEngine);
+ if (jrubyEngine != null) {
+ _engines.put(jrubyEngine.getEngineType(), jrubyEngine);
+ }
_engines.put(javaEngine.getEngineType(), javaEngine);
}
}
-
-
public Collection<ScriptingEngine> getEngines()
{
List<ScriptingEngine> engineList = new ArrayList<ScriptingEngine>();
- for(Map.Entry<Integer, ScriptingEngine> entry: _engines.entrySet()) {
- engineList.add(entry.getValue());
+ for (Map.Entry<Integer, ScriptingEngine> entry : _engines.entrySet())
+ {
+ engineList.add(entry.getValue());
}
return engineList;
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/JRubyDependencyScanner.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/JRubyDependencyScanner.java
new file mode 100644
index 0000000..1463a89
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/JRubyDependencyScanner.java
@@ -0,0 +1,46 @@
+/*
+ * 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.engine;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
+import org.apache.myfaces.extensions.scripting.core.engine.api.ClassScanner;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class JRubyDependencyScanner extends BaseScanner implements ClassScanner
+{
+ public JRubyDependencyScanner() {
+ }
+
+ public int getEngineType() {
+ return ScriptingConst.ENGINE_TYPE_JSF_JRUBY;
+ }
+ public String getFileEnding() {
+ return ScriptingConst.JRUBY_FILE_ENDING;
+ }
+}
\ No newline at end of file
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ContainerFileManager.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ContainerFileManager.java
index 6369b97..4513c95 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ContainerFileManager.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ContainerFileManager.java
@@ -18,15 +18,10 @@
*/
package org.apache.myfaces.extensions.scripting.core.engine.compiler;
-import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
-import org.apache.myfaces.extensions.scripting.core.common.util.ClassLoaderUtils;
-
-import javax.tools.FileObject;
import javax.tools.ForwardingJavaFileManager;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import java.io.File;
-import java.io.IOException;
/**
* File manager, enforced by the Java Compiler API
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompiler.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompiler.java
index 1065b09..2a56589 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompiler.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompiler.java
@@ -23,16 +23,17 @@
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
import org.apache.myfaces.extensions.scripting.core.common.util.ClassLoaderUtils;
import org.apache.myfaces.extensions.scripting.core.common.util.FileUtils;
-import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationException;
+import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationMessage;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.File;
+import java.util.ArrayList;
import java.util.List;
-import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINETYPE_JSF_JRUBY;
+import static org.apache.myfaces.extensions.scripting.core.api.ScriptingConst.ENGINE_TYPE_JSF_JRUBY;
import static org.apache.myfaces.extensions.scripting.core.engine.api.CompilerConst.JRUBY_WILDARD;
/**
@@ -52,14 +53,15 @@
public CompilationResult compile(File sourcePath, File targetPath, ClassLoader classLoader)
{
targetPath.mkdirs();
- String sources = getSourceFiles();
+ List<String> sources = getSourceFiles();
return compile(sourcePath, targetPath, sources);
}
- public CompilationResult compile(File sourcePath, File targetPath, String sources)
+ public CompilationResult compile(File sourcePath, File targetPath, List<String> sources)
{
targetPath.mkdirs();
- if(targetPath.isDirectory() && targetPath.exists()){
+ if (targetPath.isDirectory() && targetPath.exists())
+ {
System.out.println("targetpath is there");
}
String classPath = ClassLoaderUtils.buildClasspath(ClassLoaderUtils.getDefaultClassLoader());
@@ -67,23 +69,34 @@
StringBuilder commandString = new StringBuilder();
commandString.append("require 'jruby/jrubyc'\n");
commandString.append("options = Array.new \n");
- commandString.append("options << '-d" + sourcePath.getAbsolutePath() + "'\n");
+ commandString.append("options << '-d" + sourcePath.getAbsolutePath().replaceAll("\\s", "\\\\ ") + "'\n");
commandString.append("options<< '--javac' \n");
- commandString.append("options<< '-t" + targetPath.getAbsolutePath() + "'\n");
- commandString.append("options<< '-c" + classPath + " '\n");
- commandString.append("options<< '" + sources + " '\n");
+ commandString.append("options<< '-t" + targetPath.getAbsolutePath().replaceAll("\\s", "\\\\ ") + "'\n");
+ commandString.append("options<< '-c" + classPath.replaceAll("\\s", "\\\\ ") + "'\n");
+ for (String singleSource : sources)
+ {
+ commandString.append("options<< '" + singleSource.replaceAll("\\s", "\\\\ ") + "'\n");
+ }
+
+ //commandString.append("options<< '" + sources + "'\n");
commandString.append("$status = JRuby::Compiler::compile_argv(options) \n");
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName(ENGINE_JRUBY);
try
{
engine.eval(commandString.toString());
- String status = (String) engine.get("status");
- if(status.equals("0")) {
- return null;
+ Long status = (Long) engine.get("status");
+ if (status.equals(0L))
+ {
+ CompilationResult result = new CompilationResult("");
+ return result;
}
- //TODO parse the result and return a meaningful compilationresult
- return null;
+ else
+ {
+ CompilationResult result = new CompilationResult("");
+ result.registerError(new CompilationMessage(status, "Errors occurred in a JRuby file please consult your log for further details"));
+ return result;
+ }
}
catch (ScriptException e)
{
@@ -93,19 +106,20 @@
return null;
}
- private String getSourceFiles()
+ private List<String> getSourceFiles()
{
WeavingContext context = WeavingContext.getInstance();
Configuration configuration = context.getConfiguration();
List<File> sourceFiles = FileUtils.fetchSourceFiles(configuration.getWhitelistedSourceDirs
- (ENGINETYPE_JSF_JRUBY), JRUBY_WILDARD);
+ (ENGINE_TYPE_JSF_JRUBY), JRUBY_WILDARD);
StringBuilder sources = new StringBuilder(sourceFiles.size() * 30);
+ List<String> sourcesStr = new ArrayList<String>(sourceFiles.size());
for (File sourceFile : sourceFiles)
{
- sources.append(sourceFile.getAbsolutePath());
- sources.append(" ");
+ sourcesStr.add(sourceFile.getAbsolutePath());
+ //sources.append(" ");
}
- return sources.toString();
+ return sourcesStr;
}
public static void main(String... argv)
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 2ca5c1e..bfc44c2 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
@@ -28,7 +28,6 @@
import javax.tools.Diagnostic;
import javax.tools.DiagnosticCollector;
-import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
diff --git a/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultReporter.scala b/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultReporter.scala
index 48c9858..6a7baa6 100644
--- a/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultReporter.scala
+++ b/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultReporter.scala
@@ -23,7 +23,6 @@
import scala.tools.nsc.util._
import tools.nsc.reporters.AbstractReporter
-import java.io.{ BufferedReader, IOException, PrintWriter }
import org.apache.myfaces.extensions.scripting.core.engine.api.{CompilationMessage, CompilationResult}
/**
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java
index e878019..3b318a6 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/InitialFullScanTest.java
@@ -19,21 +19,18 @@
package org.apache.myfaces.extensions.scripting.core.context;
-import org.apache.myfaces.extensions.scripting.core.common.util.FileUtils;
-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;
+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.ScriptingEngine;
+import org.junit.Before;
+import org.junit.Test;
-import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -60,6 +57,7 @@
ScriptingEngine javaEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_JAVA);
ScriptingEngine groovyEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_GROOVY);
ScriptingEngine scalaEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_SCALA);
+ ScriptingEngine jrubyEngine = factory.getEngine(ScriptingConst.ENGINE_TYPE_JSF_JRUBY);
ClassLoader loader = this.getClass().getClassLoader();
String canonicalPackageName = this.getClass().getPackage().getName().replaceAll("\\.", FileUtils.getFileSeparatorForRegex()); Enumeration<URL> enumeration = loader.getResources(canonicalPackageName);
@@ -85,6 +83,8 @@
javaEngine.getSourcePaths().clear();;
groovyEngine.getSourcePaths().clear();
scalaEngine.getSourcePaths().clear();
+ jrubyEngine.getSourcePaths().clear();
+
}
catch (IOException e)
{
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java
index 5223791..a5ff7ac 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/context/TaintHistoryTest.java
@@ -22,14 +22,13 @@
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.core.support.ContextUtils;
import org.apache.myfaces.extensions.scripting.jsf.components.TaintHistory;
import org.apache.myfaces.extensions.scripting.jsf.components.TaintHistoryRenderer;
-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;
import org.apache.myfaces.test.mock.MockResponseWriter;
-import org.junit.Ignore;
import javax.faces.component.html.HtmlForm;
import javax.servlet.ServletContext;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java
index e2e6b0e..daa3882 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/EngineFactoryTest.java
@@ -19,11 +19,10 @@
package org.apache.myfaces.extensions.scripting.core.engine;
+import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.junit.Before;
import org.junit.Test;
-import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
* @author Werner Punz (latest modification by $Author$)
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java
index cff74d8..7afa144 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationExceptionTest.java
@@ -19,8 +19,8 @@
package org.apache.myfaces.extensions.scripting.core.engine.compiler;
-import org.junit.Test;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationException;
+import org.junit.Test;
import static org.junit.Assert.assertTrue;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java
index 6c85e41..19adb7c 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/CompilationResultTest.java
@@ -20,9 +20,9 @@
package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationMessage;
+import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
import org.junit.Before;
import org.junit.Test;
-import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
import static junit.framework.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java
index 58eda6b..7d61a4b 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompilerTest.java
@@ -20,12 +20,12 @@
package org.apache.myfaces.extensions.scripting.core.engine.compiler;
import org.apache.commons.io.FilenameUtils;
-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.engine.FactoryEngines;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
+import org.junit.Test;
import java.io.File;
import java.io.IOException;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompilerTest.java
index a9b48db..6786938 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JRubyCompilerTest.java
@@ -19,10 +19,23 @@
package org.apache.myfaces.extensions.scripting.core.engine.compiler;
+import org.apache.commons.io.FilenameUtils;
+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.CompilationResult;
import org.junit.Test;
import java.io.File;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.nio.charset.Charset;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
/**
* @author Werner Punz (latest modification by $Author$)
@@ -33,9 +46,11 @@
{
private static final String ROOT_DIR =
"/Users/werpu2/development/workspace/extscript_trunk/extscript-core-root/extscript-core";
- private static final String PROBE1 = "src/test/resources/compiler/TestProbe1.rb";
- private static final String PROBE2 = "src/test/resources/compiler/TestProbe2.rb";
- private static final String RESOURCES = "src/test/resources/";
+ private static final String PROBE1 = "../../src/test/resources/compiler/TestProbe1JRuby.rb";
+ private static final String PROBE2 = "../../src/test/resources/compiler/TestProbe2JRuby.rb";
+ private static final String RESOURCES = "../../src/test/resources/";
+
+ JRubyCompiler compiler = new JRubyCompiler();
File probe1;
File probe2;
@@ -47,13 +62,76 @@
private static final String CLASSFILE1_IS_COMPILED1 = "Classfile1 is compiled into the target";
private static final String CLASSFILE2_IS_COMPILED = "Classfile2 is compiled into the target";
- @Test
- public void basicCompilerTest()
+ public JRubyCompilerTest()
{
- File tempDir = FileUtils.getTempDir();
- tempDir.mkdirs();
- JRubyCompiler compiler = new JRubyCompiler();
- compiler.compile(new File(ROOT_DIR), tempDir, File.separator + PROBE1);
+ try
+ {
+ FactoryEngines.getInstance().init();
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ //we use a location relative to our current root one to reach the sources
+ //because the test also has to be performed outside of maven
+ //and the ide cannot cope with resource paths for now
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
+ String currentPath = null;
+
+ try
+ {
+ currentPath = URLDecoder.decode(loader.getResource("./").getPath(),
+ Charset.defaultCharset().toString());
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ fail(e.getMessage());
+ }
+ String sourcePath1 = currentPath + PROBE1;
+ String sourcePath2 = currentPath + PROBE2;
+ String rootPath = currentPath + RESOURCES;
+
+ sourcePath1 = FilenameUtils.normalize(sourcePath1);
+ sourcePath2 = FilenameUtils.normalize(sourcePath2);
+ rootPath = FilenameUtils.normalize(rootPath);
+
+ probe1 = new File(sourcePath1);
+ probe2 = new File(sourcePath2);
+ root = new File(rootPath);
+
+ WeavingContext.getInstance().setConfiguration(new Configuration());
+ WeavingContext.getInstance().getConfiguration().addSourceDir(ScriptingConst.ENGINE_TYPE_JSF_JRUBY, root.getAbsolutePath());
+
}
+ @Test
+ public void testFullCompile()
+ {
+ File targetDir = null;
+
+ File target = WeavingContext.getInstance().getConfiguration().getCompileTarget();
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ target.mkdirs();
+ target.deleteOnExit();
+
+ CompilationResult result = compiler.compile(root, target, loader);
+
+ assertTrue(RESULT_HAS_NO_ERRORS, !result.hasErrors());
+
+ assertTrue(TARGET_DIR_EXISTS, target != null);
+ File classFile1 = new File(target.getAbsolutePath() + "/compiler/TestProbe1JRuby.class");
+ File classFile2 = new File(target.getAbsolutePath() + "/compiler/TestProbe2JRuby.class");
+
+ assertTrue(CLASSFILE1_IS_COMPILED1, classFile1.exists());
+ assertTrue(CLASSFILE2_IS_COMPILED, classFile2.exists());
+ classFile1.delete();
+ classFile2.delete();
+ WeavingContext.getInstance().getConfiguration().getCompileTarget().delete();
+ WeavingContext.getInstance().getConfiguration().getCompileTarget().mkdirs();
+
+
+ }
+
+
}
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java
index 1f967a8..cadcee2 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JavaCompilerTest.java
@@ -20,14 +20,13 @@
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.CompilationResult;
+import org.junit.Test;
import javax.tools.Diagnostic;
import javax.tools.DiagnosticCollector;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java
index a71dea0..5e4731e 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompilerTest.java
@@ -26,8 +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.ScalaCompiler;
-import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java
index 43bd943..44ca5df 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/FileUtilsTest.java
@@ -19,10 +19,10 @@
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.core.support.PathUtils;
+import org.junit.Before;
+import org.junit.Test;
import java.io.File;
import java.util.List;
diff --git a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java
index e1bcb40..336a734 100644
--- a/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java
+++ b/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/utilstest/ReflectUtilTest.java
@@ -19,13 +19,13 @@
package org.apache.myfaces.extensions.scripting.core.utilstest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
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.core.probes.Probe;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
import java.lang.reflect.Method;
import java.util.Collection;
diff --git a/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe1.rb b/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe1JRuby.rb
similarity index 69%
rename from extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe1.rb
rename to extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe1JRuby.rb
index d5e9696..04ec2b9 100644
--- a/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe1.rb
+++ b/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe1JRuby.rb
@@ -1,7 +1,10 @@
+java_package 'compiler'
+java_import 'javax.faces.bean.ManagedBean'
# a small ruby testing class to test for a valid compilation
# from the compiler
# @author Werner Punz
-class TestProbe1
+add_class_annotation '@ManagedBean'
+class TestProbe1JRuby
java_signature 'void helloWorld()'
def helloWorld
puts "Hello from Ruby"
diff --git a/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe2.rb b/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe2.rb
deleted file mode 100644
index 928ac85..0000000
--- a/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe2.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-java_package 'compiler'
-class TestProbe2
-
-end
\ No newline at end of file
diff --git a/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe2JRuby.rb b/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe2JRuby.rb
new file mode 100644
index 0000000..5a25c52
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/test/resources/compiler/TestProbe2JRuby.rb
@@ -0,0 +1,4 @@
+java_package 'compiler'
+class TestProbe2JRuby
+
+end
\ No newline at end of file
diff --git a/extscript-core-root/extscript-core/src/test/resources/compiler/myPackage/WhiteListedProbeRuby.rb b/extscript-core-root/extscript-core/src/test/resources/compiler/myPackage/WhiteListedProbeRuby.rb
new file mode 100644
index 0000000..6cb57f9
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/test/resources/compiler/myPackage/WhiteListedProbeRuby.rb
@@ -0,0 +1,4 @@
+java_package 'compiler.myPackage'
+class WhisteListedProbeJRuby
+
+end
\ No newline at end of file
diff --git a/extscript-examples/myfaces20-example/pom.xml b/extscript-examples/myfaces20-example/pom.xml
index 48cf4ee..052fdb6 100644
--- a/extscript-examples/myfaces20-example/pom.xml
+++ b/extscript-examples/myfaces20-example/pom.xml
@@ -62,8 +62,9 @@
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <!-- source 1.7 due to jruby constraints -->
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
diff --git a/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml b/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
index 7d438df..42ae074 100644
--- a/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
+++ b/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
@@ -30,6 +30,12 @@
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
+ <managed-bean>
+ <managed-bean-name>helloJRubyBean</managed-bean-name>
+ <managed-bean-class>org.apache.myfaces.jrubyloader.bean.HelloJRubyBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+
<managed-bean>
<managed-bean-name>testbean</managed-bean-name>
diff --git a/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/ruby/org/apache/myfaces/jrubyloader/bean/HelloJRubyBean.rb b/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/ruby/org/apache/myfaces/jrubyloader/bean/HelloJRubyBean.rb
new file mode 100644
index 0000000..2dddee6
--- /dev/null
+++ b/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/ruby/org/apache/myfaces/jrubyloader/bean/HelloJRubyBean.rb
@@ -0,0 +1,8 @@
+java_package 'org.apache.myfaces.jrubyloader.bean'
+
+class HelloJRubyBean
+ java_signature 'String getHelloWorld()'
+ def getHelloWorld
+ "Hello from Ruby"
+ end
+end
\ No newline at end of file
diff --git a/extscript-examples/myfaces20-example/src/main/webapp/complexBean.xhtml b/extscript-examples/myfaces20-example/src/main/webapp/complexBean.xhtml
index 551460b..3172444 100644
--- a/extscript-examples/myfaces20-example/src/main/webapp/complexBean.xhtml
+++ b/extscript-examples/myfaces20-example/src/main/webapp/complexBean.xhtml
@@ -33,6 +33,7 @@
<h:inputText id="myText" value="#{myBean.test}" binding="#{myBean.bindingMyTest}"/>
<h:outputText value="#{receiver.myBean.hello}"/>
<h:outputText value="#{receiver.myBean.secondaryBean.hello}"/>
+ <h:outputText value="#{helloJRubyBean.helloWorld}" />
</h:form>
</h:body>
</html>
diff --git a/pom.xml b/pom.xml
index ee52b5c..82b42c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -213,7 +213,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
+ <version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>