Author: snoopdave
Date: Sun Nov 25 13:09:21 2007
New Revision: 598055
URL: http://svn.apache.org/viewvc?rev=598055&view=rev
Log:
Improvements to planet model to make it possible to display via templates the
list of planet groups available and URL to the pages and feeds of those groups.
Added:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
Modified:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
Modified:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java?rev=598055&r1=598054&r2=598055&view=diff
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
(original)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
Sun Nov 25 13:09:21 2007
@@ -20,7 +20,6 @@
import com.google.inject.Binder;
import com.google.inject.Module;
-import org.apache.roller.planet.business.MultiPlanetURLStrategy;
import org.apache.roller.planet.business.Planet;
import org.apache.roller.planet.business.PlanetManager;
import org.apache.roller.planet.business.PropertiesManager;
@@ -31,6 +30,7 @@
import org.apache.roller.planet.business.jpa.JPAPlanetManagerImpl;
import org.apache.roller.planet.business.jpa.JPAPropertiesManagerImpl;
import org.apache.roller.weblogger.planet.business.WebloggerRomeFeedFetcher;
+import org.apache.roller.weblogger.planet.ui.PlanetURLStrategy;
/**
@@ -47,7 +47,7 @@
binder.bind(PlanetManager.class).to( JPAPlanetManagerImpl.class);
binder.bind(PropertiesManager.class).to(
JPAPropertiesManagerImpl.class);
- binder.bind(URLStrategy.class).to( MultiPlanetURLStrategy.class);
+ binder.bind(URLStrategy.class).to( PlanetURLStrategy.class);
binder.bind(FeedFetcher.class).to(
WebloggerRomeFeedFetcher.class);
}
Added:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java?rev=598055&view=auto
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
(added)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
Sun Nov 25 13:09:21 2007
@@ -0,0 +1,111 @@
+/*
+ * 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.ui;
+
+import org.apache.roller.planet.business.MultiPlanetURLStrategy;
+import org.apache.roller.planet.business.PlanetFactory;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.config.PlanetRuntimeConfig;
+import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
+
+
+/**
+ * Override Planet's URL strategy for use within Roller.
+ */
+public class PlanetURLStrategy extends MultiPlanetURLStrategy {
+
+
+ /**
+ * Get URL configured for Planet.
+ * @param planet There's only one planet in Roller, so this is ignored.
+ */
+ public String getPlanetURL(String planet) {
+
+ StringBuffer url = new StringBuffer();
+
+ PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+
+ url.append(PlanetRuntimeConfig.getProperty("site.absoluteurl"));
+
+ return url.toString();
+ }
+
+
+ /**
+ * Get URL configured for Planet.
+ * @param planet There's only one planet in Roller, so this is ignored.
+ * @param group Handle of planet group (or null for default group).
+ * @param pageNum Page number of results to return.
+ */
+ public String getPlanetGroupURL(String planet, String group, int pageNum) {
+
+ StringBuffer url = new StringBuffer();
+ String sep = "?";
+
+ url.append(getPlanetURL(planet));
+ if (group != null) {
+ url.append(sep);
+ url.append("group=").append(group);
+ sep = "&";
+ }
+
+ if (pageNum > 0) {
+ url.append(sep);
+ url.append("page=");
+ url.append(pageNum);
+ sep = "&";
+ }
+
+ return url.toString();
+ }
+
+
+ /**
+ * Get URL of planet group's newsfeed.
+ * @param planet There's only one planet in Roller, so this is ignored.
+ * @param group Handle of planet group (or null for default group).
+ * @param feed Feed format to be returned (ignored, currently only RSS is
supported).
+ */
+ public String getPlanetGroupFeedURL(String planet, String group, String
format) {
+
+ StringBuffer url = new StringBuffer();
+ String sep = "?";
+
+ url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
+ url.append("planetrss");
+
+ if (group != null) {
+ url.append(sep);
+ url.append("group=").append(group);
+ sep = "&";
+ }
+
+ return url.toString();
+ }
+
+
+ /**
+ * Currently, Roller doesn't support OPML so this returns null.
+ * @param planet There's only one planet in Roller, so this is ignored.
+ * @param group Handle of planet group.
+ */
+ public String getPlanetGroupOpmlURL(String planet, String group) {
+ return null;
+ }
+}
Modified:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java?rev=598055&r1=598054&r2=598055&view=diff
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
(original)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
Sun Nov 25 13:09:21 2007
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
@@ -49,11 +50,13 @@
private static Log log = LogFactory.getLog(PlanetModel.class);
private WeblogRequest weblogRequest = null;
- private URLStrategy urlStrategy = null;
- private String pageLink = null;
+ private String pageLink = null;
private int pageNum = 0;
- private Weblog weblog = null;
+ private Weblog weblog = null;
+ private URLStrategy urlStrategy = null;
+ private org.apache.roller.planet.business.URLStrategy planetUrlStrategy =
null;
+
public String getModelName() {
return "planet";
@@ -79,6 +82,8 @@
urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
}
+ planetUrlStrategy = PlanetFactory.getPlanet().getURLStrategy();
+
// extract weblog object
weblog = weblogRequest.getWeblog();
}
@@ -192,4 +197,58 @@
return list;
}
+
+ /**
+ * Get PlanetGroups defined.
+ * @return List of Planet groups defined.
+ */
+ public List<PlanetGroup> getGroups() {
+ List list = new ArrayList<PlanetGroup>();
+ try {
+ PlanetManager planetManager =
PlanetFactory.getPlanet().getPlanetManager();
+ Planet defaultPlanet =
planetManager.getPlanet(DEFAULT_PLANET_HANDLE);
+ Set<PlanetGroup> groups =
(Set<PlanetGroup>)defaultPlanet.getGroups();
+ for (PlanetGroup group : groups) {
+ // TODO needs pojo wrapping from planet
+ list.add(group);
+ }
+ } catch (Exception e) {
+ log.error("ERROR: getting groups", e);
+ }
+ return list;
+ }
+
+
+ /**
+ * Get PlanetGroup by handle.
+ * @param groupHandle Handle of PlanetGroup to fetch.
+ * @return PlaneGroup specified by handle.
+ */
+ public PlanetGroup getGroup(String groupHandle) {
+ PlanetGroup group = null;
+ try {
+ PlanetManager planetManager =
PlanetFactory.getPlanet().getPlanetManager();
+ Planet defaultPlanet =
planetManager.getPlanet(DEFAULT_PLANET_HANDLE);
+ // TODO needs pojo wrapping from planet
+ group = planetManager.getGroup(defaultPlanet, groupHandle);
+ } catch (Exception e) {
+ log.error("ERROR: getting group", e);
+ }
+ return group;
+ }
+
+
+ public String getPlanetURL() {
+ return planetUrlStrategy.getPlanetURL("ignored");
+ }
+
+
+ public String getPlanetGroupURL(String group, int pageNum) {
+ return planetUrlStrategy.getPlanetGroupURL("ignored", group, pageNum);
+ }
+
+
+ public String getPlanetFeedURL(String group, String format) {
+ return planetUrlStrategy.getPlanetGroupFeedURL("ignored", group,
format);
+ }
}
Modified:
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java?rev=598055&r1=598054&r2=598055&view=diff
==============================================================================
---
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
(original)
+++
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
Sun Nov 25 13:09:21 2007
@@ -35,6 +35,7 @@
import org.apache.roller.util.RegexUtil;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.pojos.WeblogPermission;
+import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
import org.apache.roller.weblogger.ui.rendering.util.ParsedRequest;
import org.apache.roller.weblogger.util.URLUtilities;
import org.apache.roller.weblogger.util.Utilities;
@@ -141,11 +142,16 @@
}
return false;
}
-
+
public boolean isUserAuthenticated() {
return (parsedRequest.getAuthenticUser() != null);
}
-
+
+ public UserWrapper getAuthenticatedUser() {
+ return parsedRequest.getAuthenticUser() != null
+ ? UserWrapper.wrap(parsedRequest.getUser()) : null;
+ }
+
//-------------------------------------------------------------- Date utils
/**
* Return date for current time.