You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/08/13 18:20:18 UTC

svn commit: r985264 - in /cassandra/trunk: ./ conf/ lib/ lib/licenses/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/service/ src/java/org/apache/cassandra/tools/ src/java/org/apache/cassandra/utils/

Author: jbellis
Date: Fri Aug 13 16:20:18 2010
New Revision: 985264

URL: http://svn.apache.org/viewvc?rev=985264&view=rev
Log:
add back percentage option for cache size configuration, and replace SnakeYAML with YamlBeans.  patch by Jon Hermes; reviewed by jbellis for CASSANDRA-1313

Added:
    cassandra/trunk/lib/licenses/yamlbeans-1.04.txt
    cassandra/trunk/lib/yamlbeans-1.04.jar
Removed:
    cassandra/trunk/lib/licenses/snakeyaml-1.6.txt
    cassandra/trunk/lib/snakeyaml-1.6.jar
    cassandra/trunk/src/java/org/apache/cassandra/utils/SkipNullRepresenter.java
Modified:
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/NOTICE.txt
    cassandra/trunk/conf/cassandra.yaml
    cassandra/trunk/src/java/org/apache/cassandra/config/Config.java
    cassandra/trunk/src/java/org/apache/cassandra/config/Converter.java
    cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
    cassandra/trunk/src/java/org/apache/cassandra/config/RawColumnFamily.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
    cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java
    cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java

Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Fri Aug 13 16:20:18 2010
@@ -1,6 +1,8 @@
 dev
  * remove cassandra.yaml dependency from Hadoop and Pig (CASSADRA-1322)
  * expose CfDef metadata in describe_keyspaces (CASSANDRA-1633)
+ * add back percentage option for cache size configuration, and replace
+   SnakeYAML with YamlBeans (CASSANDRA-1313)
 
 
 0.7-beta1

