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 2007/05/19 04:02:53 UTC

svn commit: r539673 [1/2] - in /roller/branches/roller_4.0_newbackend: ./ apps/planet/ metadata/database/tmpls/ nbproject/ sandbox/scripting/groovy/examples/rollerapi/ src/org/apache/roller/pojos/ src/org/apache/roller/pojos/wrapper/ src/org/apache/rol...

Author: snoopdave
Date: Fri May 18 19:02:48 2007
New Revision: 539673

URL: http://svn.apache.org/viewvc?view=rev&rev=539673
Log:
Merging latest from trunk

Added:
    roller/branches/roller_4.0_newbackend/sandbox/scripting/groovy/examples/rollerapi/createtestdata.gy
      - copied unchanged from r539068, roller/trunk/sandbox/scripting/groovy/examples/rollerapi/createtestdata.gy
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/Referrers.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/authoring/struts2/Referrers.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfigBean.java
      - copied unchanged from r539636, roller/trunk/src/org/apache/roller/ui/authoring/struts2/WeblogConfigBean.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/CreateWeblogBean.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblogBean.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/Profile.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/ProfileBean.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/core/struts2/ProfileBean.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/Register.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/Setup.java
      - copied unchanged from r539068, roller/trunk/src/org/apache/roller/ui/core/struts2/Setup.java
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/
      - copied from r539636, roller/trunk/tools/struts-2.0.6/
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/LICENSE.txt
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/LICENSE.txt
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/NOTICE.txt
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/NOTICE.txt
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/
      - copied from r539636, roller/trunk/tools/struts-2.0.6/lib/
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/antlr-2.7.2.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/antlr-2.7.2.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/commons-beanutils-1.6.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/commons-beanutils-1.6.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/commons-chain-1.1.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/commons-chain-1.1.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/commons-fileupload-1.2.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/commons-fileupload-1.2.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/commons-io-1.3.1.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/commons-io-1.3.1.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/commons-validator-1.3.0.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/commons-validator-1.3.0.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/freemarker-2.3.8.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/freemarker-2.3.8.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/ognl-2.6.11.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/ognl-2.6.11.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/oro-2.0.8.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/oro-2.0.8.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/struts2-core-2.0.6.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/struts2-core-2.0.6.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/struts2-spring-plugin-2.0.6.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/struts2-spring-plugin-2.0.6.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/struts2-tiles-plugin-2.0.6.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/struts2-tiles-plugin-2.0.6.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/tiles-api-2.0-20070207.130156-4.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/tiles-api-2.0-20070207.130156-4.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/tiles-core-2.0-20070207.130156-4.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/tiles-core-2.0-20070207.130156-4.jar
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.6/lib/xwork-2.0.1.jar
      - copied unchanged from r539636, roller/trunk/tools/struts-2.0.6/lib/xwork-2.0.1.jar
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp
      - copied unchanged from r539068, roller/trunk/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/CreateWeblog.jsp
      - copied unchanged from r539068, roller/trunk/web/WEB-INF/jsps/core/struts2/CreateWeblog.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/Profile.jsp
      - copied unchanged from r539068, roller/trunk/web/WEB-INF/jsps/core/struts2/Profile.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/Register.jsp
      - copied unchanged from r539068, roller/trunk/web/WEB-INF/jsps/core/struts2/Register.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/Setup.jsp
      - copied unchanged from r539068, roller/trunk/web/WEB-INF/jsps/core/struts2/Setup.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/errors/
      - copied from r539636, roller/trunk/web/WEB-INF/jsps/errors/
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/errors/403.jsp
      - copied unchanged from r539636, roller/trunk/web/WEB-INF/jsps/errors/403.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/errors/404.jsp
      - copied unchanged from r539636, roller/trunk/web/WEB-INF/jsps/errors/404.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/errors/denied.jsp
      - copied unchanged from r539636, roller/trunk/web/WEB-INF/jsps/errors/denied.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/errors/error.jsp
      - copied unchanged from r539636, roller/trunk/web/WEB-INF/jsps/errors/error.jsp
Removed:
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfigForm.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/CreateWeblogForm.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/CreateWeblogFormBean.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/ProfileForm.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/RegisterForm.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/RegisterFormBean.java
    roller/branches/roller_4.0_newbackend/tools/struts-2.0.5/
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/CreateWeblogForm.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/ProfileForm.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/RegisterForm.jsp
Modified:
    roller/branches/roller_4.0_newbackend/apps/planet/build.xml
    roller/branches/roller_4.0_newbackend/merges.txt
    roller/branches/roller_4.0_newbackend/metadata/database/tmpls/3xx-to-400-migration.vm
    roller/branches/roller_4.0_newbackend/nbproject/project.xml
    roller/branches/roller_4.0_newbackend/properties.xmlf
    roller/branches/roller_4.0_newbackend/sandbox/scripting/groovy/examples/rollerapi/groovy
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/WebsiteData.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/wrapper/WebsiteDataWrapper.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUser.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUserBean.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/CategoryRemove.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/EntryEdit.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateAdd.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEdit.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEditBean.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/ThemeEdit.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfig.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/MainMenu.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/MenuHelper.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTab.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTabItem.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/struts2/UIAction.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/model/URLModel.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldUtilities.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/MailUtil.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/URLUtilities.java
    roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/Utilities.java
    roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/struts.xml
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Comments.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Resources.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/TemplateEdit.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Templates.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/TemplatesSidebar.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/ThemeEdit.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/WeblogConfig.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/MainMenu.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/core/struts2/MainMenuSidebar.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/taglibs-struts2.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/tiles/struts2/tiles-errorpage.jsp
    roller/branches/roller_4.0_newbackend/web/WEB-INF/security.xml
    roller/branches/roller_4.0_newbackend/web/WEB-INF/tiles.xml
    roller/branches/roller_4.0_newbackend/web/WEB-INF/velocity/weblog.vm
    roller/branches/roller_4.0_newbackend/web/WEB-INF/web.xml
    roller/branches/roller_4.0_newbackend/web/index.jsp
    roller/branches/roller_4.0_newbackend/web/roller-ui/authoring/editors/editor-text.jsp
    roller/branches/roller_4.0_newbackend/web/roller-ui/authoring/editors/editor-xinha.jsp
    roller/branches/roller_4.0_newbackend/web/roller-ui/login-redirect.jsp

Modified: roller/branches/roller_4.0_newbackend/apps/planet/build.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/apps/planet/build.xml?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/apps/planet/build.xml (original)
+++ roller/branches/roller_4.0_newbackend/apps/planet/build.xml Fri May 18 19:02:48 2007
@@ -98,7 +98,7 @@
         <include name="jakarta-taglibs-standard-1.1.2/lib/serializer.jar" />
         
         <!-- Struts 2 -->
-        <include name="struts-2.0.5/lib/*.jar"/>
+        <include name="struts-2.0.6/lib/*.jar"/>
         
         <!-- Struts 2 depends on Spring -->
         <include name="spring-1.2/spring.jar"/>

Modified: roller/branches/roller_4.0_newbackend/merges.txt
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/merges.txt?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/merges.txt (original)
+++ roller/branches/roller_4.0_newbackend/merges.txt Fri May 18 19:02:48 2007
@@ -3,6 +3,13 @@
 
 Temporary file to track merges from trunk into the roller_4.0_newbackend branch. 
 
+May 18, 2007: merging latest from trunk
+svn merge -r 539636:539671  https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 539068:539636  https://svn.apache.org/repos/asf/roller/trunk
+
+May 17, 2007: merging latest from trunk
+svn merge -r 538395:539068 https://svn.apache.org/repos/asf/roller/trunk
+
 May 15, 2007: merging latest from trunk
 svn merge -r 537690:538395 https://svn.apache.org/repos/asf/roller/trunk
 

Modified: roller/branches/roller_4.0_newbackend/metadata/database/tmpls/3xx-to-400-migration.vm
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/metadata/database/tmpls/3xx-to-400-migration.vm?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/metadata/database/tmpls/3xx-to-400-migration.vm (original)
+++ roller/branches/roller_4.0_newbackend/metadata/database/tmpls/3xx-to-400-migration.vm Fri May 18 19:02:48 2007
@@ -38,6 +38,12 @@
 update rolleruser set screenname = username;
 
 -- new column to allow setting of page template content-type
