You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/08/03 07:22:00 UTC

svn commit: r562334 [4/8] - in /openejb/trunk/openejb3/server: ./ openejb-webadmin/ openejb-webadmin/src/ openejb-webadmin/src/main/ openejb-webadmin/src/main/etc/ openejb-webadmin/src/main/java/ openejb-webadmin/src/main/java/org/ openejb-webadmin/src...

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/HomeBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/HomeBean.java?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/HomeBean.java (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/HomeBean.java Thu Aug  2 22:21:56 2007
@@ -0,0 +1,168 @@
+/**  
+ * Redistribution and use of this software and associated documentation
+ * ("Software"), with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain copyright
+ *    statements and notices.  Redistributions must also contain a
+ *    copy of this document.
+ *
+ * 2. Redistributions in binary form must reproduce the
+ *    above copyright notice, this list of conditions and the
+ *    following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. The name "OpenEJB" must not be used to endorse or promote
+ *    products derived from this Software without prior written
+ *    permission of The OpenEJB Group.  For written permission,
+ *    please contact dev@openejb.org.
+ *
+ * 4. Products derived from this Software may not be called "OpenEJB"
+ *    nor may "OpenEJB" appear in their names without prior written
+ *    permission of The OpenEJB Group. OpenEJB is a registered
+ *    trademark of The OpenEJB Group.
+ *
+ * 5. Due credit should be given to the OpenEJB Project
+ *    (http://www.openejb.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Copyright 2001 (C) The OpenEJB Group. All Rights Reserved.
+ *
+ * $Id: HomeBean.java 445460 2005-06-16 22:29:56Z jlaskowski $
+ */
+package org.apache.openejb.webadmin.main;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import org.apache.openejb.webadmin.HttpRequest;
+import org.apache.openejb.webadmin.HttpResponse;
+import org.apache.openejb.webadmin.WebAdminBean;
+import org.apache.openejb.webadmin.HttpHome;
+
+import javax.ejb.Stateless;
+import javax.ejb.RemoteHome;
+
+/** This class represents the "Home" page for the webadmin.  It contains general
+ * information, and more content to be added later.
+ * @author <a href="mailto:tim_urberg@yahoo.com">Tim Urberg</a>
+ */
+@Stateless(name = "Webadmin/Home")
+@RemoteHome(HttpHome.class)
+public class HomeBean extends WebAdminBean {
+
+    /** Creates a new instance of HomeBean */
+    public void ejbCreate() {
+        this.section = "Home";
+    }
+
+    /** after the processing is completed
+     * @param request the http request
+     * @param response the http response
+     * @throws IOException if an exception is thrown
+     *
+     */
+    public void postProcess(HttpRequest request, HttpResponse response) throws IOException {}
+
+    /** before the process is done
+     * @param request the http request
+     * @param response the http response
+     * @throws IOException if an exception is thrown
+     *
+     */
+    public void preProcess(HttpRequest request, HttpResponse response) throws IOException {}
+
+    /** Write the main content
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     *
+     */
+    public void writeBody(PrintWriter body) throws IOException {
+        body.println(
+            "Welcome to the OpenEJB Web Administration website.  This website is designed to help automate");
+        body.println(
+            "many of the command line processes in OpenEJB.  Please begin by selecting from one of the menu");
+        body.println("options.<br><br>");
+        body.println(
+            "We encourage our users to participate in giving suggestions and submitting code and documentation");
+        body.println(
+            "for the improvement of OpenEJB.  Because it's open source, it's not just our project, it's everyone's");
+        body.println(
+            "project!  <b>Your feedback and contributions make OpenEJB a better project for everyone!</b>  ");
+        body.println("Future revisions of the OpenEJB Web Administration will contain:");
+        body.println("<ul type=\"disc\">");
+        body.println("<li>Better bean deployment</li>");
+        body.println("<li>Container Managed Persistance Mapping</li>");
+        body.println("<li>EJB Jar Validator</li>");
+        body.println("<li>More system information</li>");
+        body.println("<li>Better menu orginization</li>");
+        body.println("<li>Addition of an extensive help section and documentation</li>");
+        body.println("<li>Your suggestions!!</li>");
+        body.println("</ul>");
+        body.println("<br>");
+        body.println(
+            "If you have any problems with this website, please don’t hesitate to email the OpenEJB users list: ");
+        body.println(
+            "<a href=\"mailto:user@openejb.org\">user@openejb.org</a> and we’ll");
+        body.println("respond to you as soon as possible.");
+    }
+
+    /** Write the TITLE of the HTML document.  This is the part
+     * that goes into the <code>&lt;head&gt;&lt;title&gt;
+     * &lt;/title&gt;&lt;/head&gt;</code> tags
+     *
+     * @param body the output to write to
+     * @exception IOException of an exception is thrown
+     *
+     */
+    public void writeHtmlTitle(PrintWriter body) throws IOException {
+        body.println(HTML_TITLE);
+    }
+
+    /** Write the title of the page.  This is displayed right
+     * above the main block of content.
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     *
+     */
+    public void writePageTitle(PrintWriter body) throws IOException {
+        body.println("Web Administration Home");
+    }
+
+    /** Write the sub items for this bean in the left navigation bar of
+     * the page.  This should look somthing like the one below:
+     *
+     *      <code>
+     *      &lt;tr&gt;
+     *       &lt;td valign="top" align="left"&gt;
+     *        &lt;a href="system?show=deployments"&gt;&lt;span class="subMenuOff"&gt;
+     *        &nbsp;&nbsp;&nbsp;Deployments
+     *        &lt;/span&gt;
+     *        &lt;/a&gt;&lt;/td&gt;
+     *      &lt;/tr&gt;
+     *      </code>
+     *
+     * Alternately, the bean can use the method formatSubMenuItem(..) which
+     * will create HTML like the one above
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     *
+     */
+    public void writeSubMenuItems(PrintWriter body) throws IOException {}
+
+}

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/HomeBean.java
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ListLogsBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ListLogsBean.java?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ListLogsBean.java (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ListLogsBean.java Thu Aug  2 22:21:56 2007
@@ -0,0 +1,385 @@
+/** 
+ * Redistribution and use of this software and associated documentation
+ * ("Software"), with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain copyright
+ *    statements and notices.  Redistributions must also contain a
+ *    copy of this document.
+ *
+ * 2. Redistributions in binary form must reproduce the
+ *    above copyright notice, this list of conditions and the
+ *    following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. The name "OpenEJB" must not be used to endorse or promote
+ *    products derived from this Software without prior written
+ *    permission of The OpenEJB Group.  For written permission,
+ *    please contact dev@openejb.org.
+ *
+ * 4. Products derived from this Software may not be called "OpenEJB"
+ *    nor may "OpenEJB" appear in their names without prior written
+ *    permission of The OpenEJB Group. OpenEJB is a registered
+ *    trademark of The OpenEJB Group.
+ *
+ * 5. Due credit should be given to the OpenEJB Project
+ *    (http://www.openejb.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Copyright 2001 (C) The OpenEJB Group. All Rights Reserved.
+ * 
+ * $Id: ListLogsBean.java 445536 2005-07-09 08:51:00Z dblevins $
+ */
+package org.apache.openejb.webadmin.main;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+
+import org.apache.regexp.RE;
+import org.apache.regexp.RESyntaxException;
+import org.apache.openejb.webadmin.HttpRequest;
+import org.apache.openejb.webadmin.HttpResponse;
+import org.apache.openejb.webadmin.WebAdminBean;
+import org.apache.openejb.webadmin.HttpHome;
+import org.apache.openejb.loader.SystemInstance;
+
+import javax.ejb.Stateless;
+import javax.ejb.RemoteHome;
+
+/** This bean lists the openejb.log and transaction.log files
+ *
+ * @author  <a href="mailto:tim_urberg@yahoo.com">Tim Urberg</a>
+ */
+@Stateless(name = "Webadmin/ListLogs")
+@RemoteHome(HttpHome.class)
+public class ListLogsBean extends WebAdminBean {
+    /** the form field used for a regular expression search */
+    private static final String REGULAR_EXPRESSION_SEARCH = "regularExpression";
+    private static final String DISPLAY_TYPE_FILTER = "filter";
+    private static final String DISPLAY_TYPE_HIGHLIGHT = "highlight";
+    private static final String DISPLAY_TYPE = "displayType";
+
+    /** the type of log we're using */
+    private String logType;
+    /** called with the bean is created */
+    public void ejbCreate() {
+        this.section = "ListLogs";
+    }
+
+    /** after the processing is completed
+     * @param request the http request
+     * @param response the http response
+     * @throws IOException if an exception is thrown
+     */
+    public void postProcess(HttpRequest request, HttpResponse response) throws IOException {}
+
+    /** before the processing is done
+     * @param request the http request
+     * @param response the http response
+     * @throws IOException if an exception is thrown
+     */
+    public void preProcess(HttpRequest request, HttpResponse response) throws IOException {
+        //get the log type
+        this.logType = request.getQueryParameter("log");
+    }
+
+    /** Write the main content
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     */
+    public void writeBody(PrintWriter body) throws IOException {
+        //string for re search
+        String regularExpressionSearch = request.getFormParameter(REGULAR_EXPRESSION_SEARCH);
+        String displayType = request.getFormParameter(DISPLAY_TYPE);
+        if (regularExpressionSearch == null) {
+            regularExpressionSearch = "";
+        }
+
+        // Get the logs directory
+        File logsDir = SystemInstance.get().getBase().getDirectory("logs");
+        String path;
+
+        File[] openejbLogs = logsDir.listFiles(new FilenameFilter() {
+            public boolean accept(File dir, String name) {
+                return (name.indexOf(".log") != -1);
+            }
+        });
+
+        Arrays.sort(openejbLogs);
+        int printIndex = 0;
+        SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd yyyy HH:mm:ss");
+
+        for (int i = 0; i < openejbLogs.length; i++) {
+            if ((this.logType == null && i == 0)
+                || (this.logType != null && this.logType.equals(openejbLogs[i].getName()))) {
+                body.print(openejbLogs[i].getName());
+                printIndex = i;
+            } else {
+                body.print("<a href=\"ListLogs?log=" + openejbLogs[i].getName() + "\">" + openejbLogs[i].getName() + "</a>");
+            }
+
+            if (i < openejbLogs.length - 1) {
+                body.print("&nbsp;|&nbsp;");
+            }
+        }
+        body.println("<br><br>");
+
+        //calculate the size of the file in kb or bytes
+        String fileLength = "0 bytes";
+        long longFileLength = 0;
+        if (openejbLogs[printIndex].length() > 0) {
+            if (openejbLogs[printIndex].length() > 1000) {
+                longFileLength = openejbLogs[printIndex].length() / 1000;
+                fileLength = String.valueOf(longFileLength) + " kb";
+            } else {
+                fileLength = String.valueOf(openejbLogs[printIndex].length()) + " bytes";
+            }
+        }
+
+        //set the path for the form action
+        if (request.getURI().getQuery() == null || "".equals(request.getURI().getQuery())) {
+            path = request.getURI().getPath();
+        } else {
+            path = request.getURI().getPath() + "?" + request.getURI().getQuery();
+        }
+
+        body.print("<form action=\"");
+        body.print(path.substring(1));
+        body.println("\" method=\"post\">");
+        body.println("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"525\">");
+        body.println("<tr>\n<td valign=\"top\">");
+        body.println("----------------------------------------------------------<br>");
+        body.println("Last Modified: " + dateFormat.format(new Date(openejbLogs[printIndex].lastModified())) + "<br>");
+        body.println("Size: " + fileLength + "<br>");
+        body.println("----------------------------------------------------------");
+        body.println("</td>\n<td>");
+        //the form for regular expresions goes here
+        body.println(
+            "You may do a text search by using regular<br>expressions. Enter "
+                + "your regular expression<br>below. If you are not familiar with regular<br>"
+                + "expresions see <a href=\"http://jakarta.apache.org/regexp/apidocs/org/apache/"
+                + "regexp/RE.html\" target=\"_blank\">Apache Regexp</a> for more<br>information.<br>");
+        body.print("Regular Expression:&nbsp&nbsp");
+        body.print("<input type=\"text\" name=\"");
+        body.print(REGULAR_EXPRESSION_SEARCH);
+        body.print("\" value=\"");
+        body.print(regularExpressionSearch);
+        body.println("\"><br>\nHightlight <input type=\"radio\" name=\"");
+        body.print(DISPLAY_TYPE);
+        body.print("\" value=\"");
+        body.print(DISPLAY_TYPE_HIGHLIGHT);
+        body.print("\" checked>\nFilter <input type=\"radio\" name=\"");
+        body.print(DISPLAY_TYPE);
+        body.print("\" value=\"");
+        body.print(DISPLAY_TYPE_FILTER);
+        body.println("\"><br><br>\n<input type=\"submit\" value=\"Search\" name=\"regExpSubmit\">");
+        body.println("</td>\n</tr>\n</table>\n</form>\n<br>");
+
+        if (!"".equals(regularExpressionSearch)) {
+            body.println("The results of your search are highlighted below.<br><br>");
+        }
+
+        this.printLogFile(body, openejbLogs[printIndex], regularExpressionSearch, displayType);
+    }
+
+    /** gets the openejb.log file
+     * @param body the output to send the data to
+     * @param logFile the logfile that we're printing
+     * @throws IOException if an exception is thrown
+     */
+    private void printLogFile(PrintWriter body, File logFile, String reSearch, String displayType) throws IOException {
+        BufferedReader fileReader = new BufferedReader(new FileReader(logFile));
+        StringBuffer lineOfText;
+        RE regularExpressionSearch = null;
+        boolean filterSearch = false;
+        boolean highlightSearch = false;
+        boolean matchFound;
+
+        //create a search reg expression
+        if (!"".equals(reSearch.trim())) {
+            try {
+                regularExpressionSearch = new RE(reSearch);
+            } catch (RESyntaxException e) {
+                throw new IOException(e.getMessage());
+            }
+
+            //set these only if there is a search
+            if (DISPLAY_TYPE_FILTER.equals(displayType)) {
+                filterSearch = true;
+            } else if (DISPLAY_TYPE_HIGHLIGHT.equals(displayType)) {
+                highlightSearch = true;
+            }
+        }
+
+        //create a list of special characters
+        String[][] specialChars = new String[3][2];
+        specialChars[0][0] = "&";
+        specialChars[0][1] = "&amp;";
+        specialChars[1][0] = "<";
+        specialChars[1][1] = "&lt;";
+        specialChars[2][0] = ">";
+        specialChars[2][1] = "&gt;";
+        int lineCounter = 0;
+        String background;
+
+        try {
+            //create an array of regular expressions
+            RE[] expArray = new RE[5];
+            expArray[0] = new RE("^INFO :");
+            expArray[1] = new RE("^DEBUG:");
+            expArray[2] = new RE("^WARN :");
+            expArray[3] = new RE("^ERROR:");
+            expArray[4] = new RE("^FATAL:");
+
+            //create an array of colors
+            String[] colorArray = new String[5];
+            colorArray[0] = "log4j-info";
+            colorArray[1] = "log4j-debug";
+            colorArray[2] = "log4j-warn";
+            colorArray[3] = "log4j-error";
+            colorArray[4] = "log4j-fatal";
+
+            //create a table to write the file to
+            body.println("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
+
+            //read the file line by line
+            String expMatch = colorArray[0];
+            String temp;
+            while (true) {
+                //check for null and break
+                temp = fileReader.readLine();
+                if (temp == null) {
+                    break;
+                }
+
+                lineCounter++;
+                lineOfText = new StringBuffer(temp);
+
+                //check for and replace special characters
+                String charToCheck;
+                for (int i = 0; i < lineOfText.length(); i++) {
+                    //pick out the current character
+                    charToCheck = String.valueOf(lineOfText.charAt(i));
+                    for (int j = 0; j < specialChars.length; j++) {
+                        //do the check for equals
+                        if (charToCheck.equals(specialChars[j][0])) {
+                            lineOfText.replace(i, i + 1, specialChars[j][1]);
+                            break;
+                        }
+                    }
+                }
+
+                temp = lineOfText.toString();
+                //loop through the array of expressions to find a match
+                for (int i = 0; i < expArray.length; i++) {
+                    if (expArray[i].match(temp)) {
+                        expMatch = colorArray[i];
+                        break;
+                    }
+                }
+
+                //check for an re search
+                matchFound = false;
+                background = "";
+                if (regularExpressionSearch != null && regularExpressionSearch.match(temp)) {
+                    matchFound = true;
+                    if (highlightSearch) {
+                        background = " bgcolor=\"#00ffff\"";
+                    }
+                }
+
+                //print line of text to the page
+                if ((filterSearch || highlightSearch) && (filterSearch && !matchFound)) {
+                    continue;
+                }
+
+                body.println(
+                    new StringBuffer(100)
+                        .append("<tr")
+                        .append(background)
+                        .append("><td align=\"right\" valign=\"top\" class=\"")
+                        .append(colorArray[0])
+                        .append("\">")
+                        .append(lineCounter)
+                        .append("</td><td>&nbsp;</td><td class=\"")
+                        .append(expMatch)
+                        .append("\">")
+                        .append(temp)
+                        .append("</td></tr>")
+                        .toString());
+            }
+
+            body.println("</table>");
+        } catch (RESyntaxException se) {
+            throw new IOException(se.getMessage());
+        }
+
+        //close the file
+        fileReader.close();
+    }
+
+    /** Write the TITLE of the HTML document.  This is the part
+      * that goes into the <code>&lt;head&gt;&lt;title&gt;
+      * &lt;/title&gt;&lt;/head&gt;</code> tags
+      *
+      * @param body the output to write to
+      * @exception IOException of an exception is thrown
+      *
+      */
+    public void writeHtmlTitle(PrintWriter body) throws IOException {
+        body.println(HTML_TITLE);
+    }
+
+    /** Write the title of the page.  This is displayed right
+     * above the main block of content.
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     */
+    public void writePageTitle(PrintWriter body) throws IOException {
+        body.println("System Log Files");
+    }
+
+    /** Write the sub items for this bean in the left navigation bar of
+     * the page.  This should look somthing like the one below:
+     *
+     *      <code>
+     *      &lt;tr&gt;
+     *       &lt;td valign="top" align="left"&gt;
+     *        &lt;a href="system?show=deployments"&gt;&lt;span class="subMenuOff"&gt;
+     *        &nbsp;&nbsp;&nbsp;Deployments
+     *        &lt;/span&gt;
+     *        &lt;/a&gt;&lt;/td&gt;
+     *      &lt;/tr&gt;
+     *      </code>
+     *
+     * Alternately, the bean can use the method formatSubMenuItem(..) which
+     * will create HTML like the one above
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     *
+     */
+    public void writeSubMenuItems(PrintWriter body) throws IOException {}
+
+}

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ListLogsBean.java
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/PropertiesBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/PropertiesBean.java?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/PropertiesBean.java (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/PropertiesBean.java Thu Aug  2 22:21:56 2007
@@ -0,0 +1,182 @@
+/** 
+ * Redistribution and use of this software and associated documentation
+ * ("Software"), with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain copyright
+ *    statements and notices.  Redistributions must also contain a
+ *    copy of this document.
+ *
+ * 2. Redistributions in binary form must reproduce the
+ *    above copyright notice, this list of conditions and the
+ *    following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. The name "OpenEJB" must not be used to endorse or promote
+ *    products derived from this Software without prior written
+ *    permission of The OpenEJB Group.  For written permission,
+ *    please contact dev@openejb.org.
+ *
+ * 4. Products derived from this Software may not be called "OpenEJB"
+ *    nor may "OpenEJB" appear in their names without prior written
+ *    permission of The OpenEJB Group. OpenEJB is a registered
+ *    trademark of The OpenEJB Group.
+ *
+ * 5. Due credit should be given to the OpenEJB Project
+ *    (http://www.openejb.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Copyright 2001 (C) The OpenEJB Group. All Rights Reserved.
+ *
+ * $Id: PropertiesBean.java 445460 2005-06-16 22:29:56Z jlaskowski $
+ */
+package org.apache.openejb.webadmin.main;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.apache.openejb.webadmin.HttpRequest;
+import org.apache.openejb.webadmin.HttpResponse;
+import org.apache.openejb.webadmin.WebAdminBean;
+import org.apache.openejb.webadmin.HttpHome;
+
+import javax.ejb.Stateless;
+import javax.ejb.RemoteHome;
+
+/** Prints out a list of system properties for the server.
+ * @author <a href="mailto:tim_urberg@yahoo.com">Tim Urberg</a>
+ */
+@Stateless(name = "Webadmin/Properties")
+@RemoteHome(HttpHome.class)
+public class PropertiesBean extends WebAdminBean {
+
+    /**
+     * Called after a new instance of PropertiesBean is created
+     */
+    public void ejbCreate() {
+        // The section variable must match 
+        // the deployment id name
+        section = "Properties";
+    }
+
+    /** called after all content is written to the browser
+     * @param request the http request
+     * @param response the http response
+     * @throws IOException if an exception is thrown
+     */
+    public void postProcess(HttpRequest request, HttpResponse response) throws IOException {
+    }
+
+    /** called before any content is written to the browser
+     * @param request the http request
+     * @param response the http response
+     * @throws IOException if an exception is thrown
+     */
+    public void preProcess(HttpRequest request, HttpResponse response) throws IOException {
+    }
+
+    /** writes the main body content to the broswer.  This content is inside a <code>&lt;p&gt;</code> block
+     *  
+     * 
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     */
+    public void writeBody(PrintWriter body) throws IOException {
+        Properties p = System.getProperties();
+        Enumeration e = p.keys();
+        String[] propertyList = new String[p.size()];
+
+        body.println("<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">");
+        String currentProperty = null;
+        body.println("<tr><th align=\"left\">Property Name</th><th align=\"left\">Property Value</th></tr>");
+        int j = 0;
+        while ( e.hasMoreElements() ) {
+            propertyList[j++] = (String) e.nextElement();
+        }
+        Arrays.sort(propertyList);
+
+        String[] color = new String[]{"c9c5fe", "FFFFFF"};
+        for ( int i=0; i<propertyList.length; i++ ) {
+            String name  = propertyList[i];
+            String value = System.getProperty(propertyList[i]);
+
+            body.println("<tr bgcolor=\"#"+ color[i%2] +"\"  >");
+            body.println("<td valign=\"top\">" + name + "</td>");
+            body.println("<td>");
+            if (propertyList[i].endsWith(".path")) {
+                StringTokenizer path = new StringTokenizer(value,File.pathSeparator);
+                while (path.hasMoreTokens()) {
+                    body.print(path.nextToken());
+                    body.println("<br>");
+                }
+            } else {
+                body.println(value);
+            }
+            body.println("&nbsp;</td>");
+            body.println("</tr>");
+        }
+        body.println("</table>");
+    }
+
+    /** Write the TITLE of the HTML document.  This is the part
+     * that goes into the <code>&lt;head&gt;&lt;title&gt;
+     * &lt;/title&gt;&lt;/head&gt;</code> tags
+     *
+     * @param body the output to write to
+     * @exception IOException of an exception is thrown
+     *
+     */
+    public void writeHtmlTitle(PrintWriter body) throws IOException {
+        body.print(HTML_TITLE);
+    }
+
+    /** Write the title of the page.  This is displayed right
+     * above the main block of content.
+     * 
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     */
+    public void writePageTitle(PrintWriter body) throws IOException {
+        body.print("System Properties");
+    }
+
+    /** Write the sub items for this bean in the left navigation bar of
+     * the page.  This should look somthing like the one below:
+     *
+     *      <code>
+     *      &lt;tr&gt;
+     *       &lt;td valign="top" align="left"&gt;
+     *        &lt;a href="system?show=deployments"&gt;&lt;span class="subMenuOff"&gt;
+     *        &nbsp;&nbsp;&nbsp;Deployments
+     *        &lt;/span&gt;
+     *        &lt;/a&gt;&lt;/td&gt;
+     *      &lt;/tr&gt;
+     *      </code>
+     *
+     * Alternately, the bean can use the method formatSubMenuItem(..) which
+     * will create HTML like the one above
+     *
+     * @param body the output to write to
+     * @exception IOException if an exception is thrown
+     *
+     */
+    public void writeSubMenuItems(PrintWriter body) throws IOException {
+    }
+}

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/PropertiesBean.java
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ReferenceData.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ReferenceData.java?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ReferenceData.java (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ReferenceData.java Thu Aug  2 22:21:56 2007
@@ -0,0 +1,108 @@
+/**
+ * Redistribution and use of this software and associated documentation
+ * ("Software"), with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain copyright
+ *    statements and notices.  Redistributions must also contain a
+ *    copy of this document.
+ *
+ * 2. Redistributions in binary form must reproduce the
+ *    above copyright notice, this list of conditions and the
+ *    following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. The name "OpenEJB" must not be used to endorse or promote
+ *    products derived from this Software without prior written
+ *    permission of The OpenEJB Group.  For written permission,
+ *    please contact dev@openejb.org.
+ *
+ * 4. Products derived from this Software may not be called "OpenEJB"
+ *    nor may "OpenEJB" appear in their names without prior written
+ *    permission of The OpenEJB Group. OpenEJB is a registered
+ *    trademark of The OpenEJB Group.
+ *
+ * 5. Due credit should be given to the OpenEJB Project
+ *    (http://www.openejb.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Copyright 2001 (C) The OpenEJB Group. All Rights Reserved.
+ *
+ * $Id: ReferenceData.java 445460 2005-06-16 22:29:56Z jlaskowski $
+ */
+package org.apache.openejb.webadmin.main;
+
+import java.io.Serializable;
+
+/**
+ * A simple data object for ejb and resource reference data
+ * 
+ * @author <a href="mailto:tim_urberg@yahoo.com">Tim Urberg</a>
+ */
+public class ReferenceData implements Serializable {
+	public static final String RESOURCE_REFERENCE = "resource_reference";
+	public static final String EJB_REFERENCE = "ejb_reference";
+	
+	private String referenceType;
+	private String referenceIdName;
+	private String referenceIdValue;
+	private String referenceName;
+	private String referenceValue;
+
+	public ReferenceData() {
+		super();
+	}
+
+	public String getReferenceIdName() {
+		return referenceIdName;
+	}
+
+	public String getReferenceIdValue() {
+		return referenceIdValue;
+	}
+
+	public String getReferenceName() {
+		return referenceName;
+	}
+
+	public String getReferenceValue() {
+		return referenceValue;
+	}
+
+	public String getReferenceType() {
+		return referenceType;
+	}
+
+	public void setReferenceIdName(String string) {
+		referenceIdName = string;
+	}
+
+	public void setReferenceIdValue(String string) {
+		referenceIdValue = string;
+	}
+
+	public void setReferenceName(String string) {
+		referenceName = string;
+	}
+
+	public void setReferenceValue(String string) {
+		referenceValue = string;
+	}
+
+	public void setReferenceType(String string) {
+		referenceType = string;
+	}
+
+}

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/main/ReferenceData.java
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/ejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/ejb-jar.xml?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/ejb-jar.xml (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/ejb-jar.xml Thu Aug  2 22:21:56 2007
@@ -0,0 +1 @@
+<ejb-jar/>
\ No newline at end of file

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/org.apache.openejb.server.ServerService/webadmin
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/org.apache.openejb.server.ServerService/webadmin?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/org.apache.openejb.server.ServerService/webadmin (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/META-INF/org.apache.openejb.server.ServerService/webadmin Thu Aug  2 22:21:56 2007
@@ -0,0 +1,6 @@
+    server      = org.apache.openejb.webadmin.httpd.HttpServer
+    bind        = 127.0.0.1
+    port        = 4203
+    disabled    = false
+    threads     = 50
+

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/default.css
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/default.css?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/default.css (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/default.css Thu Aug  2 22:21:56 2007
@@ -0,0 +1,278 @@
+BODY { 
+	background: #ffffff; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	font-size: 12px;
+}
+
+A:link, 
+A:visited, 
+A:active { 
+	text-decoration: none 
+}
+
+.userdata	{ 
+	behavior: url('#default#userdata'); 
+}
+
+.bg { 
+	background-repeat: no-repeat
+}
+
+.pageTitle {
+	font-size: 18px; 
+	font-family: arial, "Helvetica", "Arial", "sans-serif"; 
+	line-height: 28px; 
+	font-weight: bold; 
+	color: #666666;
+}
+
+.pageSubTitle {
+	font-size: 15px; 
+	font-family: arial, "Helvetica", "Arial", "sans-serif"; 
+	line-height: 40px; 
+	font-weight: bold; 
+	color: #444444;
+}
+
+.bodyGrey { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #666666;
+}
+
+.bodyBlack { 
+	font-size: 12px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 16px; color: #222222;
+}
+
+.option { 
+	font-size: 12px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 16px; color: #222222;
+}
+
+.option-flag { 
+	font-size: 12px; 
+	font-family: courier new, arial, helvetica, sans-serif;
+	line-height: 16px; color: #7270c2;
+	font-weight: bold; 
+}
+
+.option-param { 
+	font-size: 12px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 16px; color: #7270c2;
+}
+
+.note { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #666666;
+}
+
+.note-caption { 
+	font-size: 12px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 16px; color: #FFFFFF;
+	font-weight: bold; 
+}
+
+.toc { 
+	font-size: 12px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 16px; color: #222222;
+}
+
+.bodyBlackOLD { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #222222;
+}
+
+
+h1 { 
+	font-size: 17px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 20px; color: #000000;
+}
+
+h2 { 
+	font-size: 15px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 20px; color: #000000;
+}
+
+h3 { 
+	font-size: 13px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 17px; color: #000000;
+}
+
+h4 { 
+	font-size: 11px; 
+	font-family: arial, helvetica, sans-serif;
+	line-height: 15px; color: #000000;
+}
+
+.log4j-info {
+	font-size: 12px;
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 16px;
+	color: Black;
+}
+
+.log4j-debug {
+	font-size: 12px;
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 16px;
+	color: Green;
+}
+
+.log4j-warn {
+	font-size: 12px;
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 16px;
+	color: #B7B700;
+}
+
+.log4j-error {
+	font-size: 12px;
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 16px;
+	color: Red;
+}
+
+.log4j-fatal {
+	font-size: 12px;
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	font-weight: bold;
+	line-height: 16px;
+	color: Red;
+}
+
+.bodyCode { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #757585;
+}
+
+.command { 
+	font-size: 12px; 
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #757585;
+}
+
+.code-title { 
+	font-size: 12px; 
+	font-family: arial, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 12px; color: #666666;
+}
+
+.code-block { 
+	font-size: 12px; 
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 16px; color: #757585;
+}
+
+.code-comment { 
+	font-size: 12px; 
+	font-family: courier new, "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 16px; color: #8888CC;
+}
+
+.legalBlack { 
+	font-size: 10px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #000000;
+}
+
+.legalGrey { 
+	font-size: 9px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #999999;
+}
+
+.bigGrey { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 14px; color: #666666;
+}
+
+.projectBlack { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif";
+	line-height: 11px; color: #000000;
+}
+
+.header { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 14px; 
+	font-weight: bold; 
+	color: #181818;
+}
+
+.teamMember { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 14px; 
+	font-weight: bold; 
+	color: #181818;
+}
+
+.teamMemberRole { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 14px; 
+	font-weight: bold; 
+	color: #A8A8A8;
+}
+
+.menuTopOn { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 0px; 
+	color: #6763a9;
+}
+
+.menuTopOff { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 0px; 
+	color: #999999;
+}
+
+.menuProjectOn { 
+	font-size: 12px; 
+	font-family: "Helvetica", "Arial", "sans-serif"; 
+	line-height: 20px; 
+	font-weight: bold; 
+	color: #cbcbeb;
+}
+
+.menuProjectOff { 
+	font-size: 12px; 
+	font-family: "Helvetica", "Arial", "sans-serif"; 
+	line-height: 20px; 
+	font-weight: bold; 
+	color: #ffffff;
+}
+
+.subMenuOn { 
+	font-size: 11px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 20px; 
+	font-weight: bold; 
+	color: #4d4b7e;
+}
+
+.subMenuOff { 
+	font-size: 10px; 
+	font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; 
+	line-height: 16px; 
+	font-weight: bold; 
+	color: #cbcbeb;
+}
+
+

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/default.css
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/download.html
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/download.html?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/download.html (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/download.html Thu Aug  2 22:21:56 2007
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/WD-html-in-xml/DTD/xhtml1-strict.dtd">
+<html><head><title>Download</title><link rel="stylesheet" href="default.css"></head><body bgcolor="#ffffff" link="#6763a9" vlink="#6763a9" topmargin="0" bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0"><a name="top"></a><table border="0" cellpadding="0" cellspacing="0" width="712" height="400"><tr><td width="20" valign="top" align="left" bgcolor="#7270c2"><img src="images/dotTrans.gif" width="1" height="1" border="0"></td><td width="95" valign="top" align="left" bgcolor="#7270c2"><img src="images/dotTrans.gif" width="1" height="1" border="0"></td><td width="7" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td><td width="40" valign="top" align="left"><img src="images/dotTrans.gif" width="40" height="6" border="0"></td><td width="430" valign="top" align="left" bgcolor="#5A5CB8"><img src="images/top_2.gif" width="430" height="6" border="0"></td><td width="120" valign="top" align="left" bgcolor="#E24717"><img src="image
 s/top_3.gif" width="120" height="6" border="0"></td></tr><tr><td width="20" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td><td width="95" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td><td width="7" bgcolor="#ffffff" valign="top" align="left"></td><td width="40" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="1" border="0"></td><td width="430" valign="middle" align="left"><a href="http://www.openejb.org"><span class="menuTopOn">OpenEJB at Codehaus</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openejb.exolab.org"><span class="menuTopOff">OpenEJB at Exolab</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="images/dotTrans.gif" width="1" height="2" border="0"></td><td width="120" height="20" valign="top" align="left">&nbsp;</td></tr><tr><td width="20" bgcolor="#7270c2" valign="top" align="left"><img src="images
 /dotTrans.gif" width="20" height="3" border="0"></td><td width="95" bgcolor="#7270c2" valign="top" align="left"><img src="images/line_sm.gif" width="105" height="3" border="0"></td><td width="7" bgcolor="#a9a5de" valign="top" align="left"><img src="images/line_sm.gif" width="7" height="3" border="0"></td><td width="40" valign="top" align="left"><img src="images/line_light.gif" width="40" height="3" border="0"></td><td width="430" valign="top" align="left"><img src="images/line_light.gif" width="430" height="3" border="0"></td><td width="120" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td></tr><tr><td bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" width="20" height="10" border="0"></td><td width="95" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="2" border="0"><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span clas
 s="subMenuOn">Main</span></td></tr><tr><td valign="top" align="left"><a href="index.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Welcome!</span></a></td></tr><tr><td valign="top" align="left"><a href="download.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Download</span></a></td></tr><tr><td valign="top" align="left"><a href="lists.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Mailing Lists</span></a></td></tr><tr><td valign="top" align="left"><a href="contributors.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;The Team</span></a></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Users</span></td></tr><tr><td valign="top" align="left"><a href="quickstart.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Quickstart</span></a></td></tr><tr><td valign="top" align="left"><a href="hello-world.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Hello World!</span></a></td></tr><tr><td valign="top" a
 lign="left"><a href="deploy.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Deploy</span></a></td></tr><tr><td valign="top" align="left"><a href="start-command.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Startup</span></a></td></tr><tr><td valign="top" align="left"><a href="http://sourceforge.net/tracker/?group_id=44351&atid=439275"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Support</span></a></td></tr><tr><td valign="top" align="left"><a href="http://sourceforge.net/tracker/index.php?group_id=44351&atid=439277"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Request Feature</span></a></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Servers</span></td></tr><tr><td valign="top" align="left"><a href="embedded.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Local Server</span></a></td></tr><tr><td valign="top" align="left"><a href="remote-server.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Remote
  Server</span></a></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Adapters</span></td></tr><tr><td valign="top" align="left"><a href="tomcat-adapter.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Tomcat</span></a></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Integrators</span></td></tr><tr><td valign="top" align="left"><a href="whyopenejb.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Why OpenEJB</span></a></td></tr><tr><td valign="top" align="left"><a href="containersystem.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Overview</span></a></td></tr><tr><td valign="top" align="left"><a href="design_openejb.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Design</span></a></td></tr><tr><td valign="top" align="left"><a href="specification.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Specification</span></a></td><
 /tr><tr><td valign="top" align="left"><a href="OpenEJB_presentaion.ppt"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Presentation</span></a></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Developers</span></td></tr><tr><td valign="top" align="left"><a href="release-plan.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Release Plan</span></a></td></tr><tr><td valign="top" align="left"><a href="cvs.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;Source Code</span></a></td></tr><tr><td valign="top" align="left"><a href="http://sourceforge.net/projects/openejb/"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;SourceForge</span></a></td></tr></table><img src="images/dotTrans.gif" width="1" height="15" border="0"><br><img src="images/line_sm.gif" width="105" height="3" border="0"><br><A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?group_id=44351" width="88" height="31" border="0" a
 lt="SourceForge Logo"></A></td><td width="7" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</td><td width="40" valign="top" align="left">&nbsp;</td><td rowspan="4" width="430" valign="top"><table cols="1" rows="2" border="0" cellpadding="0" cellspacing="0" width="430"><tr><td valign="top" align="left"><br><img border="0" height="50" hspace="0" src="./images/logo_ejb.gif" vspace="0" width="200"><br><img border="0" height="7" hspace="0" src="images/dotTrans.gif"><br><span class="pageTitle">Download</span><br><img border="0" height="1" hspace="0" src="images/dotTrans.gif"></td></tr></table><p></p><br><a name="current.release"><h2>Current Release 0.8 beta 3</h2></a> <p><span class="bodyBlack"><a href="http://sourceforge.net/project/showfiles.php?group_id=44351">Download OpenEJB 0.8 beta 3</a></span></p>  <p><span class="bodyBlack"> We are cycling through a series of beta releases based on user-feedback.  So, if you've had this release for a while, be sure to check the  OpenE
 JB's <a href="http://sourceforge.net/project/showfiles.php?group_id=44351">download  page</a> at SourceForge for new releases.  Any problems you have experienced may have been fixed, if not, please let us know. </span></p> <a name="new.features.0.8beta3"><h2>Fixes in 0.8beta3</h2></a> <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey"> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">SourceForge bugs fixed:</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 563891 ] Bad client-side error messages</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 565604 ] Setting the handler system property  </span></td></tr> <tr><td align="left"
  valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 566953 ] openejb.bat on NT fails to display </span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 566956 ] deploy doesn't overwrite</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 566961 ] typos in HelloWorld example</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 566966 ] Need a sample client run script</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 566967 ] sun.tools.javac.Main deprecated</span></td></tr> <tr><td align="left" valign="top" width="10"><
 img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">[ 566974 ] openejb.bat help screen fails on NT</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Scripts now pass OPENEJB_HOME to OpenEJB</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Scripts now include OPENEJB_HOME\beans in classpath</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">If your OpenEJB configuration isn't found, one will be created for you.</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">ProxyFactory element in the openejb.conf is now optional</span></td></tr> </span></ta
 ble> <a name="new.features.0.8beta2"><h2>Fixes in 0.8beta2</h2></a> <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey"> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Fixed fatal file path bug affecting UNIX/Linux/Mac OS X Users</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Fixed bug that prevented the Remote Server from starting unless     additional command line options were used.</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Improved scripts</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Optimized logging</span></td>
 </tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Added '-help' and '-example' options to the 'openejb deploy' command</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Added '-help' and '-example' options to the 'openejb start' command</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Revised all documentation</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Added several new docs, including a complete &quot;Hello World&quot; example, Deploy Tool docs, Remote server starup docs, and a doc explaining the use of  Deployment IDs.</span></td></tr> </span></table> <a name="new.features.0.8bet
 a1"><h2>New Features in 0.8</h2></a> <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey"> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Command-line tool for deploying, starting, testing, and getting help</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">New configuration similar to the Apache httpd.conf style.  The openejb.conf contains     the information about your container system.  </span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">A default configuration is packed in the jar.  If we can't find yours,      the container system can still start</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/gray
 Dot.gif"></td><td align="left" valign="top"><span class="bodyBlack">OpenEJB services are now packaged in jars and deployed in     the openejb.conf file.</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Deployed EJBs are loaded using the ejb-jar.xml and openejb-jar.xml in the bean's jar file.       No need to edit your openejb.conf file</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Deployment directories. Specify a dir where your deployed jars will be     loaded, then just throw 'em in</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Basic ejb-jar.xml validation using XSD with regular expressions</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="image
 s/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Advanced EJB validation using extendible framework.</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">The entire configuration is validated, any problems will be reported     with very precise error messages and enough detail to fix the problem.</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">New modular build system</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Fixed major bug in IntraVM serialization that severely affected the      container-server contract.</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="b
 odyBlack">Complete rewrite of Transaction Handling, several bugs fixed</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Rewrite of Exception Handling, now much more spec compliant</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Logging with log4j</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">Remote server for running OpenEJB stand-alone</span></td></tr> <tr><td align="left" valign="top" width="10"><img src="images/grayDot.gif"></td><td align="left" valign="top"><span class="bodyBlack">CORBA adapter for plugging OpenEJB into OpenORB</span></td></tr> </span></table> </td><td width="120" height="5" valign="top" align="left">&nbsp;</td></tr><tr height="5"><td width="20" heig
 ht="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</td><td width="95" height="5" bgcolor="#7270c2" valign="top">&nbsp;</td><td width="7" height="5" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</td><td width="40" height="5" valign="top" align="left">&nbsp;</td><td width="120" height="5" valign="top" align="left">&nbsp;</td></tr><tr><td width="20" height="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</td><td width="95" bgcolor="#7270c2" valign="top" align="left">&nbsp;</td><td width="7" bgcolor="#a9a5de" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="25" border="0"></td><td width="40" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="25" border="0"></td><td width="120" valign="top" align="left">&nbsp;</td></tr><tr height="5"><td width="20" rowspan="2" height="100%" bgcolor="#7270c2" valign="bottom" align="left"><img src="images/stripes1.gif" width="20" height="125" border="0"></td><td width="95" rowspan=
 "2" height="100%" bgcolor="#7270c2" valign="bottom" align="left"><img src="images/stripe105.gif" width="105" height="125" border="0"></td><td width="7" rowspan="2" height="100%" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</td><td width="40" height="100%" valign="top" align="left">&nbsp;</td><td width="120" height="100%" valign="top" align="left">&nbsp;</td></tr><tr height="5"><td width="40" height="25" valign="top" align="left">&nbsp;</td><td width="430" height="25" valign="bottom" align="left"><br><br><img src="images/line_light.gif" border="0" width="430" height="3"><br><p></p><span class="bodyGrey"><small><notice>     Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered     trademarks of Sun Microsystems, Inc. in the United States and in other     countries. XML, XML Schema, XSLT and related standards are trademarks or registered     trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web     Consortium. All other pro
 duct names mentioned herein are trademarks of their respective     owners.    </notice><br>&nbsp;<br></small></span><p></p>&nbsp;</td><td width="120" height="25" valign="top" align="left">&nbsp;</td></tr></table></body></html>
\ No newline at end of file

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/resources/htdocs/download.html
------------------------------------------------------------------------------
    svn:executable = *