Modified: cassandra/trunk/NOTICE.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/NOTICE.txt?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/NOTICE.txt (original)
+++ cassandra/trunk/NOTICE.txt Fri Aug 13 16:20:18 2010
@@ -30,5 +30,5 @@ Copyright 1995-2006 Mort Bay Consulting 
 Alternative UUID support provided by Jug (http://jug.safehaus.org/).
 Copyright (c) 2002- Tatu Saloranta.
 
-YAML support provided by snakeyaml (http://code.google.com/p/snakeyaml/).
-Copyright (c) 2008-2010 Andrey Somov
+YAML support provided by yamlbeans (http://code.google.com/p/yamlbeans/).
+Copyright (c) 2008 Nathan Sweet

Modified: cassandra/trunk/conf/cassandra.yaml
URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra.yaml (original)
+++ cassandra/trunk/conf/cassandra.yaml Fri Aug 13 16:20:18 2010
@@ -266,6 +266,7 @@ keyspaces:
           read_repair_chance: 0.1
           keys_cached: 100
           gc_grace_seconds: 0
+          rows_cached: 72%
 
         - name: StandardByUUID1
           compare_with: TimeUUIDType
@@ -281,7 +282,7 @@ keyspaces:
           column_type: Super
           compare_subcolumns_with: UTF8Type
           preload_row_cache: true
-          rows_cached: 10000
+          rows_cached: 72%
           keys_cached: 50
           comment: 'A column family with supercolumns, whose column and subcolumn names are UTF8 strings'
 

Added: cassandra/trunk/lib/licenses/yamlbeans-1.04.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/lib/licenses/yamlbeans-1.04.txt?rev=985264&view=auto
==============================================================================
--- cassandra/trunk/lib/licenses/yamlbeans-1.04.txt (added)
+++ cassandra/trunk/lib/licenses/yamlbeans-1.04.txt Fri Aug 13 16:20:18 2010
@@ -0,0 +1,1355 @@
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico">
+ 
+ <script type="text/javascript">
+ 
+ 
+ 
+ var codesite_token = null;
+ 
+ 
+ var logged_in_user_email = null;
+ 
+ 
+ var relative_base_url = "";
+ 
+ </script>
+ 
+ 
+ <title>LICENSE - 
+ yamlbeans -
+ 
+ Project Hosting on Google Code</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/8653308036866339325/css/ph_core.css">
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/8653308036866339325/css/ph_detail.css" >
+ 
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/8653308036866339325/css/d_sb_20080522.css" >
+ 
+ 
+ 
+<!--[if IE]>
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/8653308036866339325/css/d_ie.css" >
+<![endif]-->
+ <style type="text/css">
+ .menuIcon.off { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -42px }
+ .menuIcon.on { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -28px }
+ .menuIcon.down { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 0; }
+ </style>
+</head>
+<body class="t4">
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(
+ ['siteTracker._setAccount', 'UA-18071-1'],
+ ['siteTracker._trackPageview']);
+ 
+ _gaq.push(
+ ['projectTracker._setAccount', 'UA-10796293-1'],
+ ['projectTracker._trackPageview']);
+ 
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
+ })();
+ </script>
+ <div id="gaia">
+ 
+ <span>
+ 
+ <a href="#" id="projects-dropdown" onclick="return false;"><u>My favorites</u> <small>&#9660;</small></a>
+ | <a href="https://www.google.com/accounts/ServiceLogin?service=code&amp;ltmpl=phosting&amp;continue=http%3A%2F%2Fcode.google.com%2Fp%2Fyamlbeans%2Fsource%2Fbrowse%2Ftrunk%2FLICENSE&amp;followup=http%3A%2F%2Fcode.google.com%2Fp%2Fyamlbeans%2Fsource%2Fbrowse%2Ftrunk%2FLICENSE" onclick="_CS_click('/gb/ph/signin');"><u>Sign in</u></a>
+ 
+ </span>
+
+ </div>
+ <div class="gbh" style="left: 0pt;"></div>
+ <div class="gbh" style="right: 0pt;"></div>
+ 
+ 
+ <div style="height: 1px"></div>
+<!--[if IE 6]>
+<div style="text-align:center;">
+Support browsers that contribute to open source, try <a href="http://www.firefox.com">Firefox</a> or <a href="http://www.google.com/chrome">Google Chrome</a>.
+</div>
+<![endif]-->
+
+
+
+
+ <table style="padding:0px; margin: 20px 0px 0px 0px; width:100%" cellpadding="0" cellspacing="0">
+ <tr style="height: 58px;">
+ 
+ <td style="width: 55px; text-align:center;">
+ <a href="/p/yamlbeans/">
+ 
+ 
+ <img src="/p/yamlbeans/logo?cct=1263088421" alt="Logo">
+ 
+ </a>
+ </td>
+ 
+ <td style="padding-left: 0.5em">
+ 
+ <div id="pname" style="margin: 0px 0px -3px 0px">
+ <a href="/p/yamlbeans/" style="text-decoration:none; color:#000">yamlbeans</a>
+ 
+ </div>
+ <div id="psum">
+ <i><a id="project_summary_link" href="/p/yamlbeans/" style="text-decoration:none; color:#000">Java object graphs, to and from YAML</a></i>
+ </div>
+ 
+ </td>
+ <td style="white-space:nowrap;text-align:right">
+ 
+ <form action="/hosting/search">
+ <input size="30" name="q" value="">
+ <input type="submit" name="projectsearch" value="Search projects" >
+ </form>
+ 
+ </tr>
+ </table>
+
+
+ 
+<table id="mt" cellspacing="0" cellpadding="0" width="100%" border="0">
+ <tr>
+ <th onclick="if (!cancelBubble) _go('/p/yamlbeans/');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/yamlbeans/">Project&nbsp;Home</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/yamlbeans/downloads/list');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/yamlbeans/downloads/list">Downloads</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/yamlbeans/w/list');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/yamlbeans/w/list">Wiki</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/yamlbeans/issues/list');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/yamlbeans/issues/list">Issues</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/yamlbeans/source/checkout');">
+ <div class="tab active">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/yamlbeans/source/checkout">Source</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ <td width="100%">&nbsp;</td>
+ </tr>
+</table>
+<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
+ <tr>
+ 
+ 
+ 
+ 
+ 
+ 
+ <td>
+ <div class="st2">
+ <div class="isf">
+ 
+ 
+ 
+ <span class="inst1"><a href="/p/yamlbeans/source/checkout">Checkout</a></span> |
+ <span class="inst2"><a href="/p/yamlbeans/source/browse/">Browse</a></span> |
+ <span class="inst3"><a href="/p/yamlbeans/source/list">Changes</a></span> |
+ 
+ <form action="http://www.google.com/codesearch" method="get" style="display:inline"
+ onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://yamlbeans\\.googlecode\\.com'">
+ <input type="hidden" name="q" id="codesearchq" value="">
+ <input maxlength="2048" size="38" id="origq" name="origq" value="" title="Google Code Search" style="font-size:92%">&nbsp;<input type="submit" value="Search Trunk" name="btnG" style="font-size:92%">
+ 
+ 
+ 
+ </form>
+ </div>
+</div>
+
+ </td>
+ 
+ 
+ 
+ <td height="4" align="right" valign="top" class="bevel-right">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ </td>
+ </tr>
+</table>
+<script type="text/javascript">
+ var cancelBubble = false;
+ function _go(url) { document.location = url; }
+</script>
+
+
+<div id="maincol"
+ 
+>
+
+ 
+<!-- IE -->
+
+
+
+
+<div class="expand">
+
+
+<style type="text/css">
+ #file_flipper { display: inline; float: right; white-space: nowrap; }
+ #file_flipper.hidden { display: none; }
+ #file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
+ #file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
+</style>
+<div id="nav_and_rev" class="heading">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner" id="bub">
+ <div class="bub-top">
+ <div class="pagination" style="margin-left: 2em">
+ <table cellpadding="0" cellspacing="0" class="flipper">
+ <tbody>
+ <tr>
+ 
+ <td><b>r18</b></td>
+ 
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ 
+ <div class="" style="vertical-align: top">
+ <div class="src_crumbs src_nav">
+ <strong class="src_nav">Source path:&nbsp;</strong>
+ <span id="crumb_root">
+ 
+ <a href="/p/yamlbeans/source/browse/">svn</a>/&nbsp;</span>
+ <span id="crumb_links" class="ifClosed"><a href="/p/yamlbeans/source/browse/trunk/">trunk</a><span class="sp">/&nbsp;</span>LICENSE</span>
+ 
+ 
+ </div>
+ 
+ </div>
+ <div style="clear:both"></div>
+ </div>
+ </div>
+</div>
+
+<style type="text/css">
+ 
+  tr.inline_comment {
+ background: #fff;
+ vertical-align: top;
+ }
+ div.draft, div.published {
+ padding: .3em;
+ border: 1px solid #999; 
+ margin-bottom: .1em;
+ font-family: arial, sans-serif;
+ max-width: 60em;
+ }
+ div.draft {
+ background: #ffa;
+ } 
+ div.published {
+ background: #e5ecf9;
+ }
+ div.published .body, div.draft .body {
+ padding: .5em .1em .1em .1em;
+ max-width: 60em;
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word;
+ }
+ div.draft .actions {
+ margin-left: 1em;
+ font-size: 90%;
+ }
+ div.draft form {
+ padding: .5em .5em .5em 0;
+ }
+ div.draft textarea, div.published textarea {
+ width: 95%;
+ height: 10em;
+ font-family: arial, sans-serif;
+ margin-bottom: .5em;
+ }
+
+
+ 
+ .nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
+ background-color: white;
+ height: 2px;
+ }
+ .cursor, .cursor td {
+ background-color: darkblue;
+ height: 2px;
+ display: '';
+ }
+
+</style>
+<div class="fc">
+ 
+ 
+ 
+<style type="text/css">
+.undermouse span { 
+ background-image: url(http://www.gstatic.com/codesite/ph/images/comments.gif); }
+</style>
+<table class="opened" id="review_comment_area" 
+><tr>
+<td id="nums">
+<pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
+
+<pre><table width="100%" id="nums_table_0"><tr id="gr_svn2_1"
+
+><td id="1"><a href="#1">1</a></td></tr
+><tr id="gr_svn2_2"
+
+><td id="2"><a href="#2">2</a></td></tr
+><tr id="gr_svn2_3"
+
+><td id="3"><a href="#3">3</a></td></tr
+><tr id="gr_svn2_4"
+
+><td id="4"><a href="#4">4</a></td></tr
+><tr id="gr_svn2_5"
+
+><td id="5"><a href="#5">5</a></td></tr
+><tr id="gr_svn2_6"
+
+><td id="6"><a href="#6">6</a></td></tr
+><tr id="gr_svn2_7"
+
+><td id="7"><a href="#7">7</a></td></tr
+><tr id="gr_svn2_8"
+
+><td id="8"><a href="#8">8</a></td></tr
+><tr id="gr_svn2_9"
+
+><td id="9"><a href="#9">9</a></td></tr
+><tr id="gr_svn2_10"
+
+><td id="10"><a href="#10">10</a></td></tr
+><tr id="gr_svn2_11"
+
+><td id="11"><a href="#11">11</a></td></tr
+><tr id="gr_svn2_12"
+
+><td id="12"><a href="#12">12</a></td></tr
+><tr id="gr_svn2_13"
+
+><td id="13"><a href="#13">13</a></td></tr
+><tr id="gr_svn2_14"
+
+><td id="14"><a href="#14">14</a></td></tr
+><tr id="gr_svn2_15"
+
+><td id="15"><a href="#15">15</a></td></tr
+><tr id="gr_svn2_16"
+
+><td id="16"><a href="#16">16</a></td></tr
+><tr id="gr_svn2_17"
+
+><td id="17"><a href="#17">17</a></td></tr
+><tr id="gr_svn2_18"
+
+><td id="18"><a href="#18">18</a></td></tr
+><tr id="gr_svn2_19"
+
+><td id="19"><a href="#19">19</a></td></tr
+><tr id="gr_svn2_20"
+
+><td id="20"><a href="#20">20</a></td></tr
+></table></pre>
+
+<pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
+</td>
+<td id="lines">
+<pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
+
+<pre class="prettyprint "><table id="src_table_0"><tr
+id=sl_svn2_1
+
+><td class="source"><br></td></tr
+><tr
+id=sl_svn2_2
+
+><td class="source">Copyright (c) 2008 Nathan Sweet, Copyright (c) 2006 Ola Bini<br></td></tr
+><tr
+id=sl_svn2_3
+
+><td class="source"><br></td></tr
+><tr
+id=sl_svn2_4
+
+><td class="source">Permission is hereby granted, free of charge, to any person obtaining a copy of <br></td></tr
+><tr
+id=sl_svn2_5
+
+><td class="source">this software and associated documentation files (the &quot;Software&quot;), to deal in <br></td></tr
+><tr
+id=sl_svn2_6
+
+><td class="source">the Software without restriction, including without limitation the rights to <br></td></tr
+><tr
+id=sl_svn2_7
+
+><td class="source">use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies <br></td></tr
+><tr
+id=sl_svn2_8
+
+><td class="source">of the Software, and to permit persons to whom the Software is furnished to do<br></td></tr
+><tr
+id=sl_svn2_9
+
+><td class="source">so, subject to the following conditions:<br></td></tr
+><tr
+id=sl_svn2_10
+
+><td class="source"><br></td></tr
+><tr
+id=sl_svn2_11
+
+><td class="source">The above copyright notice and this permission notice shall be included in all<br></td></tr
+><tr
+id=sl_svn2_12
+
+><td class="source">copies or substantial portions of the Software.<br></td></tr
+><tr
+id=sl_svn2_13
+
+><td class="source"><br></td></tr
+><tr
+id=sl_svn2_14
+
+><td class="source">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR <br></td></tr
+><tr
+id=sl_svn2_15
+
+><td class="source">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, <br></td></tr
+><tr
+id=sl_svn2_16
+
+><td class="source">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE <br></td></tr
+><tr
+id=sl_svn2_17
+
+><td class="source">AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER <br></td></tr
+><tr
+id=sl_svn2_18
+
+><td class="source">LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br></td></tr
+><tr
+id=sl_svn2_19
+
+><td class="source">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE <br></td></tr
+><tr
+id=sl_svn2_20
+
+><td class="source">SOFTWARE.<br></td></tr
+></table></pre>
+
+<pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
+</td>
+</tr></table>
+<script type="text/javascript">
+ var lineNumUnderMouse = -1;
+ 
+ function gutterOver(num) {
+ gutterOut();
+ var newTR = document.getElementById('gr_svn2_' + num);
+ if (newTR) {
+ newTR.className = 'undermouse';
+ }
+ lineNumUnderMouse = num;
+ }
+ function gutterOut() {
+ if (lineNumUnderMouse != -1) {
+ var oldTR = document.getElementById(
+ 'gr_svn2_' + lineNumUnderMouse);
+ if (oldTR) {
+ oldTR.className = '';
+ }
+ lineNumUnderMouse = -1;
+ }
+ }
+ var numsGenState = {table_base_id: 'nums_table_'};
+ var srcGenState = {table_base_id: 'src_table_'};
+ var alignerRunning = false;
+ var startOver = false;
+ function setLineNumberHeights() {
+ if (alignerRunning) {
+ startOver = true;
+ return;
+ }
+ numsGenState.chunk_id = 0;
+ numsGenState.table = document.getElementById('nums_table_0');
+ numsGenState.row_num = 0;
+ srcGenState.chunk_id = 0;
+ srcGenState.table = document.getElementById('src_table_0');
+ srcGenState.row_num = 0;
+ alignerRunning = true;
+ continueToSetLineNumberHeights();
+ }
+ function rowGenerator(genState) {
+ if (genState.row_num < genState.table.rows.length) {
+ var currentRow = genState.table.rows[genState.row_num];
+ genState.row_num++;
+ return currentRow;
+ }
+ var newTable = document.getElementById(
+ genState.table_base_id + (genState.chunk_id + 1));
+ if (newTable) {
+ genState.chunk_id++;
+ genState.row_num = 0;
+ genState.table = newTable;
+ return genState.table.rows[0];
+ }
+ return null;
+ }
+ var MAX_ROWS_PER_PASS = 1000;
+ function continueToSetLineNumberHeights() {
+ var rowsInThisPass = 0;
+ var numRow = 1;
+ var srcRow = 1;
+ while (numRow && srcRow && rowsInThisPass < MAX_ROWS_PER_PASS) {
+ numRow = rowGenerator(numsGenState);
+ srcRow = rowGenerator(srcGenState);
+ rowsInThisPass++;
+ if (numRow && srcRow) {
+ if (numRow.offsetHeight != srcRow.offsetHeight) {
+ numRow.firstChild.style.height = srcRow.offsetHeight + 'px';
+ }
+ }
+ }
+ if (rowsInThisPass >= MAX_ROWS_PER_PASS) {
+ setTimeout(continueToSetLineNumberHeights, 10);
+ } else {
+ alignerRunning = false;
+ if (startOver) {
+ startOver = false;
+ setTimeout(setLineNumberHeights, 500);
+ }
+ }
+ }
+ // Do 2 complete passes, because there can be races
+ // between this code and prettify.
+ startOver = true;
+ setTimeout(setLineNumberHeights, 250);
+ window.onresize = setLineNumberHeights;
+</script>
+
+ 
+ 
+ <div id="log">
+ <div style="text-align:right">
+ <a class="ifCollapse" href="#" onclick="_toggleMeta('', 'p', 'yamlbeans', this)">Show details</a>
+ <a class="ifExpand" href="#" onclick="_toggleMeta('', 'p', 'yamlbeans', this)">Hide details</a>
+ </div>
+ <div class="ifExpand">
+ 
+ <div class="pmeta_bubble_bg" style="border:1px solid white">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <div id="changelog">
+ <p>Change log</p>
+ <div>
+ <a href="/p/yamlbeans/source/detail?spec=svn18&r=2">r2</a>
+ by nathan.sweet
+ on Jan 09, 2010
+ &nbsp; <a href="/p/yamlbeans/source/diff?spec=svn18&r=2&amp;format=side&amp;path=/trunk/LICENSE&amp;old_path=/trunk/LICENSE&amp;old=">Diff</a>
+ </div>
+ <pre>Moved over from SourceForge.</pre>
+ </div>
+ 
+ 
+ 
+ 
+ 
+ 
+ <script type="text/javascript">
+ var detail_url = '/p/yamlbeans/source/detail?r=2&spec=svn18';
+ var publish_url = '/p/yamlbeans/source/detail?r=2&spec=svn18#publish';
+ // describe the paths of this revision in javascript.
+ var changed_paths = [];
+ var changed_urls = [];
+ 
+ changed_paths.push('/trunk');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/.classpath');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/.classpath?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/.project');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/.project?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/CREDITS');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/CREDITS?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/LICENSE');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/LICENSE?r=2&spec=svn18');
+ 
+ var selected_path = '/trunk/LICENSE';
+ 
+ 
+ changed_paths.push('/trunk/README');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/README?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/lib');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/lib?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/lib/junit-4.4.jar');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/lib/junit-4.4.jar?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/Beans.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/Beans.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/DeferredConstruction.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/DeferredConstruction.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/Version.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/Version.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/YamlConfig.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlConfig.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/YamlException.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlException.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/YamlReader.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlReader.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/YamlWriter.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlWriter.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/emitter');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/emitter/Emitter.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/Emitter.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterConfig.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterConfig.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterException.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterException.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterWriter.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterWriter.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/emitter/ScalarAnalysis.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/ScalarAnalysis.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/AliasEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/AliasEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/CollectionStartEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/CollectionStartEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/DocumentEndEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/DocumentEndEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/DocumentStartEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/DocumentStartEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/Event.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/Event.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/EventType.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/EventType.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/MappingStartEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/MappingStartEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/NodeEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/NodeEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/Parser.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/Parser.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/ScalarEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/ScalarEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/parser/SequenceStartEvent.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/SequenceStartEvent.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/scalar');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/scalar/DateSerializer.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar/DateSerializer.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/scalar/DateTimeParser.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar/DateTimeParser.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/scalar/ScalarSerializer.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar/ScalarSerializer.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/AliasToken.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/AliasToken.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/AnchorToken.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/AnchorToken.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/DirectiveToken.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/DirectiveToken.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/ScalarToken.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/ScalarToken.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/TagToken.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/TagToken.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/Token.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/Token.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/TokenType.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/TokenType.java?r=2&spec=svn18');
+ 
+ 
+ changed_paths.push('/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/Tokenizer.java');
+ changed_urls.push('/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/Tokenizer.java?r=2&spec=svn18');
+ 
+ 
+ function getCurrentPageIndex() {
+ for (var i = 0; i < changed_paths.length; i++) {
+ if (selected_path == changed_paths[i]) {
+ return i;
+ }
+ }
+ }
+ function getNextPage() {
+ var i = getCurrentPageIndex();
+ if (i < changed_paths.length - 1) {
+ return changed_urls[i + 1];
+ }
+ return null;
+ }
+ function getPreviousPage() {
+ var i = getCurrentPageIndex();
+ if (i > 0) {
+ return changed_urls[i - 1];
+ }
+ return null;
+ }
+ function gotoNextPage() {
+ var page = getNextPage();
+ if (!page) {
+ page = detail_url;
+ }
+ window.location = page;
+ }
+ function gotoPreviousPage() {
+ var page = getPreviousPage();
+ if (!page) {
+ page = detail_url;
+ }
+ window.location = page;
+ }
+ function gotoDetailPage() {
+ window.location = detail_url;
+ }
+ function gotoPublishPage() {
+ window.location = publish_url;
+ }
+</script>
+ 
+ <style type="text/css">
+ #review_nav {
+ border-top: 3px solid white;
+ padding-top: 6px;
+ margin-top: 1em;
+ }
+ #review_nav td {
+ vertical-align: middle;
+ }
+ #review_nav select {
+ margin: .5em 0;
+ }
+ </style>
+ <div id="review_nav">
+ <table><tr><td>Go to:&nbsp;</td><td>
+ <select name="files_in_rev" onchange="window.location=this.value">
+ 
+ <option value="/p/yamlbeans/source/browse/trunk?r=2&amp;spec=svn18"
+ 
+ >/trunk</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/.classpath?r=2&amp;spec=svn18"
+ 
+ >/trunk/.classpath</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/.project?r=2&amp;spec=svn18"
+ 
+ >/trunk/.project</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/CREDITS?r=2&amp;spec=svn18"
+ 
+ >/trunk/CREDITS</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/LICENSE?r=2&amp;spec=svn18"
+ selected="selected"
+ >/trunk/LICENSE</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/README?r=2&amp;spec=svn18"
+ 
+ >/trunk/README</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/lib?r=2&amp;spec=svn18"
+ 
+ >/trunk/lib</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/lib/junit-4.4.jar?r=2&amp;spec=svn18"
+ 
+ >/trunk/lib/junit-4.4.jar</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src?r=2&amp;spec=svn18"
+ 
+ >/trunk/src</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com?r=2&amp;spec=svn18"
+ 
+ >/trunk/src/com</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware?r=2&amp;spec=svn18"
+ 
+ >/trunk/src/com/esotericsoftware</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans?r=2&amp;spec=svn18"
+ 
+ >...c/com/esotericsoftware/yamlbeans</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/Beans.java?r=2&amp;spec=svn18"
+ 
+ >...ricsoftware/yamlbeans/Beans.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/DeferredConstruction.java?r=2&amp;spec=svn18"
+ 
+ >...lbeans/DeferredConstruction.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/Version.java?r=2&amp;spec=svn18"
+ 
+ >...csoftware/yamlbeans/Version.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlConfig.java?r=2&amp;spec=svn18"
+ 
+ >...ftware/yamlbeans/YamlConfig.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlException.java?r=2&amp;spec=svn18"
+ 
+ >...are/yamlbeans/YamlException.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlReader.java?r=2&amp;spec=svn18"
+ 
+ >...ftware/yamlbeans/YamlReader.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/YamlWriter.java?r=2&amp;spec=svn18"
+ 
+ >...ftware/yamlbeans/YamlWriter.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter?r=2&amp;spec=svn18"
+ 
+ >...otericsoftware/yamlbeans/emitter</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/Emitter.java?r=2&amp;spec=svn18"
+ 
+ >...e/yamlbeans/emitter/Emitter.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterConfig.java?r=2&amp;spec=svn18"
+ 
+ >...beans/emitter/EmitterConfig.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterException.java?r=2&amp;spec=svn18"
+ 
+ >...ns/emitter/EmitterException.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/EmitterWriter.java?r=2&amp;spec=svn18"
+ 
+ >...beans/emitter/EmitterWriter.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/emitter/ScalarAnalysis.java?r=2&amp;spec=svn18"
+ 
+ >...eans/emitter/ScalarAnalysis.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser?r=2&amp;spec=svn18"
+ 
+ >...sotericsoftware/yamlbeans/parser</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/AliasEvent.java?r=2&amp;spec=svn18"
+ 
+ >...yamlbeans/parser/AliasEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/CollectionStartEvent.java?r=2&amp;spec=svn18"
+ 
+ >...parser/CollectionStartEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/DocumentEndEvent.java?r=2&amp;spec=svn18"
+ 
+ >...ans/parser/DocumentEndEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/DocumentStartEvent.java?r=2&amp;spec=svn18"
+ 
+ >...s/parser/DocumentStartEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/Event.java?r=2&amp;spec=svn18"
+ 
+ >...ware/yamlbeans/parser/Event.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/EventType.java?r=2&amp;spec=svn18"
+ 
+ >.../yamlbeans/parser/EventType.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/MappingStartEvent.java?r=2&amp;spec=svn18"
+ 
+ >...ns/parser/MappingStartEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/NodeEvent.java?r=2&amp;spec=svn18"
+ 
+ >.../yamlbeans/parser/NodeEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/Parser.java?r=2&amp;spec=svn18"
+ 
+ >...are/yamlbeans/parser/Parser.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/ScalarEvent.java?r=2&amp;spec=svn18"
+ 
+ >...amlbeans/parser/ScalarEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/parser/SequenceStartEvent.java?r=2&amp;spec=svn18"
+ 
+ >...s/parser/SequenceStartEvent.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar?r=2&amp;spec=svn18"
+ 
+ >...sotericsoftware/yamlbeans/scalar</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar/DateSerializer.java?r=2&amp;spec=svn18"
+ 
+ >...beans/scalar/DateSerializer.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar/DateTimeParser.java?r=2&amp;spec=svn18"
+ 
+ >...beans/scalar/DateTimeParser.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/scalar/ScalarSerializer.java?r=2&amp;spec=svn18"
+ 
+ >...ans/scalar/ScalarSerializer.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer?r=2&amp;spec=svn18"
+ 
+ >...ericsoftware/yamlbeans/tokenizer</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/AliasToken.java?r=2&amp;spec=svn18"
+ 
+ >...lbeans/tokenizer/AliasToken.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/AnchorToken.java?r=2&amp;spec=svn18"
+ 
+ >...beans/tokenizer/AnchorToken.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/DirectiveToken.java?r=2&amp;spec=svn18"
+ 
+ >...ns/tokenizer/DirectiveToken.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/ScalarToken.java?r=2&amp;spec=svn18"
+ 
+ >...beans/tokenizer/ScalarToken.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/TagToken.java?r=2&amp;spec=svn18"
+ 
+ >...amlbeans/tokenizer/TagToken.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/Token.java?r=2&amp;spec=svn18"
+ 
+ >...e/yamlbeans/tokenizer/Token.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/TokenType.java?r=2&amp;spec=svn18"
+ 
+ >...mlbeans/tokenizer/TokenType.java</option>
+ 
+ <option value="/p/yamlbeans/source/browse/trunk/src/com/esotericsoftware/yamlbeans/tokenizer/Tokenizer.java?r=2&amp;spec=svn18"
+ 
+ >...mlbeans/tokenizer/Tokenizer.java</option>
+ 
+ </select>
+ </td></tr></table>
+ 
+ 
+ 
+
+
+
+ <div style="white-space:nowrap">
+ Project members,
+ <a href="https://www.google.com/accounts/ServiceLogin?service=code&amp;ltmpl=phosting&amp;continue=http%3A%2F%2Fcode.google.com%2Fp%2Fyamlbeans%2Fsource%2Fbrowse%2Ftrunk%2FLICENSE&amp;followup=http%3A%2F%2Fcode.google.com%2Fp%2Fyamlbeans%2Fsource%2Fbrowse%2Ftrunk%2FLICENSE"
+ >sign in</a> to write a code review</div>
+
+
+ 
+ </div>
+ 
+ 
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+ </div>
+ <div class="pmeta_bubble_bg" style="border:1px solid white">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <div id="older_bubble">
+ <p>Older revisions</p>
+ 
+ <a href="/p/yamlbeans/source/list?path=/trunk/LICENSE&start=2">All revisions of this file</a>
+ </div>
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+ </div>
+ <div class="pmeta_bubble_bg" style="border:1px solid white">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <div id="fileinfo_bubble">
+ <p>File info</p>
+ 
+ <div>Size: 1096 bytes,
+ 20 lines</div>
+ 
+ <div><a href="http://yamlbeans.googlecode.com/svn/trunk/LICENSE">View raw file</a></div>
+ </div>
+ 
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+ </div>
+ </div>
+ </div>
+
+
+</div>
+</div>
+
+<script src="http://www.gstatic.com/codesite/ph/8653308036866339325/js/source_file_scripts.js"></script>
+
+ <script type="text/javascript" src="http://kibbles.googlecode.com/files/kibbles-1.3.1.comp.js"></script>
+ <script type="text/javascript">
+ var lastStop = null;
+ var initilized = false;
+ 
+ function updateCursor(next, prev) {
+ if (prev && prev.element) {
+ prev.element.className = 'cursor_stop cursor_hidden';
+ }
+ if (next && next.element) {
+ next.element.className = 'cursor_stop cursor';
+ lastStop = next.index;
+ }
+ }
+ 
+ function pubRevealed(data) {
+ updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
+ if (initilized) {
+ reloadCursors();
+ }
+ }
+ 
+ function draftRevealed(data) {
+ updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
+ if (initilized) {
+ reloadCursors();
+ }
+ }
+ 
+ function draftDestroyed(data) {
+ updateCursorForCell(data.cellId, 'nocursor');
+ if (initilized) {
+ reloadCursors();
+ }
+ }
+ function reloadCursors() {
+ kibbles.skipper.reset();
+ loadCursors();
+ if (lastStop != null) {
+ kibbles.skipper.setCurrentStop(lastStop);
+ }
+ }
+ // possibly the simplest way to insert any newly added comments
+ // is to update the class of the corresponding cursor row,
+ // then refresh the entire list of rows.
+ function updateCursorForCell(cellId, className) {
+ var cell = document.getElementById(cellId);
+ // we have to go two rows back to find the cursor location
+ var row = getPreviousElement(cell.parentNode);
+ row.className = className;
+ }
+ // returns the previous element, ignores text nodes.
+ function getPreviousElement(e) {
+ var element = e.previousSibling;
+ if (element.nodeType == 3) {
+ element = element.previousSibling;
+ }
+ if (element && element.tagName) {
+ return element;
+ }
+ }
+ function loadCursors() {
+ // register our elements with skipper
+ var elements = CR_getElements('*', 'cursor_stop');
+ var len = elements.length;
+ for (var i = 0; i < len; i++) {
+ var element = elements[i]; 
+ element.className = 'cursor_stop cursor_hidden';
+ kibbles.skipper.append(element);
+ }
+ }
+ function toggleComments() {
+ CR_toggleCommentDisplay();
+ reloadCursors();
+ }
+ function keysOnLoadHandler() {
+ // setup skipper
+ kibbles.skipper.addStopListener(
+ kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
+ // Set the 'offset' option to return the middle of the client area
+ // an option can be a static value, or a callback
+ kibbles.skipper.setOption('padding_top', 50);
+ // Set the 'offset' option to return the middle of the client area
+ // an option can be a static value, or a callback
+ kibbles.skipper.setOption('padding_bottom', 100);
+ // Register our keys
+ kibbles.skipper.addFwdKey("n");
+ kibbles.skipper.addRevKey("p");
+ kibbles.keys.addKeyPressListener(
+ 'u', function() { window.location = detail_url; });
+ kibbles.keys.addKeyPressListener(
+ 'r', function() { window.location = detail_url + '#publish'; });
+ 
+ kibbles.keys.addKeyPressListener('j', gotoNextPage);
+ kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
+ 
+ 
+ }
+ window.onload = function() {keysOnLoadHandler();};
+ </script>
+
+<!-- code review support -->
+<script src="http://www.gstatic.com/codesite/ph/8653308036866339325/js/code_review_scripts.js"></script>
+<script type="text/javascript">
+ 
+ // the comment form template
+ var form = '<div class="draft"><div class="header"><span class="title">Draft comment:</span></div>' +
+ '<div class="body"><form onsubmit="return false;"><textarea id="$ID">$BODY</textarea><br>$ACTIONS</form></div>' +
+ '</div>';
+ // the comment "plate" template used for both draft and published comment "plates".
+ var draft_comment = '<div class="draft" ondblclick="$ONDBLCLICK">' +
+ '<div class="header"><span class="title">Draft comment:</span><span class="actions">$ACTIONS</span></div>' +
+ '<pre id="$ID" class="body">$BODY</pre>' +
+ '</div>';
+ var published_comment = '<div class="published">' +
+ '<div class="header"><span class="title"><a href="$PROFILE_URL">$AUTHOR:</a></span><div>' +
+ '<pre id="$ID" class="body">$BODY</pre>' +
+ '</div>';
+
+ function showPublishInstructions() {
+ var element = document.getElementById('review_instr');
+ if (element) {
+ element.className = 'opened';
+ }
+ }
+ function revsOnLoadHandler() {
+ // register our source container with the commenting code
+ var paths = {'svn2': '/trunk/LICENSE'}
+ CR_setup('', 'p', 'yamlbeans', '', 'svn18', paths,
+ '', CR_BrowseIntegrationFactory);
+ // register our hidden ui elements with the code commenting code ui builder.
+ CR_registerLayoutElement('form', form);
+ CR_registerLayoutElement('draft_comment', draft_comment);
+ CR_registerLayoutElement('published_comment', published_comment);
+ 
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, showPublishInstructions);
+ 
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_PUB_PLATE, pubRevealed);
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, draftRevealed);
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.DISCARD_DRAFT_COMMENT, draftDestroyed);
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ var initilized = true;
+ reloadCursors();
+ }
+ window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};
+</script>
+<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/8653308036866339325/js/dit_scripts.js"></script>
+
+ 
+ 
+ <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/8653308036866339325/js/core_scripts_20081103.js"></script>
+ <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
+ </div>
+<div id="footer" dir="ltr">
+ 
+ <div class="text">
+ 
+ &copy;2010 Google -
+ <a href="/projecthosting/terms.html">Terms</a> -
+ <a href="http://www.google.com/privacy.html">Privacy</a> -
+ <a href="/p/support/">Project Hosting Help</a>
+ 
+ </div>
+</div>
+
+ <div class="hostedBy" style="margin-top: -20px;">
+ <span style="vertical-align: top;">Powered by <a href="http://code.google.com/projecthosting/">Google Project Hosting</a></span>
+ </div>
+ 
+ 
+
+
+ 
+ </body>
+</html>
+

