You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2014/03/22 00:50:40 UTC
svn commit: r1580086 - in /jmeter/trunk:
src/core/org/apache/jmeter/util/JSR223BeanInfoSupport.java
src/core/org/apache/jmeter/util/ScriptingBeanInfoSupport.java
xdocs/changes.xml
Author: sebb
Date: Fri Mar 21 23:50:40 2014
New Revision: 1580086
URL: http://svn.apache.org/r1580086
Log:
JSR223 language display does not show which engine will be used
Bugzilla Id: 56298
Modified:
jmeter/trunk/src/core/org/apache/jmeter/util/JSR223BeanInfoSupport.java
jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingBeanInfoSupport.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/util/JSR223BeanInfoSupport.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/JSR223BeanInfoSupport.java?rev=1580086&r1=1580085&r2=1580086&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/util/JSR223BeanInfoSupport.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/util/JSR223BeanInfoSupport.java Fri Mar 21 23:50:40 2014
@@ -19,11 +19,13 @@
package org.apache.jmeter.util;
import java.util.Arrays;
-import java.util.HashSet;
+import java.util.HashMap;
import java.util.List;
+import java.util.ListResourceBundle;
import java.util.Locale;
-import java.util.Set;
-
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.ResourceBundle;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
@@ -36,22 +38,44 @@ public abstract class JSR223BeanInfoSupp
private static final String[] LANGUAGE_TAGS;
+ public static final String[][] LANGUAGE_NAMES;
+
static {
- Set<String> shortNames = new HashSet<String>();
+ Map<String, ScriptEngineFactory> nameMap = new HashMap<String, ScriptEngineFactory>();
ScriptEngineManager sem = new ScriptEngineManager();
final List<ScriptEngineFactory> engineFactories = sem.getEngineFactories();
for(ScriptEngineFactory fact : engineFactories){
List<String> names = fact.getNames();
for(String shortName : names) {
- shortNames.add(shortName.toLowerCase(Locale.ENGLISH));
+ nameMap.put(shortName.toLowerCase(Locale.ENGLISH), fact);
}
}
- LANGUAGE_TAGS = shortNames.toArray(new String[shortNames.size()]);
+ LANGUAGE_TAGS = nameMap.keySet().toArray(new String[nameMap.size()]);
Arrays.sort(LANGUAGE_TAGS);
+ LANGUAGE_NAMES = new String[nameMap.size()][2];
+ int i = 0;
+ for(Entry<String, ScriptEngineFactory> me : nameMap.entrySet()) {
+ final String key = me.getKey();
+ LANGUAGE_NAMES[i][0] = key;
+ final ScriptEngineFactory fact = me.getValue();
+ LANGUAGE_NAMES[i++][1] = key +
+ " (" // $NON-NLS-1$
+ + fact.getLanguageName() + " " + fact.getLanguageVersion() // $NON-NLS-1$
+ + " / " // $NON-NLS-1$
+ + fact.getEngineName() + " " + fact.getEngineVersion() // $NON-NLS-1$
+ + ")"; // $NON-NLS-1$
+ }
}
+ private static final ResourceBundle NAME_BUNDLE = new ListResourceBundle() {
+ @Override
+ protected Object[][] getContents() {
+ return LANGUAGE_NAMES;
+ }
+ };
+
protected JSR223BeanInfoSupport(Class<? extends TestBean> beanClass) {
- super(beanClass, LANGUAGE_TAGS);
+ super(beanClass, LANGUAGE_TAGS, NAME_BUNDLE);
}
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingBeanInfoSupport.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingBeanInfoSupport.java?rev=1580086&r1=1580085&r2=1580086&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingBeanInfoSupport.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingBeanInfoSupport.java Fri Mar 21 23:50:40 2014
@@ -19,6 +19,7 @@
package org.apache.jmeter.util;
import java.beans.PropertyDescriptor;
+import java.util.ResourceBundle;
import org.apache.jmeter.testbeans.BeanInfoSupport;
import org.apache.jmeter.testbeans.TestBean;
@@ -30,13 +31,20 @@ import org.apache.jmeter.testbeans.gui.T
*/
public abstract class ScriptingBeanInfoSupport extends BeanInfoSupport {
- protected ScriptingBeanInfoSupport(Class<? extends TestBean> beanClass, String[] LANGUAGE_TAGS) {
+ public ScriptingBeanInfoSupport(Class<? extends TestBean> beanClass, String[] languageTags) {
+ this(beanClass, languageTags, null);
+ }
+
+ protected ScriptingBeanInfoSupport(Class<? extends TestBean> beanClass, String[] LANGUAGE_TAGS, ResourceBundle rb) {
super(beanClass);
PropertyDescriptor p;
p = property("scriptLanguage"); // $NON-NLS-1$
p.setValue(NOT_UNDEFINED, Boolean.TRUE);
p.setValue(DEFAULT, ""); // $NON-NLS-1$
+ if (rb != null) {
+ p.setValue(RESOURCE_BUNDLE, rb);
+ }
p.setValue(TAGS, LANGUAGE_TAGS);
createPropertyGroup("scriptingLanguage", // $NON-NLS-1$
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1580086&r1=1580085&r2=1580086&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Fri Mar 21 23:50:40 2014
@@ -211,6 +211,7 @@ A workaround is to use a Java 7 update 4
<ul>
<li><bugzilla>21695</bugzilla> - Unix jmeter start script assumes it is on PATH, not a link</li>
<li><bugzilla>56292</bugzilla> - Add the check of the Java's version in startup files and disable some options when is Java v8 engine</li>
+<li><bugzilla>56298</bugzilla> - JSR223 language display does not show which engine will be used</li>
</ul>
<ch_section>Non-functional changes</ch_section>