You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/10/17 23:15:49 UTC
svn commit: r465056 - in
/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks:
GeneratePlanetTask.java PlanetRefreshEntriesTask.java StaticPlanetModel.java
Author: snoopdave
Date: Tue Oct 17 14:15:47 2006
New Revision: 465056
URL: http://svn.apache.org/viewvc?view=rev&rev=465056
Log:
Starting to fixup up the static file generation task
Added:
incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/GeneratePlanetTask.java
- copied, changed from r464917, incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/PlanetRefreshEntriesTask.java
incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/StaticPlanetModel.java
Removed:
incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/PlanetRefreshEntriesTask.java
Copied: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/GeneratePlanetTask.java (from r464917, incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/PlanetRefreshEntriesTask.java)
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/GeneratePlanetTask.java?view=diff&rev=465056&p1=incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/PlanetRefreshEntriesTask.java&r1=464917&p2=incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/GeneratePlanetTask.java&r2=465056
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/PlanetRefreshEntriesTask.java (original)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/GeneratePlanetTask.java Tue Oct 17 14:15:47 2006
@@ -18,27 +18,78 @@
package org.apache.roller.planet.tasks;
+import java.io.File;
+import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
import org.apache.roller.planet.model.Planet;
import org.apache.roller.planet.model.PlanetFactory;
+import org.apache.roller.planet.model.PlanetManager;
+import org.apache.roller.util.Utilities;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
+import org.apache.velocity.texen.Generator;
/**
- * Run the Planet Roller refresh-entries method to fetch and parse newsfeeds.
+ * Fetch feeds as needed and regenerate Planet pages based.
*/
-public class PlanetRefreshEntriesTask implements Runnable {
- private static Log logger = LogFactory.getLog(PlanetRefreshEntriesTask.class);
-
+public class GeneratePlanetTask implements Runnable {
+ private static Log logger = LogFactory.getLog(GeneratePlanetTask.class);
+
public void run() {
- try {
+ try {
+ // Update all feeds in planet
Planet planet = PlanetFactory.getPlanet();
planet.getPlanetManager().refreshEntries();
planet.flush();
planet.release();
+
+ // Run the planet generation templates
+ generatePlanet();
+
} catch (RollerException e) {
logger.error("ERROR refreshing entries", e);
}
}
+
+
+ public void generatePlanet() throws RollerException {
+ try {
+ Planet planet = PlanetFactory.getPlanet();
+ PlanetManager planetManager = planet.getPlanetManager();
+
+ // Fire up Velocity engine, point it at templates and init
+ VelocityEngine engine = new VelocityEngine();
+ engine.setProperty("resource.loader","file");
+ engine.setProperty("file.resource.loader.class",
+ "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
+ engine.setProperty("file.resource.loader.path",
+ planetManager.getConfiguration().getTemplateDir());
+ engine.init();
+
+ // Build context with current date
+ VelocityContext context = new VelocityContext();
+ context.put("date", new Date());
+ context.put("utilities", new Utilities());
+ context.put("planet", new StaticPlanetModel());
+
+ File outputDir = new File(planetManager.getConfiguration().getOutputDir());
+ if (!outputDir.exists()) outputDir.mkdirs();
+
+ Generator generator = Generator.getInstance();
+ generator.setVelocityEngine(engine);
+ generator.setOutputEncoding("utf-8");
+ generator.setInputEncoding("utf-8");
+ generator.setOutputPath(planetManager.getConfiguration().getOutputDir());
+ generator.setTemplatePath(planetManager.getConfiguration().getTemplateDir());
+ generator.parse(planetManager.getConfiguration().getMainPage(), context);
+ generator.shutdown();
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RollerException("Writing planet files",e);
+ }
+ }
}
Added: incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/StaticPlanetModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/StaticPlanetModel.java?view=auto&rev=465056
==============================================================================
--- incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/StaticPlanetModel.java (added)
+++ incubator/roller/trunk/sandbox/planetroller/src/org/apache/roller/planet/tasks/StaticPlanetModel.java Tue Oct 17 14:15:47 2006
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.planet.tasks;
+
+import java.util.Iterator;
+import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.RollerException;
+import org.apache.roller.planet.model.Planet;
+import org.apache.roller.planet.model.PlanetFactory;
+import org.apache.roller.planet.model.PlanetManager;
+import org.apache.roller.planet.pojos.PlanetConfigData;
+import org.apache.roller.planet.pojos.PlanetGroupData;
+import org.apache.roller.planet.pojos.PlanetSubscriptionData;
+
+/**
+ * Simple planet model for use static planet generation, designed
+ * to be duck-type compatible with old PlanetTool templates.
+ */
+public class StaticPlanetModel {
+ private static Log logger =
+ LogFactory.getFactory().getInstance(StaticPlanetModel.class);
+ PlanetManager planetManager = null;
+
+ public StaticPlanetModel() throws RollerException {
+ Planet planet = PlanetFactory.getPlanet();
+ planetManager = planet.getPlanetManager();
+ }
+
+ public PlanetSubscriptionData getSubscription(
+ String feedUrl) throws Exception {
+ return planetManager.getSubscription(feedUrl);
+ }
+
+ public PlanetConfigData getConfiguration() throws RollerException {
+ return planetManager.getConfiguration();
+ }
+
+ public List getGroupHandles() throws RollerException {
+ return planetManager.getGroupHandles();
+ }
+
+ public List getGroups() throws RollerException {
+ return planetManager.getGroups();
+ }
+
+ public PlanetGroupData getGroup(String handle) throws RollerException {
+ return planetManager.getGroup(handle);
+ }
+
+ public List getAggregation(
+ PlanetGroupData group, int maxEntries) throws RollerException {
+ return planetManager.getAggregation(group, 0, -1);
+ }
+
+
+ public Iterator getAllSubscriptions() throws RollerException {
+ return planetManager.getAllSubscriptions();
+ }
+
+ public int getSubscriptionCount() throws RollerException {
+ return planetManager.getSubscriptionCount();
+ }
+}
+