Added: cassandra/trunk/lib/yamlbeans-1.04.jar
URL: http://svn.apache.org/viewvc/cassandra/trunk/lib/yamlbeans-1.04.jar?rev=985264&view=auto
==============================================================================
Files cassandra/trunk/lib/yamlbeans-1.04.jar (added) and cassandra/trunk/lib/yamlbeans-1.04.jar Fri Aug 13 16:20:18 2010 differ

Modified: cassandra/trunk/src/java/org/apache/cassandra/config/Config.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/Config.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/Config.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/Config.java Fri Aug 13 16:20:18 2010
@@ -95,7 +95,7 @@ public class Config
     public RequestSchedulerId request_scheduler_id;
     public RequestSchedulerOptions request_scheduler_options;
 
-    public List<RawKeyspace> keyspaces;
+    public RawKeyspace[] keyspaces;
     
     public static enum CommitLogSync {
         periodic,

Modified: cassandra/trunk/src/java/org/apache/cassandra/config/Converter.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/Converter.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/Converter.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/Converter.java Fri Aug 13 16:20:18 2010
@@ -32,20 +32,13 @@ import javax.xml.parsers.ParserConfigura
 import javax.xml.transform.TransformerException;
 import javax.xml.xpath.XPathExpressionException;
 
+import com.esotericsoftware.yamlbeans.YamlWriter;
 import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.SkipNullRepresenter;
 import org.apache.cassandra.utils.XMLUtils;
 import org.apache.cassandra.db.ColumnFamilyType;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
-import org.yaml.snakeyaml.Dumper;
-import org.yaml.snakeyaml.DumperOptions;
-import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.introspector.Property;
-import org.yaml.snakeyaml.nodes.NodeTuple;
-import org.yaml.snakeyaml.nodes.Tag;
-import org.yaml.snakeyaml.representer.Representer;
 
 /**
  * @deprecated Yaml configuration for Keyspaces and ColumnFamilies is deprecated in 0.7
@@ -56,7 +49,7 @@ public class Converter
     private static Config conf = new Config();
     private final static String PREVIOUS_CONF_FILE = "cassandra.xml";
     
-    private static List<RawKeyspace> readTablesFromXml(XMLUtils xmlUtils) throws ConfigurationException
+    private static RawKeyspace[] readTablesFromXml(XMLUtils xmlUtils) throws ConfigurationException
     {
 
         List<RawKeyspace> keyspaces = new ArrayList<RawKeyspace>();
@@ -127,7 +120,7 @@ public class Converter
                 }
                 keyspaces.add(ks);
             }
-            return keyspaces;
+            return keyspaces.toArray(new RawKeyspace[0]);
         }
         catch (XPathExpressionException e) 
         {
@@ -283,23 +276,9 @@ public class Converter
     
     private static void dumpConfig(String outfile) throws IOException
     {
-        DumperOptions options = new DumperOptions();
-        /* Use a block YAML arrangement */
-        options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
-        SkipNullRepresenter representer = new SkipNullRepresenter();
-        /* Use Tag.MAP to avoid the class name being included as global tag */
-        representer.addClassTag(Config.class, Tag.MAP);
-        representer.addClassTag(RawColumnFamily.class, Tag.MAP);
-        Dumper dumper = new Dumper(representer, options);
-        Yaml yaml = new Yaml(dumper);
-        String output = yaml.dump(conf);
-        
-        /* Write to output file */
-        BufferedWriter out = new BufferedWriter(new FileWriter(outfile));
-        out.write("# Cassandra YAML generated from previous config\n");
-        out.write("# Configuration wiki: http://wiki.apache.org/cassandra/StorageConfiguration\n");
-        out.write(output);
-        out.close(); 
+        YamlWriter writer = new YamlWriter(new FileWriter(outfile));
+        writer.write(conf);
+        writer.close();
     }
     
     public static void main (String[] args) 