+#addColumnNull("website" "icon" "varchar(255)")
+
+-- new column to allow setting of page template content-type
+#addColumnNull("website" "about" "varchar(255)")
+
+-- new column to allow setting of page template content-type
 #addColumnNull("webpage" "outputtype" "varchar(48)")
 
 -- add new action column to webpage table, default value is custom

Modified: roller/branches/roller_4.0_newbackend/nbproject/project.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/nbproject/project.xml?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/nbproject/project.xml (original)
+++ roller/branches/roller_4.0_newbackend/nbproject/project.xml Fri May 18 19:02:48 2007
@@ -164,8 +164,9 @@
                 <package-root>apps/planet/test/java</package-root>
                 <package-root>sandbox/jdobackend/src</package-root>
                 <package-root>sandbox/scripting/bsf/src</package-root>
-                <package-root>sandbox/scripting/groovy/src</package-root>
-                <classpath mode="compile">tools/buildtime/junit-3.8.1.jar:tools/lib/commons-betwixt-1.0-beta-1.jar:tools/lib/commons-httpclient-2.0.2.jar:tools/lib/concurrent-1.3.2.jar:tools/lib/ekitapplet.jar:tools/lib/jazzy-core.jar:tools/lib/log4j-1.2.4.jar:tools/lib/lucene-1.4.3.jar:tools/lib/taglibs-string.jar:tools/lib/velocity-tools-1.1.jar:tools/lib/xmlrpc-1.2-b1.jar:tools/struts-1.2.4/lib/antlr.jar:tools/struts-1.2.4/lib/commons-fileupload.jar:tools/struts-1.2.4/lib/struts-el.jar:tools/struts-1.2.4/lib/struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-servlet.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner.jar:tools/buildtime/mockrunner-0.35/lib/nekohtml.jar:tools/standard-1.0.3/lib/jaxen-full.jar:tools/standard-1.0.3/lib/jstl.jar:tools/standard-1.0.3/lib/standard.jar:tools/buildtime/tomcat-5.0.28/servlet-api.jar:tools/buildtime/tomcat-5.0.28/jsp-api.jar:tools/lib/jdom.jar:tools/spring-1.2/acegi-se
 curity-0.9.0.jar:tools/spring-1.2/spring.jar:tools/lib/commons-codec-1.3.jar:tools/hibernate-3.1/hibernate3.jar:contrib/lib/textile4j-1.20.jar:tools/buildtime/derby.jar:tools/buildtime/ant-1.6.2/ant.jar:tools/buildtime/derbynet.jar:tools/lib/rome-0.9.jar:tools/lib/rome-fetcher-0.9.jar:tools/buildtime/activation.jar:tools/buildtime/mail.jar:tools/spring-1.2/acegi-security-1.0.1.jar:tools/spring-1.2/spring.jar:sandbox/scripting/bsf/lib/bsf.jar:tools/openjpa-0.9.6/geronimo-j2ee-connector_1.5_spec.jar:tools/openjpa-0.9.6/geronimo-jta_1.0.1B_spec-1.0.1.jar:tools/openjpa-0.9.6/openjpa-all-0.9.6-incubating.jar:tools/openjpa-0.9.6/persistence-api-1.0.jar:tools/openjpa-0.9.6/serp-1.11.0.jar:tools/lib/commons-collections-3.2.jar:tools/lib/commons-lang-2.1.jar:tools/lib/commons-logging-1.0.4.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner.jar</classpath>
+                <package-root>custom/src</package-root>
+                <package-root>sandbox/scripting/jruby/src</package-root>
+                <classpath mode="compile">tools/buildtime/junit-3.8.1.jar:tools/lib/concurrent-1.3.2.jar:tools/lib/log4j-1.2.4.jar:tools/lib/lucene-1.4.3.jar:tools/lib/taglibs-string.jar:tools/struts-1.2.4/lib/antlr.jar:tools/struts-1.2.4/lib/commons-beanutils.jar:tools/struts-1.2.4/lib/commons-digester.jar:tools/struts-1.2.4/lib/commons-fileupload.jar:tools/struts-1.2.4/lib/commons-validator.jar:tools/struts-1.2.4/lib/jakarta-oro.jar:tools/struts-1.2.4/lib/struts-el.jar:tools/struts-1.2.4/lib/struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-servlet.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner.jar:tools/buildtime/mockrunner-0.35/lib/nekohtml.jar:tools/standard-1.0.3/lib/jaxen-full.jar:tools/standard-1.0.3/lib/jstl.jar:tools/standard-1.0.3/lib/standard.jar:tools/buildtime/tomcat-5.0.28/servlet-api.jar:tools/buildtime/tomcat-5.0.28/jsp-api.jar:tools/lib/jdom.jar:tools/spring-1.2/acegi-security-0.9.0.jar:t
 ools/spring-1.2/spring.jar:tools/lib/rome-0.8.jar:tools/lib/rome-fetcher-0.8.jar:tools/lib/commons-codec-1.3.jar:tools/hibernate-3.1/hibernate3.jar:contrib/lib/textile4j-1.20.jar:tools/buildtime/derby.jar:tools/buildtime/ant-1.6.2/ant.jar:tools/buildtime/derbynet.jar:tools/lib/rome-0.9.jar:tools/lib/rome-fetcher-0.9.jar:tools/buildtime/activation.jar:tools/buildtime/mail.jar:tools/spring-1.2/spring.jar:../../../../../../Applications/Java/groovy/embeddable/groovy-all-1.0.jar:sandbox/scripting/bsf/lib/bsf.jar:tools/lib/commons-collections-3.1.jar:tools/lib/commons-lang-2.1.jar:tools/lib/commons-logging-1.0.4.jar:tools/lib/velocity-1.5.jar:tools/lib/velocity-dep-1.5.jar:tools/xmlrpc-3.0/lib/ws-commons-util-1.0.1.jar:tools/xmlrpc-3.0/lib/xmlrpc-client-3.0.jar:tools/xmlrpc-3.0/lib/xmlrpc-common-3.0.jar:tools/xmlrpc-3.0/lib/xmlrpc-server-3.0.jar:tools/spring-1.2/acegi-security-1.0.3.jar:tools/struts-2.0.6/lib/antlr-2.7.2.jar:tools/struts-2.0.6/lib/commons-beanutils-1.6.jar:tools/s
 truts-2.0.6/lib/commons-chain-1.1.jar:tools/struts-2.0.6/lib/commons-fileupload-1.2.jar:tools/struts-2.0.6/lib/commons-io-1.3.1.jar:tools/struts-2.0.6/lib/commons-validator-1.3.0.jar:tools/struts-2.0.6/lib/freemarker-2.3.8.jar:tools/struts-2.0.6/lib/ognl-2.6.11.jar:tools/struts-2.0.6/lib/oro-2.0.8.jar:tools/struts-2.0.6/lib/struts2-core-2.0.6.jar:tools/struts-2.0.6/lib/struts2-spring-plugin-2.0.6.jar:tools/struts-2.0.6/lib/struts2-tiles-plugin-2.0.6.jar:tools/struts-2.0.6/lib/tiles-api-2.0-20070207.130156-4.jar:tools/struts-2.0.6/lib/tiles-core-2.0-20070207.130156-4.jar:tools/struts-2.0.6/lib/xwork-2.0.1.jar</classpath>
                 <source-level>1.5</source-level>
             </compilation-unit>
         </java-data>

Modified: roller/branches/roller_4.0_newbackend/properties.xmlf
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/properties.xmlf?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/properties.xmlf (original)
+++ roller/branches/roller_4.0_newbackend/properties.xmlf Fri May 18 19:02:48 2007
@@ -126,7 +126,7 @@
     <include name="commons-logging.jar"/>
 </fileset>
 
-<fileset id="struts2.jars" dir="${ro.tools}/struts-2.0.5/lib">
+<fileset id="struts2.jars" dir="${ro.tools}/struts-2.0.6/lib">
     <include name="*.jar"/>
 </fileset>
 

