<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jfrank &#187; coldfusion</title>
	<atom:link href="http://www.joshuafrankamp.com/blog/category/coldfusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joshuafrankamp.com/blog</link>
	<description>technology and some random stuff</description>
	<lastBuildDate>Fri, 12 Feb 2010 21:11:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Magnolia and Railo Part 2 Redux</title>
		<link>http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-redux/</link>
		<comments>http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-redux/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 23:52:47 +0000</pubDate>
		<dc:creator>jfrank</dc:creator>
				<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[magnolia]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.joshuafrankamp.com/blog/?p=173</guid>
		<description><![CDATA[Here is the example app live from Magnolia and Railo Part 2. I fixed something in the config that was blocking import as well&#8230; so if anyone tried it let me know.
 http://magnolia-railo-demo.joshuafrankamp.com/
If anyone is interested in logging in, let me know and I will give you some credentials to log in and poke around.
For [...]]]></description>
			<content:encoded><![CDATA[<p>Here is the example app live from <a href="http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-templating-and-paragraphs/">Magnolia and Railo Part 2</a>. I fixed something in the config that was blocking import as well&#8230; so if anyone tried it let me know.</p>
<p><a href="http://magnolia-railo-demo.joshuafrankamp.com/"> http://magnolia-railo-demo.joshuafrankamp.com/</a></p>
<p>If anyone is interested in logging in, let me know and I will give you some credentials to log in and poke around.</p>
<p>For some reason, this is performing crazy fast right now. On the order of 100 ms, across the country network lag included, on an extremely underpowered rackspace cloud machine (256 megs of ram, running mysql, php, httpd, ngnix and tomcat for this app).</p>
<p>Turn on your firebug or chrome inspector and compare it to your CMS&#8230;</p>
<p>I defy any other pure Railo/CFML CMS from topping that for a single uncached hit with three custom cf paragraphs&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magnolia and Railo Part 2: Templating and Paragraphs</title>
		<link>http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-templating-and-paragraphs/</link>
		<comments>http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-templating-and-paragraphs/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 05:50:57 +0000</pubDate>
		<dc:creator>jfrank</dc:creator>
				<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[magnolia]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.joshuafrankamp.com/blog/?p=79</guid>
		<description><![CDATA[This is part two in a three part series on how to make Magnolia CMS and Railo work together beautifully.
If you missed part one you&#8217;ll need to have read it and done all steps to get anything out of this.
Step One: Wipe out your repositories folder
We&#8217;re starting over with content, so at this point I am [...]]]></description>
			<content:encoded><![CDATA[<p>This is part two in a three part series on how to make Magnolia CMS and Railo work together beautifully.</p>
<p>If you missed part one you&#8217;ll need to have <a href="http://www.joshuafrankamp.com/blog/magnolia-and-railo-together-at-last/">read it</a> and done all steps to get anything out of this.</p>
<h3>Step One: Wipe out your repositories folder</h3>
<p>We&#8217;re starting over with content, so at this point I am assuming you dont have anything in your website tree that is not replaceable. If you have something you want to keep, export it first. This is /repositories in the webroot by default, and is the location that magnolia has stored its derby database. Delete it.</p>
<h3>Step Two: Get the magnolia-railo-sample files</h3>
<p>Export some sample files and configuration with subversion.</p>
<pre>svn export https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/ tempWebroot</pre>
<h3>Step Three: Merge the sample files</h3>
<p>Copy the contents of tempWebRoot into your webroot, this will overwrite the two files we wrote last time, and add many more.</p>
<h3>Step Four: Start up your container</h3>
<p>Bootstrapping of the app will occur. While it does, lets go over some of the files that I have prepared for you in this sample.</p>
<ol>
<li>Adding a template renderer
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.template-renderers.cfm.xml">config.modules.templating.template-renderers.cfm.xml</a></li>
<li>This is required to bind the cfm type to a backing class. We will use the JSP renderer, because it is a dispatch model that is native to Railo since it is a web app.</li>
</ol>
</li>
<li>Creating a template definition node, and backing cfm
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.templates.sampleTemplate.xml">config.modules.templating.templates.sampleTemplate.xml</a></li>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/template.cfm">template.cfm</a> with some <a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/assets/">assets/</a> that it needs to render properly</li>
<li>This is a specific template instance, that in a normal magnolia application would represent one of many template choices. For this example, we will create a simple template.</li>
</ol>
</li>
<li>Creating a cf include paragraph definition, dialog, and backing cfm
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.paragraphs.cf.xml">config.modules.templating.paragraphs.cf.xml</a></li>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.paragraphs.cf.xml"></a><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.dialogs.cf.xml">config.modules.templating.dialogs.cf.xml</a></li>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/cfinclude.cfm">cfinclude.cfm</a></li>
</ol>
</li>
<li>Creating an example content style &#8220;Whats New&#8221; paragraph, dialog, and backing cfm
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.paragraphs.whatsNew.xml">config.modules.templating.paragraphs.whatsNew.xml</a></li>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.dialogs.whatsNew.xml">config.modules.templating.dialogs.whatsNew.xml</a></li>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/whatsnew.cfm">whatsnew.cfm</a></li>
</ol>
</li>
<li>Creating a page dialog, this will be an editor for page level properties
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/config.modules.templating.dialogs.page-properties.xml">config.modules.templating.dialogs.page-properties.xml</a></li>
</ol>
</li>
<li>Example Page
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/WEB-INF/bootstrap/common/website.index.xml">website.index.xml</a></li>
<li>This page uses the sampleTemplate, and pulls in the example paragraph types in paragraph instances that show them off.  It also allows access to the page properties dialog.</li>
</ol>
</li>
<li>Magnolia Tag Libraries
<ol>
<li><a href="https://www.joshuafrankamp.com/svn/incubator/magnolia-railo-sample/trunk/META-INF/cms-taglib.tld">cms-taglib.tld</a></li>
<li>These are typically in the magnolia jars, but we need them out where CF can get ahold of them.</li>
</ol>
</li>
</ol>
<h3>Step Five: Hit /index</h3>
<p>Magnolia will render the node at the path /index. Since this node is configured in the magnolia administrator to use the simpleTemplate template, it will include the definition of that template to render the page. The templatePath for simpleTemplate is /template.cfm which is a traditional CFML file on disk. At this point the standard Railo request lifecycle will start, including Application.cf(c|m). Then the file will execute, with one signifigant difference. The magnolia context has been set up, and some request scope variables have already been set for easy access to magnolia state information about the page.</p>
<p>A few notes about parts of the example template.cfm</p>
<ul>
<li> The tag libraries give simple access to magnolia controls and data structures. These allow you to render magnolia chrome inline in CFML.Example:
<pre style="height: 3em;">&lt;cfimport taglib="/tags/cms" prefix="cmsmod" /&gt;
&lt;cfimport taglib="/META-INF/cms-taglib.tld" prefix="cms" /&gt;</pre>
</li>
<li> There are three ways to read information from the content repository. The tag library, request scope context objects, and instantiation of singleton magnolia api objects. They all get the information from the same underlying jcr, but with varying levels of complexity and power.Example:
<pre style="height: 3em;">&lt;cms:setNode var="page" /&gt;...
&lt;title&gt;#page['title']#&lt;/title&gt;</pre>
<p>This pulls the properties from the current content node into a Java Map (struct) whose keys and values give you access to the properties. You can also get at the same information through request['state'] which the reader could dump out and traverse to find all kinds of wonderful things in the <a href="http://dev.magnolia-cms.com/ref/4.2.3/magnolia-core/apidocs/info/magnolia/cms/core/AggregationState.html">api</a></li>
<li> Paragraphs are at the heart of everything in Magnolia. They are the single reason for having templates, is the content you want to put on them. By default, Magnolia dispatches the requests for paragraphs to paragraph handlers which in turn for Java technologies, dispatch them as includes through the web app container. This is the point of failure for a technology like Railo, because each request in Railo assumes that it is the beginning and end of that request. It tries to read multi part data on the inbound request, it tries to set headers and response sizes on the outbound response. That is problematic for paragraphs and a big sticking point in the integration between Railo and Magnolia, and it is also not a problem anymore!<br />
Fortunately, Railo includes its own custom tag concept, and it is simple to implement around the problem. Replacing container includes with  calls in a reimplementation of  (contrary to its name, this is the tag responsible for including <em>paragraphs</em>, not templates). Look for &lt;cmsmod: includeTemplate /&gt; custom tag calls, in a different namespace. That is the custom implementation of the &lt;cms:includeTemplate /&gt; that would have required going outside the current Railo request.Example:</p>
<pre>&lt;div id="center"&gt;
	&lt;cms:contentNodeIterator contentNodeCollectionName="main"&gt;
		&lt;cmsmod:includeTemplate /&gt;
	&lt;/cms:contentNodeIterator&gt;
	&lt;cms:newBar contentNodeCollectionName="main" paragraph="cf,whatsNew" contentnodename="mgnlNew"/&gt;
	&lt;hr /&gt;
&lt;/div&gt;</pre>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-templating-and-paragraphs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Magnolia and Railo, Together at Last</title>
		<link>http://www.joshuafrankamp.com/blog/magnolia-and-railo-together-at-last/</link>
		<comments>http://www.joshuafrankamp.com/blog/magnolia-and-railo-together-at-last/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 21:19:12 +0000</pubDate>
		<dc:creator>jfrank</dc:creator>
				<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[magnolia]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.joshuafrankamp.com/blog/?p=55</guid>
		<description><![CDATA[Railo and Magnolia CMS are finally together. It&#8217;s been a bit of a bumpy road, what with issues arising immediately when they first met. A casual observer might think the relationship was doomed. But a funny thing happened over the course of the last year, Railo changed for the better and for that matter so [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.getrailo.com/">Railo</a> and <a href="http://www.magnolia-cms.com/">Magnolia CMS</a> are finally together. It&#8217;s been a bit of a bumpy road, what with <a href="http://jira.jboss.org/jira/browse/RAILO-284">issues</a> <a href="http://jira.jboss.org/jira/browse/RAILO-139">arising</a><a href="http://jira.jboss.org/jira/browse/RAILO-282"> immediately</a> when they first met. A casual observer might think the relationship was doomed. But a funny thing happened over the course of the last year, Railo changed for the better and for that matter so did Magnolia. I&#8217;m proud to say they&#8217;ve even <a href="http://www.magnolia-cms.com/home/customers/case-studies/jboss.html">moved in</a> to the same bulding <a href="http://www.jboss.org/railo/">at JBoss</a> (in a matter of speaking). From what I hear the landlord thinks the world of both of them but they have still led separate lives.</p>
<p>Until now.</p>
<p>This will be the first in a series of magnolia-railo merged app tutorials. Part one will walk through the merging of the two web apps into one. <a href="http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-templating-and-paragraphs/">Part two</a> shows how to enable Railo templating and explore the interaction between Magnolia and Railo. Part three is about the dark side, potential problems and workarounds.</p>
<p>Before we dive in, I will address the question &#8220;why should these two technologies be merged?&#8221; It is simple really. Magnolia is a superior CMS to anything offered in the CFML world, and has amazing interoperability with other technologies. Railo on the other hand, blows the pants off any of the native templating options available in Magnolia and its rapid and powerful tag based language easily unlocks the power of Magnolia&#8217;s <a href="http://jackrabbit.apache.org/">Jackrabbit JCR</a>. In short, they were made for each other.</p>
<p>Lets put these two together:</p>
<ol>
<li>Download the latest railo custom all os war, extract to /merge-target. I&#8217;ll refer to this directory as the location of our new merged app, however you can name it what you wish.</li>
<li>Delete these files from /merge-target/WEB-INF/lib These files overlap with magnolia&#8217;s jars.
<ol>
<li>apache-jakarta-commons-codec.jar</li>
<li>apache-jakarta-commons-collections.jar</li>
<li>apache-jakarta-commons-fileupload.jar</li>
<li>apache-jakarta-commons-httpclient.jar</li>
<li>apache-jakarta-commons-io.jar</li>
<li>apache-jakarta-commons-lang.jar</li>
<li>apache-jakarta-oro.jar</li>
<li>apache-lucene.jar</li>
<li>backport-util-concurrent.jar</li>
<li>concurrent.jar</li>
<li>PDFBox.jar</li>
</ol>
</li>
<li>Download the latest railo patch (currently 3.1.2.006.rc). Put it in /merge-target/WEB-INF/lib/railo-server/patches/</li>
<li>Download Magnolia Community Edition war extract to /magnolia-temp</li>
<li>Copy /magnolia-temp/WEB-INF/lib/* to /merge-target/WEB-INF/lib/* There should be no file name conflicts.</li>
<li>Copy /magnolia-temp/WEB-INF/config to /merge-target/WEB-INF/config</li>
<li>Merge web.xmls. Use Magnolia&#8217;s xml header with namespaces! It doesn&#8217;t like anything else, because it reads it in at runtime. Here is the one I created:
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"&gt;
  &lt;description&gt;Magnolia&lt;/description&gt;
  &lt;display-name&gt;magnolia&lt;/display-name&gt;

  &lt;distributable/&gt;
  &lt;filter&gt;
    &lt;display-name&gt;Magnolia global filters&lt;/display-name&gt;
    &lt;filter-name&gt;magnoliaFilterChain&lt;/filter-name&gt;
    &lt;filter-class&gt;info.magnolia.cms.filters.MgnlMainFilter&lt;/filter-class&gt;
  &lt;/filter&gt;
  &lt;filter-mapping&gt;
    &lt;filter-name&gt;magnoliaFilterChain&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
    &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
    &lt;dispatcher&gt;ERROR&lt;/dispatcher&gt;
  &lt;/filter-mapping&gt;
  &lt;listener&gt;
    &lt;listener-class&gt;info.magnolia.cms.servlets.MgnlServletContextListener&lt;/listener-class&gt;
  &lt;/listener&gt;

	&lt;servlet&gt;
		&lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
		&lt;description&gt;CFML runtime Engine&lt;/description&gt;
		&lt;servlet-class&gt;railo.loader.servlet.CFMLServlet&lt;/servlet-class&gt;
		&lt;init-param&gt;
	      &lt;param-name&gt;configuration&lt;/param-name&gt;
	      &lt;param-value&gt;/WEB-INF/railo/&lt;/param-value&gt;
	      &lt;description&gt;Configuraton directory&lt;/description&gt;
	    &lt;/init-param&gt;
		&lt;!-- init-param&gt;
	      &lt;param-name&gt;railo-server-root&lt;/param-name&gt;
	      &lt;param-value&gt;.&lt;/param-value&gt;
	      &lt;description&gt;directory where railo root directory is stored&lt;/description&gt;
	    &lt;/init-param --&gt;
		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;AMFServlet&lt;/servlet-name&gt;
		&lt;description&gt;AMF Servlet for flash remoting&lt;/description&gt;
		&lt;servlet-class&gt;railo.loader.servlet.AMFServlet&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;FileServlet&lt;/servlet-name&gt;
		&lt;description&gt;File Servlet for simple files&lt;/description&gt;
		&lt;servlet-class&gt;railo.loader.servlet.FileServlet&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
	&lt;/servlet&gt;	 

	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.cfm&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.cfml&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.cfc&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;AMFServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/flashservices/gateway/*&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;FileServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt; 

&lt;welcome-file-list&gt;
	  &lt;welcome-file&gt;index.cfm&lt;/welcome-file&gt;
	&lt;welcome-file&gt;index.cfml&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

&lt;/web-app&gt;</pre>
</li>
<li>Create file /merge-target/WEB-INF/bootstrap/common/config.server.filters.bypasses.railo.xml
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;sv:node sv:name="railo" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;sv:property sv:name="jcr:primaryType" sv:type="Name"&gt;
    &lt;sv:value&gt;mgnl:contentNode&lt;/sv:value&gt;
  &lt;/sv:property&gt;
  &lt;sv:property sv:name="jcr:uuid" sv:type="String"&gt;
    &lt;sv:value&gt;11577b1a-3123-4cae-80a9-96c1cd5c27ad&lt;/sv:value&gt;
  &lt;/sv:property&gt;
  &lt;sv:property sv:name="class" sv:type="String"&gt;
    &lt;sv:value&gt;info.magnolia.voting.voters.URIStartsWithVoter&lt;/sv:value&gt;
  &lt;/sv:property&gt;
  &lt;sv:property sv:name="pattern" sv:type="String"&gt;
    &lt;sv:value&gt;/railo-context&lt;/sv:value&gt;
  &lt;/sv:property&gt;
  &lt;sv:node sv:name="MetaData"&gt;
    &lt;sv:property sv:name="jcr:primaryType" sv:type="Name"&gt;
      &lt;sv:value&gt;mgnl:metaData&lt;/sv:value&gt;
    &lt;/sv:property&gt;
    &lt;sv:property sv:name="mgnl:activated" sv:type="Boolean"&gt;
      &lt;sv:value&gt;false&lt;/sv:value&gt;
    &lt;/sv:property&gt;
    &lt;sv:property sv:name="mgnl:activatorid" sv:type="String"&gt;
      &lt;sv:value&gt;superuser&lt;/sv:value&gt;
    &lt;/sv:property&gt;
    &lt;sv:property sv:name="mgnl:authorid" sv:type="String"&gt;
      &lt;sv:value&gt;superuser&lt;/sv:value&gt;
    &lt;/sv:property&gt;
    &lt;sv:property sv:name="mgnl:creationdate" sv:type="Date"&gt;
      &lt;sv:value&gt;2007-04-25T18:23:31.784+02:00&lt;/sv:value&gt;
    &lt;/sv:property&gt;
    &lt;sv:property sv:name="mgnl:lastaction" sv:type="Date"&gt;
      &lt;sv:value&gt;2007-05-02T17:00:15.025+02:00&lt;/sv:value&gt;
    &lt;/sv:property&gt;
    &lt;sv:property sv:name="mgnl:lastmodified" sv:type="Date"&gt;
      &lt;sv:value&gt;2010-01-14T15:46:52.318-08:00&lt;/sv:value&gt;
    &lt;/sv:property&gt;
  &lt;/sv:node&gt;
&lt;/sv:node&gt;</pre>
</li>
<li>Set magnolia.update.auto=true in /WEB-INF/config/default/magnolia.properties</li>
<li>Start your container such as tomcat.</li>
<li>Go to /.magnolia, login superuser/superuser</li>
<li>Navigate to Configuration. server-&gt;filters-&gt;bypasses. You will see the railo node appears, in the configuration bypasses. If you inspect it you will see it is a uriStartsWithVoter that is configured with /railo-context. This node gives you bypassing of magnolia filters for any url starting with /railo-context.</li>
<li>Because of this you can hit /railo-context/admin/index.cfm and setup railo.</li>
</ol>
<p>The bypass rule is required because Magnolia controls the url space with its chain of filters. You can right click on it and copy it to make another arbitrary bypass that is applied immediately. The filters are configurable and this gives you flexibility in fronting CFML apps with arbitrary urls configurable at runtime. At this point you can build anything you want using Magnolia&#8217;s <a href="http://documentation.magnolia-cms.com/templating-guide.html">built in templating</a>. The bypasses allow you to run standalone CFML apps in the same JVM, under specified url paths (/myapp/*).</p>
<p>That is it for part one. The <a href="http://www.joshuafrankamp.com/blog/magnolia-and-railo-part-2-templating-and-paragraphs/">next article</a> highlights how your templates and paragraphs can be built in standard CFML, and the interaction between Magnolia and Railo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshuafrankamp.com/blog/magnolia-and-railo-together-at-last/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>cf admin api</title>
		<link>http://www.joshuafrankamp.com/blog/cf-admin-api/</link>
		<comments>http://www.joshuafrankamp.com/blog/cf-admin-api/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 00:43:37 +0000</pubDate>
		<dc:creator>jfrank</dc:creator>
				<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[cf]]></category>
		<category><![CDATA[cfadminapi]]></category>
		<category><![CDATA[confusingerrormessages]]></category>

		<guid isPermaLink="false">http://www.joshuafrankamp.com/blog/?p=6</guid>
		<description><![CDATA[          Cookie name &#8220;CFAUTHORIZATION_SPLAT SPLAT&#8221; is a reserved token
The error occurred in administrator.cfc: line 116
Today I ran into a weird bug in the cf admin api, if you attempt to perform a login such as this:
&#60;cfscript&#62;
loggedin = createObject(&#8220;component&#8221;,&#8221;cfide.adminapi.administrator&#8221;).login(&#8216;dsafdsafsad&#8217;);
&#60;/cfscript&#62;
It will bomb with the above error if your [...]]]></description>
			<content:encoded><![CDATA[<p><strong>          Cookie name &#8220;CFAUTHORIZATION_SPLAT SPLAT&#8221; is a reserved token</strong><br />
The error occurred in <strong>administrator.cfc: line 116</strong></p>
<p><strong><font style="color: black; font-family: verdana; font-style: normal; font-variant: normal; font-weight: normal; font-size: 8pt; line-height: 11pt; font-size-adjust: none; font-stretch: normal">Today I ran into a weird bug in the cf admin api, if you attempt to perform a login such as this:</font></strong></p>
<p><strong><font style="color: black; font-family: verdana; font-style: normal; font-variant: normal; font-weight: normal; font-size: 8pt; line-height: 11pt; font-size-adjust: none; font-stretch: normal">&lt;cfscript&gt;<br />
loggedin = createObject(&#8220;component&#8221;,&#8221;cfide.adminapi.administrator&#8221;).login(&#8216;dsafdsafsad&#8217;);<br />
&lt;/cfscript&gt;</font></strong></p>
<p><strong><font style="color: black; font-family: verdana; font-style: normal; font-variant: normal; font-weight: normal; font-size: 8pt; line-height: 11pt; font-size-adjust: none; font-stretch: normal">It will bomb with the above error if your application name contains a space, the error is slightly different whether you use Application.cfc or &lt;cfapplication&gt; style.</font></strong></p>
<p><strong><font style="color: black; font-family: verdana; font-style: normal; font-variant: normal; font-weight: normal; font-size: 8pt; line-height: 11pt; font-size-adjust: none; font-stretch: normal">The fix, thanks to <a href="http://www.barneyb.com/barneyblog/">Barney </a>is to remove the space.</font></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshuafrankamp.com/blog/cf-admin-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
