You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/09/27 22:52:25 UTC

svn commit: r450574 [1/2] - in /incubator/roller/trunk/sandbox/planetroller: ./ nbproject/ src/org/apache/roller/planet/ui/ src/org/apache/roller/planet/ui/forms/ src/org/apache/roller/planet/ui/utils/ src/org/apache/roller/planet/utils/ web/ web/WEB-I...

Author: snoopdave
Date: Wed Sep 27 13:52:23 2006
New Revision: 450574

URL: http://svn.apache.org/viewvc?view=rev&rev=450574
Log:
First cut of simple JSF/MyFaces based UI for Planet Roller

Added:
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/ConfigForm.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupForm.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupsListForm.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/SubscriptionForm.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/ErrorBean.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableForm.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableFormFilter.java
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/PersistenceSessionFilter.java
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/ApplicationResources.properties
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/planet.properties
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/faces-config.xml
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-beanutils-1.7.0.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-codec-1.3.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-collections-3.1.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-digester-1.6.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-el-1.0.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-lang-2.1.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-logging-1.0.4.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/jstl.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-api-1.1.4.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-impl-1.1.4.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/standard.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/tomahawk-1.1.3.jar   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/error.jsp
    incubator/roller/trunk/sandbox/planetroller/web/images/
    incubator/roller/trunk/sandbox/planetroller/web/images/body-bg-grey.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/delete.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/feed_add.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/feed_link.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/folder_add.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/folder_feed.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/rp-config.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/rp-group.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/rp-groups.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/rp-sub.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/images/th-bg-grey.png   (with props)
    incubator/roller/trunk/sandbox/planetroller/web/index.jsp
    incubator/roller/trunk/sandbox/planetroller/web/login.jsp
    incubator/roller/trunk/sandbox/planetroller/web/logout.jsp
    incubator/roller/trunk/sandbox/planetroller/web/main.jsp
    incubator/roller/trunk/sandbox/planetroller/web/planet-ui/
    incubator/roller/trunk/sandbox/planetroller/web/planet-ui/configForm.jsp
    incubator/roller/trunk/sandbox/planetroller/web/planet-ui/groupForm.jsp
    incubator/roller/trunk/sandbox/planetroller/web/planet-ui/groupsList.jsp
    incubator/roller/trunk/sandbox/planetroller/web/planet-ui/menu.jsp
    incubator/roller/trunk/sandbox/planetroller/web/planet-ui/subscriptionForm.jsp
    incubator/roller/trunk/sandbox/planetroller/web/planet.css
Modified:
    incubator/roller/trunk/sandbox/planetroller/README.txt
    incubator/roller/trunk/sandbox/planetroller/build.xml
    incubator/roller/trunk/sandbox/planetroller/nbproject/   (props changed)
    incubator/roller/trunk/sandbox/planetroller/nbproject/project.xml
    incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/utils/PlanetTool.java
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/log4j.properties
    incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/web.xml

Modified: incubator/roller/trunk/sandbox/planetroller/README.txt
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/README.txt?view=diff&rev=450574&r1=450573&r2=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/README.txt (original)
+++ incubator/roller/trunk/sandbox/planetroller/README.txt Wed Sep 27 13:52:23 2006
@@ -2,7 +2,11 @@
 
 This sandbox directory is where Roller's planet aggregator was created.
 Most of the planet code has moved into Roller, but a command-line tool
-called PlanetTool remains here.
+called PlanetTool remains here and a new Planet webapp is under construction.
+
+Planet Roller webapp
+
+TDB
 
 Planet Tool
 

Modified: incubator/roller/trunk/sandbox/planetroller/build.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/build.xml?view=diff&rev=450574&r1=450573&r2=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/build.xml (original)
+++ incubator/roller/trunk/sandbox/planetroller/build.xml Wed Sep 27 13:52:23 2006
@@ -21,37 +21,45 @@
 
     <property file="./ant.properties" />
     
-    <fileset id="roller-jars" dir="${rollerjars.dir}">
-        
-        <include name="roller-business.jar"/>
+    <fileset id="roller-jars" dir="${rollerjars.dir}">        
+        <include name="roller-business.jar"/>        
         
         <include name="hibernate3.jar"/>
         <include name="asm.jar"/>
         <include name="asm-attrs.jar"/>
         <include name="cglib-2.1.3.jar"/>
         <include name="ehcache-1.1.jar"/>
-        <include name="dom4j-1.6.1.jar"/>
+        <include name="dom4j-1.6.1.jar"/>       
         <include name="jta.jar"/>
         <include name="jdbc2_0-stdext.jar"/>
-
-        <include name="commons-logging.jar"/>
-        <include name="commons-lang-2.0.jar"/>                
+        
         <include name="log4j-1.2.11.jar"/>
-
+        
         <include name="rome-0.8.jar"/>
-        <include name="rome-fetcher-0.8.jar"/>
-        <include name="jdom.jar"/>
+        <include name="rome-fetcher-0.8.jar"/>        
+        <include name="jdom.jar"/> 
         
         <include name="jaxen-full.jar"/>
-        <include name="saxpath.jar"/>
-        
+        <include name="saxpath.jar"/>        
+
         <include name="velocity-1.4.jar"/>
-        <include name="velocity-dep-1.4.jar"/>
-                
+        <include name="velocity-dep-1.4.jar"/>   
+        
+        <include name="commons-fileupload.jar"/>   
+        <include name="commons-validator.jar"/>   
+        
     </fileset>
     
     <path id="planet.path">
         <fileset refid="roller-jars" />
+        <fileset dir="./lib">
+            <include name="servlet-api.jar"/>
+        </fileset>                      
+        <fileset dir="./web/WEB-INF/lib">
+            <include name="commons-logging-1.0.4.jar"/>
+            <include name="commons-lang-2.1.jar"/>  
+            <include name="myfaces-api-1.1.4.jar"/>  
+        </fileset>                      
     </path>
     
     <target name="stage-webapp" description="Build Planet webapp">

