[jboss-cvs] JBossBlog SVN: r245 - in trunk: resources and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 6 03:33:09 EST 2008


Author: adamw
Date: 2008-03-06 03:33:09 -0500 (Thu, 06 Mar 2008)
New Revision: 245

Added:
   trunk/src/model/org/jboss/blog/model/post/filter/AbstractRegexpFilter.java
   trunk/src/model/org/jboss/blog/model/post/filter/CategoryRegexpFilter.java
Modified:
   trunk/build.xml
   trunk/resources/WEB-INF/pages.xml
   trunk/resources/components.properties
   trunk/src/action/org/jboss/blog/session/feed/mod/FilterAddBean.java
   trunk/src/model/org/jboss/blog/model/post/filter/AuthorRegexpFilter.java
   trunk/view/manage/aggregated/filter_add.xhtml
Log:


Modified: trunk/build.xml
===================================================================
--- trunk/build.xml	2008-03-06 07:34:00 UTC (rev 244)
+++ trunk/build.xml	2008-03-06 08:33:09 UTC (rev 245)
@@ -367,7 +367,6 @@
                 <exclude name="**/*.jar"/>
             </fileset>
         </delete>
-        <delete file="${deploy.dir}/${project.name}-${profile}-ds.xml" failonerror="no"/>
         <delete dir="${ear.deploy.dir}" failonerror="no"/>
 
         <delete file="${deploy.dir}/${jar.api.name}" />
@@ -387,8 +386,6 @@
     <target name="undeploy" description="Undeploy the example from JBoss">
         <delete file="${deploy.dir}/${project.name}.ear" />
         <delete file="${deploy.dir}/${jar.api.name}" />
-        <delete file="${deploy.dir}/${project.name}-dev-ds.xml" />
-        <delete file="${deploy.dir}/${project.name}-prod-ds.xml" />
     </target>
 
     <target name="clean" description="Cleans up the build directory">

Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml	2008-03-06 07:34:00 UTC (rev 244)
+++ trunk/resources/WEB-INF/pages.xml	2008-03-06 08:33:09 UTC (rev 245)
@@ -191,6 +191,9 @@
         <navigation from-action="#{filterAdd.add(filterAdd.authorRegexpFilter)}">
             <raise-event type="org.jboss.blog.restoreView" />
         </navigation>
+        <navigation from-action="#{filterAdd.add(filterAdd.categoryRegexpFilter)}">
+            <raise-event type="org.jboss.blog.restoreView" />
+        </navigation>
         <navigation from-action="#{filterAdd.cancel}">
             <raise-event type="org.jboss.blog.restoreView" />
         </navigation>

Modified: trunk/resources/components.properties
===================================================================
--- trunk/resources/components.properties	2008-03-06 07:34:00 UTC (rev 244)
+++ trunk/resources/components.properties	2008-03-06 08:33:09 UTC (rev 245)
@@ -1,2 +1,2 @@
 jndiPattern \#{ejbName}/local
-debug false
+debug true

Modified: trunk/src/action/org/jboss/blog/session/feed/mod/FilterAddBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/FilterAddBean.java	2008-03-06 07:34:00 UTC (rev 244)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/FilterAddBean.java	2008-03-06 08:33:09 UTC (rev 245)
@@ -6,7 +6,7 @@
 import org.jboss.blog.model.post.PostFilter;
 import org.jboss.blog.model.post.filter.PodcastFilter;
 import org.jboss.blog.model.post.filter.NotPodcastFilter;
-import org.jboss.blog.model.post.filter.AuthorRegexpFilter;
+import org.jboss.blog.model.post.filter.CategoryRegexpFilter;
 
 import java.util.List;
 import java.io.Serializable;
@@ -23,8 +23,10 @@
 
     private NotPodcastFilter notPodcastFilter;
 
-    private AuthorRegexpFilter authorRegexpFilter;
+    private CategoryRegexpFilter authorRegexpFilter;
 
