Note: this is a DRAFT
Introduction
Note: The following Integration Guide is aimed at OFBiz Developers with a Basic Knowledge of the actual System.
...
Code Block | ||||
---|---|---|---|---|
| ||||
package org.brandsparadise.cms; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.util.Map; import java.net.*; import junit.framework.TestCase; import org.ofbiz.service.DispatchContext; import org.ofbiz.service.ServiceUtil; /*\* * Base class for OFBiz Test Tools test case implementations. \*/ public abstract class Magnolia extends TestCase { public static final String module = Magnolia.class.getName(); public static String cmsUrl = "http://www.google.com"; /*\* * runs a query on a url and return the results \* \*/ public static Map runCMSQuery(DispatchContext dctx, Map context) { try { // get Connection StringBuilder result = new StringBuilder(); byte\[\] buffer = new byte[8192]; InputStream s; URL url = new URL(cmsUrl + context.get("query").toString()); s = url.openStream(); int size = 0; do { size = s.read(buffer); if (size != -1) result.append(new String(buffer, 0, size)); } while (size \!= \-1); context = ServiceUtil.returnSuccess(); context.put("queryResult", result.toString()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); context = ServiceUtil.returnError(e.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); context = ServiceUtil.returnError(e.toString()); } // Debug.log("Query Result: "+results.toString()); return context; } public static void main(String\[\] args) { junit.textui.TestRunner.run(Magnolia.class); System.exit(0); } } |
Left to be Done
The above should fetch and render any content available. Of course, this is only a basic step to what you wish to accomplish. If you actually want to further integrate the system, I recommend to create XML files in Magnolia in which the content is moved between numbered boxes (remember to use the <![CDATA[ Placeholder ]]> brackets if you wish to include html content in the xml file) and have OFBiz handle these xml data files accordingly...
Though this is a working solution, I am not 100% satisfied with this approach, as Magnolia is left as an independent platform. There is a way to integrate Magnolia even further, but it would require the content to be access through both magnolias' and Ofbiz' filter chains...