Modified: roller/branches/roller_4.0_newbackend/sandbox/scripting/groovy/examples/rollerapi/groovy
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/sandbox/scripting/groovy/examples/rollerapi/groovy?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/sandbox/scripting/groovy/examples/rollerapi/groovy (original)
+++ roller/branches/roller_4.0_newbackend/sandbox/scripting/groovy/examples/rollerapi/groovy Fri May 18 19:02:48 2007
@@ -6,17 +6,19 @@
 export GROOVY_HOME=/Applications/Java/groovy
 
 # Directory of Roller webapp context
-export WEBAPP_DIR=../../../../../trunk/build/webapp
+export WEBAPP_DIR=../../../../../build/webapp
 
 # Directory of additional jars
-export JARS_DIR=/Applications/Java/jakarta-tomcat-5.5.9/common/lib
+export JARS_DIR=/Applications/Java/tomcat/common/lib
 
 
 # --- SHOULD NOT NEED TO EDIT BELOW THIS LINE ---
 
 RGPATH=${WEBAPP_DIR}/WEB-INF/classes:\
 ${GROOVY_HOME}/embeddable/groovy-all-1.0.jar:\
-${GROOVY_HOME}/lib/commons-cli-1.0.jar
+${GROOVY_HOME}/lib/commons-cli-1.0.jar:\
+${GROOVY_HOME}/lib/ant-1.6.5.jar:\
+${GROOVY_HOME}/lib/ant-launcher.1.6.5.jar
 
 for i in "$WEBAPP_DIR"/WEB-INF/lib/*.jar; do
   RGPATH="$RGPATH":"$i"

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/WebsiteData.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/WebsiteData.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/WebsiteData.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/WebsiteData.java Fri May 18 19:02:48 2007
@@ -93,6 +93,8 @@
     private boolean enableMultiLang = false;
     private boolean showAllLangs = true;
     private String customStylesheetPath = null;
+    private String iconPath = null;
+    private String about = null;
     
     
     // Associated objects
@@ -185,11 +187,17 @@
     /**
      * Get the Theme object in use by this weblog, or null if no theme selected.
      */
-    public WeblogTheme getTheme() throws RollerException {
+    public WeblogTheme getTheme() {
+        try {
+            // let the ThemeManager handle it
+            ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
+            return themeMgr.getTheme(this);
+        } catch (RollerException ex) {
+            log.error("Error getting theme for weblog - "+getHandle(), ex);
+        }
         
-        // let the ThemeManager handle it
-        ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
-        return themeMgr.getTheme(this);
+        // TODO: maybe we should return a default theme in this case?
+        return null;
     }
     
     
@@ -966,22 +974,37 @@
     }
     
     