+    private CategoryRegexpFilter categoryRegexpFilter;
+
     public PodcastFilter getPodcastFilter() {
         if (podcastFilter == null) {
             podcastFilter = new PodcastFilter();
@@ -41,14 +43,22 @@
         return notPodcastFilter;
     }
 
-    public AuthorRegexpFilter getAuthorRegexpFilter() {
+    public CategoryRegexpFilter getAuthorRegexpFilter() {
         if (authorRegexpFilter == null) {
-            authorRegexpFilter = new AuthorRegexpFilter();
+            authorRegexpFilter = new CategoryRegexpFilter();
         }
         
         return authorRegexpFilter;
     }
 
+    public CategoryRegexpFilter getCategoryRegexpFilter() {
+        if (categoryRegexpFilter == null) {
+            categoryRegexpFilter = new CategoryRegexpFilter();
+        }
+        
+        return categoryRegexpFilter;
+    }
+
     public void add(PostFilter filter) {
         addToList.add(filter);
     }

Added: trunk/src/model/org/jboss/blog/model/post/filter/AbstractRegexpFilter.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/post/filter/AbstractRegexpFilter.java	                        (rev 0)
+++ trunk/src/model/org/jboss/blog/model/post/filter/AbstractRegexpFilter.java	2008-03-06 08:33:09 UTC (rev 245)
@@ -0,0 +1,41 @@
+package org.jboss.blog.model.post.filter;
+
+import org.jboss.blog.model.post.PostFilter;
+import org.jboss.blog.tools.validator.Regexp;
+
+import java.util.regex.Pattern;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public abstract class AbstractRegexpFilter implements PostFilter  {
+    @Regexp
+    protected String regexp;
+
+    protected transient Pattern pattern;
+
+    public String getRegexp() {
+        return regexp;
+    }
+
+    public void setRegexp(String regexp) {
+        this.regexp = regexp;
+
+        pattern = Pattern.compile(this.regexp);
+    }
+
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof CategoryRegexpFilter)) return false;
+
+        AbstractRegexpFilter that = (AbstractRegexpFilter) o;
+
+        if (regexp != null ? !regexp.equals(that.regexp) : that.regexp != null) return false;
+
+        return true;
+    }
+
+    public int hashCode() {
+        return (regexp != null ? regexp.hashCode() : 0);
+    }
+}

Modified: trunk/src/model/org/jboss/blog/model/post/filter/AuthorRegexpFilter.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/post/filter/AuthorRegexpFilter.java	2008-03-06 07:34:00 UTC (rev 244)
+++ trunk/src/model/org/jboss/blog/model/post/filter/AuthorRegexpFilter.java	2008-03-06 08:33:09 UTC (rev 245)
@@ -1,33 +1,15 @@
 package org.jboss.blog.model.post.filter;
 
-import org.jboss.blog.model.post.PostFilter;
 import org.jboss.blog.model.RestrictedPost;
-import org.jboss.blog.tools.validator.Regexp;
 
-import java.util.regex.Pattern;
 import java.io.IOException;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
-public class AuthorRegexpFilter implements PostFilter {
+public class AuthorRegexpFilter extends AbstractRegexpFilter {
     private static final long serialVersionUID = 2015864901762113142L;
 
-    @Regexp
-    private String regexp;
-
-    private transient Pattern pattern;
-
-    public String getRegexp() {
-        return regexp;
-    }
-
-    public void setRegexp(String regexp) {
-        this.regexp = regexp;
-
-        pattern = Pattern.compile(this.regexp);
-    }
-
     public boolean filter(RestrictedPost post) {
         return pattern.matcher(post.getEffectiveAuthor()).matches();
     }
@@ -47,19 +29,4 @@
     public String toString() {
         return "Author matching regexp: " + regexp;
     }
-
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof AuthorRegexpFilter)) return false;
-
-        AuthorRegexpFilter that = (AuthorRegexpFilter) o;
-
-        if (regexp != null ? !regexp.equals(that.regexp) : that.regexp != null) return false;
-
-        return true;
-    }
-
-    public int hashCode() {
-        return (regexp != null ? regexp.hashCode() : 0);
-    }
 }

