An Error Occurred:

line 1:903: unexpected char: 0xFFFD

+ Stack Trace

java.lang.RuntimeException: line 1:903: unexpected char: 0xFFFD
	at org.jboss.seam.ui.component.UIFormattedText.getFormattedText(UIFormattedText.java:66)
	at org.jboss.seam.ui.renderkit.FormattedTextRendererBase.doEncodeBegin(FormattedTextRendererBase.java:24)
	at org.jboss.seam.ui.util.cdk.RendererBase.encodeBegin(RendererBase.java:79)
	at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
	at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:280)
	at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
	at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:284)
	at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:220)
	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215)
	at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	at com.sun.facelets.component.RepeatRenderer.encodeChildren(RepeatRenderer.java:50)
	at com.sun.facelets.component.UIRepeat.process(UIRepeat.java:357)
	at com.sun.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:617)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
	at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:381)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:662)
Caused by: line 1:903: unexpected char: 0xFFFD
	at org.jboss.seam.text.SeamTextLexer.nextToken(SeamTextLexer.java:230)
	at antlr.TokenBuffer.fill(Unknown Source)
	at antlr.TokenBuffer.LA(Unknown Source)
	at antlr.LLkParser.LA(Unknown Source)
	at org.jboss.seam.text.SeamTextParser.line(SeamTextParser.java:1022)
	at org.jboss.seam.text.SeamTextParser.paragraph(SeamTextParser.java:772)
	at org.jboss.seam.text.SeamTextParser.text(SeamTextParser.java:711)
	at org.jboss.seam.text.SeamTextParser.startRule(SeamTextParser.java:614)
	at org.jboss.seam.ui.component.UIFormattedText.getFormattedText(UIFormattedText.java:59)
	... 74 more

+ Component Tree