-    public String getCustomStylesheet() {
-        try {
-            Theme weblogTheme = getTheme();
-            if(weblogTheme != null) {
-                return weblogTheme.getCustomStylesheet();
-            } else {
-                return getCustomStylesheetPath();
-            }
-        } catch(RollerException re) {
-            // hmmm, some exception getting theme
-            return null;
-        }
+    /**
+     * The path under the weblog's resources to an icon image.
+     *
+     * @hibernate.property column="icon" not-null="false"
+     */
+    public String getIconPath() {
+        return iconPath;
+    }
+
+    public void setIconPath(String iconPath) {
+        this.iconPath = iconPath;
+    }
+
+    
+    /**
+     * A short description about the weblog.
+     *
+     * This field difers from the 'description' attribute in the sense that the
+     * description is meant to hold more of a tagline, while this attribute is
+     * more of a full paragraph (or two) about section.
+     *
+     * @hibernate.property column="about" not-null="false"
+     */
+    public String getAbout() {
+        return about;
+    }
+
+    public void setAbout(String about) {
+        this.about = about;
     }
     
-    // no-op to please xdoclet
-    public void setCustomStylesheet(String noop) {}
     
     /**
      * Get initialized plugins for use during rendering process.

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/wrapper/WebsiteDataWrapper.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/wrapper/WebsiteDataWrapper.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/wrapper/WebsiteDataWrapper.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/pojos/wrapper/WebsiteDataWrapper.java Fri May 18 19:02:48 2007
@@ -19,6 +19,7 @@
 package org.apache.roller.pojos.wrapper;
 
 import org.apache.roller.pojos.WebsiteData;
+import org.apache.roller.util.URLUtilities;
 
 
 /**
@@ -419,10 +420,34 @@
     {   
         return this.pojo.isShowAllLangs();
     }
-
+    
     
     public String getCustomStylesheet() {
-        return this.pojo.getCustomStylesheet();
+        // custom stylesheet comes from the weblog theme
+        return this.pojo.getTheme().getCustomStylesheet();
+    }
+    
+    
+    public String getIcon() {
+        
+        String iconPath = this.pojo.getIconPath();
+        if(iconPath == null) {
+            return null;
+        }
+        
+        if(iconPath.startsWith("http") || iconPath.startsWith("/")) {
+            // if icon path is a relative path then assume it's a weblog resource
+            return iconPath;
+        } else {
+            // otherwise it's just a plain old url
+            return URLUtilities.getWeblogResourceURL(this.pojo, iconPath, true);
+        }
+        
+    }
+    
+    
+    public String getAbout() {
+        return this.pojo.getAbout();
     }
     
     

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUser.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUser.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUser.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUser.java Fri May 18 19:02:48 2007
@@ -29,7 +29,7 @@
 import org.apache.roller.business.UserManager;
 import org.apache.roller.config.RollerConfig;
 import org.apache.roller.pojos.UserData;
-import org.apache.roller.ui.core.struts2.RegisterForm;
+import org.apache.roller.ui.core.struts2.Register;
 import org.apache.roller.ui.core.util.struts2.UIAction;
 
 
@@ -131,7 +131,7 @@
         
         String allowed = RollerConfig.getProperty("username.allowedChars");
         if(allowed == null || allowed.trim().length() == 0) {
-            allowed = RegisterForm.DEFAULT_ALLOWED_CHARS;
+            allowed = Register.DEFAULT_ALLOWED_CHARS;
         }
         String safe = CharSetUtils.keep(getBean().getUserName(), allowed);
         

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUserBean.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUserBean.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUserBean.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/admin/struts2/CreateUserBean.java Fri May 18 19:02:48 2007
@@ -20,7 +20,6 @@
 
 import java.util.Locale;
 import org.apache.roller.pojos.UserData;
-import org.apache.roller.ui.core.struts2.RegisterFormBean;
 
 
 /**

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/CategoryRemove.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/CategoryRemove.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/CategoryRemove.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/CategoryRemove.java Fri May 18 19:02:48 2007
@@ -58,7 +58,7 @@
     public CategoryRemove() {
         this.actionName = "categoryRemove";
         this.desiredMenu = "editor";
-        this.pageTitle = "editPages.title.removeOK";
+        this.pageTitle = "categoriesForm.rootTitle";
     }
     
     

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/EntryEdit.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/EntryEdit.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/EntryEdit.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/EntryEdit.java Fri May 18 19:02:48 2007
@@ -239,6 +239,11 @@
     }
     
     
+    public String getPreviewURL() {
+        return getEntry().getPermalink();
+    }
+    
+    
     public EntryBean getBean() {
         return bean;
     }

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateAdd.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateAdd.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateAdd.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateAdd.java Fri May 18 19:02:48 2007
@@ -95,6 +95,10 @@
             // flush results to db
             RollerFactory.getRoller().flush();
             
+            // reset form fields
+            setNewTmplName(null);
+            setNewTmplAction(null);
+            
         } catch (RollerException ex) {
             log.error("Error adding new template for weblog - "+getActionWeblog().getHandle(), ex);
             // TODO: i18n

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEdit.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEdit.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEdit.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEdit.java Fri May 18 19:02:48 2007
@@ -44,11 +44,14 @@
  */
 public class TemplateEdit extends UIAction {
     
-    private static Log log = LogFactory.getLog(Templates.class);
+    private static Log log = LogFactory.getLog(TemplateEdit.class);
     
     // form bean for collection all template properties
     private TemplateEditBean bean = new TemplateEditBean();
     
+    // the template we are working on
+    private WeblogTemplate template = null;
+    
     
     public TemplateEdit() {
         this.actionName = "template";
@@ -57,57 +60,67 @@
     }
     
     
-    // must be a weblog admin to use this action
+    @Override
     public short requiredWeblogPermissions() {
         return PermissionsData.ADMIN;
     }
     
     
-    public String execute() {
-        
+    public void myPrepare() {
         try {
             UserManager mgr = RollerFactory.getRoller().getUserManager();
-            WeblogTemplate page = mgr.getPage(getBean().getId());
-            if(page == null) {
-                throw new RollerException("page not found");
-            }
-            
-            getBean().copyFrom(page);
-            
-            // empty content-type indicates that page uses auto content-type detection
-            if (StringUtils.isEmpty(page.getOutputContentType())) {
-                getBean().setAutoContentType(Boolean.TRUE);
-            } else {
-                getBean().setAutoContentType(Boolean.FALSE);
-                getBean().setManualContentType(page.getOutputContentType());
-            }
-            
+            setTemplate(mgr.getPage(getBean().getId()));
         } catch (RollerException ex) {
-            log.error("Error loading page to edit - "+getBean().getId(), ex);
+            log.error("Error looking up template - "+getBean().getId(), ex);
+        }
+    }
+    
+    
+    /**
+     * Show template edit page.
+     */
+    public String execute() {
+        
+        if(getTemplate() == null) {
             // TODO: i18n
-            addError("Couldn't find specified page to edit");
-            return "list";
+            addError("Unable to locate specified template");
+            return LIST;
+        }
+        
+        WeblogTemplate page = getTemplate();
+        getBean().copyFrom(template);
+        
+        // empty content-type indicates that page uses auto content-type detection
+        if (StringUtils.isEmpty(page.getOutputContentType())) {
+            getBean().setAutoContentType(Boolean.TRUE);
+        } else {
+            getBean().setAutoContentType(Boolean.FALSE);
+            getBean().setManualContentType(page.getOutputContentType());
         }
         
         return SUCCESS;
     }
     
     
+    /**
+     * Save an existing template.
+     */
     public String save() {
         
+        if(getTemplate() == null) {
+            // TODO: i18n
+            addError("Unable to locate specified template");
+            return LIST;
+        }
+        
         // validation
         myValidate();
         
         if(!hasActionErrors()) try {
             
-            UserManager mgr = RollerFactory.getRoller().getUserManager();
-            WeblogTemplate page = mgr.getPage(getBean().getId());
-            if(page == null) {
-                throw new RollerException("page not found");
-            }
-            
+            WeblogTemplate page = getTemplate();
             getBean().copyTo(page);
-            page.setLastModified( new Date() );
+            page.setLastModified(new Date());
             
             if (getBean().getAutoContentType() == null ||
                     !getBean().getAutoContentType().booleanValue()) {
@@ -118,9 +131,11 @@
             }
             
             // save template and flush
-            mgr.savePage( page );
+            UserManager mgr = RollerFactory.getRoller().getUserManager();
+            mgr.savePage(page);
             RollerFactory.getRoller().flush();
             
+            // notify caches
             CacheManager.invalidate(page);
             
             // success message
@@ -170,6 +185,14 @@
 
     public void setBean(TemplateEditBean bean) {
         this.bean = bean;
+    }
+
+    public WeblogTemplate getTemplate() {
+        return template;
+    }
+
+    public void setTemplate(WeblogTemplate template) {
+        this.template = template;
     }
     
 }

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEditBean.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEditBean.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEditBean.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/TemplateEditBean.java Fri May 18 19:02:48 2007
@@ -1,10 +1,19 @@
 /*
- * TemplateEditBean.java
+ * 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
  *
- * Created on April 23, 2007, 3:24 PM
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * To change this template, choose Tools | Template Manager
- * and open the template in the editor.
+ * 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.ui.authoring.struts2;
@@ -25,15 +34,13 @@
     private String description;
     private String link;
     private String contents;
-    private java.util.Date lastModified;
     private String templateLanguage;
     private boolean navbar;
     private boolean hidden;
-    private String decoratorName;
     private String outputContentType;
+    
     private Boolean autoContentType = Boolean.TRUE;
     private String manualContentType = null;
-    private boolean required = false;
     
     
     public String getId() {
@@ -84,14 +91,6 @@
         this.contents = contents;
     }
     
-    public java.util.Date getLastModified() {
-        return this.lastModified;
-    }
-    
-    public void setLastModified( java.util.Date lastModified ) {
-        this.lastModified = lastModified;
-    }
-    
     public String getTemplateLanguage() {
         return this.templateLanguage;
     }
@@ -116,14 +115,6 @@
         this.hidden = hidden;
     }
     
-    public String getDecoratorName() {
-        return this.decoratorName;
-    }
-    
-    public void setDecoratorName( String decoratorName ) {
-        this.decoratorName = decoratorName;
-    }
-    
     public String getOutputContentType() {
         return this.outputContentType;
     }
@@ -148,18 +139,7 @@
         this.manualContentType = manualContentType;
     }
     
-    public boolean isRequired() {
-        return required;
-    }
-
-    public void setRequired(boolean required) {
-        this.required = required;
-    }
-    
     
-    /**
-     * Copy values from this form bean to the specified data object.
-     */
     public void copyTo(WeblogTemplate dataHolder) {
         
         // only custom templates get to modify name, description, and link
@@ -170,19 +150,13 @@
         }
         
         dataHolder.setContents(this.contents);
-        dataHolder.setLastModified(this.lastModified);
         dataHolder.setTemplateLanguage(this.templateLanguage);
         dataHolder.setNavbar(this.navbar);
         dataHolder.setHidden(this.hidden);
-        dataHolder.setDecoratorName(this.decoratorName);
         dataHolder.setOutputContentType(this.outputContentType);
     }
     
     
-    /**
-     * Copy values from specified data object to this form bean.
-     * Includes all types.
-     */
     public void copyFrom(WeblogTemplate dataHolder) {
         
         this.id = dataHolder.getId();
@@ -191,13 +165,10 @@
         this.description = dataHolder.getDescription();
         this.link = dataHolder.getLink();
         this.contents = dataHolder.getContents();
-        this.lastModified = dataHolder.getLastModified();
         this.templateLanguage = dataHolder.getTemplateLanguage();
         this.navbar = dataHolder.isNavbar();
         this.hidden = dataHolder.isHidden();
-        this.decoratorName = dataHolder.getDecoratorName();
         this.outputContentType = dataHolder.getOutputContentType();
-        this.required = dataHolder.isRequired();
     }
     
 }

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/ThemeEdit.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/ThemeEdit.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/ThemeEdit.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/ThemeEdit.java Fri May 18 19:02:48 2007
@@ -97,7 +97,7 @@
         try {
             // set theme to current value
             setThemeId(getActionWeblog().getTheme().getId());
-        } catch (RollerException ex) {
+        } catch (Exception ex) {
             log.error("Error getting theme for weblog - "+getActionWeblog().getHandle(), ex);
         }
         

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfig.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfig.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfig.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/authoring/struts2/WeblogConfig.java Fri May 18 19:02:48 2007
@@ -49,7 +49,7 @@
     private static Log log = LogFactory.getLog(WeblogConfig.class);
     
     // bean for managing submitted data
-    private WeblogConfigForm bean = new WeblogConfigForm();
+    private WeblogConfigBean bean = new WeblogConfigBean();
     
     // categories list
     private List weblogCategories = Collections.EMPTY_LIST;
@@ -194,33 +194,12 @@
         }
     }
     
