<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:x = 
"urn:schemas-microsoft-com:office:excel" xmlns:m = 
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18852">
<STYLE>@font-face {
        font-family: Calibri;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
LI.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
DIV.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.EmailStyle17 {
        FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; mso-style-type: personal-compose
}
.MsoChpDefault {
        mso-style-type: export-only
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US link=blue vLink=purple>
<DIV><SPAN class=348584520-12112009><FONT color=#000080 size=2 
face="Lucida Sans">I don't think that such a small piece of functionality quite 
justifies an extra dependency. </FONT></SPAN><SPAN 
class=348584520-12112009><FONT color=#000080 size=2 face="Lucida Sans">I would 
copy-paste the logic, noting that the logic came from 
StringUtils.isBlank.</FONT></SPAN></DIV>
<DIV><SPAN class=348584520-12112009><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=348584520-12112009><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=348584520-12112009><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" 
class=Apple-style-span><SPAN style="TEXT-ALIGN: left; FONT-SIZE: 16px" 
class=Apple-style-span><SPAN><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" 
class=Apple-style-span><SPAN style="TEXT-ALIGN: left; FONT-SIZE: 16px" 
class=Apple-style-span><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>216<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=216></A>&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,128,0)" id=FormalComment>/**<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>217<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=217></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
&lt;p&gt;Checks if a String is whitespace, empty ("") or 
null.&lt;/p&gt;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>218<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=218></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>219<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=219></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
&lt;pre&gt;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>220<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=220></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
StringUtils.isBlank(null) = true<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>221<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=221></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
StringUtils.isBlank("") = true<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>222<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=222></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
StringUtils.isBlank(" ") = true<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>223<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=223></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
StringUtils.isBlank("bob") = false<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>224<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=224></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
StringUtils.isBlank(" bob ") = false<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>225<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=225></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
&lt;/pre&gt;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>226<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=226></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>227<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=227></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
@param str the String to check, may be null<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>228<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=228></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
@return &lt;code&gt;true&lt;/code&gt; if the String is null, empty or 
whitespace<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>229<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=229></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 
@since 2.0<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>230<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=230></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</FONT><BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>231<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" name=231></A>&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Public>public</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Static>static</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Boolean>boolean</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>isBlank(<A 
style="COLOR: rgb(0,51,153); TEXT-DECORATION: underline" 
href="outbind://105/java/lang/String.java.htm">String</A><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>str) {<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>232<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=232></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Int>int</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>strLen;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>233<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=233></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=If>if</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>(str ==<SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT id=Null>null</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>|| (strLen = str.length()) ==<SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT style="COLOR: rgb(0,0,0)" 
id=IntegerLiteral>0</FONT>) {<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>234<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=234></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Return>return</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=True>true</FONT>;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>235<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=235></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>236<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=236></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=For>for</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>(<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Int>int</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>i =<SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT style="COLOR: rgb(0,0,0)" 
id=IntegerLiteral>0</FONT>; i &lt; strLen; i++) {<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>237<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=237></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=If>if</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN>((Character.isWhitespace(str.charAt(i)) 
==<SPAN class=Apple-converted-space>&nbsp;</SPAN><FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=False>false</FONT>)) 
{<BR><FONT style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>238<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=238></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Return>return</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=False>false</FONT>;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>239<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=239></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>240<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=240></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>241<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=241></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=Return>return</FONT><SPAN 
class=Apple-converted-space>&nbsp;</SPAN><FONT 
style="COLOR: rgb(0,0,255); FONT-WEIGHT: bold" id=True>true</FONT>;<BR><FONT 
style="BACKGROUND-COLOR: rgb(255,255,255); COLOR: rgb(187,187,187)" 
id=LN>242<SPAN class=Apple-converted-space>&nbsp;</SPAN></FONT><A 
style="TEXT-DECORATION: underline" 
name=242></A>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR><SPAN>Read more:<SPAN 
class=Apple-converted-space>&nbsp;</SPAN><A 
style="COLOR: rgb(0,51,153); TEXT-DECORATION: underline" 
href="http://kickjava.com/src/org/apache/commons/lang/StringUtils.java.htm#ixzz0WgFVVaFF">http://kickjava.com/src/org/apache/commons/lang/StringUtils.java.htm#ixzz0WgFVVaFF</A></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV><BR>
<BLOCKQUOTE 
style="BORDER-LEFT: #000080 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px" 
dir=ltr>
  <DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
  <HR tabIndex=-1>
  <FONT size=2 face=Tahoma><B>From:</B> mondrian-bounces@pentaho.org 
  [mailto:mondrian-bounces@pentaho.org] <B>On Behalf Of 
  </B>Kurtis.Walker@thomsonreuters.com<BR><B>Sent:</B> Thursday, November 12, 
  2009 12:30 PM<BR><B>To:</B> mondrian@pentaho.org<BR><B>Subject:</B> [Mondrian] 
  using commons-lang<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV class=Section1>
  <P class=MsoNormal>Hi,<o:p></o:p></P>
  <P class=MsoNormal>&nbsp; I&#8217;d like to use the StringUtils.isBlank method, 
  which is in commons-lang.jar to implement the enhancement MONDRIAN-642.&nbsp; 
  Ivy is already configured to pull this jar down, but the build is not 
  configured to use it. &nbsp;Are there any objections to using this jar? 
  &nbsp;Is there any configuration besides build.xml and the intellij file where 
  I need to include this jar?&nbsp; Thanks.<o:p></o:p></P>
  <P class=MsoNormal><o:p>&nbsp;</o:p></P>
  <P class=MsoNormal><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #666666; FONT-SIZE: 9pt">&middot; &middot; 
  &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; &middot; 
  &middot;</SPAN></B><SPAN 
  style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><BR></SPAN><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #666666; FONT-SIZE: 9pt">Kurtis 
  Walker</SPAN></B><SPAN 
  style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><BR></SPAN><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #666666; FONT-SIZE: 9pt">Programmer 
  Analyst Sr</SPAN><SPAN 
  style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></P>
  <P 
  style="LINE-HEIGHT: 12.75pt; MARGIN-BOTTOM: 9pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; mso-margin-top-alt: 9.0pt" 
  class=MsoNormal><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #f57f20; FONT-SIZE: 9pt">Thomson 
  Reuters<o:p></o:p></SPAN></B></P>
  <P class=MsoNormal><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #666666; FONT-SIZE: 9pt">734-913-3034</SPAN></B><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #f57f20; FONT-SIZE: 9pt"><BR></SPAN></B><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #666666; FONT-SIZE: 9pt">kurtis.walker@thomsonreuters.com</SPAN></B><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #f57f20; FONT-SIZE: 9pt"><BR></SPAN></B><B><SPAN 
  style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #666666; FONT-SIZE: 9pt"><A 
  href="http://thomsonreuters.com"><SPAN 
  style="COLOR: #666666">thomsonreuters.com</SPAN></A></SPAN></B><o:p></o:p></P></DIV></BLOCKQUOTE></BODY></HTML>