Author: tyrell
Date: Sun Mar  2 19:45:40 2008
New Revision: 14416

Log:

Fixing MASHUP-625

Modified:
   
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/system/SystemHostObject.java

Modified: 
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/system/SystemHostObject.java
==============================================================================
--- 
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/system/SystemHostObject.java
  (original)
+++ 
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/system/SystemHostObject.java
  Sun Mar  2 19:45:40 2008
@@ -318,7 +318,6 @@
      *    or
      *    var id = system.setInterval('myJavaScriptFunction("I am a parameter 
value");', 2000, null, startTime, endtime);
      * </pre>
-     *
      */
     public static String jsFunction_setInterval(Context cx, Scriptable 
thisObj, Object[] arguments,
                                                 Function funObj) throws 
IOException {
@@ -642,7 +641,6 @@
      * <pre>
      *   system.clearInterval(id);
      * </pre>
-     *
      */
     public static void jsFunction_clearInterval(Context cx, Scriptable 
thisObj, Object[] arguments,
                                                 Function funObj) throws 
IOException {
@@ -813,7 +811,7 @@
             startInMilliSeconds = ((Number) arguments[1]).longValue();
         } catch (NumberFormatException e) {
             throw new AxisFault(
-                            "Invalid parameter. The second parameter must be 
the start time from now in milliseconds.");          
+                    "Invalid parameter. The second parameter must be the start 
time from now in milliseconds.");
         }
 
         //Storing the function meta-data to be used by the job at execution 
time
@@ -835,18 +833,17 @@
         return jobId;
     }
 
-    
+
     /**
      * Sometimes it's useful to be able to cancel a timer before it goes off. 
The clearTimeout() method lets us do exactly that.
      * <p/>
-     *
+     * <p/>
      * <pre>
      *    ex: clearTimeout ( timeoutId );
      * </pre>
-     * 
+     * <p/>
      * <p/>
      * where timeoutId is the ID of the timeout as returned from the 
setTimeout() method call.
-     *
      */
     public static void jsFunction_clearTimeout(Context cx, Scriptable thisObj, 
Object[] arguments,
                                                Function funObj) throws 
IOException {
@@ -880,4 +877,55 @@
             throw new MashupFault("Failed to remove job id from the 
scheduler", e);
         }
     }
+
+    /**
+     * Allows printing to the system log from a Mashup.
+     * <p/>
+     * <p>
+     * <pre>
+     *    ex: system.log(logmessage, loglevel);
+     * </pre>
+     * </p>
+     * <p/>
+     * Where logmessage contains a string to be written to the system log and 
(optional) loglevel indicates the logging level as
+     * 'info', 'warn', 'debug', 'error' or 'fatal'. The logging level defaults 
to 'info' when one is not provided.
+     */
+    public static void jsFunction_log(Context cx, Scriptable thisObj, Object[] 
arguments,
+                                      Function funObj) throws IOException {
+        String logMessage;
+        String logLevel;
+
+        if (arguments[0] instanceof String) {
+            logMessage = (String) arguments[0];
+        } else {
+            throw new MashupFault("The first argument should contain a message 
to log");
+        }
+
+        if (arguments.length > 1) {
+            if (arguments[1] instanceof String) {
+                logLevel = (String) arguments[1];
+
+                if (logLevel.equalsIgnoreCase("info")) {
+                    log.info(logMessage);
+                } else if (logLevel.equalsIgnoreCase("warn")) {
+                    log.warn(logMessage);
+                } else if (logLevel.equalsIgnoreCase("debug")) {
+                    log.debug(logMessage);
+                } else if (logLevel.equalsIgnoreCase("error")) {
+                    log.error(logMessage);
+                } else if (logLevel.equalsIgnoreCase("fatal")) {
+                    log.fatal(logMessage);
+                } else {
+                    throw new MashupFault(
+                            "Unsupported log level. Please refer documentation 
for this function.");
+                }
+
+            } else {
+                throw new MashupFault(
+                        "The second argument should contain a String 
indicating the log level");
+            }
+        }else{
+            log.info(logMessage);
+        }
+    }
 }

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to