-
-    public List getCommentDaysOptions() {
-        
-        List opts = new ArrayList();
-        
-        opts.add(new KeyValueObject("0", getText("weblogEdit.unlimitedCommentDays")));
-        opts.add(new KeyValueObject("1", getText("weblogEdit.days1")));
-        opts.add(new KeyValueObject("2", getText("weblogEdit.days2")));
-        opts.add(new KeyValueObject("3", getText("weblogEdit.days3")));
-        opts.add(new KeyValueObject("4", getText("weblogEdit.days4")));
-        opts.add(new KeyValueObject("5", getText("weblogEdit.days5")));
-        opts.add(new KeyValueObject("7", getText("weblogEdit.days7")));
-        opts.add(new KeyValueObject("10", getText("weblogEdit.days10")));
-        opts.add(new KeyValueObject("20", getText("weblogEdit.days20")));
-        opts.add(new KeyValueObject("30", getText("weblogEdit.days30")));
-        opts.add(new KeyValueObject("60", getText("weblogEdit.days60")));
-        opts.add(new KeyValueObject("90", getText("weblogEdit.days90")));
-        
-        return opts;
-    }
-    
     
-    public WeblogConfigForm getBean() {
+    public WeblogConfigBean getBean() {
         return bean;
     }
 
-    public void setBean(WeblogConfigForm bean) {
+    public void setBean(WeblogConfigBean bean) {
         this.bean = bean;
     }
 

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/MainMenu.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/MainMenu.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/MainMenu.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/struts2/MainMenu.java Fri May 18 19:02:48 2007
@@ -159,18 +159,6 @@
         }
     }
     
-    public boolean isGroupBloggingEnabled() {
-        return RollerConfig.getBooleanProperty("groupblogging.enabled");
-    }
-    
-    public boolean isPlanetAggregated() {
-        return RollerConfig.getBooleanProperty("planet.aggregator.enabled");
-    }
-    
-    public boolean isUserAdmin() {
-        return getAuthenticatedUser().hasRole("admin");
-    }
-    
 
     public String getWebsiteId() {
         return websiteId;

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/MenuHelper.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/MenuHelper.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/MenuHelper.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/MenuHelper.java Fri May 18 19:02:48 2007
@@ -99,6 +99,8 @@
             boolean includeTab = true;
             if(configTab.getEnabledProperty() != null) {
                 includeTab = RollerConfig.getBooleanProperty(configTab.getEnabledProperty());
+            } else if(configTab.getDisabledProperty() != null) {
+                includeTab = ! RollerConfig.getBooleanProperty(configTab.getDisabledProperty());
             }
             
             if(includeTab) {
@@ -134,6 +136,8 @@
                     boolean includeItem = true;
                     if(configTabItem.getEnabledProperty() != null) {
                         includeItem = RollerConfig.getBooleanProperty(configTabItem.getEnabledProperty());
+                    } else if(configTabItem.getDisabledProperty() != null) {
+                        includeItem = ! RollerConfig.getBooleanProperty(configTabItem.getDisabledProperty());
                     }
                     
                     if(includeItem) {
@@ -245,50 +249,52 @@
         Iterator iter = menus.iterator();
         while (iter.hasNext()) {
             Element e = (Element) iter.next();
-            config.addTab(elementToConfigMenu(e));
+            config.addTab(elementToParsedTab(e));
         }
         
         return config;
     }
     
     
-    private static ParsedTab elementToConfigMenu(Element element) {
+    private static ParsedTab elementToParsedTab(Element element) {
         
-        ParsedTab menu = new ParsedTab();
+        ParsedTab tab = new ParsedTab();
         
-        menu.setName(element.getAttributeValue("name"));
-        menu.setPerm(element.getAttributeValue("perms"));
-        menu.setRole(element.getAttributeValue("roles"));
-        menu.setEnabledProperty(element.getAttributeValue("enabledProperty"));
+        tab.setName(element.getAttributeValue("name"));
+        tab.setPerm(element.getAttributeValue("perms"));
+        tab.setRole(element.getAttributeValue("roles"));
+        tab.setEnabledProperty(element.getAttributeValue("enabledProperty"));
+        tab.setDisabledProperty(element.getAttributeValue("disabledProperty"));
         
         List menuItems = element.getChildren("menu-item");
         Iterator iter = menuItems.iterator();
         while (iter.hasNext()) {
             Element e = (Element) iter.next();
-            menu.addItem(elementToConfigMenuItem(e));
+            tab.addItem(elementToParsedTabItem(e));
         }
         
-        return menu;
+        return tab;
     }
     
     
-    private static ParsedTabItem elementToConfigMenuItem(Element element) {
+    private static ParsedTabItem elementToParsedTabItem(Element element) {
         
-        ParsedTabItem menuItem = new ParsedTabItem();
+        ParsedTabItem tabItem = new ParsedTabItem();
         
-        menuItem.setName(element.getAttributeValue("name"));
-        menuItem.setAction(element.getAttributeValue("action"));
+        tabItem.setName(element.getAttributeValue("name"));
+        tabItem.setAction(element.getAttributeValue("action"));
         
         String subActions = element.getAttributeValue("subactions");
         if(subActions != null) {
-            menuItem.setSubActions(subActions.split(","));
+            tabItem.setSubActions(subActions.split(","));
         }
         
-        menuItem.setPerm(element.getAttributeValue("perms"));
-        menuItem.setRole(element.getAttributeValue("roles"));
-        menuItem.setEnabledProperty(element.getAttributeValue("enabledProperty"));
+        tabItem.setPerm(element.getAttributeValue("perms"));
+        tabItem.setRole(element.getAttributeValue("roles"));
+        tabItem.setEnabledProperty(element.getAttributeValue("enabledProperty"));
+        tabItem.setDisabledProperty(element.getAttributeValue("disabledProperty"));
         
-        return menuItem;
+        return tabItem;
     }
     
 }

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTab.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTab.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTab.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTab.java Fri May 18 19:02:48 2007
@@ -31,6 +31,7 @@
     private String perm = null;
     private String role = null;
     private String enabledProperty = null;
+    private String disabledProperty = null;
     
     private List tabItems = new ArrayList();
     
@@ -78,6 +79,14 @@
 
     public void setTabItems(List tabItems) {
         this.tabItems = tabItems;
+    }
+
+    public String getDisabledProperty() {
+        return disabledProperty;
+    }
+
+    public void setDisabledProperty(String disabledProperty) {
+        this.disabledProperty = disabledProperty;
     }
     
 }

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTabItem.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTabItem.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTabItem.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/menu/ParsedTabItem.java Fri May 18 19:02:48 2007
@@ -30,6 +30,7 @@
     private String perm = null;
     private String role = null;
     private String enabledProperty = null;
+    private String disabledProperty = null;
     
     
     public String getName() {
@@ -78,6 +79,14 @@
 
     public void setEnabledProperty(String enabledProperty) {
         this.enabledProperty = enabledProperty;
+    }
+
+    public String getDisabledProperty() {
+        return disabledProperty;
+    }
+
+    public void setDisabledProperty(String disabledProperty) {
+        this.disabledProperty = disabledProperty;
     }
     
 }

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/struts2/UIAction.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/struts2/UIAction.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/struts2/UIAction.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/core/util/struts2/UIAction.java Fri May 18 19:02:48 2007
@@ -94,6 +94,11 @@
         return -1;
     }
     
+    // convenient way to tell if user being dealt with is an admin
+    public boolean isUserIsAdmin() {
+        return getAuthenticatedUser().hasRole("admin");
+    }
+    
     
     public String getSiteURL() {
         return RollerRuntimeConfig.getRelativeContextURL();

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/model/URLModel.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/model/URLModel.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/model/URLModel.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/model/URLModel.java Fri May 18 19:02:48 2007
@@ -18,23 +18,20 @@
 
 package org.apache.roller.ui.rendering.model;
 
-import java.net.MalformedURLException;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import javax.servlet.jsp.PageContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.RollerException;
+import org.apache.roller.business.RollerFactory;
+import org.apache.roller.business.WeblogManager;
 import org.apache.roller.config.RollerRuntimeConfig;
+import org.apache.roller.pojos.WeblogEntryData;
 import org.apache.roller.pojos.WebsiteData;
-import org.apache.roller.ui.core.RequestConstants;
 import org.apache.roller.ui.rendering.util.WeblogRequest;
 import org.apache.roller.util.URLUtilities;
-import org.apache.roller.util.Utilities;
-import org.apache.struts.util.RequestUtils;
-
 
 /**
  * Provides access to URL building functionality.
@@ -96,27 +93,13 @@
     
     /** URL for logging in */  
     public String getLogin() {
-        String returnURL = null;
-        try {
-            returnURL = RequestUtils.computeURL(pageContext,
-                "login-redirect", null, null, null, null, null, false);
-        } catch (MalformedURLException mue) {
-            log.error("ERROR forming Struts URL: ", mue);
-        }
-        return returnURL;
+        return URLUtilities.getLoginURL(false);
     }
     
     
     /** URL for logging out */
     public String getLogout() {
-        String returnURL = null;
-        try {
-            returnURL = RequestUtils.computeURL(pageContext,
-                "logout-redirect", null, null, null, null, null, false);
-        } catch (MalformedURLException mue) {
-            log.error("ERROR forming Struts URL: ", mue);
-        }
-        return returnURL;
+        return URLUtilities.getLogoutURL(false);
     }
     
     
@@ -270,47 +253,29 @@
     
     /** URL for editing a weblog entry */
     public String editEntry(String anchor) {
-        String ret = null;
-        Map params = new HashMap();
-        params.put(RequestConstants.ANCHOR, anchor);
-        params.put(RequestConstants.WEBLOG, weblog.getHandle());
         try {
-            ret = RequestUtils.computeURL(pageContext,
-                "weblogEdit", null, null, null, params, null, false);
-        } catch (MalformedURLException mue) {
-            log.error("ERROR forming Struts URL: ", mue);
+            // need to determine entryId from anchor
+            WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+            WeblogEntryData entry = wmgr.getWeblogEntryByAnchor(weblog, anchor);
+            if(entry != null) {
+                return URLUtilities.getEntryEditURL(weblog.getHandle(), entry.getId(), false);
+            }
+        } catch (RollerException ex) {
+            log.error("Error looking up entry by anchor - "+anchor, ex);
         }
-        return ret;
+        return null;
     } 
     
     
     /** URL for creating a new weblog entry */
     public String getCreateEntry() {
-        String returnURL = null;
-        Map params = new HashMap();
-        params.put(RequestConstants.WEBLOG, weblog.getHandle());
-        try {
-            returnURL = RequestUtils.computeURL(pageContext,
-                "weblogCreate", null, null, null, params, null, false);
-        } catch (MalformedURLException mue) {
-            log.error("ERROR forming Struts URL: ", mue);
-        }
-        return returnURL;
+        return URLUtilities.getEntryAddURL(weblog.getHandle(), false);
     }
     
     
     /** URL for editing weblog settings */
     public String getEditSettings() {
-        String returnURL = null;
-        Map params = new HashMap();
-        params.put(RequestConstants.WEBLOG, weblog.getHandle());        
-        try {
-            returnURL = RequestUtils.computeURL(pageContext,
-                "editWebsite", null, null, null, params, null, false);
-        } catch (MalformedURLException mue) {
-            log.error("ERROR forming Struts URL: ", mue);
-        }
-        return returnURL;
+        return URLUtilities.getWeblogConfigURL(weblog.getHandle(), false);
     }
     
     

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesListPager.java Fri May 18 19:02:48 2007
@@ -128,6 +128,7 @@
                         results.add(WeblogEntryDataWrapper.wrap(entry));
                     }
                 }