Propchange: incubator/roller/trunk/sandbox/planetroller/nbproject/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Sep 27 13:52:23 2006
@@ -0,0 +1 @@
+private

Modified: incubator/roller/trunk/sandbox/planetroller/nbproject/project.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/nbproject/project.xml?view=diff&rev=450574&r1=450573&r2=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/nbproject/project.xml (original)
+++ incubator/roller/trunk/sandbox/planetroller/nbproject/project.xml Wed Sep 27 13:52:23 2006
@@ -8,15 +8,15 @@
             <properties/>
             <folders>
                 <source-folder>
-                    <label>src</label>
-                    <type>java</type>
-                    <location>src</location>
-                </source-folder>
-                <source-folder>
                     <label>web</label>
                     <type>doc_root</type>
                     <location>web</location>
                 </source-folder>
+                <source-folder>
+                    <label>src</label>
+                    <type>java</type>
+                    <location>src</location>
+                </source-folder>
             </folders>
             <ide-actions>
                 <action name="build">
@@ -50,18 +50,18 @@
                     <ide-action name="rebuild"/>
                 </context-menu>
             </view>
+            <subprojects/>
         </general-data>
         <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1">
             <compilation-unit>
                 <package-root>src</package-root>
-                <classpath mode="compile">../src/roller-svn/roller/trunk/sandbox/planetroller/lib/asm-attrs.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/asm.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/cglib-2.1.3.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/commons-lang-2.0.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/commons-logging.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/dom4j-1.6.1.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/ehcache-1.1.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/hibernate3.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jaxen-full.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jdbc2_0-stdext.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jdom.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jta.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/log4j-1.2.11.jar:../src/roller-svn/roller/
 trunk/sandbox/planetroller/lib/roller-business.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/rome-0.8.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/rome-fetcher-0.8.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/saxpath.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/velocity-1.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/velocity-dep-1.4.jar</classpath>
+                <classpath mode="compile">../src/roller-svn/roller/trunk/sandbox/planetroller/lib/asm-attrs.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/asm.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/cglib-2.1.3.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/dom4j-1.6.1.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/ehcache-1.1.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/hibernate3.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jaxen-full.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jdbc2_0-stdext.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jdom.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/jta.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/log4j-1.2.11.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/roller-business.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/rome-0.8.jar:../src/roller-svn/roller/trunk/sa
 ndbox/planetroller/lib/rome-fetcher-0.8.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/saxpath.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/velocity-1.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/velocity-dep-1.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-beanutils-1.7.0.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-codec-1.3.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-collections-3.1.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-digester-1.6.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-el-1.0.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-lang-2.1.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-logging-1.0.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/jstl-1.1.0.jar
 :../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-api-1.1.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-impl-1.1.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/lib/servlet-api.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-api-1.1.4.jar:../src/roller-svn/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/tomahawk-1.1.3.jar</classpath>
                 <source-level>1.4</source-level>
             </compilation-unit>
         </java-data>
         <web-data xmlns="http://www.netbeans.org/ns/freeform-project-web/1">
             <web-module>
                 <doc-root>web</doc-root>
