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;
}