<AjaxViewRoot id="_viewRoot" immediate="false" locale="en" renderKitId="HTML_BASIC" renderRegionOnly="false" rendered="true" selfRendered="false" submitted="false" transient="false" viewId="/blog/entries/bytag.xhtml">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="author" content="Daniel Hinojosa"/>
<meta name="keywords" content="custom software, custom components, unit testing, integration testing, agile development, jboss seam, seam, custom development seam, custom development groovy, groovy, java, custom development java, daniel hinojosa, dan hinojosa, custom development grails, code coverage, custom swing, custom application development, custom spring components, custom springframework, groovy training, java training, jsf training, jboss seam training, seam training, grails training, agile training, java server pages, java server faces, jsp, jsf, ejb, ejb3, ejb-ql, ejb3 help, jpa, java persistence, hibernate, amazinggates, sandia national laboratories, mvc, model view controller, hinojosa, Hinojosa, nfjs, No Fluff Just Stuff, development notebook"/>
<meta name="description" content="Evolutionnext.com - A new, better way for software development"/> <meta name="robots" content="all"/> <link href="/stylesheet/style.css" rel="stylesheet" type="text/css" media="screen"/>
<link rel="alternate" type="application/rss+xml" title="RSS" href="#{contextPath}/blog/rss.xml"/> <link rel="alternate" type="application/atom+xml" title="Atom" href="#{contextPath}/blog/atom.xml"/>
<title>
<HtmlOutputText escape="true" id="j_id6" rendered="true" transient="false" value="Evolutionnext.com - Java Blog Entries"/>
</title> </head> <body>
<div id="container"> <div id="header"> <h1> <span/> evolutionnext </h1> </div>
<HtmlToolBar id="maintoolbar" itemSeparator="none" rendered="true" transient="false" width="100%">
<HtmlToolBarGroup id="j_id9" itemSeparator="none" location="left" rendered="true" transient="false">
<HtmlLink action=" disabled="false" id="home_link" immediate="false" includePageParams="true" propagation="none" rendered="true" styleClass="menuLink" transient="false" value="Home" view="/index.xhtml"/>
<HtmlLink action=" disabled="false" id="j_id10" immediate="false" includePageParams="true" propagation="none" rendered="true" styleClass="menuLink" transient="false" value="Blog" view="/blog/index.html"/>
<HtmlLink action=" disabled="false" id="j_id11" immediate="false" includePageParams="true" propagation="none" rendered="true" styleClass="menuLink" transient="false" value="Get Quote" view="/quote.xhtml"/>
<a class="menuLink" href="http://www.abqjug.org">ABQJUG</a>
</HtmlToolBarGroup>
<HtmlToolBarGroup id="j_id13" itemSeparator="none" location="right" rendered="true" transient="false">
<HtmlLink action=" disabled="false" id="j_id14" immediate="false" includePageParams="true" propagation="default" rendered="true" style="color:white; text-decoration:none;" transient="false" value="Login" view="/login.xhtml"/>
</HtmlToolBarGroup>
</HtmlToolBar>
<div id="content">
<HtmlMessages errorClass="error" fatalClass="fatal" globalOnly="true" id="messages" infoClass="info" layout="list" rendered="true" showDetail="false" showSummary="true" tooltip="false" transient="false" warnClass="warn"/>
<div id="blog_menu">
<HtmlCalendar ajaxSingle="true" boundaryDatesMode="inactive" bypassUpdates="false" dataModel="com.evolutionnext.blog.BlogCalendarDataModel@1036301" datePattern="MMM d, yyyy" defaultTime="Sun Feb 05 12:00:46 PST 2012" direction="bottom-right" disabled="false" enableManualInput="false" firstWeekDay="0" horizontalOffset="0" id="blog_calendar" ignoreDupResponses="false" immediate="false" inputSize="-2147483648" jointPoint="bottom-left" limitToList="false" localValueSet="false" locale="en" minDaysInFirstWeek="1" mode="client" popup="false" preloadDateRangeBegin="Sun Apr 04 15:57:49 PDT 2004" preloadDateRangeEnd="Wed Feb 29 04:01:46 PST 2012" readonly="false" rendered="true" requestDelay="-2147483648" required="false" resetTimeOnDateSelect="false" showApplyButton="false" showFooter="true" showHeader="true" showInput="true" showWeekDaysBar="true" showWeeksBar="true" timeZone="sun.util.calendar.ZoneInfo[id="America/Los_Angeles",offset=-28800000,dstSavings=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleTimeZone[id=America/Los_Angeles,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]" timeout="-2147483648" todayControlMode="select" toolTipMode="batch" transient="false" valid="true" verticalOffset="0" zindex="3">
<HtmlOutputText escape="false" id="j_id19" rendered="true" transient="false" value="{data.startlink}{day}{data.endlink}"/>
</HtmlCalendar>
<HtmlDiv id="syndicationPanel" rendered="true" transient="false">
<h3>Syndication</h3>
<HtmlOutputLink disabled="false" id="RSS_link" rendered="true" transient="false" value="/blog/rss.xml">
<HtmlOutputText escape="true" id="j_id21" rendered="true" transient="false" value="RSS"/>
<HtmlGraphicImage alt="rss" id="j_id22" ismap="false" rendered="true" transient="false" url="/img/feed-icon-16x16.png" value="/img/feed-icon-16x16.png"/>
</HtmlOutputLink>
<HtmlOutputLink disabled="false" id="Atom_link" rendered="true" transient="false" value="/blog/atom.xml">
<HtmlOutputText escape="true" id="j_id23" rendered="true" transient="false" value="Atom"/>
<HtmlGraphicImage alt="atom" id="j_id24" ismap="false" rendered="true" transient="false" url="/img/feed-icon-16x16.png" value="/img/feed-icon-16x16.png"/>
</HtmlOutputLink>
</HtmlDiv>
<div id="tagcloud"> <h3>Tag Cloud</h3>
<HtmlAjaxRepeat componentState="org.ajax4jsf.component.SequenceDataAdaptor$1@d78f95" first="0" id="j_id26" rendered="true" rowIndex="-1" rowKeyConverter="javax.faces.convert.IntegerConverter@13b80d" rows="0" transient="false" var="_tag">
<HtmlLink action=" disabled="false" id="j_id27" immediate="false" includePageParams="true" propagation="none" rendered="true" style="font-size:12px;line-height:13px" transient="false" view="/blog/entries/tag/.xhtml"/>
</HtmlAjaxRepeat>
</div>
</div> <div id="blog_main">
<UIRepeat id="j_id30" offset="0" rendered="true" size="-1" transient="false" var="blogEntry">
<HtmlPanel id="blog_entry" rendered="true" transient="false">
<h1>
<HtmlLink action=" disabled="false" id="j_id32" immediate="false" includePageParams="true" propagation="none" rendered="true" style="text-decoration:none; font-size:1.2em; line-height:1em;" transient="false">
<HtmlOutputText escape="true" id="j_id33" rendered="true" transient="false"/>
</HtmlLink>
</h1>
<HtmlDiv id="blog_entry_header" rendered="true" transient="false">
<HtmlOutputText escape="true" id="j_id35" rendered="true" style="display:block;" transient="false"/>
<HtmlOutputText converter="org.jboss.seam.ui.converter.DateTimeConverter@174dd9c" escape="true" id="blog_date" rendered="true" transient="false"/>
.<br/>
<HtmlFragment id="filed_under" transient="false">
<HtmlOutputText escape="true" id="j_id37" rendered="true" transient="false" value="Filed Under: "/>
<HtmlAjaxRepeat componentState="org.ajax4jsf.component.SequenceDataAdaptor$1@18dce9f" first="0" id="j_id38" rendered="true" rowKeyConverter="javax.faces.convert.IntegerConverter@f85394" rows="0" transient="false" var="_tag">
<HtmlLink action=" disabled="false" id="j_id39" immediate="false" includePageParams="true" propagation="none" rendered="true" style="margin-right:6px;" transient="false" view="/blog/entries/tag/.xhtml">
<HtmlOutputText escape="true" id="j_id40" rendered="true" style="font-color: green; font-weight:bold; display:inline;" transient="false"/>
</HtmlLink>
</HtmlAjaxRepeat>
</HtmlFragment>
</HtmlDiv>
<HtmlDiv id="blogbody" rendered="true" style="margin-top:15px;" transient="false">
<HtmlOutputText escape="false" id="j_id41" transient="false"/>
<HtmlFormattedText id="j_id42" transient="false"/>
</HtmlDiv>
<HtmlDiv id="share" rendered="true" transient="false">
<!-- ADDTHIS BUTTON BEGIN --> <script type="text/javascript"> addthis_pub = 'dhinojosa'; </script> <div id="bookmark"> <a href="http://www.addthis.com/bookmark.php" onmouseOver="return addthis_open(this, '', '#{uriBean.URI}/blog/entry/title/#{blogEntry.encodedTitle}.html', '#{blogEntry.title}');" onmouseOut="addthis_close();" onclick="return addthis_sendto();"> <img src="http://s7.addthis.com/static/btn/lg-bookmark-en.gif" width="125" height="16" border="0" alt="Bookmark"/> </a> </div> <script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"/> <!-- ADDTHIS BUTTON END -->
</HtmlDiv>
<HtmlDiv id="comments" transient="false">
<HtmlOutputText escape="true" id="j_id44" transient="false"/>
<HtmlOutputText escape="true" id="j_id45" transient="false"/>
<UIRepeat id="j_id46" offset="0" rendered="true" size="-1" transient="false" var="comment">
<HtmlDiv id="comment" rendered="true" styleClass="comment" transient="false">
<HtmlOutputText escape="true" id="j_id47" rendered="true" transient="false"/>
<br/>
<HtmlOutputText converter="javax.faces.convert.DateTimeConverter@1b0ca2d" escape="true" id="j_id49" rendered="true" transient="false"/>
<br/> <br/>
<HtmlOutputText escape="false" id="j_id51" rendered="true" transient="false"/>
</HtmlDiv>
</UIRepeat>
</HtmlDiv>
<HtmlButton action=" disabled="false" id="edit" immediate="false" includePageParams="true" propagation="none" rendered="false" size="-2147483648" transient="false" value="Update" view="/management/blog/entry/update.xhtml">
<UIParameter id="j_id52" name="id" rendered="true" transient="false"/>
</HtmlButton>
</HtmlPanel>
</UIRepeat>
</div>
</div> </div> <div id="footer"> <div id="copyright">
<HtmlOutputText escape="true" id="j_id55" rendered="true" transient="false" value="© "/>
<HtmlOutputText escape="true" id="j_id56" rendered="true" transient="false" value="1999 - "/>
<HtmlOutputText converter="javax.faces.convert.DateTimeConverter@153bda8" escape="true" id="j_id57" rendered="true" transient="false" value="2012-02-05 04:01:46.274"/>
<HtmlOutputText escape="true" id="j_id58" rendered="true" transient="false" value=" evolutionnext"/>
</div> </div> <!-- These extra divs/spans may be used as catch-alls to add extra imagery. --> <!-- Add a background image to each and use width and height to control sizing, place with absolute positioning --> <div id="extraDiv1"> <span/> </div> <div id="extraDiv2"> <span/> </div> <div id="extraDiv3"> <span/> </div> <div id="extraDiv4"> <span/> </div> <div id="extraDiv5"> <span/> </div> <div id="extraDiv6"> <span/> </div>
</body> </html>
</AjaxViewRoot>

