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. |
[ 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. |
Free forum by Nabble | Edit this page |