<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>E2.0 Labs</title>
	<atom:link href="http://e20labs.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://e20labs.org</link>
	<description>Exploring Content Management and Social Computing Technologies</description>
	<lastBuildDate>Tue, 23 Apr 2013 21:38:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='e20labs.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>E2.0 Labs</title>
		<link>http://e20labs.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://e20labs.org/osd.xml" title="E2.0 Labs" />
	<atom:link rel='hub' href='http://e20labs.org/?pushpress=hub'/>
		<item>
		<title>A Mountain Lion Ate My JDeveloper!!</title>
		<link>http://e20labs.org/2012/07/26/a-mountain-lion-ate-my-jdeveloper/</link>
		<comments>http://e20labs.org/2012/07/26/a-mountain-lion-ate-my-jdeveloper/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 13:26:25 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://e20labs.org/?p=87</guid>
		<description><![CDATA[I wrote a quick help post on re-configuring JDeveloper (or really any Java IDE/program) on OS X Mountain Lion. Find the article here.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=87&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I wrote a quick help post on re-configuring JDeveloper (or really any Java IDE/program) on OS X Mountain Lion.</p>
<p><a title="ChadThompson.me - Mountain Lion and JDeveloper" href="http://chadthompson.me/2012/07/26/a-mountain-lion-ate-my-jdeveloper/">Find the article here.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=87&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2012/07/26/a-mountain-lion-ate-my-jdeveloper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>
	</item>
		<item>
		<title>Making A Move</title>
		<link>http://e20labs.org/2012/07/12/making-a-move/</link>
		<comments>http://e20labs.org/2012/07/12/making-a-move/#comments</comments>
		<pubDate>Thu, 12 Jul 2012 02:33:46 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://e20labs.wordpress.com/?p=84</guid>
		<description><![CDATA[To my readers: I&#8217;m making a move today &#8211; away from this blog hosted on the WordPress.com domain to a different domain. I&#8217;ll be writing on the new site about the change and some of the tools and workflows that prompted the change (if not just for personal branding). In the meantime, I invite you &#8230; <a href="http://e20labs.org/2012/07/12/making-a-move/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=84&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h2 id="tomyreaders:">To my readers:</h2>
<p>I&#8217;m making a move today &#8211; away from this blog hosted on the <a href="http://wordpress.com">WordPress.com</a> domain to a different domain. I&#8217;ll be writing on the new site about the change and some of the tools and workflows that prompted the change (if not just for personal branding). In the meantime, I invite you to visit or subscribe to my new blog at:</p>
<p><a href="http://chadthompson.me">ChadThompson.me</a></p>
<p>I&#8217;ll be talking about many of the same things &#8211; Oracle technologies, ADF, WebCenter and the occasional thing I like. I hope you&#8217;ll drop by!</p>
<p><strong>NOTE</strong>: In the meantime, I&#8217;ll be leaving the content that was posted to this blog here, but have moved the content that is here to the new blog as well.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=84&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2012/07/12/making-a-move/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating a &#8216;Save to Instapaper&#8217; Service for Mac OS X</title>
		<link>http://e20labs.org/2012/07/03/creating-a-save-to-instapaper-service-for-mac-os-x/</link>
		<comments>http://e20labs.org/2012/07/03/creating-a-save-to-instapaper-service-for-mac-os-x/#comments</comments>
		<pubDate>Tue, 03 Jul 2012 17:46:15 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">https://e20labs.wordpress.com/?p=77</guid>
		<description><![CDATA[I have a small confession to make: I’m a big Instapaper fan. I’ve used Instapaper as a holding spot for all of those articles that I collect from Twitter, Reeder and a variety of other applications that have Instapaper integration built in. The Instapaper developers have also been nice enough to create a few extras &#8230; <a href="http://e20labs.org/2012/07/03/creating-a-save-to-instapaper-service-for-mac-os-x/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=77&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I have a small confession to make: I’m a big Instapaper fan. I’ve used Instapaper as a holding spot for all of those articles that I collect from <a title="Twitter" href="http://www.twitter.com">Twitter</a>, <a title="Reeder for Mac OS X / iOS" href="http://reederapp.com">Reeder</a> and a variety of other applications that have Instapaper integration built in. The Instapaper developers have also been nice enough to <a title="Instapaper Extras" href="http://www.instapaper.com/extras">create a few extras</a> for adding bookmarks directly to Instapaper for later viewing.</p>
<p>What <strong>is</strong> missing, however, is an easy way of saving the various links that you might get through e-mail or other web pages that you might just want to add to your Instapaper queue directly rather than opening a link, clicking a bookmark, etc. Fortunately, it’s pretty straightforward to roll your own <a href="http://www.macworld.com/article/1163996/how_to_use_services_in_mac_os_x.html">OS X Service</a> to do just that. Let’s take a look at how to create a simple service using OS X’s <a href="http://support.apple.com/kb/HT2488?viewlocale=en_US&amp;locale=en_US">Automator</a> and a dash of Perl.</p>
<h2 id="creatingaservicewithautomator">Creating A Service With Automator</h2>
<p>Creating a service with Automator is simple: when you open automator, simply choose “Service” as a new document type &#8211; Automator will make this service available system-wide. After you create one or two services, you’ll see that Automator is a great tool for customizing your OS X workflows.</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="creating-a-service.png" src="http://e20labs.files.wordpress.com/2012/07/creating-a-service.png?w=554&#038;h=600" alt="Creating a service" width="554" height="600" border="0" /></p>
<h2 id="specifyingserviceinput">Specifying Service Input</h2>
<p>OS X Services also allow you to specify a specific context for a service &#8211; in our case, we want to have the abilty to have the system recognize a URL for submitting to Instapaper; OS X can determine that a string of text (or a link) is a valid URL and will only display our service if our selection is a URL, and not a simple text string.</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="service-url.png" src="http://e20labs.files.wordpress.com/2012/07/service-url.png?w=600&#038;h=66" alt="Service url" width="600" height="66" border="0" /></p>
<h2 id="passingtheurltoascript">Passing the URL to a Script</h2>
<p>Another feature provided by Automator is the abilty to embed a Shell Script (either a traditional UNIX shell such as <code>csh</code>, <code>bash</code>, or even scripts written using perl, python or ruby). Here’s an example of a shell script added to an Automator workflow &#8211; in this case, a perl script that takes our selected URL as input (note the “Pass Input As Arguments” selection in the upper right hand corner), assembles a URL to submit to the [Instapaper Simple API][ipaperbasicapi] and submits to the service. The API will return more information if you want a more complex workflow &#8211; but in this demonstration we’ll simply submit our URL to Instapaper.</p>
<p>(You can search for the services provided by both OS X as well as application services that have been registered with the system in the “library” search.)</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="automator-script.png" src="http://e20labs.files.wordpress.com/2012/07/automator-script.png?w=600&#038;h=498" alt="Automator script" width="600" height="498" border="0" /></p>
<p>You’ll note that through the somewhat unnecessary use of ‘my’ variables that this script could be simple, or quite complex &#8211; a Perl script will be able to use any libraries that are availble to you systemwide if you have any CPAN libraries installed on your system.</p>
<h2 id="notingsuccessorfailurewithgrowl">Noting Success or Failure With Growl</h2>
<p>To finish this service, we’ll also add a simple Growl notification that will notify the user that the service has run successfully. Simply add the Growl notifcation service to the automator workflow:</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="growl-notification.png" src="http://e20labs.files.wordpress.com/2012/07/growl-notification.png?w=600&#038;h=411" alt="Growl notification" width="600" height="411" border="0" /></p>
<p>The notification in this case is also simple: merely a notification that the script has run. A more advanced workflow could also take actions based on the Instapaper API.</p>
<p>The service will now appear wherever OS X recongnizes a URL &#8211; in the case that I’m attempting to solve, I’d like to send links sent to me by e-mail to my Instapaper queue.</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="save-link-instapaper.png" src="http://e20labs.files.wordpress.com/2012/07/save-link-instapaper.png?w=600&#038;h=403" alt="Save link instapaper" width="600" height="403" border="0" /></p>
<p>The article will then be added to your Instapaper queue for reading later &#8211; like the Instapaper client for iPhone:</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="instapaper-iphone.png" src="http://e20labs.files.wordpress.com/2012/07/instapaper-iphone.png?w=400&#038;h=600" alt="Instapaper iphone" width="400" height="600" border="0" /></p>
<p>This simple example demonstrates how easy (and quick!) it can be to customize your OS X system using Automator and shell scripting &#8211; once you create a few services you’ll find system-wide services easy to add to your personal workflows.</p>
<p><span style="text-decoration:underline;"><strong>UPDATE</strong></span>:  Here&#8217;s the text of the perl block I used to create the service:<br />
<code><br />
use LWP::UserAgent;<br />
use HTTP::Request;<br />
## Assemble the URL to submit to Instapaper<br />
my $username='&lt;username&gt;';<br />
my $password='&lt;password&gt;';<br />
my $instapaper_api = 'https://www.instapaper.com/api/add';</p>
<p>my $URL = $instapaper_api."?username=".$username."&amp;password=".$password."&amp;url=".$ARGV[0];<br />
my $agent = LWP::UserAgent-&gt;new(env_proxy=&gt;1, keep_alive=&gt;1, timeout=&gt;30);<br />
my $header = HTTP::Request-&gt;new(GET=&gt;$URL);<br />
my $request = HTTP::Request-&gt;new('GET', $URL, $header);<br />
my $response = $agent-&gt;request($request);</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=77&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2012/07/03/creating-a-save-to-instapaper-service-for-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://e20labs.files.wordpress.com/2012/07/save-link-instapaper.png?w=150" />
		<media:content url="http://e20labs.files.wordpress.com/2012/07/save-link-instapaper.png?w=150" medium="image">
			<media:title type="html">save-link-instapaper.png</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/07/creating-a-service.png" medium="image">
			<media:title type="html">creating-a-service.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/07/service-url.png" medium="image">
			<media:title type="html">service-url.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/07/automator-script.png" medium="image">
			<media:title type="html">automator-script.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/07/growl-notification.png" medium="image">
			<media:title type="html">growl-notification.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/07/save-link-instapaper.png" medium="image">
			<media:title type="html">save-link-instapaper.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/07/instapaper-iphone.png" medium="image">
			<media:title type="html">instapaper-iphone.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes on ADF Security for 11.1.2.2</title>
		<link>http://e20labs.org/2012/06/07/notes-on-adf-security-for-11-1-2-2/</link>
		<comments>http://e20labs.org/2012/06/07/notes-on-adf-security-for-11-1-2-2/#comments</comments>
		<pubDate>Thu, 07 Jun 2012 14:29:39 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[ADF Security]]></category>

		<guid isPermaLink="false">https://e20labs.wordpress.com/?p=66</guid>
		<description><![CDATA[There&#8217;s a bit of activity on the forums about using ADF Security and some problems that users have been having with using the Oracle documentation for creating ADF Faces login pages. I&#8217;m currently working on a full example of creating ADF Faces login pages using JDeveloper 11.1.2.2, but there are two key items that will &#8230; <a href="http://e20labs.org/2012/06/07/notes-on-adf-security-for-11-1-2-2/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=66&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s a bit of activity on <a href="https://forums.oracle.com/forums/forum.jspa?forumID=83">the forums</a> about using ADF Security and some problems that users have been having with using the <a href="http://docs.oracle.com/cd/E26098_01/web.1112/e16182/adding_security.htm#BABDEICH">Oracle documentation for creating ADF Faces login pages</a>.</p>
<p>I&#8217;m currently working on a full example of creating ADF Faces login pages using JDeveloper 11.1.2.2, but there are two key items that will help you develop your own ADF Faces login pages.</p>
<p><strong>First</strong>, the section of the documentation titled &#8216;before you begin&#8217; instructs you to import a few JAR files so that your ManagedBean methods can access WebLogic APIs for user authentication. The instructions here are incorrect for (at least) JDeveloper 11.1.2.2.</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="Enabling ADF Security in a Fusion Web Application - 11g Release 2 (11.1.2.2.0).png" src="http://e20labs.files.wordpress.com/2012/06/enabling-adf-security-in-a-fusion-web-application-11g-release-2-11-1-2-2-0.png?w=600&#038;h=217" alt="Enabling ADF Security in a Fusion Web Application  11g Release 2  11 1 2 2 0" width="600" height="217" border="0" /></p>
<p>Instead, you&#8217;ll want to import the &#8220;WebLogic Remote Client&#8221; library into your JDeveloper project. Access the project libraries by selecting Application -&gt;; Project Properties. In the library dialog, select &#8220;Add Library&#8221;:</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="Project Properties - _Users_cothomps_jdeveloper_Noodles_SecuredApplicationExample_ViewController_ViewController.jpr.png" src="http://e20labs.files.wordpress.com/2012/06/project-properties-_users_cothomps_jdeveloper_noodles_securedapplicationexample_viewcontroller_viewcontroller-jpr_.png?w=600&#038;h=422" alt="Project Properties   Users cothomps jdeveloper Noodles SecuredApplicationExample ViewController ViewController jpr" width="600" height="422" border="0" /></p>
<p>In the &#8220;Add Library&#8221; dialog &#8211; choose the WebLogic Remote Client library:</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="Add Library.jpg" src="http://e20labs.files.wordpress.com/2012/06/add-library.jpg?w=473&#038;h=545" alt="Add Library" width="473" height="545" border="0" /></p>
<p>This will allow you to import the proper libraries for your Managed Bean.</p>
<p>(Reference: forum posts by Frank Nimphius. <a href="https://forums.oracle.com/forums/thread.jspa?messageID=10292600">Here&#8217;s one example of many</a>.)</p>
<p><strong>Second</strong>, you&#8217;ll want to update the login method to use the <tt>URLCallbackHandler</tt> rather than the deprecated <tt>SimpleCallbackHandler</tt>. Here&#8217;s an example method:</p>
<p><code><br />
public String performLogin(){</code></p>
<p>_logger.info(&#8220;Login Requested For User: &#8221; + _username);</p>
<p>String un = _username;<br />
byte[] pw = _password.getBytes();<br />
FacesContext ctx = FacesContext.getCurrentInstance();<br />
HttpServletRequest request =<br />
(HttpServletRequest)ctx.getExternalContext().getRequest();<br />
CallbackHandler handler = new URLCallbackHandler(un, pw);<br />
try {<br />
Subject mySubject = Authentication.login(handler);</p>
<p>ServletAuthentication.runAs(mySubject, request);<br />
ServletAuthentication.generateNewSessionID(request);<br />
String loginUrl = &#8220;/adfAuthentication?success_url=/faces&#8221; +<br />
ctx.getViewRoot().getViewId();<br />
HttpServletResponse response =<br />
(HttpServletResponse)ctx.getExternalContext().getResponse();<br />
sendForward(request, response, loginUrl);<br />
} catch (FailedLoginException fle) {<br />
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,<br />
&#8220;Incorrect Username or Password&#8221;,<br />
&#8220;An incorrect Username or Password&#8221; +<br />
&#8221; was specified&#8221;);<br />
ctx.addMessage(null, msg);<br />
} catch (LoginException le) {<br />
reportUnexpectedLoginError(&#8220;LoginException&#8221;, le);<br />
}<br />
return null;</p>
<p>}</p>
<p>Reference: Andrejus Baranovskis&#8217;s <a href="http://andrejusb.blogspot.in/2010/11/things-you-must-know-about-adf-faces.html">Things You Must Know About ADF Faces Login Page</a>.</p>
<p>You can see a working copy of this <a href="https://github.com/chad-thompson/Noodles/tree/master/SecuredApplicationExample">on GitHub</a>, with the caveat (at this writing) that I haven&#8217;t fully verified everything in source control. Please let me know if you have problems.</p>
<p><strong>Update</strong>: Frank Nimphius pointed me (see example) to a complete example created for 11.1.2.1 available here :</p>
<p><a href="http://www.oracle.com/technetwork/issue-archive/2012/12-jan/o12adf-1364748.html">http://www.oracle.com/technetwork/issue-archive/2012/12-jan/o12adf-1364748.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=66&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2012/06/07/notes-on-adf-security-for-11-1-2-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:thumbnail url="http://e20labs.files.wordpress.com/2012/06/add-library.jpg?w=130" />
		<media:content url="http://e20labs.files.wordpress.com/2012/06/add-library.jpg?w=130" medium="image">
			<media:title type="html">Add-Library.jpg</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/06/enabling-adf-security-in-a-fusion-web-application-11g-release-2-11-1-2-2-0.png" medium="image">
			<media:title type="html">Enabling ADF Security in a Fusion Web Application - 11g Release 2 (11.1.2.2.0).png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/06/project-properties-_users_cothomps_jdeveloper_noodles_securedapplicationexample_viewcontroller_viewcontroller-jpr_.png" medium="image">
			<media:title type="html">Project Properties - _Users_cothomps_jdeveloper_Noodles_SecuredApplicationExample_ViewController_ViewController.jpr.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/06/add-library.jpg" medium="image">
			<media:title type="html">Add Library.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>A Few Notes on A JDeveloper For Mac Tutorial</title>
		<link>http://e20labs.org/2012/05/24/a-few-notes-on-a-jdeveloper-for-mac-tutorial/</link>
		<comments>http://e20labs.org/2012/05/24/a-few-notes-on-a-jdeveloper-for-mac-tutorial/#comments</comments>
		<pubDate>Thu, 24 May 2012 14:00:05 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://e20labs.org/?p=54</guid>
		<description><![CDATA[Chris Muir recently tweeted about the release of a &#8220;JDeveloper on Mac&#8221; viewlet that guides a user through installing JDeveloper on OS X.  Here&#8217;s the link: Viewlet:  Installling JDeveloper on OS X The viewlet is a good overview of how JDeveloper expects certain JAR files from the Apple JDK and how to create symbolic links &#8230; <a href="http://e20labs.org/2012/05/24/a-few-notes-on-a-jdeveloper-for-mac-tutorial/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=54&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Chris Muir recently tweeted about the release of a &#8220;JDeveloper on Mac&#8221; viewlet that guides a user through installing JDeveloper on OS X.  Here&#8217;s the link:</p>
<p style="padding-left:30px;"><a title="Installing JDeveloper on a Mac" href="http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/Mobile_Mac_Install/Mobile_Mac_Install.html?utm_source=dlvr.it&amp;utm_medium=twitter" target="_blank">Viewlet:  Installling JDeveloper on OS X</a></p>
<p>The viewlet is a good overview of how JDeveloper expects certain JAR files from the Apple JDK and how to create symbolic links to allow JDeveloper to load expected JAR files.  (I expect this issue to vanish as the Apple JDK is phased out in favor of the Oracle JDK once JDeveloper makes the move to Java 7.)</p>
<p>I am going to note a nitpicky criticism  and a helpful tip:</p>
<p><strong>Nitpicky criticism</strong>:  The tutorial describes the process for enabling the root user on OS X, which is both not necessary and also discouraged by Apple for security reasons.  You can accomplish the same results (creating symbolic links in files owned by the System user) by invoking the sudo command as an Administrative user.   To do this, you&#8217;ll open a terminal window as an administrative user (likely your normal login) and issue the symbolic link command using sudo, something like</p>
<pre>sudo ln -s [real file name] [link to create]</pre>
<p>This will create the link (after you are prompted to enter your administrative password) without enabling the root user.</p>
<p><strong>Helpful Tip</strong>:  I&#8217;ve always found it useful to create an alias to the JDeveloper executable and placing that alias in the OS X &#8220;Applications&#8221; folder.  With an alias in the Applications folder you can launch JDeveloper from LaunchPad or your favorite keyboard assistant (I&#8217;m a devoted <a title="Alfred" href="http://alfredapp.com" target="_blank">Alfred</a> user) without having to modify system properties.  I tend to need a couple different versions of JDeveloper to support client projects, so I&#8217;ve created symbolic links from the various JDeveloper versions to the Applications folder, which allows me to access the version of JDeveloper that I need for various projects through a few simple keystrokes:</p>
<p style="text-align:center;"><a href="http://e20labs.files.wordpress.com/2012/05/alfred-jdev.png"><img class="aligncenter size-medium wp-image-55" title="alfred-jdev" src="http://e20labs.files.wordpress.com/2012/05/alfred-jdev.png?w=300&#038;h=181" alt="" width="300" height="181" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=54&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2012/05/24/a-few-notes-on-a-jdeveloper-for-mac-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://e20labs.files.wordpress.com/2012/05/alfred-jdev.png?w=150" />
		<media:content url="http://e20labs.files.wordpress.com/2012/05/alfred-jdev.png?w=150" medium="image">
			<media:title type="html">alfred-jdev</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/05/alfred-jdev.png?w=300" medium="image">
			<media:title type="html">alfred-jdev</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing Oracle Java 7 on Mac OS X</title>
		<link>http://e20labs.org/2012/04/30/installing-oracle-java-7-on-mac-os-x/</link>
		<comments>http://e20labs.org/2012/04/30/installing-oracle-java-7-on-mac-os-x/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 16:01:00 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://e20labs.org/?p=40</guid>
		<description><![CDATA[If you&#8217;ve been developing or using Java on Mac OS X, this weekend brought a new development: in the Java ecosystem, Mac OS X developers are now &#8216;first class&#8217; citizens, having direct support for the Java Development Kit (JDK) from the Oracle Java team as of April 26, 2012 for Java 7 Update 4. At &#8230; <a href="http://e20labs.org/2012/04/30/installing-oracle-java-7-on-mac-os-x/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=40&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><!-- Start ScreenSteps Content --></p>
<div class="LessonContent">
<div class="LessonSummary">
<p>If you&#8217;ve been developing or using Java on Mac OS X, this weekend brought a new development: in the Java ecosystem, Mac OS X developers are now &#8216;first class&#8217; citizens, having direct support for the Java Development Kit (JDK) from the Oracle Java team as of April 26, 2012 for Java 7 Update 4. At present, this release for Mac OS X is the &#8220;Developer&#8221; release with a consumer release expected in the fall. For more information about what this release entals, consult the press release for the update:</p>
<p><a title="Oracle - Java SE 7 Press Release" href="http://www.oracle.com/us/corporate/press/1603497" target="_blank">http://www.oracle.com/us/corporate/press/1603497</a></p>
<p>For now, let&#8217;s get to the moment OS X developers have been waiting for &#8211; an up to date JDK!</p>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Log In to the Oracle Technology Network</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid32-media_1335797961153.png?w=532&#038;h=558" alt="wpid32-media_1335797961153.png" width="532" height="558" /></div>
<div class="StepInstructions">
<p>In the past, Java for OS X was provided by Apple through the system Software Update functions &#8211; either for updating or installing new software. With this release, OS X developers will obtain Java system packages from the same repository as Windows and Linux developers through the Oracle Technology Network. (A shortcut is to <a title="Oracle Technology Network - Java" href="http://oracle.com/java" target="_blank">http://oracle.com/java</a> )</p>
<p>A big change for developers that are not part of the Oracle ecosystem &#8211; before downloading you will be prompted to create an account on the Oracle Technology Network, or to sign into an existing account if you&#8217;ve downloaded software from Oracle in the past, or even participated in the Oracle Technology Network forums.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Select The .dmg Package frrom the Software Downloads</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid33-media_1335797991095.png?w=532&#038;h=584" alt="wpid33-media_1335797991095.png" width="532" height="584" /></div>
<div class="StepInstructions">
<p>The immediate thing that OS X developers will notice in the download list is the friendly &#8220;.dmg&#8221; file. You&#8217;ll also have to note that there is only 64-bit support for this development kit &#8211; so it appears that the bare minimum for OS support is 64-bit Leopard, though this install is being performed on 10.7 &#8220;Lion&#8221;. The experience on ealier operating systems may be different, and the installer should perform a check for supported operating system and hardware configurations prior to the installation.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Open the Downloaded DMG File &#8211; Install The Package</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid34-media_1335798146137.png?w=532&#038;h=577" alt="wpid34-media_1335798146137.png" width="532" height="577" /></div>
<div class="StepInstructions">
<p>The installer for the JDK is an OS X Installer package &#8211; double click the package icon to begin the installation.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Begin The Installation</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid35-media_1335798193523.png?w=532&#038;h=422" alt="wpid35-media_1335798193523.png" width="532" height="422" /></div>
<div class="StepInstructions">
<p>The install process is a familar one &#8211; a few introductory screens for a user to ensure that they are installing what they think they are installing, then a confmation step.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Confirm Installation</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid36-media_1335798228623.png?w=532&#038;h=410" alt="wpid36-media_1335798228623.png" width="532" height="410" /></div>
<div class="StepInstructions">
<p>After the initial screns, you&#8217;re eventually prompted to Install the software. At this point the installer will ask you to enter Administrator credentials to the screen, as the installer will write to a System directory &#8211; sorry, no user-specific installs in this package.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Installation Succeeds!</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid37-media_1335798272474.png?w=532&#038;h=401" alt="wpid37-media_1335798272474.png" width="532" height="401" /></div>
<div class="StepInstructions">
<p>The installation is a relatively short one &#8211; the progress bar will note the staus of the install before showing you the &#8216;success&#8217; screen to close the installer. The linked &#8220;ReadMe&#8221; will be useful if you are also using a Java IDE with this release. Specific instructions for using this JDK with NetBeans, Eclipse and IntelliJ are included in the ReadMe file.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Choose The Default SDK In JavaPreferences.app</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid38-media_1335798367972.png?w=532&#038;h=399" alt="wpid38-media_1335798367972.png" width="532" height="399" /></div>
<div class="StepInstructions">
<p>If your installation was successful, there will be a new JDK entry in the JavaPreferences.app (located in System Utilties) &#8211; Java SE 7 from the vendor &#8220;Oracle Corporation&#8221;. If you wish to make JDK 7 the default Java environment, drag the Java SE 7 entry to the top of the list. This will make JDK 7 the default for browsers and other applications using the Java as part of Mac OS X.</p>
<p>This won&#8217;t work for using JDK 7 for applications that require UNIX system settings, so you&#8217;ll also need to note the installation directory for setting JAVA_HOME properties.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Note the Location of JAVA_HOME</h3>
<div class="StepImage" style="margin:10px 0;"><img style="padding:3px;border:1px solid #ccc;" src="http://e20labs.files.wordpress.com/2012/04/wpid39-media_1335799033384.png?w=532&#038;h=146" alt="wpid39-media_1335799033384.png" width="532" height="146" /></div>
<div class="StepInstructions">
<p>The Oracle package installs Java in a different system location than the Apple VM Framework &#8211; in this case, a new folder created by the installer. For running applications that require a JAVA_HOME variable, that value will be</p>
<pre>/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home</pre>
<p>Running the &#8216;java -version&#8217; command will also load the new JVM prior to outputting versioning information, which can serve as a valuable troubleshooting aid should something go wrong during installation.</p>
</div>
</div>
</div>
<p><!-- End ScreenSteps Content --></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=40&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2012/04/30/installing-oracle-java-7-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid32-media_1335797961153.png" medium="image">
			<media:title type="html">wpid32-media_1335797961153.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid33-media_1335797991095.png" medium="image">
			<media:title type="html">wpid33-media_1335797991095.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid34-media_1335798146137.png" medium="image">
			<media:title type="html">wpid34-media_1335798146137.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid35-media_1335798193523.png" medium="image">
			<media:title type="html">wpid35-media_1335798193523.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid36-media_1335798228623.png" medium="image">
			<media:title type="html">wpid36-media_1335798228623.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid37-media_1335798272474.png" medium="image">
			<media:title type="html">wpid37-media_1335798272474.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid38-media_1335798367972.png" medium="image">
			<media:title type="html">wpid38-media_1335798367972.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2012/04/wpid39-media_1335799033384.png" medium="image">
			<media:title type="html">wpid39-media_1335799033384.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Forum Harvest:  Creating a WebCenter Portlet with JSF</title>
		<link>http://e20labs.org/2011/12/08/forum-harvest-creating-a-webcenter-portlet-with-jsf/</link>
		<comments>http://e20labs.org/2011/12/08/forum-harvest-creating-a-webcenter-portlet-with-jsf/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 04:57:16 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://e20labs.wordpress.com/?p=23</guid>
		<description><![CDATA[I ran across an interesting post on the Oracle Technology Network forums the other day &#8211; a user asked a question about navigation within a portlet for deployment within a WebCenter application.  I asked a few questions and the original poster responded with more detail. You can read the original post here. The basic problem &#8230; <a href="http://e20labs.org/2011/12/08/forum-harvest-creating-a-webcenter-portlet-with-jsf/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=23&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I ran across an interesting post on the <a href="http://forums.oracle.com">Oracle Technology Network forums</a> the other day &#8211; a user asked a question about navigation within a portlet for deployment within a WebCenter application.  I asked a few questions and the original poster responded with more detail.</p>
<p>You can read the original post here.</p>
<p>The basic problem the original poster is having:  confusing &#8220;JSR 286&#8243; (or even &#8220;JSR 168&#8243;) portlet development with Java Server Faces (JSF) development.  (You can read about some basic JSR 168 portlet development <a href="http://docs.oracle.com/cd/E12839_01/webcenter.1111/e10273/portlets.htm#BEIJFBEH">here</a>.)  The important difference:  <em>knowing what is controlling the application flow of your portlet</em>.  In the JDeveloper way of developing standards-based portlets, the main point of entry and navigation is through JSP pages and associated action.  If you are creating a Java Server Faces application, the main point of entry and navigation is through the FacesServlet.  The navigation files (faces-config.xml) is a configuration of the FacesServlet.</p>
<p>Thus, it&#8217;s important that your JSF-developed portlet is controlled by FacesServlet, otherwise portlet navigation won&#8217;t work.  Fortunately, Oracle provides a few handy tools to help you create portlets from JSF applications using the &#8220;JSF Portlet Bridge&#8221;.     (The concept is also proposed to the Java Community Process through <a href="http://jcp.org/en/jsr/detail?id=301">JSR 301</a> - so Apache MyFaces and others implements some of the same techniques.)</p>
<p>So in response to the forum post, I&#8217;m going to walk through a JDeveloper-based method for transforming a JSF Application into a portlet.</p>
<p>First, let&#8217;s take a look at a simple JSF application:  one that simply allows a user to navigate back and forth between pages in the application:</p>
<div id="attachment_24" class="wp-caption aligncenter" style="width: 310px"><a href="http://e20labs.files.wordpress.com/2011/12/jsfnav-application.png"><img class="size-medium wp-image-24" title="JSF Navigation:  Simple JSF App" src="http://e20labs.files.wordpress.com/2011/12/jsfnav-application.png?w=300&#038;h=114" alt="A simple jSF Application" width="300" height="114" /></a><p class="wp-caption-text">A Simple JSF Application</p></div>
<p>The design of the pages is fairly simple as well:  just a button that allows you to navigate (using an Application Action) to a second page.</p>
<div id="attachment_25" class="wp-caption aligncenter" style="width: 310px"><a href="http://e20labs.files.wordpress.com/2011/12/pageone.png"><img class="size-medium wp-image-25" title="Simple JSF Application:  Page One" src="http://e20labs.files.wordpress.com/2011/12/pageone.png?w=300&#038;h=128" alt="The first page of the simple JSF Application" width="300" height="128" /></a><p class="wp-caption-text">The first page of the simple JSF Application</p></div>
<p>The second page:</p>
<div id="attachment_26" class="wp-caption aligncenter" style="width: 310px"><a href="http://e20labs.files.wordpress.com/2011/12/pagetwo.png"><img class="size-medium wp-image-26" title="Page Two of the Simple JSF Application" src="http://e20labs.files.wordpress.com/2011/12/pagetwo.png?w=300&#038;h=122" alt="Page Two of the Simple JSF Application" width="300" height="122" /></a><p class="wp-caption-text">Page Two of the Simple JSF Application</p></div>
<p>The application is controlled by the faces-config.xml file that all JSF applications use to configure the FacesServlet.  To transform this application into a WebCenter deployable portlet, we&#8217;ll use JDeveloper to create the needed portlet files for us.</p>
<p>1)  Transform the faces-config.xml file into an ADF Task Flow</p>
<p>Strictly speaking, we could also choose to create portlet entries from JSF pages, but ADF Task Flows offer us more flexibility in deployment.  If you were designing your portlet from scratch, you might choose to start with ADF from the beginning.  In our case, however, we can right-click on the faces-config.xml file within JDeveloper to Generate an ADF Task Flow.</p>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 310px"><a href="http://e20labs.files.wordpress.com/2011/12/generateadftaskflow.png"><img class="size-medium wp-image-27" title="Generate an ADF Task Flow From faces-config.xml" src="http://e20labs.files.wordpress.com/2011/12/generateadftaskflow.png?w=300&#038;h=163" alt="Generate an ADF Task Flow From faces-config.xml" width="300" height="163" /></a><p class="wp-caption-text">Generate an ADF Task Flow From faces-config.xml</p></div>
<p>You&#8217;ll be prompted by a wizard to name the task flow, etc.  In this example, I&#8217;ve named the Task Flow &#8220;portlet-nav-taskflow&#8221;.  (Subtracting points for creativity&#8230;)</p>
<p>Once the task flow is created, right-click your new taskflow to create a Portlet Entry &#8211; what we need to insert into &#8220;portlet.xml&#8221; that will tell a portlet container how to handle our application.</p>
<div id="attachment_28" class="wp-caption aligncenter" style="width: 310px"><a href="http://e20labs.files.wordpress.com/2011/12/createporletentry.png"><img class="size-medium wp-image-28" title="Create A Portlet Entry From An ADF Task Flow" src="http://e20labs.files.wordpress.com/2011/12/createporletentry.png?w=300&#038;h=153" alt="Create A Portlet Entry From An ADF Task Flow" width="300" height="153" /></a><p class="wp-caption-text">Create A Portlet Entry From An ADF Task Flow</p></div>
<p>&#8230; and that&#8217;s it!  We can now package the application for deployment on a Portlet Container (perhaps a WebCenter portlet producer), but to test deployment locally, we can right click on the portlet.xml file and select &#8220;run&#8221;.  This will deploy our new portlet to a local container &#8211; particularly helpful if we&#8217;re developing the portlet side-by-side with a WebCenter Portal application.  If the portlet runs successfully, you&#8217;re presented with a test page:</p>
<div id="attachment_29" class="wp-caption aligncenter" style="width: 310px"><a href="http://e20labs.files.wordpress.com/2011/12/testpage.png"><img class="size-medium wp-image-29" title="WSRP Test Page " src="http://e20labs.files.wordpress.com/2011/12/testpage.png?w=300&#038;h=181" alt="WSRP Test Page " width="300" height="181" /></a><p class="wp-caption-text">WSRP Test Page For Our Deployed Portlet</p></div>
<p>In summary, the challenge in creating new portlets is to keep in mind the technology that you are using to create the portlet &#8211; it can vary, but it does help to be consistent.</p>
<p><a href="http://dl.dropbox.com/u/14389466/Examples/JSFPortletNavigation.zip">Download the source (and JDeveloper project) for this example.</a></p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=23&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2011/12/08/forum-harvest-creating-a-webcenter-portlet-with-jsf/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://e20labs.files.wordpress.com/2011/12/createporletentry.png?w=150" />
		<media:content url="http://e20labs.files.wordpress.com/2011/12/createporletentry.png?w=150" medium="image">
			<media:title type="html">Create A Portlet Entry From An ADF Task Flow</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/12/jsfnav-application.png?w=300" medium="image">
			<media:title type="html">JSF Navigation:  Simple JSF App</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/12/pageone.png?w=300" medium="image">
			<media:title type="html">Simple JSF Application:  Page One</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/12/pagetwo.png?w=300" medium="image">
			<media:title type="html">Page Two of the Simple JSF Application</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/12/generateadftaskflow.png?w=300" medium="image">
			<media:title type="html">Generate an ADF Task Flow From faces-config.xml</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/12/createporletentry.png?w=300" medium="image">
			<media:title type="html">Create A Portlet Entry From An ADF Task Flow</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/12/testpage.png?w=300" medium="image">
			<media:title type="html">WSRP Test Page </media:title>
		</media:content>
	</item>
		<item>
		<title>Silly WebLogic Tricks:  Starting Servers With The NodeManager</title>
		<link>http://e20labs.org/2011/10/21/silly-weblogic-tricks-starting-servers-with-the-nodemanager/</link>
		<comments>http://e20labs.org/2011/10/21/silly-weblogic-tricks-starting-servers-with-the-nodemanager/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 19:36:24 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://e20labs.org/?p=20</guid>
		<description><![CDATA[&#160; Just recently I was putting together a virtual machine for a software demo &#8211; with the caveat that the demo needed to be &#8216;sales friendly&#8217;, i.e. one that could fit neatly on a laptop and start without much manual intervention. (i.e. the database and required managed servers.) A key component of WebLogic automation is &#8230; <a href="http://e20labs.org/2011/10/21/silly-weblogic-tricks-starting-servers-with-the-nodemanager/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=20&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<div class="LessonContent">
<div class="LessonSummary">
<p>Just recently I was putting together a virtual machine for a software demo &#8211; with the caveat that the demo needed to be &#8216;sales friendly&#8217;, i.e. one that could fit neatly on a laptop and start without much manual intervention. (i.e. the database and required managed servers.)</p>
<p>A key component of WebLogic automation is the WebLogic Scripting Tool (WLST) and the WebLogic Node Manager. I&#8217;n this post, I&#8217;ll show you a quick and easy method for setting up the NodeManager using the Linux <strong>xinetd </strong>servic<strong>e </strong>and WLST commands for starting a managed server.</p>
<p>NOTE: This was done for demonstration of Oracle Identity Analytics running on a Linux VM (Specifically, <a href="http://linuxmint.org" target="_blank">LinuxMint</a>) running under VMWare. Some steps will vary based on your environment and Linux distribution.</p>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Install WebLogic In Your Environment &amp; Configure Your Domains</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/10/media_1319224114047.png?w=532&#038;h=240" alt="media_1319224114047.png" width="532" height="240" /></div>
<div class="StepInstructions">
<p>Installing WebLogic can take many forms &#8211; in this case, the goal was small size without the need for features that come with &#8220;full&#8221; distributions &#8211; so it&#8217;s straighforward to install the WebLogic ZIP distribution. The download (with included instructions) is available at the <a href="http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html?ssSourceSiteId=ocomen" target="_blank">Oracle Technology Network</a>. You&#8217;ll need to configure the domain you wish to run prior to automation &#8211; NodeManager needs to know about the domain you wish to automatically start.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Install XINETD</h3>
<div class="StepInstructions">
<p>xinetd may already be part of your environment, but for Ubuntu users (and LInuxMint users) you&#8217;ll need to install xinetd using the &#8220;apt-get&#8221; command.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Create a startup entry in the xinetd.d directory.</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/10/media_1319224523320.png?w=532&#038;h=211" alt="media_1319224523320.png" width="532" height="211" /></div>
<div class="StepInstructions">
<p>Create a new file in the /etc/xinetd.d directory; in this case I named the script &#8220;nodemanager&#8221;. Most of the defaults should be okay &#8211; we&#8217;re going to use xinetd to run our NodeManager start script.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Test The NodeManager startup.</h3>
<div class="StepInstructions">
<p>You can run &#8216;service xinetd restart&#8217; as the root user to restart xinetd and it&#8217;s services &#8211; including our new nodemanager service. Check the nodemanager logs for any environment issues, startup problems, etc. (NOTE: if running the startNodeManager.sh script, make sure that you don&#8217;t specify a port in your xinetd script &#8211; otherwise xinetd and the startNodeManager.sh will both attempt to open the same port, leading to a conflict.)</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Start the WLST environment.</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/10/media_1319224925143.png?w=532&#038;h=269" alt="media_1319224925143.png" width="532" height="269" /></div>
<div class="StepInstructions">
<p>In this case, we&#8217;ll demonstrate how to use WSLT to start our servers interactively &#8211; later on you may wish to write a script to automate the startup process. You&#8217;ll find the script <strong>wlst.sh</strong> in your WebLogic <strong>common/bin</strong> directory. If the environment starts successfully, you&#8217;ll be prompted to enter a command in the<strong> wls:/offline&gt;</strong> mode.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Connect To NodeManager With mnConnect()</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/10/media_1319225087350.png?w=532&#038;h=114" alt="media_1319225087350.png" width="532" height="114" /></div>
<div class="StepInstructions">
<p>Use the nmConnect() function to connect to your running NodeManager. (See documentation for <a href="http://download.oracle.com/docs/cd/E21764_01/web.1111/e13715/manage_servers.htm#WLSTG169" target="_blank">Using Node Manager to Start Servers on a Machine</a>.) If you can connect successfully, you&#8217;ll be greeted with a connection to your domain.</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Start Your Server with the nmStart() command.</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/10/media_1319225594435.png?w=518&#038;h=74" alt="media_1319225594435.png" width="518" height="74" /></div>
<div class="StepInstructions">
<p>Once connected, you can execute the nmStart() command to start any of the managed servers that are part of your domain &#8211; in this case, a managed server called &#8216;WLS_OIA1&#8242;. Note that it&#8217;s not always necessary to start the Administrative Server. (Note: just as starting an administrative server can take awhile in the WebLogic Console, it can also take awhile here.)</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Done!</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/10/media_1319225615264.png?w=532&#038;h=390" alt="media_1319225615264.png" width="532" height="390" /></div>
<div class="StepInstructions">
<p>Your application should be up and running!</p>
<p>I&#8217;ll cover further automation in a later post, but there are a few items here to note:</p>
<p>1) WLST is completely scriptable at the system level &#8211; you can write scripts (or even record them) that can be run on your system.<br />
2) WLST can also be used to connect to remote servers, in the case where you want to log in and start/restart a server on a remote system. (Caveat: this will often require proper setup of SSL keys in order to work.</p>
</div>
</div>
</div>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=20&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2011/10/21/silly-weblogic-tricks-starting-servers-with-the-nodemanager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/10/media_1319224114047.png" medium="image">
			<media:title type="html">media_1319224114047.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/10/media_1319224523320.png" medium="image">
			<media:title type="html">media_1319224523320.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/10/media_1319224925143.png" medium="image">
			<media:title type="html">media_1319224925143.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/10/media_1319225087350.png" medium="image">
			<media:title type="html">media_1319225087350.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/10/media_1319225594435.png" medium="image">
			<media:title type="html">media_1319225594435.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/10/media_1319225615264.png" medium="image">
			<media:title type="html">media_1319225615264.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Using ScreenSteps to Post To WordPress</title>
		<link>http://e20labs.org/2011/09/30/using-screensteps-to-post-to-wordpress/</link>
		<comments>http://e20labs.org/2011/09/30/using-screensteps-to-post-to-wordpress/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 15:22:23 +0000</pubDate>
		<dc:creator>Chad Thompson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ScreenSteps]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://e20labs.org/?p=9</guid>
		<description><![CDATA[&#160; ScreenSteps (http://www.bluemangolearning.com/screensteps/) is a program that is designed to help technical authors (or even programmers/architects like me) create consistent, attractive documents using screen captures. Create A New &#8220;Lesson&#8221; ScreenSteps allow for simple &#8220;lessons&#8221; that represent a simple how to, or for complete &#8220;manuals&#8221; that allow you to fully describe a software product in greater &#8230; <a href="http://e20labs.org/2011/09/30/using-screensteps-to-post-to-wordpress/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=9&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<div class="LessonContent">
<div class="LessonSummary">
<p>ScreenSteps (<a href="http://www.bluemangolearning.com/screensteps/" rel="nofollow">http://www.bluemangolearning.com/screensteps/</a>) is a program that is designed to help technical authors (or even programmers/architects like me) create consistent, attractive documents using screen captures.</p>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Create A New &#8220;Lesson&#8221;</h3>
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/09/media_1317395545402.png?w=532&#038;h=520" alt="media_1317395545402.png" width="532" height="520" /></div>
<div class="StepInstructions">
<p>ScreenSteps allow for simple &#8220;lessons&#8221; that represent a simple how to, or for complete &#8220;manuals&#8221; that allow you to fully describe a software product in greater detail. For this example, we&#8217;re creating a Lesson</p>
<p>NOTE: There is a limitation of using ScreenSteps in this way &#8211; ScreenSteps does not actually allow you to take image captures of itself. (i.e. &#8220;Don&#8217;t talk about ScreenSteps&#8221;. To get around this limitation, I&#8217;ll take a few screen captures to clipboard using SnagIt. ScreenSteps allows you to either import images or create steps from the clipboard as well.</p>
</div>
</div>
<div class="LessonStep top">
<div class="StepImage" style="margin:10px 0;"><img style="border:1px solid #ccc;padding:3px;" src="http://e20labs.files.wordpress.com/2011/09/media_1317395729049.png?w=514&#038;h=445" alt="media_1317395729049.png" width="514" height="445" /></div>
<div class="StepInstructions">
<p>Next, I&#8217;ll create a new step from a SnagIt &#8220;clipboard&#8221; image. I took this image with SnagIt and created a new step. After the image is in place, i can mark up the image in order to explain certain features of the image. (Such as pointing out the &#8220;New Step With Clipboard Image&#8221; option.)</p>
</div>
</div>
<div class="LessonStep top">
<h3 class="StepTitle" style="font-size:20px;">Step 4: Export To WordPress</h3>
<div class="StepInstructions">
<p>Finally, I&#8217;ll use ScreenSteps&#8217; export function (along with WordPress&#8217; XML-RPC posting ability) to post this example to my blog.</p>
<p>I&#8217;ll be adding more (relevant) content, but thought I would start by demonstrating how to create &#8220;how tos&#8221; in the most painless way that I know.</p>
</div>
</div>
</div>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/e20labs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/e20labs.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=e20labs.org&#038;blog=22185844&#038;post=9&#038;subd=e20labs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://e20labs.org/2011/09/30/using-screensteps-to-post-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3273de0781f1661b06b3050d7ea76db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cothomps</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/09/media_1317395545402.png" medium="image">
			<media:title type="html">media_1317395545402.png</media:title>
		</media:content>

		<media:content url="http://e20labs.files.wordpress.com/2011/09/media_1317395729049.png" medium="image">
			<media:title type="html">media_1317395729049.png</media:title>
		</media:content>
	</item>
	</channel>
</rss>