Modified: cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Fri Aug 13 16:20:18 2010
@@ -27,6 +27,9 @@ import java.net.URL;
 import java.net.UnknownHostException;
 import java.util.*;
 
+import com.esotericsoftware.yamlbeans.YamlException;
+import com.esotericsoftware.yamlbeans.YamlReader;
+
 import org.apache.cassandra.io.sstable.Descriptor;
 import org.apache.cassandra.locator.DynamicEndpointSnitch;
 import org.slf4j.Logger;
@@ -55,10 +58,6 @@ import org.apache.cassandra.scheduler.No
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.Pair;
-import org.yaml.snakeyaml.Loader;
-import org.yaml.snakeyaml.TypeDescription;
-import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.error.YAMLException;
 
 public class DatabaseDescriptor
 {
@@ -118,21 +117,10 @@ public class DatabaseDescriptor
 
             if (logger.isDebugEnabled())
                 logger.info("Loading settings from " + configFileName);
-            
-            InputStream input = new FileInputStream(new File(configFileName));
-            org.yaml.snakeyaml.constructor.Constructor constructor = new org.yaml.snakeyaml.constructor.Constructor(Config.class);
-            TypeDescription desc = new TypeDescription(Config.class);
-            desc.putListPropertyType("keyspaces", RawKeyspace.class);
-            TypeDescription ksDesc = new TypeDescription(RawKeyspace.class);
-            ksDesc.putListPropertyType("column_families", RawColumnFamily.class);
-            TypeDescription cfDesc = new TypeDescription(RawColumnFamily.class);
-            cfDesc.putListPropertyType("column_metadata", RawColumnDefinition.class);
-            constructor.addTypeDescription(desc);
-            constructor.addTypeDescription(ksDesc);
-            constructor.addTypeDescription(cfDesc);
-            Yaml yaml = new Yaml(new Loader(constructor));
-            conf = (Config)yaml.load(input);
-            
+
+            YamlReader yaml = new YamlReader(new FileReader(configFileName));
+            conf = yaml.read(Config.class);
+
             if (conf.commitlog_sync == null)
             {
                 throw new ConfigurationException("Missing required directive CommitLogSync");
@@ -373,13 +361,13 @@ public class DatabaseDescriptor
         }
         catch (ConfigurationException e)
         {
-            logger.error("Fatal error: " + e.getMessage());
+            logger.error("System error: " + e.getMessage());
             System.err.println("Bad configuration; unable to start server");
             System.exit(1);
         }
-        catch (YAMLException e)
+        catch (YamlException e)
         {
-            logger.error("Fatal error: " + e.getMessage());
+            logger.error("Parsing error: " + e.getMessage());
             System.err.println("Bad configuration; unable to start server");
             System.exit(1);
         }
@@ -505,7 +493,7 @@ public class DatabaseDescriptor
             }
             
             // since we loaded definitions from local storage, log a warning if definitions exist in yaml.