Copied: trunk/src/model/org/jboss/blog/model/post/filter/CategoryRegexpFilter.java (from rev 240, trunk/src/model/org/jboss/blog/model/post/filter/AndFilter.java)
===================================================================
--- trunk/src/model/org/jboss/blog/model/post/filter/CategoryRegexpFilter.java	                        (rev 0)
+++ trunk/src/model/org/jboss/blog/model/post/filter/CategoryRegexpFilter.java	2008-03-06 08:33:09 UTC (rev 245)
@@ -0,0 +1,39 @@
+package org.jboss.blog.model.post.filter;
+
+import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.RestrictedCategory;
+
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class CategoryRegexpFilter extends AbstractRegexpFilter {
+    private static final long serialVersionUID = 1209854919382113132L;
+
+    public boolean filter(RestrictedPost post) {
+        for (RestrictedCategory cat : post.getCategories()) {
+            if (pattern.matcher(cat.getName()).matches()) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out)
+            throws IOException {
+        out.defaultWriteObject();
+    }
+
+    private void readObject(java.io.ObjectInputStream in)
+            throws IOException, ClassNotFoundException {
+        in.defaultReadObject();
+
+        setRegexp(getRegexp());
+    }
+
+    public String toString() {
+        return "Category matching regexp: " + regexp;
+    }
+}

Modified: trunk/view/manage/aggregated/filter_add.xhtml
===================================================================
--- trunk/view/manage/aggregated/filter_add.xhtml	2008-03-06 07:34:00 UTC (rev 244)
+++ trunk/view/manage/aggregated/filter_add.xhtml	2008-03-06 08:33:09 UTC (rev 245)
@@ -8,71 +8,103 @@
                 xmlns:rich="http://richfaces.org/rich"
                 xmlns:a="http://richfaces.org/a4j"
                 template="../../layout/template.xhtml">
-    <ui:define name="header">
-        Add a filter feed
-    </ui:define>
+<ui:define name="header">
+    Add a filter feed
+</ui:define>
 
-    <ui:define name="body">
-        <div class="adminforms">
-            <table class="basetablestyle" cellspacing="0" cellpadding="4">
-                <tr>
-                    <th class="header tableHeader">Filter function</th>
-                    <th class="header tableHeader">Configure/add</th>
-                </tr>
-                <tr class="oddRow">
-                    <td>Only entries with enclosures filter (podcast)</td>
-                    <td>
-                        <h:form>
-                            <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.podcastFilter)}"
-                                    styleClass="submit" />
-                        </h:form>
-                    </td>
-                </tr>
-                <tr class="evenRow">
-                    <td>Only entries without enclosure filter (not-podcast)</td>
-                    <td>
-                        <h:form>
-                            <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.notPodcastFilter)}"
-                                    styleClass="submit" />
-                        </h:form>
-                    </td>
-                </tr>
-                <tr class="oddRow">
-                    <td>Only entries whose author matches a regular expression</td>
-                    <td>
-                        <h:form>
-                                <h:outputLabel for="author">
-                                    <span class="required">*</span> Regular expression:
-                                </h:outputLabel>
-                                <br />
-                                <h:panelGroup>
-                                    <h:inputText id="author" value="#{filterAdd.authorRegexpFilter.regexp}" required="true" size="16">
-                                        <a:support event="onblur" reRender="authorMessage" ajaxSingle="true" bypassUpdates="true"/>
-                                        <s:validate />
-                                    </h:inputText>
+<ui:define name="body">
+    <div class="QuickstartMargin" id="QuickStart">
+        <ul>
+            <li>
+                <p>An <a href="http://www.regular-expressions.info/javascriptexample.html" target="_blank">online regular
+                    expressions tester</a> in case you need help.</p>
+            </li>
+        </ul>
+    </div>
 