+ Scoped Variables

Request Parameters
NameValue
tagNameJava
Request Attributes
NameValue
ajaxContextorg.ajax4jsf.context.AjaxContextImpl@c871b0
blogEntriesByTagFactorycom.evolutionnext.blog.BlogEntriesByTagFactory@19fda36
blogEntriesByTagList[Entry[title=Finally, Java works with Compiz,excerpt=I really dig on the eye candy that compiz and the awn window manager brings out for Linux.,body=I really dig on the eye candy that <a href="http://www.compiz-fusion.org/">compiz</a> and the <a href="https://launchpad.net/awn">awn window manager</a> brings out for Linux. Unfortunately I had to turn compiz off because java had some bugs with compiz like the unnerving blank dialog boxes in Swing based applications. Now there is a jdk early access that took care of that and so far so good. I haven't had drawbacks yet, but then again I have only played with it for 1 hour. To obtain the jdk6.0\_u10 here is the link. <a target="_blank" href="http://download.java.net/jdk6/6u10/promoted/b11/binaries/jdk-6u10-ea-bin-b11-linux-i586-24_jan_2008.bin">http://download.java.net/jdk6<wbr></wbr>/6u10/promoted/b11/binaries<wbr></wbr>/jdk-6u10-ea-bin-b11-linux<wbr></wbr>-i586-24_jan_2008.bin</a> Enjoy.], Entry[title=The best damn web framework (Jboss Seam 2.0.0GA) is out....,excerpt=null,body=<p>The best java web framework, JBoss Seam 2.0.0GA is out and it is absolutely amazing.</p> <p>What is so amazing about it?</p> <ul> <li>PDF generation</li> <li>email generation</li> <li>easiest ajax development</li> <li>integrated ajax widgets</li> <li>integrated facelets templating</li> <li>unit-test, functional-test, integration-test friendly</li> <li>component-based</li> <li>ejb3-based</li> <li>rapid-development</li> <li>conversation based scoping</li> <li>integrated security</li> <li>GWT integration</li> <li>extended JSF EL features</li> <li>and on and on...</li> </ul> <p>I am so confident in everything that JBoss Seam does that I am ready to change my entire business around it. This is your complete solution in a web framework. I am updating a customer's site currently using JBoss Seam 2.0.0, and I am really excited about it mainly because Seam is expressive and keeps me productive. I look forward to doing more business with this framework for many years to come.</p> <p>Disclaimer: I am not an employee or contractor with JBoss</p>], Entry[title=Woot! Dan Hinojosa's (that's me) java predictions for 2007,excerpt=null,body=Predictions for 2007:<br /> <br /> Just a minute while I take out my crystal ball. It is currently sitting in my garage, caked over with dust. There! All dusted off and just like new.<br /> Here are my predictions for the year 2007. Take note, because all of these will come true. Eat your heart out Nostradamus.<br /> <br /> <ul> <li> Groovy will enjoy great success. People will love the idea of having a powerful scripting language that uses the well known Java API at their disposal. Groovy will bring about the repatriation of several Ruby users that defected from Java.<br /> </li> <li> Grails will see some success, but that success won't come 'til late 2007. This is because people need time to learn Groovy first, and the Grails developers will probably be working diligently towards version 1.0 throughout 2007. </li> <li> Developers will realize that SOA has nothing to do with Web Services. The SOA community will also gain a general understanding of what SOA really is, hopefully before SOA 2.0 comes out. ;) </li> <li> The Java community will continue to seek clarity on the future of Java and whether or not Java is meant to be an easy language to learn. Such ruminations will lead to more great debates on generics, in-line XML, the arrow operator, and whether it is Java's manifest destiny to include features from other languages in the JDK in order for Java to remain on top. </li> <li> EJB3 will finally be released by major vendors and will gain acceptance by developers.<br /> </li> <li> JBoss Seam will gain acceptance by <span style="background-color: rgb(255, 255, 255);">many </span>web developers, but will continue to have problems selling its idea because those same web developers will have difficulty wrapping their heads around what stateful development is and how it's useful to them.<br /> </li> <li> Legions of well-known web and desktop Java developers will be bored with web and desktop development and will start to get creative with Java on other devices. </li> <li> JUnit dominance will be relinquished to TestNG. </li> <li> Ant will be demoted by the masses as merely a vehicle for scripting to get builds done. </li> <li> Dependency Injection and Interface Oriented Design will continue to be accepted by <span style="background-color: rgb(255, 255, 102);"></span>Java Developers. </li> <li> The Google Web Toolkit will be the most talked about Java based product in 2007. It will bring non-Java developers to the Java language, eager to do outstanding things with AJAX without the need to code in JavaScript.<br /> </li> <li> With systems like Subversion/CVS, Google Calendar, Google Docs, Feature/Bug Tracking software, Gmail, Blogs and Wikis. Developer machines will be and should be relegated to being hard drives dedicated to holding only the JDK, version controlled source code and libraries, and music files that developers listen to while coding. <br /> </li> </ul> <br /> Now, go in peace, and spread the good words of what I have foreseen and given to you. ;)<br /> Happy New Year!<br /> Danno!], Entry[title=Updated my blog to Pebble 2.0.1, and sorry for the greatest hits.,excerpt=null,body=I finally got around to updating my blog from 1.9 of pebble to 2.0.1.  Again, Simon did another great job with the product.  Some of the key things I like is the captcha for comments since I was receiving well over a 1,000 spams a week.  I also like the ability to add users through the web interface without opening the war and mucking with the innards.  I wouldn't say that it was a painless conversion, there is some file manipulation housework that you need to do in order to upgrade, but it isn't anything that a competent computer user can't do.<br /> <br /> I also want to take time to apologize to the blog aggregators<em> </em>out there. I didn't mean to repost all my blogs, although it was nice to see that my post about Seam is getting a lot of attention.  I have no idea if it was pebble or I that resent the old blogs, but hopefully that shouldn't happen until my next upgrade.  Heck, Johnny Carson used to have the "best of..." why can't I?<br /> <br />], Entry[title=Microsoft makes claim on Linux code, condemns Penguinistas, and thoughts about java,excerpt=Steve Ballmer of Microsoft is making a claim that all Linux distros uses their intellectual property. ,body=I was listening to the November 17th "Buzz Out Loud", a C-Net podcast, in which they reported some very disturbing news. <a href="http://www.theregister.co.uk/2006/11/20/microsoft_claims_linux_code/">Steve Ballmer of Microsoft is making a claim that all Linux distros "uses our intellectual property"</a>. The deal is that if you use SuSe Linux, then you are off the hook for violating copyright. Think of this as a modern day <a href="http://en.wikipedia.org/wiki/Indulgences">indulgence</a> from St. Redmond's Square. Now, because of this news, I have to reflect on what a good job Sun did in deflecting Microsoft from violating Java's rules and regulations by not providing a constant cross platform VM. Hypothetically, if the Sun lawsuit had not been won, I can assure you that there would be an announcement from Ballmer condemning all non-Microsoft Java VM programmers of violating Microsoft�s copyright for any features from any Microsoft Java version that may have seeped into Sun's Java version. ], Entry[title=Java and Ruby working together in harmony,excerpt=null,body=<p> I stumbled upon a <a href="http://rubyjedit.org/">Ruby Editor Plugin for jEdit</a>. </p> <p>Two days ago, version 0.8 of this plug in was released. I can't wait to give this a try. jEdit has always been a great application and it's user base can only grow with this plugin. </p>], Entry[title=You can say "Java EE is Dead"... just make sure the advertisements don't contradict you.,excerpt=null,body=<p> I took these screenshots a while back, but only recently found time to blog about them. The first picture is a capture of one of many articles about <a href="http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1198211,00.html">Richard Monson-Haefel declaring that this is the "Beginning of the End for Java EE"</a> and that one of Java EE's murderers is the ever so villainous SOA.</p> <p>Too bad the advertisement that leads into this article is for Oracle Fusion Middleware, which is, you guessed it, a Java EE-based middleware product that is SOA-ready. </p> <p> The article with advertisement: (click to enlarge)<br/> <a href="http://www.evolutionnext.com/blog/images/dontjive1.PNG"> <img src="http://www.evolutionnext.com/blog/images/dontjive1.PNG" width="50%" height="50%"/></a> </p> <p> The full page advertisement: (click to enlarge)<br/> <a href="http://www.evolutionnext.com/blog/images/dontjive2.PNG"> <img src="http://www.evolutionnext.com/blog/images/dontjive2.PNG" width="50%" height="50%"/></a> </p> <p>From the <a href="http://www.oracle.com/products/middleware/docs/Oracle_Fusion_Middleware_Overview.pdf">Oracle Fusion Middleware Overview</a> <p class="article"> Oracle incorporates the leading technical and industry standards across the entire Oracle Fusion Middleware family, com- bining the design concepts of SOA and event-driven architecture (EDA) with widely accepted development methods such as Business Process Execution Language (BPEL); Java Platform, Enterprise Edition (Java EE); and Java Connector Architecture (JCA). Leveraging these standards guaran- tees compatibility among all your information systems. </p> <p>Oh, by the way, Paul McCartney is still alive.</p> ], Entry[title=ABQJUG Meeting: Building a JBoss Seam app from scratch!,excerpt=null,body= <p> Alright! This is the ABQJUG announcement for our meeting that will take place this coming Wednesday, July 26th, 2006. Training session time using JBoss Seam! </p> <p> I know our previous ABQJUG Session in May was about JBoss Seam, but I got to thinking� the JUG website really, really sucks. My fault? Perhaps. But now is not the time to point fingers. ;) </p> <p> So, after my morning cup of java, my creative juices started working, and behold - the perfect meeting idea! This Wednesday, we will have an interactive project that builds our ABQJUG website from scratch using JBoss Seam! If you have ever wanted to know how to build quick and easy web applications in Java with database integration then you will definitely want to attend this upcoming meeting. This training session will offer many great benefits: </p> <ul> <li>One brand-spanking-new dynamic ABJQUG website</li> <li>Tons of new technologies, including EJB3, JSF, JBoss Seam, AJAX</li> <li>Massive amounts of audience participation</li> <li>Absolutely perfect forum for beginners learning Java.</li> <li>Endless possibilities to make play dates with other Java programmers</li> <li>But most importantly� A quenching of the audience�s thirst to bask in the warm glow of my good looks.</li> </ul> <p> Uh, scratch that last one... </p> <p> The meeting will start at 3:00 PM. Because there will be a lot of fun stuff to do and not a lot of time to do it, I do plan to start at 3:00 PM sharp! You may arrive late, free country, but if you do, you will miss out on some primo stuff and have no one to blame except yourself. ;) The meeting will extend to 5:30 PM, at the latest. However, I will try my best to wrap it up by 5:00 PM. </p> <p> The meeting will be held at our regular meeting place - the Cherry Hills Library at 6901 Barstow NE Albuquerque, NM 87111. Please do not bring any food or beverages with the exception of bottled water. </p> <p> This meeting is free. If you know of anyone that would like to be a part of our ABQJUG, please have them email me at dhinojosa [that squiggly character] evolutionnext.com. </p> <p> Meeting information is also on <a href="http://www.abqjug.org">our website</a> </p> <p> Danno </p>], Entry[title=Tiobe Index: Java holds on to #1 firmly, Ruby shooting up like a bullet to #17,excerpt=null,body=<p>On this month's <a href="http://www.tiobe.com/tpci.htm">TIOBE index</a>, Java has held on to number one yet again. I was surprised to find that popularity had grown by +2.19%. Well, it looks like the java language has narrowly escaped its "impending doom" yet again. Take that java doomsayers! Don't quit your day job, whatever that is...</p> <p>The other surprise is Ruby which is positioned at #17 - a magnificent climb from last year's rank of #30. The evangelists for Ruby are certainly getting their jobs done. Congratulations to them.</p> <p>There are some WTF movers and shakers in this latest index too. Visual Fox Pro went from #35 a year ago to #13! The editors of the <a href="http://en.wikipedia.org/wiki/Visual_FoxPro">wikipedia entry for FoxPro</a> seem to be proud of this feat. Given the so-called popularity of Visual FoxPro I have to now dub it the "Michael Bolton" of computer languages. Sure, it's popular, but do you really know of anyone who uses Visual Fox Pro, or, for that matter, do you know anyone who owns a Michael Bolton album?</p> <p>The other active languages on the list are Pascal (up 5 positions) , ActionScript (up 15 positions), VB (up 3), VB.NET (down 3), and COBOL is almost out of the top list (down 9).</p>], Entry[title=What do java programmers version control?,excerpt=null,body=<p>I am a member of the pragmatic programmer mailing list. One of our list members, Joe Van Dyk, sparked off a discussion titled �What goes into version control?�. It was a great question that I had to find an answer for myself over the years, because there were no actual rules.</p> <p>I personally recommend that you put into your version control all of the things that will allow you to jump from one machine onto to another, checkout your project, and start your work. This recommendation comes in particularly handy when your primary machine is on the blink.</p> <p>In this vein, items that get placed into my version control include documentation from the customer, library documentation, library binaries, keystores, and even IDE project files. I do not include class files, or jars that get created by my �build� or �dist� target.</p> <p>You might also consider placing into your version control other types of files that should be safely stored in case you become unhinged and start eating your laptop while yelling �melted butter�. Believe me, if you have ever programmed in EJB 2.x or even 1.x, you have, at one time or another, thought about eating a laptop.</p> <p>This particular scenario has forced me to put into my version control items like customer invoices, RFPs, copies of emails, agreements, electronic receipts, etc. It is a sound insurance policy to do so. This rule falls in line with a blog entry that I read a long time ago by Joey Hess, who likes to <a href="http://kitenet.net/~joey/svnhome.html">keep his life in subversion</a>. Joey's blog entry is the main reason for my transformation into the digital packrat that I am today.</p> <p>Lastly, I highly recommend that your version control be somewhere other than your office. In fact, it should be in a completely different building, unless you have a very good emergency plan. I currently pay $200+ a month to <a href="http://www.kattare.com"/>kattare.com</a> for them to host my dedicated server. The dedicated server contains my web site and blog, my version control, my build automation tool, and whatever else I can put into it. The cost may seem high to you, but if your career is as a self-employed programmer, or even an overzealous company programmer, this option is a no-brainer. Plus, it's a nice business write-off.</p> <p>Let me know what you, as a Java programmer, put into your version control. If you are part of a company development team, what are you <i>allowed or not allowed</i> to put into your version control?</p> ], Entry[title=Ruby Propaganda?,excerpt=null,body=<p>So I am looking for more books to read, and I start by perusing the <a href="http://www.pragmaticprogrammer.com/">Pragmatic Programmer Bookshelf web site</a> - they have been my one of my favorite publishing companies since last year and I have been a convert to many of their ideals. In fact, to expound on this aside, I have changed as a programmer since I read their first book <a href="http://www.pragmaticprogrammer.com/ppbook/index.shtml"><i>The Pragmatic Programmer</i></a> and even more so with the starter kit trilogy <a href="http://www.pragmaticprogrammer.com/starter_kit/vc/index.html"><i>Pragmatic Version Control</i></a>, <a href="http://www.pragmaticprogrammer.com/starter_kit/auto/index.html"><i>Pragmatic Project Automation</i></a>, and <a href="http://www.pragmaticprogrammer.com/starter_kit/utj/index.html"><i>Pragmatic Unit Testing</i></a>.</p> <p>Getting back to my perusal of the Pragmatic Programmer Bookshelf web site, this Sunday, while looking through their catalog for new stuff to buy, what do I find� a book that, in concept, rubs me the wrong way. The title is <a href="http://www.pragmaticprogrammer.com/titles/fr_j2r/index.html"><i>From Java to Ruby: Things every manager should know</i></a> and it is going to be released in or around this week. I have not read it yet, because it hasn't been released, so I am just commenting on the teaser description provided by the website.</p> <p>The description for <i>From Ruby to Java</i> echoes a lot like programming language propaganda. The first part of it reads:</p> <div style="background-color: light-grey; padding: 1em 1em; margin-left: 3em"> <p>�As a development team, you want to be productive. You want to write flexible, maintainable web applications. You want to use Ruby and Rails.�</p> </div> <p>Wow! I didn't realize that I was so unproductive with Java. All those happy moments programming away and getting things done was just a facade. Thanks Ruby and Rails!</p> <p>The next line is the definition of propaganda, in fact, the description is just flat out saying it:</p> <div style="background-color: light-gray; padding: 1em 1em; margin-left: 3em"> <p>�Bruce Tate's <i>From Java to Ruby</i> has the answers, and it expresses them in a language that'll help persuade managers and executives who've seen it all.�</p> </div> <p>Yikes! What is going on? Shades of Khrushchev. Managers and executives must be persuaded by the Ruby red manifesto to crush the troublesome and insipid Java with all of its freedoms, its red, white and blue logo, and its JCP capitalistic mindset.</p> <p>I like Ruby and I like Java. Ruby is my new language of the year 2006 (according the Pragmatic Programmer, good programmers need to learn a new language once a year), and I am enjoying what Ruby has to offer. I especially like its callback functionality and mixins. There is a lot to Ruby that I wish was in Java, and there are some things that are in Ruby that I don't want to see in Java. So this post is nothing negative on Ruby, just on the tone of this new book and its implied purpose.</p> <p>Ruby can stand on its own. It is a great language, and it can, as it has been doing, climb up on the popularity ladder without crushing skulls.</p> <p>I will order this book so that I can experience its true meaning, but I am a bit guarded. I hope the book won't be a free-for-all Java bash manual. Instead, I hope that this book will highlight positives on both languages and analyze when it is appropriate to use one over the other.</p>], Entry[title=Podcasting to teach java.,excerpt=null,body=<p>I did a search a couple of minutes ago on <a href="http://www.podcast.net">Podcast.net</a>. I was looking for Java podcasts to subscribe to. I typed in 'java' and was surprised to see that a professor at Harvard Extension School had his computer science podcasts up online. The content he provides is an XML and J2EE course for the spring 2006 semester.</p> <p>The course, which you can listen to now, covers XML, DTD, Schemas, SVG, and what looks like every other conceivable X*. <a href="http://www.podcast.net/show/48661">Click here</a> to review the podcasts for yourselves.</p> <p>I found the idea of educational podcasts pretty interesting and quite groundbreaking. Educational podcasts may possibly evolve into the new university curriculum standard, reducing the university campus to an amusement park where students go only to find parties and sex.</p> ], Entry[title=530 5.7.0 Must issue a STARTTLS command first,excerpt=null,body=<p>I set up an enterprise application with email functionality on a secure network. The SMTP server happened to be on a secure network as well. At first, when I ran the application, I received the following exception:</p> <pre> 530 5.7.0 Must issue a STARTTLS command first </pre> <p>Let me take this opportunity to log into my blog the simple solution to overcome this problem.</p> <p>First off, upgrade the mail.jar library in your application or application server. The latest and greatest comes with TLS support in it.</p> <p>The next thing to do is to set the property mail.imap.starttls.enable or mail.smtp.starttls.enable to "true".</p> <p>That's it.</p> <p>You can find more information on the new TLS features in a text document called SSLNOTES. This text document comes along as part of the javamail download.</p> <p>Good Luck!</p> ], Entry[title=James Gosling is "embarrassed" that EMACS is still around,excerpt=null,body=<p> <a href="http://www.internetnews.com/dev-news/article.php/3568986">Source</a> </p> <p> The father of the decade-old Java programming language is urging the developers who made Java what it is today to make sure they're building Java for tomorrow's tech needs. </p> <p> James Gosling, CTO, Java Enterprise and Development Group, Sun Microsystems, kicked off the Sun Tech Days Worldwide Developer Conference here today by urging developers to get involved with the Java community process and to use Sun's tools. </p> <p> The Canadian-born Dr. Gosling told the capacity crowd of Java faithful that at some level Java is more than just a programming language. </p> <p> Think of it as a conceptual framework that spans multiple implementations, including the enterprise, standard computing and embedded markets, he said. After all, the end to end nature of Java's conceptual framework allows developers to better understand how everything fits together, he added. </p> <p> "Originally the marketing slogan for Java was write once, run anywhere," Gosling said. "The flip side, and that is often the one that is most important, is learn once, work anywhere." </p> <p> <snip> </p> <p> Gosling also brought up his other major contribution to the IT community: the Emacs source code editor. Gosling was the original author of Emacs for UNIX in 1981. GNU Emacs, a version still widely used in the open source community, is considered a "descendant" of Gosling's Emacs. (GNU Emacs was written by Free Software movement founder Richard Stallman.) </p> <p> Gosling said he is "embarrassed" that Emacs is still around and widely used. He advised developers to adopt more modern tools like Sun's Java Studio Creator, Sun Java Studio Enterprise and Netbeans, all of which are now available for free. The modern Sun editors provide power through specialization and provide a more user friendly intuitive way to develop current applications. </p> <p> <snip> </p> <p> <a href="http://www.internetnews.com/dev-news/article.php/3568986">Read More</a> </p> ], Entry[title=What happened to Java Pro magazine?,excerpt=null,body=<p> I was a Java Pro subscriber a long time running. I thought it was a good magazine, I liked it more than JDJ at one time. Then the magazines stopped coming. Then I noticed you didn't have to pay for it anymore, so I did a free subscription. A few months later a magazine arrived. After that one magazine I didn't see another. So I filled another "free but you get what you pay for" subscription, and never got a magazine, until yesterday. Yesterday, I recieved a JavaPro magazine with a skimpy 5 articles, and a Microsoft DVD (scratch head). Now it seems I get the magazine whenever Microsoft wants to pitch me something. I still like Daniel F. Savarese's Pro Shop Articles, but that is the extent of my enjoyable reading. </p> <p>So what happened to ya Java Pro?</p>], Entry[title=I'll write my last line of Java when they take my keyboard from MY COLD, DEAD, HANDS!!!!!,excerpt=null,body=<p> If I remember correctly, I voted for the 5-20 years category. I figured that Java should have at least the life span of C++... or longer. My reasoning, which opposes that of <a href="http://www.systemmobile.com/wp/?p=166">System Mobile Web</a>, is that there are far too many APIs and technologies associated with Java to let it go away any time soon. Add to that the value of open-source software written in Java and the language is sure to have a long and healthy lifespan.</p>], Entry[title=Massachusetts Commonwealth is beginning to embrace open-source,excerpt=null,body=<p><a href="http://www.msnbc.msn.com/id/9149985/">MSNBC Article</a></p> <cite> SAN FRANCISCO - The state of Massachusetts has laid out a plan to switch all its workers away from Microsoft's Word, Excel and other desktop software applications, delivering what would be one of the most significant setbacks to the software company's battle against open source software in its home market. </cite> <p> The article continues to say that the Commonwealth using OpenDocument and PDF standards. With the new OpenOffice, I don't think that any of the state employees will be at a loss as far as functionality goes. If I were to make a statistic up, I would say that only two out ten people really know how to use their word processors and spreadsheets - I speak entirely out of personal observation. If that statistic is true, then most people will probably *not* notice any difference between OpenOffice and Microsoft Office except the difference in splashscreen names. </p> <p>I'd be very interested to see what role, if any, java is going to play in the mix, especially in the enterprise arena. I would also be interested to see if this foray into open-source will be a domino effect with state, city, county, or even, dare I say, national government.</p> <p>This open-source fever may also leak into the realms of the many contractors that rely on government business, thus spreading into private industry... Of course, this might make Microsoft think about pre-packaging Office, or at least a small subset of it, with all computers to ensure their Office dominance. How long will that take?</p>], Entry[title=So does Sun *really* support Java Users Groups,excerpt=null,body=<p>I still see a few things here and there about Sun supporting Users Groups. I haven't seen it. I wanted to sign our user's group (Albuquerque Java Users Group), a long time ago, for some program at the time called the "admiral" program or something like that (someone correct me). So I added our name to the lot, and I got a message a month later saying "Oh, Hello!, Welcome!" and that they are going to send me a package. Awesome I thought. </p> <p>Now this program's intent was that the jugs would never have to worry about a presentation ever again. They would send software, premade presentations, and even send speakers. A few months later, come nothing. I sent a few emails, nothing. Called them up, nothing. Camped out in front of Sun with those sound radars and a headset, nothing. Does the program even exist? I don't care if Sun could give a flying rip about the java user's group around the world, they just need to say so.</p> <p>I need one of those stupid ribbons people put on cars except have it say "support our JUGS". Haha, yeah, that'll go over well.</p>], Entry[title=I am now a strong advocate of the 'Java Blueprints Guidelines',excerpt=null,body=<p>After using different project taxonomy conventions, including some of my own bad ideas. I think I finally found one that is flexible for all my projects. At first, when I saw this page, I thought that the people at Sun Microsystems were insane to make the j2ee project conventions so complicated. </p> <p>Currently, I manage four j2ee style applications for my customers, and everytime I needed to add a war, another ear, another jar, or even a har (hibernate archive), my folders became a mess and so did the build files associated with them. Finally, given all the chaos that I suffered, I decided to give these J2EE project conventions a try to see if it offered some relief of my pain, and it sure did. </p> <img src="http://java.sun.com/blueprints/code/images/j2ee-projects.jpg"/> <font size="1px" color="darkgray">Strategy for J2EE Applications 1.0</font> <p>I also added a few items and rules to this convention for my own use that I think you may find useful, or not.</p> <p>In the apps category, my personal rule is that if it is going to create an archive you must have a folder for it. So the way I would do a typical one ear contains one war and one jar would be something like this:</p> <font color="darkblue"> <pre> apps |-myproject-ear |-myproject-war | |-lib | |-src | |-test |-myproject-jar | |-lib | |-src | |-test |-src | |-conf | |-application.xml |-build.xml </pre> </font> Another rule I made for myself is that the components directory is solely externals code from another subversion (or CVS for you old-timers) repository. Items that come in binary form and not in source code form will be placed in their respective lib directories. Now, throwing in a complicated scenario. Lets say that I will have a java web start application that will of course be placed into a war in some webpage. That war will then be placed in an ear file that can then be placed onto an application server. There could be many possible solutions to this, and here is a diagram of what I would be offering. I would think that this would be the best solution because the webstart application can be developed and tested (usually by another group) in it's own environment. <font color="darkblue"> <pre> apps |-myproject-ear |-myproject-war | |-lib | |-src | |-test |-myproject-jar | |-lib | |-src | |-test |-src | |-conf | |-application.xml |-build.xml components |-webstart-jar (as an external) |-src |-lib |-test </pre> </font> Some other solutions to the previous scenario would be to include webstart-jar under myproject-war, or as a sibling to myproject-war or myproject-jar. In the long run, it seems that placing it under the components directory would be more IDE friendly. I also have a couple of very important additions to these conventions. One is that there needs to be a java directory under the test folder. This would take care application tests that are developed in another computer language. The test folder also needs a conf directory to contain files, resources, etc that are required by the test classes. Lastly I believe that this structure can be also be used for non-J2EE apps, and used for any "uber-projects", even those projects that include code from other programming languages. I am going to stick with this for a while and see if I can come up with scenarios that this wouldn't work, and as always, I welcome your comments. ]]
contextPath
loadEntryFactorycom.evolutionnext.blog.entry.LoadEntryFactory@1af4460
tagNameJava
uriBeancom.evolutionnext.URIBean@1b21315
Session Attributes
NameValue
tagMapOfPublishedBlogEntriescom.evolutionnext.blog.TagMapOfPublishedBlogEntries@2d5e7
Application Attributes
NameValue
categoryRssResourcecom.evolutionnext.blog.CategoryRssResource@1b828f3
latestBlogEntriesRssResourcecom.evolutionnext.blog.LatestBlogEntriesRssResource@188a4df
resourceViewercom.evolutionnext.ResourceViewer@4d0f
Feb 5, 2012 4:01:46 AM - Generated by Facelets