[jboss-svn-commits] JBL Code SVN: r31548 - in labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk: src and 15 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Feb 10 09:31:06 EST 2010
Author: lkrzyzanek
Date: 2010-02-10 09:31:06 -0500 (Wed, 10 Feb 2010)
New Revision: 31548
Added:
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/pom.xml
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/assembly/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/assembly/assembly-plugin.xml
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/struts/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/struts/AdminConsoleAction.java
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/plugin.xml
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/templates/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/templates/admin/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/templates/admin/script-console.ftl
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/struts.xml
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/resources/
labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/resources/plugin_i18n.properties
Log:
Added initial content
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/pom.xml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/pom.xml 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.labs.sbs.plugin</groupId>
+ <artifactId>script-console</artifactId>
+ <name>script-console</name>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <build>
+ <finalName>script-console-plugin</finalName>
+ <plugins>
+ <!-- For compilation-->
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <!-- Weave transactions into the plugin -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>aspectj-maven-plugin</artifactId>
+ <version>1.1</version>
+ <configuration>
+ <aspectLibraries>
+ <aspectLibrary>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-aspects</artifactId>
+ </aspectLibrary>
+ </aspectLibraries>
+ <source>1.6</source>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+ <descriptor>${basedir}/src/main/assembly/assembly-plugin.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <!--
+ Unpackages this SBS plugin. That way it can be used in
+ conjunction with the -DpluginDirs= property, which
+ bypasses the standard plugin installation (which happens
+ via the admin console), by pointing to exploded plugin jar
+ created by this.
+ -->
+ <id>explode-sbs-plugin</id>
+ <phase>package</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <mkdir dir="${basedir}/target/script-console" />
+ <unjar src="${basedir}/target/script-console-plugin.jar"
+ dest="${basedir}/target/script-console" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- For unit testing -->
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/selenium/*Test.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>com.jivesoftware</groupId>
+ <artifactId>jive-sbs-employee</artifactId>
+ <version>${sbs.version}</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.jivesoftware</groupId>
+ <artifactId>jive-sbs-employee-all</artifactId>
+ <version>${sbs.version}</version>
+ <type>pom</type>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.3</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+ <!-- The following dependencies are for unit testing-->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.objenesis</groupId>
+ <artifactId>objenesis</artifactId>
+ <version>1.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jmock</groupId>
+ <artifactId>jmock-junit4</artifactId>
+ <version>2.4.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <!--
+ This is where you set the Jive SBS version your plugin is compiled
+ against.
+ -->
+ <properties>
+ <sbs.version>4.0.3</sbs.version>
+ </properties>
+</project>
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/assembly/assembly-plugin.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/assembly/assembly-plugin.xml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/assembly/assembly-plugin.xml 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly>
+ <id>plugin</id>
+ <formats>
+ <format>jar</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <dependencySets>
+ <dependencySet>
+ <outputDirectory>lib</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <scope>runtime</scope>
+ </dependencySet>
+ </dependencySets>
+ <fileSets>
+ <fileSet>
+ <directory>${project.build.directory}</directory>
+ <includes>
+ <include>classes/</include>
+ </includes>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>src/main/plugin</directory>
+ <outputDirectory>/</outputDirectory>
+ <excludes>
+ <exclude>resources/templates/</exclude>
+ </excludes>
+ <filtered>true</filtered>
+ </fileSet>
+ <fileSet>
+ <directory>src/main/plugin/resources/templates</directory>
+ <outputDirectory>/resources/templates</outputDirectory>
+ </fileSet>
+ </fileSets>
+</assembly>
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/assembly/assembly-plugin.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/struts/AdminConsoleAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/struts/AdminConsoleAction.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/struts/AdminConsoleAction.java 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,146 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2010 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.sbs.plugin.scriptconsole.struts;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.script.Invocable;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineFactory;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+
+import org.apache.log4j.Logger;
+
+import com.jivesoftware.community.action.JiveActionSupport;
+import com.jivesoftware.community.lifecycle.JiveApplication;
+import com.opensymphony.xwork2.Preparable;
+import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
+import com.opensymphony.xwork2.validator.annotations.Validation;
+
+/**
+ * Main class for scripting console
+ */
+ at Validation
+public class AdminConsoleAction extends JiveActionSupport implements Preparable {
+
+ private static final Logger log = Logger.getLogger(AdminConsoleAction.class);
+
+ private String scriptLanguage = "JavaScript";
+
+ private List<String> languages;
+
+ private String scriptContent = "importPackage(java.lang);\n"
+ + "importPackage(java.lang.util);\n"
+ + "importPackage(com.jivesoftware.community);\n\n"
+ + "var result;\n\n"
+ + "/* Run the script. ctx is com.jivesoftware.community.JiveContext class (spring context) */\n"
+ + "function run(ctx) {\n"
+ + " result = new StringBuffer();\n"
+ + " result.append(\"DONE\");\n"
+ + " return result;\n" + "}";
+
+ private Object result = "Insert script content, choose scripting language and then press the Execute button";
+
+ private ScriptEngineManager scriptEngineMgr;
+
+ @Override
+ public void prepare() throws Exception {
+ languages = new ArrayList<String>();
+
+ scriptEngineMgr = new ScriptEngineManager();
+ List<ScriptEngineFactory> factories = scriptEngineMgr.getEngineFactories();
+
+ for (int i = 0; i < factories.size(); i++) {
+ ScriptEngineFactory factory = factories.get(i);
+ languages.addAll(factory.getNames());
+ }
+ }
+
+ @Override
+ public String execute() {
+ ScriptEngine engine = scriptEngineMgr.getEngineByName("JavaScript");
+
+ try {
+ engine.eval(getScriptContent());
+ Invocable invocableEngine = (Invocable) engine;
+ result = invocableEngine.invokeFunction("run", JiveApplication
+ .getContext());
+ } catch (ScriptException e) {
+ addActionError(getText("plugin.script-console.admin.console.text.error.common"));
+ addExceptionToResult(e);
+ return INPUT;
+ } catch (NoSuchMethodException e) {
+ addActionError(getText("plugin.script-console.admin.console.text.error.nosuchmethod"));
+ addExceptionToResult(e);
+ return INPUT;
+ }
+
+ addActionMessage(getText("plugin.script-console.admin.console.text.sucess"));
+
+ return SUCCESS;
+ }
+
+ private void addExceptionToResult(Exception e) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ e.printStackTrace(pw);
+
+ log.error("Error processing custom script", e);
+
+ result = sw.toString();
+ }
+
+ public void setResult(String result) {
+ this.result = result;
+ }
+
+ public String getResult() {
+ return result.toString();
+ }
+
+ @RequiredStringValidator(message = "Choose scripting language")
+ public void setScriptLanguage(String scriptLanguage) {
+ this.scriptLanguage = scriptLanguage;
+ }
+
+ public String getScriptLanguage() {
+ return scriptLanguage;
+ }
+
+ @RequiredStringValidator(message = "Script content is empty")
+ public void setScriptContent(String scriptContent) {
+ this.scriptContent = scriptContent;
+ }
+
+ public String getScriptContent() {
+ return scriptContent;
+ }
+
+ public List<String> getLanguages() {
+ return languages;
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/java/org/jboss/labs/sbs/plugin/scriptconsole/struts/AdminConsoleAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/plugin.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/plugin.xml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/plugin.xml 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,20 @@
+<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://www.jivesoftware.com/schemas/clearspace/1_1/plugin.xsd">
+ <name>script-console</name>
+ <description>Run your scripts in Jive SBS administration console</description>
+ <author>JBoss Community</author>
+ <version>1.0.0</version>
+ <minServerVersion>4.0.0</minServerVersion>
+
+ <components>
+ <component id="admin-console">
+ <tab id="system">
+ <section id="section-system">
+ <item id="system-script-console" name="plugin.script-console.admin.console.name"
+ url="scripting-console-view.jspa" description="plugin.script-console.admin.console.description" />
+ </section>
+ </tab>
+ </component>
+ </components>
+
+</plugin>
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/plugin.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/templates/admin/script-console.ftl
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/templates/admin/script-console.ftl (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/resources/templates/admin/script-console.ftl 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,35 @@
+<html>
+ <head>
+ <#assign pageTitle=action.getText('plugin.script-console.admin.console.name') />
+ <title>${pageTitle}</title>
+ <content tag="pagetitle">${pageTitle}</content>
+ <content tag="pageID">system-script-console</content>
+ </head>
+ <body>
+ <#include "/template/global/include/form-message.ftl" />
+
+ <@s.form theme="simple" action="scripting-console-execute">
+ <table>
+ <tr>
+ <td colspan="2"><@s.text name="plugin.script-console.admin.console.scriptcontent" /></td>
+ </tr>
+ <tr>
+ <td colspan="2"><@s.textarea name="scriptContent" cols="100" rows="20" required="true"/></td>
+ </tr>
+ <tr>
+ <td><@s.select name="scriptLanguage" list="languages" required="true"/>
+
+ <@s.submit value="${action.getText('plugin.script-console.admin.console.submit')}" /></td>
+ </tr>
+ <tr><td> </td></tr>
+ <tr>
+ <td colspan="2">
+ <pre>
+ <@s.property value="result"/>
+ </pre>
+ </td>
+ </tr>
+ </table>
+ </@s.form>
+ </body>
+</html>
\ No newline at end of file
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/struts.xml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/struts.xml 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,24 @@
+<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
+<struts>
+ <package name="script-console-actions" namespace="/admin"
+ extends="community-admin-default">
+
+ <action name="scripting-console-view"
+ class="org.jboss.labs.sbs.plugin.scriptconsole.struts.AdminConsoleAction"
+ method="input">
+ <result name="input" type="freemarker">
+ /plugins/script-console/resources/templates/admin/script-console.ftl
+ </result>
+ </action>
+
+ <action name="scripting-console-execute"
+ class="org.jboss.labs.sbs.plugin.scriptconsole.struts.AdminConsoleAction">
+ <result name="input" type="freemarker">
+ /plugins/script-console/resources/templates/admin/script-console.ftl
+ </result>
+ <result name="success" type="freemarker">
+ /plugins/script-console/resources/templates/admin/script-console.ftl
+ </result>
+ </action>
+ </package>
+</struts>
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/plugin/struts.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/resources/plugin_i18n.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/resources/plugin_i18n.properties (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/resources/plugin_i18n.properties 2010-02-10 14:31:06 UTC (rev 31548)
@@ -0,0 +1,9 @@
+plugin.script-console.admin.console.name=Scripting Console
+plugin.script-console.admin.console.description=Execute your scripts in Jive SBS administration console
+
+plugin.script-console.admin.console.scriptcontent=Script content
+plugin.script-console.admin.console.submit=Execute
+
+plugin.script-console.admin.console.text.sucess=Script successfuly executed. See the result.
+plugin.script-console.admin.console.text.error.common=Error occur during execution. See the result.
+plugin.script-console.admin.console.text.error.nosuchmethod=Script must contain at least function run(ctx).
\ No newline at end of file
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-script-console/trunk/src/main/resources/plugin_i18n.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the jboss-svn-commits
mailing list