You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2007/07/18 20:48:32 UTC

svn commit: r557359 - in /roller/trunk/apps/weblogger: src/java/org/apache/roller/weblogger/planet/business/ test/java/org/apache/roller/weblogger/ test/java/org/apache/roller/weblogger/planet/ test/java/org/apache/roller/weblogger/planet/business/ tes...

Author: agilliland
Date: Wed Jul 18 11:48:31 2007
New Revision: 557359

URL: http://svn.apache.org/viewvc?view=rev&rev=557359
Log:
updating weblogger custom fetcher to make use of new planet fetcher changes from revision 557339.  also includes new unit test.

Added:
    roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/
    roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/business/
    roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcherTest.java
Modified:
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java
    roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/TestUtils.java
    roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/ui/UITestSuite.java

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java?view=diff&rev=557359&r1=557358&r2=557359
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java Wed Jul 18 11:48:31 2007
@@ -57,7 +57,8 @@
     }
     
     
-    public Subscription fetchSubscription(String feedURL)
+    @Override
+    public Subscription fetchSubscription(String feedURL, Date lastModified)
             throws FetcherException {
         
         if(feedURL == null) {
@@ -68,7 +69,7 @@
         // feedURLs defined as ... weblogger:<blog handle>
         if(!feedURL.startsWith("weblogger:")) {
             log.debug("Feed is remote, letting parent handle it - "+feedURL);            
-            return super.fetchSubscription(feedURL);
+            return super.fetchSubscription(feedURL, lastModified);
         }
         
         // extract blog handle from our special feed url
@@ -90,6 +91,12 @@
             
         } catch (WebloggerException ex) {
             throw new FetcherException("Problem looking up local weblog - "+weblogHandle, ex);
+        }
+        
+        // if weblog hasn't changed since last fetch then bail
+        if(lastModified != null && !localWeblog.getLastModified().after(lastModified)) {
+            log.debug("Skipping unmodified LOCAL weblog");
+            return null;
         }
         
         // build planet subscription from weblog

Modified: roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/TestUtils.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/TestUtils.java?view=diff&rev=557359&r1=557358&r2=557359
==============================================================================
--- roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/TestUtils.java (original)
+++ roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/TestUtils.java Wed Jul 18 11:48:31 2007
@@ -23,6 +23,10 @@
 
 package org.apache.roller.weblogger;
 
+import org.apache.roller.planet.business.GuicePlanetProvider;
+import org.apache.roller.planet.business.PlanetFactory;
+import org.apache.roller.planet.business.PlanetProvider;
+import org.apache.roller.planet.business.startup.PlanetStartup;
 import org.apache.roller.weblogger.business.BookmarkManager;
 import org.apache.roller.weblogger.business.pings.AutoPingManager;
 import org.apache.roller.weblogger.business.pings.PingTargetManager;
@@ -30,6 +34,7 @@
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.business.WeblogManager;
 import org.apache.roller.weblogger.business.startup.WebloggerStartup;
+import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.AutoPing;
 import org.apache.roller.weblogger.pojos.WeblogEntryComment;
 import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
@@ -67,6 +72,24 @@
         
         // trigger shutdown
         WebloggerFactory.getWeblogger().shutdown();
+    }
+    
+    
+    public static void setupPlanet() throws Exception {
+        
+        if(!PlanetFactory.isBootstrapped()) {
+            // do core services preparation
+            PlanetStartup.prepare();
+            
+            // do application bootstrapping
+            String guiceModule = WebloggerConfig.getProperty("planet.aggregator.guice.module");
+            PlanetProvider provider = new GuicePlanetProvider(guiceModule);
+            PlanetFactory.bootstrap(provider);
+            
+            // always initialize the properties manager and flush
+            PlanetFactory.getPlanet().getPropertiesManager().initialize();
+            PlanetFactory.getPlanet().flush();
+        }
     }
     
     

Added: roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcherTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcherTest.java?view=auto&rev=557359
==============================================================================
--- roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcherTest.java (added)
+++ roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcherTest.java Wed Jul 18 11:48:31 2007
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business;
+
+import junit.framework.TestCase;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.business.PlanetFactory;
+import org.apache.roller.planet.business.fetcher.FeedFetcher;
+import org.apache.roller.planet.pojos.Subscription;
+import org.apache.roller.weblogger.TestUtils;
+import org.apache.roller.weblogger.pojos.User;
+import org.apache.roller.weblogger.pojos.Weblog;
+
+
+/**
+ * Test custom weblogger feed fetcher.
+ */
+public class WebloggerRomeFeedFetcherTest extends TestCase {
+    
+    public static Log log = LogFactory.getLog(WebloggerRomeFeedFetcherTest.class);
+    
+    User testUser = null;
+    Weblog testWeblog = null;
+    String feed_url = "weblogger:webloggerFetcherTestWeblog";
+    
+    
+    /**
+     * All tests in this suite require a user and a weblog.
+     */
+    @Override
+    public void setUp() throws Exception {
+        
+        // setup weblogger
+        TestUtils.setupWeblogger();
+        TestUtils.setupPlanet();
+        
+        try {
+            testUser = TestUtils.setupUser("webloggerFetcherTestUser");
+            testWeblog = TestUtils.setupWeblog("webloggerFetcherTestWeblog", testUser);
+            TestUtils.endSession(true);
+        } catch (Exception ex) {
+            log.error(ex);
+            throw new Exception("Test setup failed", ex);
+        }
+    }
+    
+    @Override
+    public void tearDown() throws Exception {
+        
+        try {
+            TestUtils.teardownWeblog(testWeblog.getId());
+            TestUtils.teardownUser(testUser.getId());
+            TestUtils.endSession(true);
+        } catch (Exception ex) {
+            log.error(ex);
+            throw new Exception("Test teardown failed", ex);
+        }
+    }
+    
+    
+    public void testFetchSubscription() throws Exception {
+        
+        FeedFetcher feedFetcher = PlanetFactory.getPlanet().getFeedFetcher();
+        
+        // first fetch non-conditionally so we know we should get a Sub
+        Subscription sub = feedFetcher.fetchSubscription(feed_url);
+        assertNotNull(sub);
+        assertEquals(feed_url, sub.getFeedURL());
+        assertNotNull(sub.getLastUpdated());
+        
+        // now do a conditional fetch and we should get back null
+        Subscription updatedSub = feedFetcher.fetchSubscription(feed_url, sub.getLastUpdated());
+        assertNull(updatedSub);
+    }
+    
+}

Modified: roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/ui/UITestSuite.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/ui/UITestSuite.java?view=diff&rev=557359&r1=557358&r2=557359
==============================================================================
--- roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/ui/UITestSuite.java (original)
+++ roller/trunk/apps/weblogger/test/java/org/apache/roller/weblogger/ui/UITestSuite.java Wed Jul 18 11:48:31 2007
@@ -20,6 +20,7 @@
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
+import org.apache.roller.weblogger.planet.business.WebloggerRomeFeedFetcherTest;
 import org.apache.roller.weblogger.ui.rendering.util.CommentValidatorTest;
 
 
@@ -34,7 +35,10 @@
 	
         // comment plugins
         suite.addTestSuite(CommentValidatorTest.class);
-
+        
+        // custom planet fetcher
+        suite.addTestSuite(WebloggerRomeFeedFetcherTest.class);
+        
         return suite;
     }