-            if (conf.keyspaces != null && conf.keyspaces.size() > 0)
+            if (conf.keyspaces != null && conf.keyspaces.length > 0)
                 logger.warn("Schema definitions were defined both locally and in " + STORAGE_CONF_FILE +
                     ". Definitions in " + STORAGE_CONF_FILE + " were ignored.");
             

Modified: cassandra/trunk/src/java/org/apache/cassandra/config/RawColumnFamily.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/RawColumnFamily.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/RawColumnFamily.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/RawColumnFamily.java Fri Aug 13 16:20:18 2010
@@ -26,6 +26,7 @@ import java.util.Map;
 
 import org.apache.cassandra.db.ClockType;
 import org.apache.cassandra.db.ColumnFamilyType;
+import org.apache.cassandra.utils.FBUtilities;
 
 /**
  * @deprecated Yaml configuration for Keyspaces and ColumnFamilies is deprecated in 0.7
@@ -45,4 +46,22 @@ public class RawColumnFamily
     public boolean preload_row_cache = CFMetaData.DEFAULT_PRELOAD_ROW_CACHE;
     public int gc_grace_seconds = CFMetaData.DEFAULT_GC_GRACE_SECONDS;
     public RawColumnDefinition[] column_metadata = new RawColumnDefinition[0];
+
+
+    /**
+     *  These getters/setters allow us to read X% in as a double.
+     */
+    public String getRows_cached() {
+        return String.valueOf(rows_cached);
+    }
+    public void setRows_cached(String in) {
+        rows_cached = FBUtilities.parseDoubleOrPercent(in);
+    }
+
+    public String getKeys_cached() {
+        return String.valueOf(keys_cached);
+    }
+    public void setKeys_cached(String in) {
+        keys_cached = FBUtilities.parseDoubleOrPercent(in);
+    }
 }

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java Fri Aug 13 16:20:18 2010
@@ -18,8 +18,7 @@
 
 package org.apache.cassandra.service;
 