-                <classpath/>
                 <context-path>/planet</context-path>
                 <j2ee-spec-level>1.4</j2ee-spec-level>
             </web-module>

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/ConfigForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/ConfigForm.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/ConfigForm.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/ConfigForm.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.ui.forms;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.model.Planet;
+import org.apache.roller.planet.model.PlanetFactory;
+import org.apache.roller.planet.model.PlanetManager;
+import org.apache.roller.planet.pojos.PlanetConfigData;
+import org.apache.roller.planet.pojos.PlanetGroupData;
+import org.apache.roller.planet.ui.utils.LoadableForm;
+
+/**
+ * UI bean for editing planet config data.
+ */
+public class ConfigForm implements LoadableForm {
+    private static Log log = LogFactory.getLog(ConfigForm.class);
+    private String groupHandle = null;
+    private PlanetConfigData planetConfig = new PlanetConfigData();
+            
+    public String load(HttpServletRequest request) throws Exception { 
+        log.info("Loading PlanetConfig...");
+        Planet planet = PlanetFactory.getPlanet();
+        if (planet.getPlanetManager().getConfiguration() != null) {
+            planetConfig = planet.getPlanetManager().getConfiguration();
+        }
+        return "editConfig";
+    }
+    
+    public String save() throws Exception {
+        log.info("Saving PlanetConfig...");
+        Planet planet = PlanetFactory.getPlanet();
+        PlanetManager pmgr= PlanetFactory.getPlanet().getPlanetManager(); 
+        if (StringUtils.isNotEmpty(planetConfig.getId())) {
+            PlanetConfigData dbconfig = pmgr.getConfiguration();
+            dbconfig.setTitle(planetConfig.getTitle());
+            dbconfig.setDescription(planetConfig.getDescription());
+            dbconfig.setAdminName(  planetConfig.getAdminName());
+            dbconfig.setAdminEmail( planetConfig.getAdminEmail());
+            dbconfig.setProxyHost(  planetConfig.getProxyHost());
+            dbconfig.setProxyPort(  planetConfig.getProxyPort());
+            if (StringUtils.isNotEmpty(groupHandle)) {
+                dbconfig.setDefaultGroup(pmgr.getGroup(groupHandle));
+            }
+            planet.getPlanetManager().saveConfiguration(dbconfig);
+        } else {
+            planet.getPlanetManager().saveConfiguration(planetConfig);
+        }         
+        planet.flush();
+        return "editConfig";
+    }
+    
+    public Map getGroupHandles() throws Exception { 
+        PlanetManager pmgr= PlanetFactory.getPlanet().getPlanetManager(); 
+        Map map = new HashMap(); 
+        map.put("",""); // allow no-choice
+        List groups = pmgr.getGroups();
+        for (Iterator iter = groups.iterator(); iter.hasNext();) {
+            PlanetGroupData group = (PlanetGroupData)iter.next();
+            map.put(group.getHandle(), group.getHandle());
+        }
+        return map;
+    }
+        
+    public PlanetConfigData getPlanetConfig() {
+        return planetConfig;
+    }
+    
+    public void setPlanetConfig(PlanetConfigData planetConfig) {
+        this.planetConfig = planetConfig;
+    }        
+
+    public String getGroupHandle() {
+        if (groupHandle == null && planetConfig.getDefaultGroup() != null) {
+            groupHandle = planetConfig.getDefaultGroup().getHandle();
+        }
+        return groupHandle;
+    }
+
+    public void setGroupHandle(String groupHandle) {
+        this.groupHandle = groupHandle;
+    }
+}

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupForm.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupForm.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupForm.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.ui.forms;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.model.Planet;
+import org.apache.roller.planet.model.PlanetFactory;
+import org.apache.roller.planet.model.PlanetManager;
+import org.apache.roller.planet.pojos.PlanetGroupData;
+import org.apache.roller.planet.pojos.PlanetSubscriptionData;
+import org.apache.roller.planet.ui.utils.LoadableForm;
+
+/**
+ * UI bean for editing group data, designed for request scope.
+ */
+public class GroupForm implements LoadableForm {
+    private static Log log = LogFactory.getLog(GroupsListForm.class);
+    private PlanetGroupData group = new PlanetGroupData();
+    
+    public String load(HttpServletRequest request) throws Exception {
+        log.info("Loading Group...");
+        String groupid = request.getParameter("groupid");
+        if (StringUtils.isNotEmpty(groupid)) {
+            Planet planet = PlanetFactory.getPlanet();
+            group = planet.getPlanetManager().getGroupById(groupid);
+        }
+        return "editGroup";
+    }
+    
+    public String edit() throws Exception {
+        FacesContext fctx = FacesContext.getCurrentInstance();
+        return load((HttpServletRequest)fctx.getExternalContext().getRequest());
+    }
+    
+    public String save() throws Exception {
+        log.info("Saving Group...");
+        Planet planet = PlanetFactory.getPlanet();
+        if (StringUtils.isNotEmpty(group.getId())) {
+            PlanetGroupData dbgroup = planet.getPlanetManager().getGroupById(group.getId());
+            dbgroup.setTitle(group.getTitle());
+            dbgroup.setHandle(group.getHandle());
+            dbgroup.setDescription(group.getDescription());
+            planet.getPlanetManager().saveGroup(dbgroup); 
+        } else {
+            planet.getPlanetManager().saveGroup(group); 
+        }
+        planet.flush();
+        return "editGroups";
+    }   
+    
+    public String removeSubscription() throws Exception {
+        log.info("Deleting subscription...");
+        
+        FacesContext fctx = FacesContext.getCurrentInstance();
+        Map params = fctx.getExternalContext().getRequestParameterMap();
+        String subid = (String)params.get("subid");
+        
+        Planet planet = PlanetFactory.getPlanet();
+        PlanetManager pmgr = planet.getPlanetManager();
+        if (StringUtils.isNotEmpty(subid)) {
+            PlanetGroupData dbgroup = pmgr.getGroupById(group.getId());
+            PlanetSubscriptionData sub = pmgr.getSubscriptionById(subid);
+            dbgroup.getSubscriptions().remove(sub);
+            planet.getPlanetManager().saveGroup(dbgroup); 
+            planet.flush();
+        } 
+        return "editGroup";
+    }
+    
+    public PlanetGroupData getGroup() {
+        return group;
+    }
+
+    public void setGroup(PlanetGroupData group) {
+        this.group = group;
+    }
+    
+    public List getSubscriptions() throws Exception {
+        if (group.getId() != null) {
+            Planet planet = PlanetFactory.getPlanet();
+            group = planet.getPlanetManager().getGroupById(group.getId());
+        }
+        return new ArrayList(group.getSubscriptions());
+    }
+}

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupsListForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupsListForm.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupsListForm.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/GroupsListForm.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.ui.forms;
+
+import java.util.List;
+import java.util.Map;
+import javax.faces.context.FacesContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.RollerException;
+import org.apache.roller.planet.model.Planet;
+import org.apache.roller.planet.model.PlanetFactory;
+import org.apache.roller.planet.pojos.PlanetGroupData;
+
+/**
+ * UI bean for managing list of groups.
+ */
+public class GroupsListForm {
+    private static Log log = LogFactory.getLog(GroupsListForm.class);
+            
+    public String deleteGroup() {
+        log.info("Delete Group...");
+        Planet planet = PlanetFactory.getPlanet();
+        FacesContext fctx = FacesContext.getCurrentInstance();
+        Map params = fctx.getExternalContext().getRequestParameterMap();
+        String groupid = (String)params.get("groupid");
+        try {
+            PlanetGroupData group = planet.getPlanetManager().getGroupById(groupid);
+            planet.getPlanetManager().deleteGroup(group);
+            planet.flush();
+        } catch (RollerException ex) {
+            return "error";
+        }        
+        return "editGroups";
+    }
+
+    public List getGroups() throws Exception {
+        return PlanetFactory.getPlanet().getPlanetManager().getGroups();
+    }
+}

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/SubscriptionForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/SubscriptionForm.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/SubscriptionForm.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/forms/SubscriptionForm.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.ui.forms;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.ValidatorException;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.model.PlanetFactory;
+import org.apache.roller.planet.model.PlanetManager;
+import org.apache.roller.planet.pojos.PlanetGroupData;
+import org.apache.roller.planet.pojos.PlanetSubscriptionData;
+import org.apache.roller.planet.ui.utils.LoadableForm;
+
+/**
+ * UI bean for editing subscription data.
+ */
+public class SubscriptionForm implements LoadableForm {
+    private ResourceBundle bundle = 
+        ResourceBundle.getBundle("ApplicationResources");
+    private static Log log = LogFactory.getLog(GroupsListForm.class);
+    private PlanetSubscriptionData subscription = new PlanetSubscriptionData();
+    private String groupid = null;
+    
+    public SubscriptionForm() {}
+    
+    public String load(HttpServletRequest request) throws Exception {
+        log.info("Loading Subscription...");
+        String subid = request.getParameter("subid");
+        if (subid != null) {
+            PlanetManager pmgr = PlanetFactory.getPlanet().getPlanetManager();
+            setSubscription(pmgr.getSubscriptionById(subid));
+        }
+        groupid = request.getParameter("groupid");        
+        return "editSubscription";
+    }
+    
+    public String edit() throws Exception {
+        FacesContext fctx = FacesContext.getCurrentInstance();
+        return load((HttpServletRequest)fctx.getExternalContext().getRequest());
+    }
+    
+    public String save() throws Exception {
+        log.info("Saving Subscription...");                
+        PlanetManager pmgr = PlanetFactory.getPlanet().getPlanetManager();
+        if (StringUtils.isNotEmpty(getSubscription().getId())) {
+            PlanetSubscriptionData dbsub = pmgr.getSubscriptionById(getSubscription().getId());
+            dbsub.setTitle(subscription.getTitle());
+            dbsub.setName(subscription.getName());
+            dbsub.setFeedURL(subscription.getFeedURL());
+            dbsub.setSiteURL(subscription.getSiteURL());
+            pmgr.saveSubscription(dbsub); 
+        } else {
+            pmgr.saveSubscription(subscription);
+            // if we've got a group, add subscription to it
+            if (groupid != null) {
+                PlanetGroupData group = pmgr.getGroupById(groupid);
+                group.getSubscriptions().add(subscription);
+                pmgr.saveGroup(group);
+            }
+        }
+        PlanetFactory.getPlanet().flush();
+        return "editSubscription";
+    }    
+
+    public PlanetSubscriptionData getSubscription() {
+        return subscription;
+    }
+
+    public void setSubscription(PlanetSubscriptionData subscription) {
+        this.subscription = subscription;
+    }
+
+    public String getGroupid() {
+        return groupid;
+    }
+
+    public void setGroupid(String groupid) {
+        this.groupid = groupid;
+    }
+    
+    public void checkURL(FacesContext context, UIComponent component, Object value) {
+        if (value == null || !(value instanceof String)) return;
+        try {
+            URL url = new URL((String)value);
+        } catch (MalformedURLException ex) {
+            FacesMessage msg = new FacesMessage();
+            msg.setDetail(bundle.getString("errorBadURL"));
+            msg.setSeverity(FacesMessage.SEVERITY_ERROR);
+            throw new ValidatorException(msg);
+        }
+        return;
+    }
+}

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/ErrorBean.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/ErrorBean.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/ErrorBean.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/ErrorBean.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,47 @@
+/*
+ * From CoreJSF by Geary and Horstman
+ */
+package org.apache.roller.planet.ui.utils;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.sql.SQLException;
+import java.util.Map;
+import javax.faces.context.FacesContext;
+import javax.servlet.ServletException;
+
+public class ErrorBean {
+   public String getStackTrace() {
+      FacesContext context = FacesContext.getCurrentInstance();
+      Map request = context.getExternalContext().getRequestMap();
+      Throwable ex = (Throwable) request.get("javax.servlet.error.exception");
+      StringWriter sw = new StringWriter();
+      PrintWriter pw = new PrintWriter(sw);
+      fillStackTrace(ex, pw);
+      return sw.toString();
+   }
+
+   private static void fillStackTrace(Throwable t, PrintWriter w) {
+      if (t == null) return;
+      t.printStackTrace(w);
+      if (t instanceof ServletException) {
+         Throwable cause = ((ServletException) t).getRootCause();
+         if (cause != null) {
+            w.println("Root cause:");
+            fillStackTrace(cause, w);
+         }
+      } else if (t instanceof SQLException) {
+         Throwable cause = ((SQLException) t).getNextException();
+         if (cause != null) {
+            w.println("Next exception:");
+            fillStackTrace(cause, w);
+         }
+      } else {
+         Throwable cause = t.getCause();
+         if (cause != null) {
+            w.println("Cause:");
+            fillStackTrace(cause, w);
+         }
+      }
+   }
+}
\ No newline at end of file

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableForm.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableForm.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableForm.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.ui.utils;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Forms that wish to make themselves loadable via HTTP GET request should
+ * implement this interface -- see LoadableFormFilter for details.
+ */
+public interface LoadableForm {
+    public String load(HttpServletRequest request) throws Exception;    
+}

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableFormFilter.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableFormFilter.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableFormFilter.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/LoadableFormFilter.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.ui.utils;
+
+import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.ui.forms.ConfigForm;
+
+/**
+ * Simple support for "bookmarkable" GET requests in JSF - gives a page's form 
+ * the opportunity to load itself from the request before the page is executed. 
+ * Once loaded, the form bean is saved as a request attribute so that it is 
+ * available in the JSF page.
+ *
+ * <pre>
+ * To use this make sure your form class:
+ *
+ * 1) Implements LoadableForm and loads itself in load() method
+ *    i.e. Use request params and/or pathInfo to load form from backend
+ *
+ * 2) Has same name as corresponding page
+ *    e.g. page name configForm.faces corresponds to class name ConfigForm
+ *    and to request parameter configForm
+ *
+ * 3) Exists in package specified by context param 'loadableFormsPackage'
+ *    (defaults to org.apache.roller.planet.ui.forms if not specified)
+ * </pre>
+ */
+public class LoadableFormFilter implements Filter {
+    private static Log log = LogFactory.getLog(LoadableFormFilter.class);
+    private String loadableFormsPackage = "org.apache.roller.planet.ui.forms";
+    
+    public void init(FilterConfig filterConfig) throws ServletException {
+        ServletContext ctx = filterConfig.getServletContext();
+        String param = ctx.getInitParameter("loadableFormsPackage");
+        if (StringUtils.isNotEmpty(param)) {
+            loadableFormsPackage = param;
+        }
+    }
+
+    public void doFilter(
+            ServletRequest servletRequest, 
+            ServletResponse servletResponse, 
+            FilterChain filterChain) throws IOException, ServletException {
+        
+        HttpServletRequest request = (HttpServletRequest)servletRequest;
+        
+        // only handle with HTTP GET requests with URIs ending in .faces
+        if ("GET".equals(request.getMethod()) 
+                && request.getRequestURI() != null 
+                && request.getRequestURI().endsWith(".faces")) {
+            String formName = null;
+            LoadableForm form = null; 
+            try { // to load form class based on page name in URI
+                String[] pathInfo = request.getRequestURI().split("/");
+                String lastSegment = pathInfo[pathInfo.length - 1];            
+                formName = lastSegment.substring(0, lastSegment.length() - 6);
+                String className = loadableFormsPackage + "." + StringUtils.capitalize(formName);
+                Class formClass = Class.forName(className);
+                form = (LoadableForm)formClass.newInstance();                    
+            } catch (Exception ignored) {
+                // that's OK, not every page has a loadable form
+                log.debug("Problem loading form for " + formName, ignored);
+            }                                
+            if (form != null) try { // to call form class load() method 
+                log.debug("Loading form: " + formName);  
+                form.load(request);                       
+                request.setAttribute(formName, form);
+            } catch (Exception e) {
+                // error during form load indicates real problem
+                throw new ServletException("ERROR loading form " + formName, e);
+            }                
+        }
+        filterChain.doFilter(servletRequest, servletResponse);               
+    }
+
+    public void destroy() {}
+    
+}

Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/PersistenceSessionFilter.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/PersistenceSessionFilter.java?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/PersistenceSessionFilter.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/ui/utils/PersistenceSessionFilter.java Wed Sep 27 13:52:23 2006
@@ -0,0 +1,72 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+*  contributor license agreements.  The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.planet.ui.utils;
+
+import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.model.Planet;
+import org.apache.roller.planet.model.PlanetFactory;
+
+
+/**
+ * Sole responsibility is to ensure that each request's Planet
+ * persistence session is released at end of the request.
+ */
+public class PersistenceSessionFilter implements Filter {
+    
+    private static Log mLogger = LogFactory.getLog(PersistenceSessionFilter.class);
+    
+    
+    /**
+     * Release Roller persistence session at end of request processing.
+     */
+    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
+            throws IOException, ServletException {
+        
+        HttpServletRequest request = (HttpServletRequest) req;
+        HttpServletResponse response = (HttpServletResponse) res;
+        
+        mLogger.debug("Entered PersistenceSessionFilter");
+        
+        Planet planet = PlanetFactory.getPlanet();
+        try {
+            chain.doFilter(request, response);
+        } finally {
+            mLogger.debug("Releasing Planet Session");
+            planet.release();
+        }
+        
+        mLogger.debug("Exiting PersistenceSessionFilter");
+    }
+    
+
+    public void init(FilterConfig filterConfig) throws ServletException {}
+    
+    public void destroy() {}
+    
+}
+