-                                    <a:outputPanel id="authorMessage">
-                                        <h:message for="author" styleClass="error" />
-                                    </a:outputPanel>
-                                </h:panelGroup>
-                                <br />
-                                <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.authorRegexpFilter)}"
-                                    styleClass="submit" />
-                        </h:form>
-                    </td>
-                </tr>
-            </table>
+    <div class="adminforms">
+        <table class="basetablestyle" cellspacing="0" cellpadding="4">
+            <tr>
+                <th class="header tableHeader">Filter function</th>
+                <th class="header tableHeader">Configure/add</th>
+            </tr>
+            <tr class="oddRow">
+                <td>Only entries with enclosures filter (podcast):</td>
+                <td>
+                    <h:form>
+                        <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.podcastFilter)}"
+                                         styleClass="submit" />
+                    </h:form>
+                </td>
+            </tr>
+            <tr class="evenRow">
+                <td>Only entries without enclosure filter (not-podcast):</td>
+                <td>
+                    <h:form>
+                        <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.notPodcastFilter)}"
+                                         styleClass="submit" />
+                    </h:form>
+                </td>
+            </tr>
+            <tr class="oddRow">
+                <td>Only entries whose author matches a regular expression:</td>
+                <td>
+                    <h:form>
+                        <h:outputLabel for="author">
+                            <span class="required">*</span> Regular expression:
+                        </h:outputLabel>
+                        <br />
+                        <h:panelGroup>
+                            <h:inputText id="author" value="#{filterAdd.authorRegexpFilter.regexp}" required="true" size="16">
+                                <a:support event="onblur" reRender="authorMessage" ajaxSingle="true" bypassUpdates="true"/>
+                                <s:validate />
+                            </h:inputText>
 
-            <h:form>
-                <div id="proceed" class="formbuttons">
-                    <ul>
-                        <li>
-                            <h:commandButton value="Cancel" action="#{filterAdd.cancel}" styleClass="submit"/>
+                            <a:outputPanel id="authorMessage">
+                                <h:message for="author" styleClass="error" />
+                            </a:outputPanel>
+                        </h:panelGroup>
+                        <br />
+                        <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.authorRegexpFilter)}"
+                                         styleClass="submit" />
+                    </h:form>
+                </td>
+            </tr>
+            <tr class="evenRow">
+                <td>Only entries where at least one category matches a regular expression:</td>
+                <td>
+                    <h:form>
+                        <h:outputLabel for="category">
+                            <span class="required">*</span> Regular expression:
+                        </h:outputLabel>
+                        <br />
+                        <h:panelGroup>
+                            <h:inputText id="category" value="#{filterAdd.categoryRegexpFilter.regexp}" required="true" size="16">
+                                <a:support event="onblur" reRender="categoryMessage" ajaxSingle="true" bypassUpdates="true"/>
+                                <s:validate />
+                            </h:inputText>
 
-                        </li>
-                    </ul>
-                </div>
-            </h:form>
-        </div>
-    </ui:define>
+                            <a:outputPanel id="categoryMessage">
+                                <h:message for="category" styleClass="error" />
+                            </a:outputPanel>
+                        </h:panelGroup>
+                        <br />
+                        <h:commandButton value="Add" action="#{filterAdd.add(filterAdd.categoryRegexpFilter)}"
+                                         styleClass="submit" />
+                    </h:form>
+                </td>
+            </tr>
+        </table>
+
+        <h:form>
+            <div id="proceed" class="formbuttons">
+                <ul>
+                    <li>
+                        <h:commandButton value="Cancel" action="#{filterAdd.cancel}" styleClass="submit"/>
+                    </li>
+                </ul>
+            </div>
+        </h:form>
+    </div>
+</ui:define>
 </ui:composition>




More information about the jboss-cvs-commits mailing list