You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Al Byers (JIRA)" <ji...@apache.org> on 2007/08/16 19:35:31 UTC
[jira] Created: (OFBIZ-1208) Adding GeoRSS functionality
Adding GeoRSS functionality
---------------------------
Key: OFBIZ-1208
URL: https://issues.apache.org/jira/browse/OFBIZ-1208
Project: OFBiz
Issue Type: New Feature
Components: content
Affects Versions: SVN trunk
Reporter: Al Byers
Priority: Minor
I did some work to add a GeoRSS interface to OFBiz, but there is no clean place to put an example right now, so I am starting this issue to document the work that I did. GeoRSS is a standard that will let you point-of-interest markers in Google, Yahoo or Microsoft maps (see http://docs.codehaus.org/display/GEOSDOC/GeoRSS)
I basically just took Andrew Z's generateBlogRssFeed service and add:
GeoRSSModule geoRSSModule = new W3CGeoModuleImpl();
Double lon = v.getDouble("longitude");
Double lat = v.getDouble("latitude");
//GeoRSSModule geoRSSModule = new SimpleModuleImpl();
if (lon != null && lat != null) {
Position pos = new Position( lat.doubleValue(), lon.doubleValue());
geoRSSModule.setPosition(pos);
entry.getModules().add(geoRSSModule);
Debug.logInfo("generateEntryList(2) entry:" + entry, module);
entries.add(entry);
}
in the generateEntryList
The "v" object comes from an app specific entity, so there is no place to put an example in OFBiz right now. I imagine that one will occur to me.
The other thing to do is include the GeoRSSModule and related code from the http://georss.geonames.org/ site.
When I downloaded the georss-rome-0.9.8.jar file, the modules were not found. I ended up downloading the source jar and building it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (OFBIZ-1208) Adding GeoRSS functionality
Posted by "Al Byers (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OFBIZ-1208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12545587 ]
Al Byers commented on OFBIZ-1208:
---------------------------------
Here are some more code snippets.
My controller.xml file has these:
<!--handler name="wfs" type="view" class="org.ofbiz.webapp.view.WfsViewHandler"/-->
<handler name="rome" type="request" class="org.ofbiz.webapp.event.RomeEventHandler"/>
...
<request-map uri="ViewCustomRssFeed">
<security https="false" auth="false"/>
<event type="rome" invoke="generateCustomRssFeed"/>
<response name="success" type="none"/>
<response name="error" type="view" value="error"/>
</request-map>
Here is the code for generateCustomRssFeed:
public static Map generateCustomRssFeed(DispatchContext dctx, Map context) {
Debug.logInfo("generateWellCustomRssFeed(0) context:" + context, module);
GenericValue userLogin = (GenericValue) context.get("userLogin");
String entryLink = (String) context.get("entryLink");
String feedType = (String) context.get("feedType");
Locale locale = (Locale) context.get("locale");
// create the main link
String mainLink = (String) context.get("mainLink");
LocalDispatcher dispatcher = dctx.getDispatcher();
GenericDelegator delegator = dctx.getDelegator();
// get the main blog content
GenericValue content = null;
// create the feed
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setLink(mainLink);
feed.setTitle("Granite Well RSS Feed");
feed.setDescription("Granite Well RSS Feed");
Debug.logInfo("generateCustomRssFeed(1) feed:" + feed, module);
feed.setEntries(generateEntryList(dispatcher, delegator, entryLink, locale, userLogin));
Map resp = ServiceUtil.returnSuccess();
resp.put("wireFeed", feed.createWireFeed());
return resp;
}
public static List generateEntryList(LocalDispatcher dispatcher, GenericDelegator delegator, String entryLink, Locale locale, GenericValue userLogin) {
List entries = FastList.newInstance();
List customList = null;
Map nullMap = null;
try {
wellList = delegator.findByAnd("CustomEntity", nullMap);
} catch (GenericEntityException e) {
Debug.logError(e, module);
}
if (UtilValidate.isEmpty(customList)) {
return entries;
}
Iterator i = wellList.iterator();
while (i.hasNext()) {
GenericValue v = (GenericValue) i.next();
Debug.logInfo("generateEntryList(1) v:" + v, module);
String sub = v.getString("customName");
if (sub != null) {
String thisLink = entryLink + "?customId=" + v.getString("customId");
SyndContent desc = new SyndContentImpl();
desc.setType("text/plain");
desc.setValue(sub);
SyndEntry entry = new SyndEntryImpl();
entry.setTitle(v.getString("customName"));
entry.setPublishedDate(v.getTimestamp("createdStamp"));
entry.setDescription(desc);
entry.setLink(thisLink);
//entry.setAuthor((v.getString("createdByUserLogin")));
GeoRSSModule geoRSSModule = new W3CGeoModuleImpl();
Double lon = v.getDouble("longitude");
Double lat = v.getDouble("latitude");
//GeoRSSModule geoRSSModule = new SimpleModuleImpl();
if (lon != null && lat != null) {
Position pos = new Position( lat.doubleValue(), lon.doubleValue());
geoRSSModule.setPosition(pos);
entry.getModules().add(geoRSSModule);
Debug.logInfo("generateEntryList(2) entry:" + entry, module);
entries.add(entry);
}
}
}
return entries;
}
I should mention that this work was sponsored by HotWax.
> Adding GeoRSS functionality
> ---------------------------
>
> Key: OFBIZ-1208
> URL: https://issues.apache.org/jira/browse/OFBIZ-1208
> Project: OFBiz
> Issue Type: New Feature
> Components: content
> Affects Versions: SVN trunk
> Reporter: Al Byers
> Priority: Minor
>
> I did some work to add a GeoRSS interface to OFBiz, but there is no clean place to put an example right now, so I am starting this issue to document the work that I did. GeoRSS is a standard that will let you point-of-interest markers in Google, Yahoo or Microsoft maps (see http://docs.codehaus.org/display/GEOSDOC/GeoRSS)
> I basically just took Andrew Z's generateBlogRssFeed service and add:
> GeoRSSModule geoRSSModule = new W3CGeoModuleImpl();
> Double lon = v.getDouble("longitude");
> Double lat = v.getDouble("latitude");
> //GeoRSSModule geoRSSModule = new SimpleModuleImpl();
> if (lon != null && lat != null) {
> Position pos = new Position( lat.doubleValue(), lon.doubleValue());
> geoRSSModule.setPosition(pos);
> entry.getModules().add(geoRSSModule);
> Debug.logInfo("generateEntryList(2) entry:" + entry, module);
> entries.add(entry);
> }
> in the generateEntryList
> The "v" object comes from an app specific entity, so there is no place to put an example in OFBiz right now. I imagine that one will occur to me.
> The other thing to do is include the GeoRSSModule and related code from the http://georss.geonames.org/ site.
> When I downloaded the georss-rome-0.9.8.jar file, the modules were not found. I ended up downloading the source jar and building it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.