-import java.io.IOError;
-import java.io.IOException;
+import java.io.*;
 import java.lang.management.ManagementFactory;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -28,12 +27,12 @@ import java.util.concurrent.*;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
+import com.esotericsoftware.yamlbeans.YamlWriter;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
 import org.apache.cassandra.config.RawColumnDefinition;
 import org.apache.cassandra.config.RawColumnFamily;
 import org.apache.cassandra.config.RawKeyspace;
-import org.apache.cassandra.utils.SkipNullRepresenter;
 import org.apache.commons.lang.StringUtils;
 
 import org.slf4j.Logger;
@@ -71,10 +70,6 @@ import org.apache.cassandra.thrift.Unava
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.WrappedRunnable;
 import org.apache.log4j.Level;
-import org.yaml.snakeyaml.Dumper;
-import org.yaml.snakeyaml.DumperOptions;
-import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.nodes.Tag;
 
 /*
  * This abstraction contains the token/identifier of this node
@@ -1750,7 +1745,7 @@ public class StorageService implements I
         
     }
 
-    public String exportSchema() throws IOException
+    public void exportSchema(String filename) throws IOException
     {
         List<RawKeyspace> keyspaces = new ArrayList<RawKeyspace>();
         for (String ksname : DatabaseDescriptor.getNonSystemTables())
@@ -1795,20 +1790,10 @@ public class StorageService implements I
             // whew.
             keyspaces.add(rks);
         }
-        
-        DumperOptions options = new DumperOptions();
-        /* Use a block YAML arrangement */
-        options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
-        SkipNullRepresenter representer = new SkipNullRepresenter();
-        /* Use Tag.MAP to avoid the class name being included as global tag */
-        representer.addClassTag(RawColumnFamily.class, Tag.MAP);
-        representer.addClassTag(Keyspaces.class, Tag.MAP);
-        representer.addClassTag(ColumnDefinition.class, Tag.MAP);
-        Dumper dumper = new Dumper(representer, options);
-        Yaml yaml = new Yaml(dumper);
-        Keyspaces ks = new Keyspaces();
-        ks.keyspaces = keyspaces;
-        return yaml.dump(ks);
+
+        YamlWriter writer = new YamlWriter(new FileWriter(filename));
+        writer.write(keyspaces);
+        writer.close();
     }
     
     public class Keyspaces

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java Fri Aug 13 16:20:18 2010
@@ -19,6 +19,8 @@
 package org.apache.cassandra.service;
 
 import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
 import java.net.UnknownHostException;
 import java.util.List;
 import java.util.Map;
