[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"/>
+              &nbsp;
+              <@s.submit value="${action.getText('plugin.script-console.admin.console.submit')}" /></td>
+            </tr>
+            <tr><td>&nbsp;</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