+                if (rawEntries.size() > length) more = true;
                 
             } catch (Exception e) {
                 log.error("ERROR: fetching weblog entries list", e);

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java Fri May 18 19:02:48 2007
@@ -533,7 +533,7 @@
             ownermsg.append((escapeHtml) ? "\n" : "<br />");
             
             StringBuffer deleteURL = new StringBuffer(rootURL);
-            deleteURL.append("/roller-ui/authoring/commentManagement.do?method=query&entryId=" + entry.getId());
+            deleteURL.append("/roller-ui/authoring/comments.rol?entryId=" + entry.getId());
             
             if (escapeHtml) {
                 ownermsg.append(deleteURL.toString());

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/servlets/PageServlet.java Fri May 18 19:02:48 2007
@@ -581,7 +581,7 @@
                     if (lastSlash == -1) lastSlash = requestUrl.length();
                     String requestSite = requestUrl.substring(0, lastSlash);
                     
-                    if (referrerUrl.matches(requestSite + ".*\\.do.*")) {
+                    if (referrerUrl.matches(requestSite + ".*\\.rol.*")) {
                         referrerUrl = null;
                     } else if(BlacklistChecker.checkReferrer(pageRequest.getWeblog(), referrerUrl)) {
                         return true;

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldPageHelper.java Fri May 18 19:02:48 2007
@@ -25,13 +25,11 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Vector;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.PageContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.struts.Globals;
 import org.apache.struts.util.RequestUtils;
 import org.apache.roller.RollerException;
 import org.apache.roller.business.WeblogEntryPlugin;
@@ -51,6 +49,7 @@
 import org.apache.roller.ui.core.tags.calendar.BigWeblogCalendarModel;
 import org.apache.roller.ui.core.tags.calendar.WeblogCalendarModel;
 import org.apache.roller.ui.rendering.util.WeblogPageRequest;
+import org.apache.roller.util.URLUtilities;
 
 /**
  * Provides assistance to VelociMacros, filling in where Velocity falls.
@@ -130,19 +129,7 @@
     
     /** Build the URL for editing an WeblogEntry **/
     public String getEntryEditUrl(WeblogEntryDataWrapper entry) {
-        Hashtable params = new Hashtable();
-        params.put( RequestConstants.WEBLOGENTRY_ID, entry.getId());
-        params.put( RequestConstants.ANCHOR,        entry.getAnchor());
-        if (mWebsite != null) {
-            params.put( RequestConstants.USERNAME,  mWebsite.getHandle());
-        }
-        try {
-            return RequestUtils.computeURL( mPageContext,
-                    "weblogEdit", null, null, null, params, null, false);
-        } catch (MalformedURLException mue) {
-            mLogger.warn("RollerRequest.editEntryUrl exception: ", mue);
-        }
-        return mRequest.getContextPath() + "edtior/weblog.do?method=edit";
+        return URLUtilities.getEntryEditURL(entry.getWebsite().getHandle(), entry.getId(), false);
     }
     
     

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldUtilities.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldUtilities.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldUtilities.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/ui/rendering/velocity/deprecated/OldUtilities.java Fri May 18 19:02:48 2007
@@ -32,7 +32,7 @@
 import org.apache.roller.util.DateUtil;
 import org.apache.roller.util.RegexUtil;
 import org.apache.roller.util.Utilities;
-
+import org.apache.commons.codec.binary.Base64;
 
 /**
  * Utility methods needed by old Roller 2.X macros/templates.
@@ -487,9 +487,8 @@
      * @throws IOException
      */
     public static String encodeString(String str) throws IOException {
-        sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
-        String encodedStr = encoder.encodeBuffer(str.getBytes());
-        
+        Base64 base64 = new Base64();
+        String encodedStr = new String(base64.encodeBase64(str.getBytes()));        
         return (encodedStr.trim());
     }
     
@@ -501,9 +500,8 @@
      * @throws IOException
      */
     public static String decodeString(String str) throws IOException {
-        sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder();
-        String value = new String(dec.decodeBuffer(str));
-        
+        Base64 base64 = new Base64();
+        String value = new String(base64.decodeBase64(str.getBytes()));        
         return (value);
     }
                

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/MailUtil.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/MailUtil.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/MailUtil.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/MailUtil.java Fri May 18 19:02:48 2007
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.ResourceBundle;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -112,9 +113,7 @@
             to = (String[])reviewers.toArray(new String[reviewers.size()]);
             
             // Figure URL to entry edit page
-            String rootURL = RollerRuntimeConfig.getAbsoluteContextURL();
-            String editURL = rootURL
-                    + "/roller-ui/authoring/weblog.do?method=edit&entryId=" + entry.getId();
+            String editURL = URLUtilities.getEntryEditURL(entry.getWebsite().getHandle(), entry.getId(), true);
             
             ResourceBundle resources = ResourceBundle.getBundle(
                     "ApplicationResources", entry.getWebsite().getLocaleInstance());
@@ -168,7 +167,7 @@
             
             // Figure URL to entry edit page
             String rootURL = RollerRuntimeConfig.getAbsoluteContextURL();
-            String url = rootURL + "/roller-ui/yourWebsites.do";
+            String url = rootURL + "/roller-ui/menu.rol";
             
             ResourceBundle resources = ResourceBundle.getBundle(
                     "ApplicationResources",
@@ -197,6 +196,81 @@
             throw new RollerException("ERROR: Notification email(s) not sent, "
                     + "due to Roller configuration or mail server problem.", e);
         }
+    }
+    
+    
+    /**
+     * Send a weblog invitation email.
+     */
+    public static void sendUserActivationEmail(UserData user)
+            throws RollerException {
+        
+        Session mailSession = getMailSession();
+        if(mailSession == null) {
+            throw new RollerException("ERROR: Notification email(s) not sent, "
+                    + "Roller's mail session not properly configured");
+        }
+        
+        try {
+            ResourceBundle resources = ResourceBundle.getBundle(
+                    "ApplicationResources", getLocaleInstance(user.getLocale()));
+            
+            String from = RollerRuntimeConfig.getProperty(
+                    "user.account.activation.mail.from");
+            
+            String cc[] = new String[0];
+            String bcc[] = new String[0];
+            String to[] = new String[] { user.getEmailAddress() };
+            String subject = resources.getString(
+                    "user.account.activation.mail.subject");
+            String content;
+            
+            String rootURL = RollerRuntimeConfig.getAbsoluteContextURL();
+            
+            StringBuffer sb = new StringBuffer();
+            
+            // activationURL=
+            String activationURL = rootURL
+                    + "/roller-ui/register!activate.rol?activationCode="
+                    + user.getActivationCode();
+            sb.append(MessageFormat.format(
+                    resources.getString("user.account.activation.mail.content"),
+                    new Object[] { user.getFullName(), user.getUserName(),
+                    activationURL }));
+            content = sb.toString();
+            
+            sendHTMLMessage(mailSession, from, to, cc, bcc, subject, content);
+        } catch (MessagingException e) {
+            throw new RollerException("ERROR: Problem sending activation email.", e);
+        }
+    }
+    
+    
+    // TODO: there is a better place for this, but i am being lazy :/
+    private static Locale getLocaleInstance(String locale) {
+        if (locale != null) {
+            String[] localeStr = StringUtils.split(locale, "_");
+            if (localeStr.length == 1) {
+                if (localeStr[0] == null)
+                    localeStr[0] = "";
+                return new Locale(localeStr[0]);
+            } else if (localeStr.length == 2) {
+                if (localeStr[0] == null)
+                    localeStr[0] = "";
+                if (localeStr[1] == null)
+                    localeStr[1] = "";
+                return new Locale(localeStr[0], localeStr[1]);
+            } else if (localeStr.length == 3) {
+                if (localeStr[0] == null)
+                    localeStr[0] = "";
+                if (localeStr[1] == null)
+                    localeStr[1] = "";
+                if (localeStr[2] == null)
+                    localeStr[2] = "";
+                return new Locale(localeStr[0], localeStr[1], localeStr[2]);
+            }
+        }
+        return Locale.getDefault();
     }
     
     

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/URLUtilities.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/URLUtilities.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/URLUtilities.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/URLUtilities.java Fri May 18 19:02:48 2007
@@ -26,6 +26,7 @@
 import java.util.List;
 import java.util.Map;
 import org.apache.roller.config.RollerRuntimeConfig;
+import org.apache.roller.pojos.WeblogEntryData;
 import org.apache.roller.pojos.WeblogTheme;
 import org.apache.roller.pojos.WebsiteData;
 
@@ -381,6 +382,115 @@
         }
         
         return url.toString();
+    }
+    
+    
+    /**
+     * Url to login page.
+     */
+    public static final String getLoginURL(boolean absolute) {
+        
+        StringBuffer url = new StringBuffer();
+        
+        if(absolute) {
+            url.append(RollerRuntimeConfig.getAbsoluteContextURL());
+        } else {
+            url.append(RollerRuntimeConfig.getRelativeContextURL());
+        }
+        
+        url.append("/roller-ui/login-redirect.rol");
+        
+        return url.toString();
+    }
+    
+    
+    /**
+     * Url to logout page.
+     */
+    public static final String getLogoutURL(boolean absolute) {
+        
+        StringBuffer url = new StringBuffer();
+        
+        if(absolute) {
+            url.append(RollerRuntimeConfig.getAbsoluteContextURL());
+        } else {
+            url.append(RollerRuntimeConfig.getRelativeContextURL());
+        }
+        
+        url.append("/roller-ui/logout-redirect.rol");
+        
+        return url.toString();
+    }
+    
+    
+    /**
+     * Get a url to add a new weblog entry.
+     */
+    public static final String getEntryAddURL(String weblogHandle,
+                                              boolean absolute) {
+        
+        StringBuffer url = new StringBuffer();
+        
+        if(absolute) {
+            url.append(RollerRuntimeConfig.getAbsoluteContextURL());
+        } else {
+            url.append(RollerRuntimeConfig.getRelativeContextURL());
+        }
+        
+        url.append("/roller-ui/authoring/entryAdd.rol");
+        
+        Map params = new HashMap();
+        params.put("weblog", weblogHandle);
+        
+        return url.toString() + getQueryString(params);
+    }
+    
+    
+    /**
+     * Get a url to edit a specific weblog entry.
+     */
+    public static final String getEntryEditURL(String weblogHandle,
+                                               String entryId,
+                                               boolean absolute) {
+        
+        StringBuffer url = new StringBuffer();
+        
+        if(absolute) {
+            url.append(RollerRuntimeConfig.getAbsoluteContextURL());
+        } else {
+            url.append(RollerRuntimeConfig.getRelativeContextURL());
+        }
+        
+        url.append("/roller-ui/authoring/entryEdit.rol");
+        
+        Map params = new HashMap();
+        params.put("weblog", weblogHandle);
+        params.put("bean.id", entryId);
+        
+        return url.toString() + getQueryString(params);
+    }
+    
+    
+    /**
+     * Get a url to weblog config page.
+     */
+    public static final String getWeblogConfigURL(String weblogHandle,
+                                                  boolean absolute) {
+        
+        StringBuffer url = new StringBuffer();
+        
+        if(absolute) {
+            url.append(RollerRuntimeConfig.getAbsoluteContextURL());
+        } else {
+            url.append(RollerRuntimeConfig.getRelativeContextURL());
+        }
+        
+        url.append("/roller-ui/admin/weblogConfig.rol");
+        
+        Map params = new HashMap();
+        params.put("weblog", weblogHandle);
+        
+        return url.toString() + getQueryString(params);
     }
     
     

Modified: roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/Utilities.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/Utilities.java?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/Utilities.java (original)
+++ roller/branches/roller_4.0_newbackend/src/org/apache/roller/util/Utilities.java Fri May 18 19:02:48 2007
@@ -23,10 +23,9 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.commons.codec.binary.Base64;
 
-import sun.misc.BASE64Decoder;
-import sun.misc.BASE64Encoder;
-
+        
 /**
  * General purpose utilities, not for use in templates.
  */
@@ -433,9 +432,8 @@
      * @throws IOException
      */
     public static String encodeString(String str) throws IOException {
-        BASE64Encoder encoder = new BASE64Encoder();
-        String encodedStr = encoder.encodeBuffer(str.getBytes());
-        
+        Base64 base64 = new Base64();
+        String encodedStr = new String(base64.encodeBase64(str.getBytes()));        
         return (encodedStr.trim());
     }
     
@@ -447,9 +445,8 @@
      * @throws IOException
      */
     public static String decodeString(String str) throws IOException {
-        BASE64Decoder dec = new BASE64Decoder();
-        String value = new String(dec.decodeBuffer(str));
-        
+        Base64 base64 = new Base64();
+        String value = new String(base64.decodeBase64(str.getBytes()));        
         return (value);
     }
     

Modified: roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/struts.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/struts.xml?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/struts.xml (original)
+++ roller/branches/roller_4.0_newbackend/web/WEB-INF/classes/struts.xml Fri May 18 19:02:48 2007
@@ -63,9 +63,11 @@
         <!-- use our own interceptor stack which extends the default stack -->
         <default-interceptor-ref name="rollerStack"/>
         
+        
+        <!-- results made available to all actions -->
         <global-results>
             <result name="access-denied" type="tiles">.denied</result>
-            <result name="error">/error.jsp</result>
+            <result name="error" type="tiles">.error</result>
         </global-results>
         
         
@@ -83,29 +85,45 @@
             <result>/roller-ui/logout-redirect.jsp</result>
         </action>
         
+        <action name="error">
+            <result type="tiles">.error</result>
+        </action>
+        
+        <action name="403">
+            <result type="tiles">.403</result>
+        </action>
+        
+        <action name="404">
+            <result type="tiles">.404</result>
+        </action>
         
+        <action name="setup"
+                class="org.apache.roller.ui.core.struts2.Setup">
+            <result name="success" type="tiles">.Setup</result>
+        </action>
+            
         <action name="login"
                 class="org.apache.roller.ui.core.struts2.Login">
             <result type="tiles">.Login</result>
         </action>
         
         <action name="register!*" method="{1}"
-                class="org.apache.roller.ui.core.struts2.RegisterForm">
-            <result name="input" type="tiles">.RegisterForm</result>
+                class="org.apache.roller.ui.core.struts2.Register">
+            <result name="input" type="tiles">.Register</result>
             <result name="cancel" type="redirect">/</result>
             <result name="success" type="tiles">.Welcome</result>
         </action>
         
         <action name="profile!*" method="{1}"
-                class="org.apache.roller.ui.core.struts2.ProfileForm">
-            <result name="input" type="tiles">.ProfileForm</result>
+                class="org.apache.roller.ui.core.struts2.Profile">
+            <result name="input" type="tiles">.Profile</result>
             <result name="cancel" type="redirect-action">menu</result>
-            <result name="success" type="tiles">.ProfileForm</result>
+            <result name="success" type="tiles">.Profile</result>
         </action>
         
         <action name="createWeblog!*" method="{1}"
-                class="org.apache.roller.ui.core.struts2.CreateWeblogForm">
-            <result name="input" type="tiles">.CreateWeblogForm</result>
+                class="org.apache.roller.ui.core.struts2.CreateWeblog">
+            <result name="input" type="tiles">.CreateWeblog</result>
             <result name="cancel" type="redirect-action">menu</result>
             <result name="success" type="chain">menu</result>
         </action>
@@ -288,8 +306,9 @@
             <result name="list" type="tiles">.Resources</result>
         </action>
         
-        <action name="referrers">
-            <result>/roller-ui/authoring/referers.do</result>
+        <action name="referrers!*" method="{1}"
+                class="org.apache.roller.ui.authoring.struts2.Referrers">
+            <result name="list" type="tiles">.Referrers</result>
         </action>
         
         
@@ -314,19 +333,24 @@
             <result name="list" type="tiles">.Templates</result>
         </action>
         
-        <action name="templateRemove!*" method="{1}"
-                class="org.apache.roller.ui.authoring.struts2.TemplateRemove">
-            <result name="confirm" type="tiles">.TemplateRemove</result>
+        <action name="templateAdd!*" method="{1}"
+                class="org.apache.roller.ui.authoring.struts2.TemplateAdd">
             <result name="success" type="chain">templates</result>
         </action>
         
-        <action name="template!*" method="{1}"
+        <action name="templateEdit!*" method="{1}"
                 class="org.apache.roller.ui.authoring.struts2.TemplateEdit">
             <result name="list" type="chain">templates</result>
-            <result name="success" type="tiles">.TemplateEditForm</result>
+            <result name="success" type="tiles">.TemplateEdit</result>
             <result name="cancel" type="redirect-action">templates</result>
         </action>
         
+        <action name="templateRemove!*" method="{1}"
+                class="org.apache.roller.ui.authoring.struts2.TemplateRemove">
+            <result name="confirm" type="tiles">.TemplateRemove</result>
+            <result name="success" type="chain">templates</result>
+        </action>
+        
         <action name="members!*" method="{1}"
                 class="org.apache.roller.ui.authoring.struts2.Members">
             <result name="list" type="tiles">.Members</result>
@@ -367,22 +391,10 @@
             <result name="success" type="tiles">.Maintenance</result>
         </action>
         
-        
         <!--
-        
         <action name="importEntries!*" method="{1}"
                 class="org.apache.roller.ui.authoring.struts2.ImportEntriesAction">
             <result name="importEntries.page">.import-entries</result>
-        </action>
-        
-        <action name="weblogEntryManagement!*" method="{1}"
-                class="org.apache.roller.ui.authoring.struts2.WeblogEntryManagementAction">
-            <result name="weblogEntryManagement.page">.WeblogEntryManagement</result>
-        </action>
-        
-        <action name="referers!*" method="{1}"
-                class="org.apache.roller.ui.authoring.struts2.ReferersAction">
-            <result name="referers.page">.referers</result>
         </action>
         
         <action name="toggleLinkback!*" method="{1}"

Modified: roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Comments.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Comments.jsp?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Comments.jsp (original)
+++ roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Comments.jsp Fri May 18 19:02:48 2007
@@ -345,8 +345,6 @@
 <%-- ========================================================= --%>
             
 <s:submit key="commentManagement.update" />
-&nbsp;
-<s:submit key="application.cancel" action="comments" />
 
 </s:form>
 

Modified: roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Resources.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Resources.jsp?view=diff&rev=539673&r1=539672&r2=539673
==============================================================================
--- roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Resources.jsp (original)
+++ roller/branches/roller_4.0_newbackend/web/WEB-INF/jsps/authoring/struts2/Resources.jsp Fri May 18 19:02:48 2007
@@ -147,7 +147,7 @@
                 </td>
            </tr>
         </s:if>
-        <s:iterator id="file" value="files" status="rowstatus">
+        <s:iterator id="f" value="files" status="rowstatus">
             
             <s:if test="#rowstatus.odd == true">
                 <tr class="rollertable_odd">
@@ -156,26 +156,26 @@
                 <tr class="rollertable_even">
             </s:else>
             <td class="rollertable">
-                <s:if test="#file.directory">
+                <s:if test="#f.directory">
                     <s:url id="dirUrl" action="resources">
-                        <s:param name="weblog" />
-                        <s:param name="path" value="#file.path" />
+                        <s:param name="weblog" value="%{actionWeblog.handle}" />
+                        <s:param name="path" value="%{#f.path}" />
                     </s:url>
                     <img src='<c:url value="/images/folder.png"/>' style="padding:0px" />
-                    <s:a href="%{dirUrl}"><s:property value="#file.name" /></s:a>
+                    <s:a href="%{dirUrl}"><s:property value="#f.name" /></s:a>
                 </s:if>
                 <s:else>
                     <img src='<s:url value="/images/image.png"/>' style="padding:0px" />
-                    <a href='<c:out value="${model.resourcesBaseURL}" /><s:property value="#file.path" />'>
-                        <s:property value="#file.name" />
+                    <a href='<c:out value="${model.resourcesBaseURL}" /><s:property value="#f.path" />'>
+                        <s:property value="#f.name" />
                     </a>
                 </s:else>
             </td>
             <td class="rollertable" align="right">
-                <fmt:formatNumber value="${ffile.length / 1024}" type="number" maxFractionDigits="2" />&nbsp;KB
+                <fmt:formatNumber value="${f.length / 1024}" type="number" maxFractionDigits="2" />&nbsp;KB
             </td>
             <td class="rollertable" align="center">
-                <input type="checkbox" name="deleteIds" value="<s:property value="#file.path" />" />
+                <input type="checkbox" name="deleteIds" value="<s:property value="#f.path" />" />
             </td>
             </tr>
             
@@ -184,7 +184,7 @@
        <tr>
            <td></td>
            <td></td>
-           <td><fmt:formatNumber value="${model.totalSize / 1024}" type="number" maxFractionDigits="2" />&nbsp;KB</td>
+           <td><fmt:formatNumber value="${totalSize / 1024}" type="number" maxFractionDigits="2" />&nbsp;KB</td>
        </tr>
     </table>