@@ -219,7 +221,7 @@ public interface StorageServiceMBean
      * Introduced in 0.7 to allow schema yaml to be exported.
      * @todo: deprecate in 0.7+1, remove in 0.7+2.
      */
-    public String exportSchema() throws IOException;
+    public void exportSchema(String filename) throws IOException;
 
     /**
      * Truncates (deletes) the given columnFamily from the provided keyspace.

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java Fri Aug 13 16:20:18 2010
@@ -19,6 +19,7 @@
 package org.apache.cassandra.tools;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.io.PrintStream;
 import java.lang.management.ManagementFactory;
 import java.lang.management.MemoryMXBean;
@@ -411,9 +412,9 @@ public class NodeProbe
         ssProxy.loadSchemaFromYAML();
     }
     
-    public String exportSchemaToYAML() throws IOException
+    public void exportSchemaToYAML(String filename) throws IOException
     {
-        return ssProxy.exportSchema();
+        ssProxy.exportSchema(filename);
     }
 }
 

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java?rev=985264&r1=985263&r2=985264&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java Fri Aug 13 16:20:18 2010
@@ -28,7 +28,9 @@ public class SchemaTool
     public static void main(String[] args)
     throws NumberFormatException, IOException, InterruptedException, ConfigurationException
     {
-        if (args.length != 3)
+        if (args.length != 3 && "import".equals(args[2]))
+            usage();
+        if (args.length != 4 && "export".equals(args[2]))
             usage();
         
         System.out.println("# Note: This tool is deprecated and will be removed in future releases.");
@@ -45,18 +47,18 @@ public class SchemaTool
             System.err.println("Port must be a number.");
             System.exit(1);
         }
-        
+
         if ("import".equals(args[2]))
             new NodeProbe(host, port).loadSchemaFromYAML();
         else if ("export".equals(args[2]))
-            System.out.println(new NodeProbe(host, port).exportSchemaToYAML());
+            new NodeProbe(host, port).exportSchemaToYAML(args[3]);
         else
             usage();
     }
     
     private static void usage()
     {
-        System.err.printf("java %s <host> <port> import|export%n", SchemaTool.class.getName());
+        System.err.printf("java %s <host> <port> import|export to_file%n", SchemaTool.class.getName());
         System.exit(1);
     }
 }