Modified: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/utils/PlanetTool.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/utils/PlanetTool.java?view=diff&rev=450574&r1=450573&r2=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/utils/PlanetTool.java (original)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/utils/PlanetTool.java Wed Sep 27 13:52:23 2006
@@ -361,16 +361,14 @@
                 Element refElem = (Element)refs.next();
                 String includeAll = refElem.getAttributeValue("include-all");
                 if (includeAll != null && includeAll.equals("true")) {
-                    //group.getSubscriptions().addAll(subsByID.values());
-                    group.addSubscriptions(subsByID.values());
+                    group.getSubscriptions().addAll(subsByID.values());
                 } else {
                     String refid = refElem.getAttributeValue("refid");
                     PlanetSubscriptionData sub = (PlanetSubscriptionData)subsByID.get(refid);
                     if (sub == null) {
                         throw new Exception("No such subscription ["+refid+"]");
                     }
-                    //group.getSubscriptions().add(sub);
-                    group.addSubscription(sub);
+                    group.getSubscriptions().add(sub);
                 }
             }
             groupsByHandle.put(group.getHandle(), group);

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/ApplicationResources.properties?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/ApplicationResources.properties (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/ApplicationResources.properties Wed Sep 27 13:52:23 2006
@@ -0,0 +1,101 @@
+
+# application wide
+
+appTitle=Planet admin console
+appHome=Home
+appConfig=Config
+appGroups=Groups
+appLogout=Logout
+appLogin=Login
+appSave=Save
+appCancel=Cancel
+appDelete=Delete
+appRemove=Remove
+appAction=Action
+
+errorBadURL=Invalid URL
+
+# configForm.jsp
+
+configPageTitle=Planet Roller admin console
+configFormTitle=Configuration
+configHelp=You can set the title, description and administrator \
+information to be used in all pages and feeds generated by Planet Roller. \
+You can also set the default group, the aggregation group that will \
+be featured on the front page of the site.
+configTitle=Planet title
+configDescription=Planet description
+configAdminName=Admin name
+configAdminEmail=Admin email
+configProxyHost=Proxy host
+configProxyPort=Proxy port
+configDefaultGroup=Default group
+
+# error.jsp
+
+errorPageTitle=An unexpected ERROR has occured
+errorPageMessage=An unexpected error has occured and the stack trace below has been logged
+errorStackTraceTitle=Stack trace
+
+# groupForm.jsp
+
+groupPageTitle=Edit group
+groupReturnToList=Return to groups list
+groupHelp=You can set the title, handle, descrption and list of feeds for \
+each group. What's a group? A group is a collection of RSS or Atom feed \
+subscriptions that will be aggregated together to form a Planet. Planet Roller \
+will generate a set of HTML, OPML and RSS files for each group you define.
+groupHandle=Handle
+groupTitle=Title
+groupDescription=Description
+groupSubscriptions=Subscriptions in this group
+groupAddSubscription=Add subscription
+groupConfirmSubscriptionRemove=Are you sure you want to remove subscription:
+groupAction=Action
+groupSubscriptionDetails=Subscription details
+groupSubscriptionTitle=Title
+groupSubscriptionName=Handle
+groupSubscriptionFeedURL=Feed URL
+groupSubscriptionSiteURL=Site URL
+
+# groupsList.jsp
+
+groupsPageTitle=Planet Roller groups
+groupsListTitle=Groups
+groupsHelp=You can define multiple groups within your Planet Roller server, \
+each made up of one or more RSS or Atom feed subscriptions. Planet Roller will \
+generate a set of HTML, OPML and RSS files for each group you define. Below \
+are the groups you've currently got defined.
+groupsNewGroupName=Group name
+groupsNoGroups=No groups defined
+groupsAddGroup=Add group
+groupsAction=Action
+groupsDeleteGroup=Delete
+groupsHandle=Handle
+groupsTitle=Tile
+groupsConfirmGroupRemove=Are you sure you want to remove group:
+
+# login.jsp
+
+loginPageTitle=Login to Planet admin console
+loginUsername=Username
+loginPassword=Password
+loginButton=Login
+loginTryAgain=Login incorrect, please try again..
+
+# main.jsp
+
+mainTitle=Welcome to Planet Roller
+mainConsoleLink=Planet admin console...
+
+# subscriptionForm.jsp
+
+subscriptionPageTitle=Edit subscription
+subscriptionHelp=A subscription is an RSS or Atom feed that can be included \
+in one or more Planet Roller groups.
+subscriptionTitle=Title
+subscriptionName=Handle
+subscriptionFeedURL=Feed URL
+subscriptionSiteURL=Site URL
+
+

Modified: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/log4j.properties
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/log4j.properties?view=diff&rev=450574&r1=450573&r2=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/log4j.properties (original)
+++ incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/log4j.properties Wed Sep 27 13:52:23 2006
@@ -19,7 +19,7 @@
 log4j.rootCategory=INFO, roller
 
 log4j.appender.roller=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.roller.File=${catalina.base}/logs/roller.log
+log4j.appender.roller.File=${catalina.base}/logs/planet.log
 log4j.appender.roller.layout=org.apache.log4j.PatternLayout
 log4j.appender.roller.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%M - %m%n
 

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/planet.properties
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/planet.properties?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/planet.properties (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/classes/planet.properties Wed Sep 27 13:52:23 2006
@@ -0,0 +1,50 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  The ASF licenses this file to You
+# under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.  For additional information regarding
+# copyright in this work, please see the NOTICE file in the top level
+# directory of this distribution.
+
+# planet.properties
+#
+# This file is for meant for Roller deployment properties
+# Any properties that don't change at runtime are defined here
+#
+# You can override the values in this file in a couple ways ..
+#   1. define a planet-custom.properties file and place it somewhere
+#       at the root of one of your classpath locations.
+#       for example:
+#           $TOMCAT_HOME/common/classes
+#           $PLANET_LOCATION/WEB-INF/classes
+#
+#   2. specify a custom properties file via jvm option
+#       example:
+#           planet.custom.config=/path/to/properties/file
+#
+#   **NOTE: if you run multiple instances of roller on the same server
+#           then you should beware of the fact that the override options above
+#           may affect *all* of you running instances.  if you want to do
+#           custom overrides for each instance then you must do it by
+#           placing a planet-custom.properties file at WEB-INF/classes/ in
+#           each of you planet installations.
+#
+# properties in this file are accessed like this ...
+#    PlanetConfig.getProperty("propname");
+
+persistence.planet.classname=org.apache.roller.planet.business.hibernate.HibernatePlanetImpl
+
+# Planet cache must exist and must be writable by Roller process
+planet.aggregator.cache.dir=/var/roller/planetcache
+
+# Number of queries allowed per day
+planet.aggregator.technorati.limit=500
+

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/faces-config.xml?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/faces-config.xml (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/faces-config.xml Wed Sep 27 13:52:23 2006
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+<faces-config xmlns="http://java.sun.com/JSF/Configuration">
+  <managed-bean>
+    <managed-bean-name>configForm</managed-bean-name>
+    <managed-bean-class>org.apache.roller.planet.ui.forms.ConfigForm</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+  <managed-bean>
+    <managed-bean-name>groupsList</managed-bean-name>
+    <managed-bean-class>org.apache.roller.planet.ui.forms.GroupsListForm</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+  <managed-bean>
+    <managed-bean-name>groupForm</managed-bean-name>
+    <managed-bean-class>org.apache.roller.planet.ui.forms.GroupForm</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+  <managed-bean>
+    <managed-bean-name>subscriptionForm</managed-bean-name>
+    <managed-bean-class>org.apache.roller.planet.ui.forms.SubscriptionForm</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+  <managed-bean>
+    <managed-bean-name>error</managed-bean-name>
+    <managed-bean-class>org.apache.roller.planet.ui.utils.ErrorBean</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+  <navigation-rule>
+    <from-view-id>/*</from-view-id>
+    <navigation-case>
+      <from-outcome>editConfig</from-outcome>
+      <to-view-id>/planet-ui/configForm.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+  <navigation-rule>
+    <from-view-id>/*</from-view-id>
+    <navigation-case>
+      <from-outcome>editGroups</from-outcome>
+      <to-view-id>/planet-ui/groupsList.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+  <navigation-rule>
+    <from-view-id>/*</from-view-id>
+    <navigation-case>
+      <from-outcome>editGroup</from-outcome>
+      <to-view-id>/planet-ui/groupForm.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+  <navigation-rule>
+    <from-view-id>/*</from-view-id>
+    <navigation-case>
+      <from-outcome>editSubscription</from-outcome>
+      <to-view-id>/planet-ui/subscriptionForm.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+  <navigation-rule>
+    <from-view-id>/*</from-view-id>
+    <navigation-case>
+      <from-outcome>error</from-outcome>
+      <to-view-id>/error.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+</faces-config>

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-beanutils-1.7.0.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-beanutils-1.7.0.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-beanutils-1.7.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-codec-1.3.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-codec-1.3.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-codec-1.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-collections-3.1.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-collections-3.1.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-collections-3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-digester-1.6.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-digester-1.6.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-digester-1.6.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-el-1.0.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-el-1.0.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-el-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-lang-2.1.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-lang-2.1.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-lang-2.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-logging-1.0.4.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-logging-1.0.4.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/commons-logging-1.0.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/jstl.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/jstl.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/jstl.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-api-1.1.4.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-api-1.1.4.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-api-1.1.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-impl-1.1.4.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-impl-1.1.4.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/myfaces-impl-1.1.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/standard.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/standard.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/standard.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/tomahawk-1.1.3.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/tomahawk-1.1.3.jar?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/lib/tomahawk-1.1.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/web.xml?view=diff&rev=450574&r1=450573&r2=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/web.xml (original)
+++ incubator/roller/trunk/sandbox/planetroller/web/WEB-INF/web.xml Wed Sep 27 13:52:23 2006
@@ -1,7 +1,83 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
-<web-app  xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    
     <display-name>Planet Roller</display-name>
+       
+    <filter>
+        <filter-name>PersistenceSessionFilter</filter-name>
+        <filter-class>org.apache.roller.planet.ui.utils.PersistenceSessionFilter</filter-class>
+    </filter>  
+    
+    <filter>
+        <filter-name>LoadableFormFilter</filter-name>
+        <filter-class>org.apache.roller.planet.ui.utils.LoadableFormFilter</filter-class>
+    </filter> 
+    
+    <filter>
+        <filter-name>MyFacesExtensionsFilter</filter-name>
+        <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>MyFacesExtensionsFilter</filter-name>
+        <url-pattern>*.faces</url-pattern>
+    </filter-mapping>
+
+    <filter-mapping>
+        <filter-name>PersistenceSessionFilter</filter-name>
+        <url-pattern>/planet-ui/*</url-pattern>
+        <dispatcher>REQUEST</dispatcher>
+        <dispatcher>FORWARD</dispatcher>
+    </filter-mapping>
+    
+    <filter-mapping>
+        <filter-name>LoadableFormFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+        <dispatcher>REQUEST</dispatcher>
+    </filter-mapping>
+    
+    <servlet>
+        <servlet-name>Faces Servlet</servlet-name>
+        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>    
+    <servlet-mapping>
+        <servlet-name>Faces Servlet</servlet-name>
+        <url-pattern>*.faces</url-pattern>
+    </servlet-mapping>
+    
+    <welcome-file-list>
+        <welcome-file>/index.jsp</welcome-file>
+    </welcome-file-list>
+    
+    <error-page>
+        <error-code>500</error-code>
+        <location>/error.faces</location>
+    </error-page>
     
+    <security-constraint>
+        <display-name>planet-ui</display-name>
+        <web-resource-collection>
+            <web-resource-name>planet-ui</web-resource-name>
+            <url-pattern>/planet-ui/*</url-pattern>
+            <http-method>GET</http-method>
+            <http-method>POST</http-method>
+        </web-resource-collection>
+        <auth-constraint>
+            <description/>
+            <role-name>admin</role-name>
+        </auth-constraint>
+    </security-constraint>    
+    <login-config>
+        <auth-method>FORM</auth-method>
+        <form-login-config>
+            <form-login-page>/login.jsp</form-login-page>
+            <form-error-page>/login.jsp?error=true</form-error-page>
+        </form-login-config>
+    </login-config>
+    <security-role>
+        <description/>
+        <role-name>admin</role-name>
+    </security-role>
     
 </web-app>

Added: incubator/roller/trunk/sandbox/planetroller/web/error.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/error.jsp?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/error.jsp (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/error.jsp Wed Sep 27 13:52:23 2006
@@ -0,0 +1,46 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
+<html>
+<f:view>
+<f:loadBundle basename="ApplicationResources" var="msgs" />
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title><h:outputText value="#{msgs.errorPageTitle}" /></title>
+    <link rel="stylesheet" type="text/css" href='<c:url value="/planet.css" />' />
+</head>
+<body>
+<div id="wrapper">
+    <h:form>
+    <h1><h:outputText value="#{msgs.errorPageTitle}" /></h1>
+    <p>
+        <a href='<c:url value="/main.faces" />'><h:outputText value="#{msgs.appHome}" /></a> | 
+        <a href='<c:url value="/logout.jsp" />'><h:outputText value="#{msgs.appLogout}" /></a>
+    </p>  
+    <p><h:outputText value="#{msgs.errorPageMessage}" /></p>
+    <h2><h:outputText value="#{msgs.errorStackTraceTitle}" /></h2>
+    <p><h:inputTextarea value="#{error.stackTrace}" cols="100" rows="30" style="font-size:small" /></p>
+    </h:form>
+</div>
+</body>
+</f:view>
+</html>

Added: incubator/roller/trunk/sandbox/planetroller/web/images/body-bg-grey.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/body-bg-grey.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/body-bg-grey.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/delete.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/delete.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/delete.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/feed_add.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/feed_add.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/feed_add.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/feed_link.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/feed_link.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/feed_link.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/folder_add.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/folder_add.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/folder_add.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/folder_feed.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/folder_feed.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/folder_feed.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/rp-config.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/rp-config.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/rp-config.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/rp-group.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/rp-group.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/rp-group.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/rp-groups.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/rp-groups.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/rp-groups.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/rp-sub.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/rp-sub.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/rp-sub.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/images/th-bg-grey.png
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/images/th-bg-grey.png?view=auto&rev=450574
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/sandbox/planetroller/web/images/th-bg-grey.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/sandbox/planetroller/web/index.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/index.jsp?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/index.jsp (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/index.jsp Wed Sep 27 13:52:23 2006
@@ -0,0 +1,17 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%><jsp:forward page="/main.faces" />

Added: incubator/roller/trunk/sandbox/planetroller/web/login.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/login.jsp?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/login.jsp (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/login.jsp Wed Sep 27 13:52:23 2006
@@ -0,0 +1,42 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt" %>
+<fmt:setBundle basename="ApplicationResources" />
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+        <title><fmt:message key="loginPageTitle" /></title>
+        <link rel="stylesheet" type="text/css" href='<c:url value="/planet.css" />' />
+    </head>
+    <body>
+        <div id="wrapper">
+        <h1><fmt:message key="loginPageTitle" /></h1>
+        <c:if test="${requestScope['error'] == 'true'}">
+            <fmt:message key="loginTryAgain" />
+        </c:if>
+        <form id="loginForm" method="post" action="j_security_check">
+            <p><fmt:message key="loginUsername" /> <input type="text" name="j_username" /></p>
+            <p><fmt:message key="loginPassword" /> <input type="password" name="j_password" /></p>
+            <p><button type="submit"><fmt:message key="loginButton" /></button></p>
+        </form> 
+        </div>
+    </body>
+</html>

Added: incubator/roller/trunk/sandbox/planetroller/web/logout.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/logout.jsp?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/logout.jsp (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/logout.jsp Wed Sep 27 13:52:23 2006
@@ -0,0 +1,6 @@
+<%@ page import="javax.servlet.*" %>
+<%
+   request.getSession().invalidate();
+   RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
+   rd.forward(request, response);
+%>

Added: incubator/roller/trunk/sandbox/planetroller/web/main.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/main.jsp?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/main.jsp (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/main.jsp Wed Sep 27 13:52:23 2006
@@ -0,0 +1,39 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
+<html>
+<f:view>
+<f:loadBundle basename="ApplicationResources" var="msgs" />
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title><h:outputText value="#{msgs.mainTitle}" /></title>
+    <link rel="stylesheet" type="text/css" href='<c:url value="/planet.css" />' />
+</head>
+<body>
+<div id="wrapper">
+<h1><h:outputText value="#{msgs.mainTitle}" /></h1>
+<p><a href='<c:url value="/planet-ui/configForm.faces" />'>
+    <h:outputText value="#{msgs.mainConsoleLink}" /></a></p>
+</div>
+</body>
+</f:view>
+</html>

Added: incubator/roller/trunk/sandbox/planetroller/web/planet-ui/configForm.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/web/planet-ui/configForm.jsp?view=auto&rev=450574
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/web/planet-ui/configForm.jsp (added)
+++ incubator/roller/trunk/sandbox/planetroller/web/planet-ui/configForm.jsp Wed Sep 27 13:52:23 2006
@@ -0,0 +1,109 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
+<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
+<html>
+<f:view>
+<f:loadBundle basename="ApplicationResources" var="msgs" />
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title><h:outputText value="#{msgs.configPageTitle}" /></title>
+    <link rel="stylesheet" type="text/css" href='<c:url value="/planet.css" />' />
+</head>
+<body>
+<div id="wrapper">
+<%@include file="/planet-ui/menu.jsp" %> 
+
+<h2><h:outputText value="#{msgs.configFormTitle}" /></h2>
+<p><h:outputText value="#{msgs.configHelp}" /></p>
+<h:form>
+    <h:inputHidden value="#{configForm.planetConfig.id}" />
+    <h:panelGrid columns="2" styleClass="form" columnClasses="labelColumn,valueColumn" >
+
+        <h:outputText value="#{msgs.configTitle}" />
+        <h:panelGroup>
+            <h:inputText id="title" value="#{configForm.planetConfig.title}" required="true" size="20">
+                <f:validateLength minimum="1" />
+            </h:inputText>
+            <h:message for="title" styleClass="fieldError" />
+        </h:panelGroup>
+          
+        <h:outputText value="#{msgs.configDescription}" />
+        <h:panelGroup>
+            <h:inputText id="description" value="#{configForm.planetConfig.description}" required="false" size="60">
+            </h:inputText>
+            <h:message for="description" styleClass="fieldError" />
+        </h:panelGroup>
+    
+        <h:outputText value="#{msgs.configAdminName}" />
+        <h:panelGroup>
+             <h:inputText id="adminName" value="#{configForm.planetConfig.adminName}" required="true" size="20">
+                <f:validateLength minimum="3" />
+             </h:inputText>
+            <h:message for="adminName" styleClass="fieldError" />
+        </h:panelGroup>
+        
+        <h:outputText value="#{msgs.configAdminEmail}" />
+        <h:panelGroup>
+            <h:inputText id="adminEmail" value="#{configForm.planetConfig.adminEmail}" required="false" size="20">
+                <t:validateEmail />
+            </h:inputText>
+            <h:message for="adminEmail" styleClass="fieldError" />
+        </h:panelGroup>
+    
+        <h:outputText value="#{msgs.configDefaultGroup}" />
+        <h:panelGroup>
+            <h:selectOneMenu id="defaultGroup" value="#{configForm.groupHandle}" required="false">
+                <f:selectItems value="#{configForm.groupHandles}" />
+            </h:selectOneMenu>
+            <h:message for="defaultGroup" styleClass="fieldError" />
+        </h:panelGroup>
+    
+        <h:outputText value="#{msgs.configProxyHost}" />
+        <h:panelGroup>
+            <h:inputText id="proxyHost" value="#{configForm.planetConfig.proxyHost}" required="false" size="20">
+            </h:inputText>
+            <h:message for="proxyHost" styleClass="fieldError" />
+        </h:panelGroup>
+    
+        <h:outputText value="#{msgs.configProxyPort}" />
+        <h:panelGroup>
+            <h:inputText id="proxyPort" value="#{configForm.planetConfig.proxyPort}" required="false" size="6">
+            </h:inputText>
+            <h:message for="proxyPort" styleClass="fieldError" />
+        </h:panelGroup>
+        
+    </h:panelGrid>
+    
+    <p />
+    <h:commandButton value="#{msgs.appSave}" action="#{configForm.save}" />
+</h:form>
+</div>
+</body>
+</f:view>
+</html>
+
+
+
+
+
+