<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>ObjGenApp xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.client.main;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.net.MalformedURLException;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> joptsimple.OptionParser;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> joptsimple.OptionSet;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> joptsimple.OptionSpec;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.filecopy.FileCopier;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.SessionParameter;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BindingType;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.CmisBinding;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.RepositoryService;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.repository.MultiThreadedObjectGenerator;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.repository.ObjectGenerator;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.repository.ObjectGenerator.CONTENT_KIND;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.repository.TimeLogger;
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/main/ObjGenApp.html">ObjGenApp</a> {
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROP_USER = SessionParameter.USER;
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROP_PASSWORD = SessionParameter.PASSWORD;
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_USER = <span class="jxr_string">"user"</span>;
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_PASSWORD = <span class="jxr_string">"dummy"</span>;
<a name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROP_ATOMPUB_URL = SessionParameter.ATOMPUB_URL;
<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROP_WS_URL = <span class="jxr_string">"org.apache.chemistry.opencmis.binding.webservices.url"</span>;
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROP_BROWSER_URL = SessionParameter.BROWSER_URL;
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROP_BINDING = SessionParameter.BINDING_TYPE;
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_ATOMPUB_URL = <span class="jxr_string">"http://localhost:8080/inmemory/atom"</span>;
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_WS_URL = <span class="jxr_string">"http://localhost:8080/inmemory/services/"</span>;
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_BROWSER_BINDING_URL  = <span class="jxr_string">"http://localhost:8080/inmemory/browser/"</span>;
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_BINDING = <span class="jxr_string">"atompub"</span>;
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CMD = <span class="jxr_string">"Command"</span>;
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REPOSITORY_ID = <span class="jxr_string">"RepositoryId"</span>;
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILLER_DOCUMENT_TYPE_ID = <span class="jxr_string">"DocumentTypeId"</span>;
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILLER_FOLDER_TYPE_ID = <span class="jxr_string">"FolderTypeId"</span>;
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILLER_DOCS_PER_FOLDER = <span class="jxr_string">"DocsPerFolder"</span>;
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILLER_FOLDERS_PER_FOLDER = <span class="jxr_string">"FoldersPerFolder"</span>;
<a name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILLER_DEPTH = <span class="jxr_string">"Depth"</span>;
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILLER_CONTENT_SIZE = <span class="jxr_string">"ContentSizeInKB"</span>;
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String COUNT = <span class="jxr_string">"Count"</span>;
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CLEANUP = <span class="jxr_string">"Cleanup"</span>;
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ROOTFOLDER = <span class="jxr_string">"RootFolder"</span>;
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String THREADS = <span class="jxr_string">"Threads"</span>;
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONTENT_KIND = <span class="jxr_string">"ContentKind"</span>;
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILE_NAME_PATTERN = <span class="jxr_string">"FileName"</span>;
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_FILE = <span class="jxr_string">"File"</span>;
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_DIR = <span class="jxr_string">"Dir"</span>;
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BINDING_ATOM = <span class="jxr_string">"atompub"</span>;
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BINDING_WS = <span class="jxr_string">"webservices"</span>;
<a name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BINDING_BROWSER = <span class="jxr_string">"browser"</span>;
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>      BindingType fBindingType;
<a name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> CONTENT_KIND fContentKind;
<a name="87" href="#87">87</a>      CmisBinding binding;
<a name="88" href="#88">88</a>      
<a name="89" href="#89">89</a>      OptionSpec&lt;String&gt; fCmd;
<a name="90" href="#90">90</a>      OptionSpec&lt;Integer&gt; fDepth;
<a name="91" href="#91">91</a>      OptionSpec&lt;Integer&gt; fContentSize;
<a name="92" href="#92">92</a>      OptionSpec&lt;Integer&gt; fFolderPerFolder;
<a name="93" href="#93">93</a>      OptionSpec&lt;Integer&gt; fDocsPerFolder;
<a name="94" href="#94">94</a>      OptionSpec&lt;String&gt; fFolderType;
<a name="95" href="#95">95</a>      OptionSpec&lt;String&gt; fDocType;
<a name="96" href="#96">96</a>      OptionSpec&lt;String&gt; fRepoId;
<a name="97" href="#97">97</a>      OptionSpec&lt;Integer&gt; fCount;
<a name="98" href="#98">98</a>      OptionSpec&lt;Boolean&gt; fCleanup;
<a name="99" href="#99">99</a>      OptionSpec&lt;String&gt; fRootFolder;
<a name="100" href="#100">100</a>     OptionSpec&lt;Integer&gt; fThreads;
<a name="101" href="#101">101</a>     OptionSpec&lt;String&gt; fFileName;
<a name="102" href="#102">102</a>     OptionSpec&lt;String&gt; fContentKindStr;
<a name="103" href="#103">103</a>     OptionSpec&lt;String&gt; fFileNamePattern;
<a name="104" href="#104">104</a>     OptionSpec&lt;String&gt; fLocalDir;
<a name="105" href="#105">105</a>     OptionSpec&lt;String&gt; fLocalFile;
<a name="106" href="#106">106</a>     
<a name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) {
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>         <a href="../../../../../../org/apache/chemistry/opencmis/client/main/ObjGenApp.html">ObjGenApp</a> app = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/main/ObjGenApp.html">ObjGenApp</a>();
<a name="110" href="#110">110</a>         <strong class="jxr_keyword">try</strong> {
<a name="111" href="#111">111</a>             app.processCmdLine(args);
<a name="112" href="#112">112</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException ce) {
<a name="113" href="#113">113</a>             System.out.println(<span class="jxr_string">"Error: Could not process command. "</span> + ce);
<a name="114" href="#114">114</a>             System.out.println(<span class="jxr_string">"Extended error: "</span> + ce.getErrorContent());
<a name="115" href="#115">115</a>             ce.printStackTrace();
<a name="116" href="#116">116</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="117" href="#117">117</a>             System.out.println(<span class="jxr_string">"Could not fill repository "</span> + e);
<a name="118" href="#118">118</a>             e.printStackTrace();
<a name="119" href="#119">119</a>         }
<a name="120" href="#120">120</a>     }
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processCmdLine(String[] args) {
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a>         OptionParser parser = <strong class="jxr_keyword">new</strong> OptionParser();
<a name="125" href="#125">125</a>         fCmd = parser.accepts(CMD).withRequiredArg().describedAs(<span class="jxr_string">"Command to perform (see below)"</span>);
<a name="126" href="#126">126</a>         fRepoId = parser.accepts(REPOSITORY_ID).withOptionalArg().describedAs(<span class="jxr_string">"Repository used"</span>);
<a name="127" href="#127">127</a>         fDocType = parser.accepts(FILLER_DOCUMENT_TYPE_ID).withOptionalArg().defaultsTo(
<a name="128" href="#128">128</a>                 BaseTypeId.CMIS_DOCUMENT.value()).describedAs(<span class="jxr_string">"Document type created"</span>);
<a name="129" href="#129">129</a>         fFolderType = parser.accepts(FILLER_FOLDER_TYPE_ID).withOptionalArg()
<a name="130" href="#130">130</a>                 .defaultsTo(BaseTypeId.CMIS_FOLDER.value()).describedAs(<span class="jxr_string">"Folder type created"</span>);
<a name="131" href="#131">131</a>         fDocsPerFolder = parser.accepts(FILLER_DOCS_PER_FOLDER).withOptionalArg().ofType(Integer.<strong class="jxr_keyword">class</strong>).describedAs(
<a name="132" href="#132">132</a>                 <span class="jxr_string">"Documents on each level"</span>).defaultsTo(1);
<a name="133" href="#133">133</a>         fFolderPerFolder = parser.accepts(FILLER_FOLDERS_PER_FOLDER).withOptionalArg().ofType(Integer.<strong class="jxr_keyword">class</strong>)
<a name="134" href="#134">134</a>                 .describedAs(<span class="jxr_string">" Folders on each level"</span>).defaultsTo(0);
<a name="135" href="#135">135</a>         fDepth = parser.accepts(FILLER_DEPTH).withOptionalArg().ofType(Integer.<strong class="jxr_keyword">class</strong>).describedAs(<span class="jxr_string">"Levels of folders"</span>)
<a name="136" href="#136">136</a>                 .defaultsTo(1);
<a name="137" href="#137">137</a>         fContentSize = parser.accepts(FILLER_CONTENT_SIZE).withOptionalArg().ofType(Integer.<strong class="jxr_keyword">class</strong>).describedAs(
<a name="138" href="#138">138</a>                 <span class="jxr_string">"Content size of each doc"</span>).defaultsTo(0);
<a name="139" href="#139">139</a>         fCount = parser.accepts(COUNT).withOptionalArg().ofType(Integer.<strong class="jxr_keyword">class</strong>).defaultsTo(1).describedAs(
<a name="140" href="#140">140</a>                 <span class="jxr_string">"Repeat a command n times (partially implemented)"</span>);
<a name="141" href="#141">141</a>         fCleanup = parser.accepts(CLEANUP).withOptionalArg().ofType(Boolean.<strong class="jxr_keyword">class</strong>).defaultsTo(false).describedAs(
<a name="142" href="#142">142</a>                 <span class="jxr_string">"Clean all created objects at the end"</span>);
<a name="143" href="#143">143</a>         fRootFolder = parser.accepts(ROOTFOLDER).withOptionalArg().ofType(String.<strong class="jxr_keyword">class</strong>).describedAs(
<a name="144" href="#144">144</a>                 <span class="jxr_string">"folder id used as root to create objects (default repository root folder)"</span>);
<a name="145" href="#145">145</a>         fThreads = parser.accepts(THREADS).withOptionalArg().ofType(Integer.<strong class="jxr_keyword">class</strong>).defaultsTo(1).describedAs(
<a name="146" href="#146">146</a>                 <span class="jxr_string">"Number of threads to start in parallel"</span>);
<a name="147" href="#147">147</a> <em class="jxr_comment">//        fFileName = parser.accepts(FILE).withRequiredArg().ofType(String.class).describedAs("Input File");</em>
<a name="148" href="#148">148</a>         fContentKindStr = parser.accepts(CONTENT_KIND).withOptionalArg().ofType(String.<strong class="jxr_keyword">class</strong>).defaultsTo(<span class="jxr_string">"lorem/text"</span>)
<a name="149" href="#149">149</a>                 .describedAs(<span class="jxr_string">"kind of content: static/text, lorem/text, lorem/html, fractal/jpeg"</span>);
<a name="150" href="#150">150</a>         fFileNamePattern = parser.accepts(FILE_NAME_PATTERN).withOptionalArg().ofType(String.<strong class="jxr_keyword">class</strong>).defaultsTo(<span class="jxr_string">"ContentData-%03d.bin"</span>)
<a name="151" href="#151">151</a>                 .describedAs(<span class="jxr_string">"file name pattern to be used with CreateFiles action"</span>);
<a name="152" href="#152">152</a>         fLocalDir = parser.accepts(LOCAL_DIR).withOptionalArg().ofType(String.<strong class="jxr_keyword">class</strong>).defaultsTo(<span class="jxr_string">"."</span>)
<a name="153" href="#153">153</a>                 .describedAs(<span class="jxr_string">"name of a directory to be recursively copied to the repository"</span>);
<a name="154" href="#154">154</a>         fLocalFile = parser.accepts(LOCAL_FILE).withOptionalArg().ofType(String.<strong class="jxr_keyword">class</strong>)
<a name="155" href="#155">155</a>                 .describedAs(<span class="jxr_string">"file name of a file to be copied to the repository"</span>);
<a name="156" href="#156">156</a>         OptionSet options = parser.parse(args);
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>         <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd) == <strong class="jxr_keyword">null</strong> || options.has(<span class="jxr_string">"?"</span>)) {
<a name="159" href="#159">159</a>             usage(parser);
<a name="160" href="#160">160</a>         }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>         String binding = getBinding();
<a name="163" href="#163">163</a>         
<a name="164" href="#164">164</a>         <strong class="jxr_keyword">if</strong> (binding.equals(BINDING_WS)) {
<a name="165" href="#165">165</a>             fBindingType = BindingType.WEBSERVICES;
<a name="166" href="#166">166</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (binding.equals(BINDING_ATOM)) {
<a name="167" href="#167">167</a>             fBindingType = BindingType.ATOMPUB;
<a name="168" href="#168">168</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (binding.equals(BINDING_BROWSER)) {
<a name="169" href="#169">169</a>             fBindingType = BindingType.BROWSER;
<a name="170" href="#170">170</a>         } <strong class="jxr_keyword">else</strong> {
<a name="171" href="#171">171</a>             System.out.println(<span class="jxr_string">"Error: Unknown binding: "</span> + binding + <span class="jxr_string">" allowed values: "</span>
<a name="172" href="#172">172</a>                     + BINDING_WS + <span class="jxr_string">" or "</span> + BINDING_ATOM + <span class="jxr_string">" or "</span> + BINDING_BROWSER);
<a name="173" href="#173">173</a>             <strong class="jxr_keyword">return</strong>;
<a name="174" href="#174">174</a>         }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>         String kind = options.valueOf(fContentKindStr);
<a name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == kind) {
<a name="178" href="#178">178</a>             <strong class="jxr_keyword">if</strong> (options.valueOf(fContentSize) &gt; 0)
<a name="179" href="#179">179</a>                 fContentKind = ObjectGenerator.CONTENT_KIND.StaticText;
<a name="180" href="#180">180</a>             <strong class="jxr_keyword">else</strong>
<a name="181" href="#181">181</a>                 fContentKind = <strong class="jxr_keyword">null</strong>;
<a name="182" href="#182">182</a>         } <strong class="jxr_keyword">if</strong> (kind.equals(<span class="jxr_string">"static/text"</span>))
<a name="183" href="#183">183</a>             fContentKind = ObjectGenerator.CONTENT_KIND.StaticText;
<a name="184" href="#184">184</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (kind.equals(<span class="jxr_string">"lorem/text"</span>))
<a name="185" href="#185">185</a>             fContentKind = ObjectGenerator.CONTENT_KIND.LoremIpsumText;
<a name="186" href="#186">186</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (kind.equals(<span class="jxr_string">"lorem/html"</span>))
<a name="187" href="#187">187</a>             fContentKind = ObjectGenerator.CONTENT_KIND.LoremIpsumHtml;
<a name="188" href="#188">188</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (kind.equals(<span class="jxr_string">"fractal/jpeg"</span>))
<a name="189" href="#189">189</a>             fContentKind = ObjectGenerator.CONTENT_KIND.ImageFractalJpeg;
<a name="190" href="#190">190</a>         <strong class="jxr_keyword">else</strong> {
<a name="191" href="#191">191</a>             System.out.println(<span class="jxr_string">"Unknown content kind: "</span> + options.valueOf(fContentKindStr));
<a name="192" href="#192">192</a>             System.out.println(<span class="jxr_string">"  must be one of static/text, lorem/text, lorem/html, fractal/jpeg"</span>);
<a name="193" href="#193">193</a>             usage(parser);
<a name="194" href="#194">194</a>         }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == options.valueOf(fCmd)) {
<a name="197" href="#197">197</a>             System.out.println(<span class="jxr_string">"No command given."</span>);
<a name="198" href="#198">198</a>             usage(parser);
<a name="199" href="#199">199</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"FillRepository"</span>)) {
<a name="200" href="#200">200</a>             fillRepository(options);
<a name="201" href="#201">201</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"CreateDocument"</span>)) {
<a name="202" href="#202">202</a>             createSingleDocument(options);
<a name="203" href="#203">203</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"CreateFolder"</span>)) {
<a name="204" href="#204">204</a>             createFolders(options);
<a name="205" href="#205">205</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"RepositoryInfo"</span>)) {
<a name="206" href="#206">206</a>             repositoryInfo(options);
<a name="207" href="#207">207</a> <em class="jxr_comment">//        } else if (options.valueOf(fCmd).equals("CreateTypes")) {</em>
<a name="208" href="#208">208</a> <em class="jxr_comment">//            createTypes(options);</em>
<a name="209" href="#209">209</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"CreateFiles"</span>)) {
<a name="210" href="#210">210</a>             createFiles(options);
<a name="211" href="#211">211</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"CopyFiles"</span>)) {
<a name="212" href="#212">212</a>             transferFiles(options);
<a name="213" href="#213">213</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (options.valueOf(fCmd).equals(<span class="jxr_string">"CopyFilesTest"</span>)) { <em class="jxr_comment">// undocumented</em>
<a name="214" href="#214">214</a>             transferFilesTest(options);
<a name="215" href="#215">215</a>         } <strong class="jxr_keyword">else</strong> {
<a name="216" href="#216">216</a>             System.out.println(<span class="jxr_string">"Unknown cmd: "</span> + options.valueOf(fCmd));
<a name="217" href="#217">217</a>             usage(parser);
<a name="218" href="#218">218</a>         }
<a name="219" href="#219">219</a>     }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>     <em class="jxr_comment">// private void preInitExpensiveTasks() {</em>
<a name="222" href="#222">222</a>     <em class="jxr_comment">// // JAXB initialization is very expensive, count this separate:</em>
<a name="223" href="#223">223</a>     <em class="jxr_comment">// TimeLogger logger = new TimeLogger("Initialization");</em>
<a name="224" href="#224">224</a>     <em class="jxr_comment">// logger.start();</em>
<a name="225" href="#225">225</a>     <em class="jxr_comment">// try {</em>
<a name="226" href="#226">226</a>     <em class="jxr_comment">// JaxBHelper.createMarshaller();</em>
<a name="227" href="#227">227</a>     <em class="jxr_comment">// }</em>
<a name="228" href="#228">228</a>     <em class="jxr_comment">// catch (JAXBException e) {</em>
<a name="229" href="#229">229</a>     <em class="jxr_comment">// System.out.print("Failuer in JAXB init: " + e);</em>
<a name="230" href="#230">230</a>     <em class="jxr_comment">// e.printStackTrace();</em>
<a name="231" href="#231">231</a>     <em class="jxr_comment">// } // dummy call just to get initialized</em>
<a name="232" href="#232">232</a>     <em class="jxr_comment">// logger.stop();</em>
<a name="233" href="#233">233</a>     <em class="jxr_comment">// logger.printTimes();</em>
<a name="234" href="#234">234</a>     <em class="jxr_comment">// }</em>
<a name="235" href="#235">235</a> 
<a name="236" href="#236">236</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> usage(OptionParser parser) {
<a name="237" href="#237">237</a>         <strong class="jxr_keyword">try</strong> {
<a name="238" href="#238">238</a>             System.out.println();
<a name="239" href="#239">239</a>             System.out.println(<span class="jxr_string">"ObjGenApp is a command line tool for testing a CMIS repository."</span>);
<a name="240" href="#240">240</a>             System.out.println(<span class="jxr_string">"Usage:"</span>);
<a name="241" href="#241">241</a>             parser.printHelpOn(System.out);
<a name="242" href="#242">242</a>             System.out.println();
<a name="243" href="#243">243</a>             System.out.println(<span class="jxr_string">"Command is one of [CreateDocument, CreateFolder, FillRepository, RepositoryInfo, CreateFiles]"</span>);
<a name="244" href="#244">244</a>             System.out.println(<span class="jxr_string">"JVM system properties: "</span> + PROP_ATOMPUB_URL + <span class="jxr_string">", "</span> + PROP_WS_URL + <span class="jxr_string">", "</span> + PROP_BROWSER_URL);
<a name="245" href="#245">245</a>             System.out.println(<span class="jxr_string">"                       "</span> + PROP_USER + <span class="jxr_string">", "</span> + PROP_PASSWORD);
<a name="246" href="#246">246</a>             System.out.println();
<a name="247" href="#247">247</a>             System.out.println(<span class="jxr_string">"Example: "</span>);
<a name="248" href="#248">248</a>             System.out.println(<span class="jxr_string">"java -D"</span>
<a name="249" href="#249">249</a>                     + PROP_ATOMPUB_URL
<a name="250" href="#250">250</a>                     + <span class="jxr_string">"=http://localhost:8080/opencmis/atom -cp ... "</span>
<a name="251" href="#251">251</a>                     + <span class="jxr_string">"org.apache.chemistry.opencmis.util.repository.ObjGenApp --Binding=AtomPub --Command=CreateDocument "</span>
<a name="252" href="#252">252</a>                     + <span class="jxr_string">"--RepositoryId=A1 --ContentSizeInKB=25 --ContentKind=lorem/text"</span>);
<a name="253" href="#253">253</a>             <strong class="jxr_keyword">return</strong>;
<a name="254" href="#254">254</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="255" href="#255">255</a>             e.printStackTrace();
<a name="256" href="#256">256</a>         }
<a name="257" href="#257">257</a>     }
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> fillRepository(String repoId, <strong class="jxr_keyword">int</strong> docsPerFolder, <strong class="jxr_keyword">int</strong> foldersPerFolders, <strong class="jxr_keyword">int</strong> depth,
<a name="260" href="#260">260</a>             String documentType, String folderType, <strong class="jxr_keyword">int</strong> contentSizeInKB, String rootFolderId, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner runner = MultiThreadedObjectGenerator.prepareForCreateTree(
<a name="263" href="#263">263</a>                 getClientBindings(), repoId, docsPerFolder, foldersPerFolders, depth, documentType, folderType,
<a name="264" href="#264">264</a>                 contentSizeInKB, rootFolderId, fContentKind, doCleanup);
<a name="265" href="#265">265</a>         ObjectGenerator gen = runner.getObjectGenerator();
<a name="266" href="#266">266</a>         runner.doCreateTree();
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>         System.out.println();
<a name="269" href="#269">269</a>         System.out.println(<span class="jxr_string">"Result:"</span>);
<a name="270" href="#270">270</a>         System.out.println(<span class="jxr_string">"Filling repository succeeded."</span>);
<a name="271" href="#271">271</a>         System.out.println(<span class="jxr_string">"Folder used as root for creation (null=rootFolderId): "</span> + rootFolderId);
<a name="272" href="#272">272</a>         System.out.println(<span class="jxr_string">"Number of documents created: "</span> + gen.getDocumentsInTotal());
<a name="273" href="#273">273</a>         System.out.println(<span class="jxr_string">"Number of folders created: "</span> + gen.getFoldersInTotal());
<a name="274" href="#274">274</a>         gen.printTimings();
<a name="275" href="#275">275</a>     }
<a name="276" href="#276">276</a> 
<a name="277" href="#277">277</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> fillRepositoryMT(<strong class="jxr_keyword">int</strong> noThreads, String repoId, <strong class="jxr_keyword">int</strong> docsPerFolder, <strong class="jxr_keyword">int</strong> foldersPerFolders, <strong class="jxr_keyword">int</strong> depth,
<a name="278" href="#278">278</a>             String documentType, String folderType, <strong class="jxr_keyword">int</strong> contentSizeInKB, String rootFolderId, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="279" href="#279">279</a> 
<a name="280" href="#280">280</a>         <em class="jxr_comment">// Step 1: create a root folder for each thread</em>
<a name="281" href="#281">281</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner runner = MultiThreadedObjectGenerator
<a name="282" href="#282">282</a>                 .prepareForCreateFolder(getClientBindings(), repoId, folderType, rootFolderId, noThreads, doCleanup);
<a name="283" href="#283">283</a>         String[] folderIds = runner.doCreateFolder();
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a>         <em class="jxr_comment">// Step 2: fill each root folder with an object tree</em>
<a name="286" href="#286">286</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner[] runners = MultiThreadedObjectGenerator
<a name="287" href="#287">287</a>                 .prepareForCreateTreeMT(getClientBindings(), repoId, docsPerFolder, foldersPerFolders, depth, documentType,
<a name="288" href="#288">288</a>                         folderType, contentSizeInKB, folderIds, fContentKind, doCleanup);
<a name="289" href="#289">289</a> 
<a name="290" href="#290">290</a>         MultiThreadedObjectGenerator.runMultiThreaded(runners);
<a name="291" href="#291">291</a>         System.out.println(<span class="jxr_string">"Filling repository succeeded."</span>);
<a name="292" href="#292">292</a>     }
<a name="293" href="#293">293</a> 
<a name="294" href="#294">294</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printParameters(OptionSet options) {
<a name="295" href="#295">295</a>         <strong class="jxr_keyword">if</strong> (fBindingType == BindingType.ATOMPUB) {
<a name="296" href="#296">296</a>             System.out.println(<span class="jxr_string">"Using AtomPub, connecting to  "</span> + getAtomPubUrl());
<a name="297" href="#297">297</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (fBindingType == BindingType.WEBSERVICES) {
<a name="298" href="#298">298</a>             System.out.println(<span class="jxr_string">"Using WebService, connecting to  "</span> + getWsUrl());
<a name="299" href="#299">299</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (fBindingType == BindingType.BROWSER) {
<a name="300" href="#300">300</a>             System.out.println(<span class="jxr_string">"Using Browser binding, connecting to  "</span> + getBrowserUrl());
<a name="301" href="#301">301</a>         } <strong class="jxr_keyword">else</strong>
<a name="302" href="#302">302</a>             System.out.println(<span class="jxr_string">"Unknown binding type."</span>);
<a name="303" href="#303">303</a> 
<a name="304" href="#304">304</a>         System.out.println(<span class="jxr_string">"Repository id is: "</span> + options.valueOf(fRepoId));
<a name="305" href="#305">305</a>         System.out.println(<span class="jxr_string">"Content size: "</span> + options.valueOf(fContentSize));
<a name="306" href="#306">306</a>         System.out.println(<span class="jxr_string">"Document Type: "</span> + options.valueOf(fDocType));
<a name="307" href="#307">307</a>         System.out.println(<span class="jxr_string">"Folder id used as root: "</span> + options.valueOf(fRootFolder));
<a name="308" href="#308">308</a>         System.out.println(<span class="jxr_string">"Delete all objects after creation: "</span> + options.valueOf(fCleanup));
<a name="309" href="#309">309</a>         System.out.println(<span class="jxr_string">"Number of actions to perform: "</span> + options.valueOf(fCount));
<a name="310" href="#310">310</a>         System.out.println(<span class="jxr_string">"Number of threads to start: "</span> + options.valueOf(fThreads));
<a name="311" href="#311">311</a>         System.out.println(<span class="jxr_string">"Kind of created content: "</span> + options.valueOf(fContentKindStr));
<a name="312" href="#312">312</a>     }
<a name="313" href="#313">313</a> 
<a name="314" href="#314">314</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createSingleDocument(OptionSet options) {
<a name="315" href="#315">315</a>         System.out.println();
<a name="316" href="#316">316</a>         System.out.println(<span class="jxr_string">"Creating document with parameters:"</span>);
<a name="317" href="#317">317</a>         printParameters(options);
<a name="318" href="#318">318</a>         <strong class="jxr_keyword">int</strong> noThreads = options.valueOf(fThreads);
<a name="319" href="#319">319</a>         <strong class="jxr_keyword">if</strong> (noThreads &lt;= 1) {
<a name="320" href="#320">320</a>             createSingleDocument(options.valueOf(fRepoId), options.valueOf(fDocType), options.valueOf(fContentSize),
<a name="321" href="#321">321</a>                     options.valueOf(fRootFolder), options.valueOf(fCount), options.valueOf(fCleanup));
<a name="322" href="#322">322</a>         } <strong class="jxr_keyword">else</strong> {
<a name="323" href="#323">323</a>             createSingleDocumentMT(noThreads, options.valueOf(fRepoId), options.valueOf(fDocType), options
<a name="324" href="#324">324</a>                     .valueOf(fContentSize), options.valueOf(fRootFolder), options.valueOf(fCount), options
<a name="325" href="#325">325</a>                     .valueOf(fCleanup));
<a name="326" href="#326">326</a>         }
<a name="327" href="#327">327</a>     }
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> fillRepository(OptionSet options) {
<a name="330" href="#330">330</a>         System.out.println();
<a name="331" href="#331">331</a>         printParameters(options);
<a name="332" href="#332">332</a>         System.out.println(<span class="jxr_string">"Creating object tree with folowing parameters: "</span>);
<a name="333" href="#333">333</a>         System.out.println(<span class="jxr_string">"Documents per folder: "</span> + options.valueOf(fDocsPerFolder));
<a name="334" href="#334">334</a>         System.out.println(<span class="jxr_string">"Folder per folder: "</span> + options.valueOf(fFolderPerFolder));
<a name="335" href="#335">335</a>         System.out.println(<span class="jxr_string">"Depth: "</span> + options.valueOf(fDepth));
<a name="336" href="#336">336</a>         System.out.println(<span class="jxr_string">"Folder Type: "</span> + options.valueOf(fFolderType));
<a name="337" href="#337">337</a> 
<a name="338" href="#338">338</a>         <strong class="jxr_keyword">int</strong> noThreads = options.valueOf(fThreads);
<a name="339" href="#339">339</a>         <strong class="jxr_keyword">if</strong> (noThreads &lt;= 1) {
<a name="340" href="#340">340</a>             fillRepository(options.valueOf(fRepoId), options.valueOf(fDocsPerFolder),
<a name="341" href="#341">341</a>                     options.valueOf(fFolderPerFolder), options.valueOf(fDepth), options.valueOf(fDocType), options
<a name="342" href="#342">342</a>                             .valueOf(fFolderType), options.valueOf(fContentSize), options.valueOf(fRootFolder), options
<a name="343" href="#343">343</a>                             .valueOf(fCleanup));
<a name="344" href="#344">344</a>         } <strong class="jxr_keyword">else</strong> {
<a name="345" href="#345">345</a>             fillRepositoryMT(noThreads, options.valueOf(fRepoId), options.valueOf(fDocsPerFolder), options
<a name="346" href="#346">346</a>                     .valueOf(fFolderPerFolder), options.valueOf(fDepth), options.valueOf(fDocType), options
<a name="347" href="#347">347</a>                     .valueOf(fFolderType), options.valueOf(fContentSize), options.valueOf(fRootFolder), options
<a name="348" href="#348">348</a>                     .valueOf(fCleanup));
<a name="349" href="#349">349</a>         }
<a name="350" href="#350">350</a> 
<a name="351" href="#351">351</a>     }
<a name="352" href="#352">352</a> 
<a name="353" href="#353">353</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createFolders(OptionSet options) {
<a name="354" href="#354">354</a>         System.out.println();
<a name="355" href="#355">355</a>         System.out.println(<span class="jxr_string">"Creating folder with parameters:"</span>);
<a name="356" href="#356">356</a>         printParameters(options);
<a name="357" href="#357">357</a>         System.out.println(<span class="jxr_string">"Folder Type: "</span> + options.valueOf(fFolderType));
<a name="358" href="#358">358</a>         <strong class="jxr_keyword">int</strong> noThreads = options.valueOf(fThreads);
<a name="359" href="#359">359</a>         <strong class="jxr_keyword">if</strong> (noThreads &lt;= 1) {
<a name="360" href="#360">360</a>             createFolders(options.valueOf(fRepoId), options.valueOf(fFolderType), options.valueOf(fRootFolder), options
<a name="361" href="#361">361</a>                     .valueOf(fCount), options.valueOf(fCleanup));
<a name="362" href="#362">362</a>         } <strong class="jxr_keyword">else</strong> {
<a name="363" href="#363">363</a>             createFoldersMT(noThreads, options.valueOf(fRepoId), options.valueOf(fFolderType), options
<a name="364" href="#364">364</a>                     .valueOf(fRootFolder), options.valueOf(fCount), options.valueOf(fCleanup));
<a name="365" href="#365">365</a>         }
<a name="366" href="#366">366</a>     }
<a name="367" href="#367">367</a> 
<a name="368" href="#368">368</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createSingleDocument(String repoId, String documentType, <strong class="jxr_keyword">int</strong> contentSizeInKB, String rootFolderId,
<a name="369" href="#369">369</a>             <strong class="jxr_keyword">int</strong> docCount, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="370" href="#370">370</a> 
<a name="371" href="#371">371</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner runner = MultiThreadedObjectGenerator
<a name="372" href="#372">372</a>                 .prepareForCreateDocument(getClientBindings(), repoId, documentType, contentSizeInKB, rootFolderId, docCount,
<a name="373" href="#373">373</a>                         fContentKind, doCleanup);
<a name="374" href="#374">374</a>         ObjectGenerator gen = runner.getObjectGenerator();
<a name="375" href="#375">375</a>         String[] ids = runner.doCreateDocument();
<a name="376" href="#376">376</a>         System.out.println();
<a name="377" href="#377">377</a>         System.out.println(<span class="jxr_string">"Result:"</span>);
<a name="378" href="#378">378</a>         System.out.println(<span class="jxr_string">"Document creation succeeded."</span>);
<a name="379" href="#379">379</a>         System.out.println(<span class="jxr_string">"Folder used as root for creation: "</span> + rootFolderId);
<a name="380" href="#380">380</a>         System.out.println(<span class="jxr_string">"Ids of created documents: "</span>);
<a name="381" href="#381">381</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == ids) {
<a name="382" href="#382">382</a>             System.out.println(<span class="jxr_string">"&lt;none&gt;"</span>);
<a name="383" href="#383">383</a>         } <strong class="jxr_keyword">else</strong> {
<a name="384" href="#384">384</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; ids.length; i++) {
<a name="385" href="#385">385</a>                 System.out.println(ids[i]);
<a name="386" href="#386">386</a>             }
<a name="387" href="#387">387</a>         }
<a name="388" href="#388">388</a>         gen.printTimings();
<a name="389" href="#389">389</a>         gen.resetCounters();
<a name="390" href="#390">390</a>     }
<a name="391" href="#391">391</a> 
<a name="392" href="#392">392</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createSingleDocumentMT(<strong class="jxr_keyword">int</strong> noThreads, String repoId, String documentType, <strong class="jxr_keyword">int</strong> contentSizeInKB,
<a name="393" href="#393">393</a>             String rootFolderId, <strong class="jxr_keyword">int</strong> docCount, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner[] runners = MultiThreadedObjectGenerator
<a name="396" href="#396">396</a>                 .prepareForCreateDocumentMT(noThreads, getClientBindings(), repoId, documentType, contentSizeInKB,
<a name="397" href="#397">397</a>                         rootFolderId, docCount, fContentKind, doCleanup);
<a name="398" href="#398">398</a> 
<a name="399" href="#399">399</a>         MultiThreadedObjectGenerator.runMultiThreaded(runners);
<a name="400" href="#400">400</a>         System.out.println(<span class="jxr_string">"Document creation succeeded. All threads terminated."</span>);
<a name="401" href="#401">401</a>     }
<a name="402" href="#402">402</a> 
<a name="403" href="#403">403</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createFolders(String repoId, String folderType, String rootFolderId, <strong class="jxr_keyword">int</strong> noFolders, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="404" href="#404">404</a> 
<a name="405" href="#405">405</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner runner = MultiThreadedObjectGenerator
<a name="406" href="#406">406</a>                 .prepareForCreateFolder(getClientBindings(), repoId, folderType, rootFolderId, noFolders, doCleanup);
<a name="407" href="#407">407</a>         ObjectGenerator gen = runner.getObjectGenerator();
<a name="408" href="#408">408</a>         String[] ids = runner.doCreateFolder();
<a name="409" href="#409">409</a>         System.out.println();
<a name="410" href="#410">410</a>         System.out.println(<span class="jxr_string">"Result:"</span>);
<a name="411" href="#411">411</a>         System.out.println(<span class="jxr_string">"Folder creation succeeded."</span>);
<a name="412" href="#412">412</a>         System.out.println(<span class="jxr_string">"Ids of created folders: "</span>);
<a name="413" href="#413">413</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == ids) {
<a name="414" href="#414">414</a>             System.out.println(<span class="jxr_string">"&lt;none&gt;"</span>);
<a name="415" href="#415">415</a>         } <strong class="jxr_keyword">else</strong> {
<a name="416" href="#416">416</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; ids.length; i++) {
<a name="417" href="#417">417</a>                 System.out.println(ids[i]);
<a name="418" href="#418">418</a>             }
<a name="419" href="#419">419</a>         }
<a name="420" href="#420">420</a>         gen.printTimings();
<a name="421" href="#421">421</a>         gen.resetCounters();
<a name="422" href="#422">422</a>     }
<a name="423" href="#423">423</a> 
<a name="424" href="#424">424</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createFoldersMT(<strong class="jxr_keyword">int</strong> noThreads, String repoId, String folderType, String rootFolderId, <strong class="jxr_keyword">int</strong> noFolders,
<a name="425" href="#425">425</a>             <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="426" href="#426">426</a> 
<a name="427" href="#427">427</a>         MultiThreadedObjectGenerator.ObjectGeneratorRunner[] runners = MultiThreadedObjectGenerator
<a name="428" href="#428">428</a>                 .prepareForCreateFolderMT(noThreads, getClientBindings(), repoId, folderType, rootFolderId, noFolders,
<a name="429" href="#429">429</a>                         doCleanup);
<a name="430" href="#430">430</a>         MultiThreadedObjectGenerator.runMultiThreaded(runners);
<a name="431" href="#431">431</a>         System.out.println(<span class="jxr_string">"Folder creation succeeded."</span>);
<a name="432" href="#432">432</a>     }
<a name="433" href="#433">433</a> 
<a name="434" href="#434">434</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> callRepoInfo(String repositoryId, <strong class="jxr_keyword">int</strong> count) {
<a name="435" href="#435">435</a>         RepositoryService repSvc = getClientBindings().getRepositoryService();
<a name="436" href="#436">436</a>         TimeLogger timeLogger = <strong class="jxr_keyword">new</strong> TimeLogger(<span class="jxr_string">"RepoInfoTest"</span>);
<a name="437" href="#437">437</a>         RepositoryInfo repoInfo = <strong class="jxr_keyword">null</strong>;
<a name="438" href="#438">438</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; count; i++) {
<a name="439" href="#439">439</a>             binding.clearRepositoryCache(repositoryId);
<a name="440" href="#440">440</a>             timeLogger.start();
<a name="441" href="#441">441</a>             repoInfo = repSvc.getRepositoryInfo(repositoryId, <strong class="jxr_keyword">null</strong>);
<a name="442" href="#442">442</a>             timeLogger.stop();
<a name="443" href="#443">443</a>         }
<a name="444" href="#444">444</a>         System.out.println(<span class="jxr_string">"Root Folder id is: "</span> + (repoInfo == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"&lt;unknown&gt;"</span> : repoInfo.getRootFolderId()));
<a name="445" href="#445">445</a>         timeLogger.printTimes();
<a name="446" href="#446">446</a>     }
<a name="447" href="#447">447</a> 
<a name="448" href="#448">448</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createTypes(OptionSet options) {
<a name="449" href="#449">449</a> 
<a name="450" href="#450">450</a>         String repoId = options.valueOf(fRepoId);
<a name="451" href="#451">451</a>         String fileName = options.valueOf(fFileName);
<a name="452" href="#452">452</a>         System.out.println();
<a name="453" href="#453">453</a>         System.out.println(<span class="jxr_string">"Not yet implemented waiting for CMIS 1.1!"</span>);
<a name="454" href="#454">454</a> <em class="jxr_comment">//        System.out.println("Creating types from file:");</em>
<a name="455" href="#455">455</a> <em class="jxr_comment">//        System.out.println("File Name: " + fileName);</em>
<a name="456" href="#456">456</a> <em class="jxr_comment">//        System.out.println("Repository Id: " + repoId);</em>
<a name="457" href="#457">457</a> <em class="jxr_comment">//</em>
<a name="458" href="#458">458</a> <em class="jxr_comment">//        File file = new File(options.valueOf(fFileName));</em>
<a name="459" href="#459">459</a> <em class="jxr_comment">//        TypeDefinitionList typeDefs = null;</em>
<a name="460" href="#460">460</a> <em class="jxr_comment">//</em>
<a name="461" href="#461">461</a> <em class="jxr_comment">//        try {</em>
<a name="462" href="#462">462</a> <em class="jxr_comment">//            Unmarshaller u = JaxBHelper.createUnmarshaller();</em>
<a name="463" href="#463">463</a> <em class="jxr_comment">//            JAXBElement&lt;CmisTypeDefinitionListType&gt; type = (JAXBElement&lt;CmisTypeDefinitionListType&gt;) u.unmarshal(file);</em>
<a name="464" href="#464">464</a> <em class="jxr_comment">//            typeDefs = Converter.convert(type.getValue());</em>
<a name="465" href="#465">465</a> <em class="jxr_comment">//        } catch (Exception e) {</em>
<a name="466" href="#466">466</a> <em class="jxr_comment">//            System.out.println("Could not load type: '" + fFileName + "': " + e);</em>
<a name="467" href="#467">467</a> <em class="jxr_comment">//        }</em>
<a name="468" href="#468">468</a> <em class="jxr_comment">//        MultiThreadedObjectGenerator.ObjectGeneratorRunner runner = MultiThreadedObjectGenerator.prepareForCreateTypes(</em>
<a name="469" href="#469">469</a> <em class="jxr_comment">//                getBinding(), repoId, typeDefs);</em>
<a name="470" href="#470">470</a> <em class="jxr_comment">//        ObjectGenerator gen = runner.getObjectGenerator();</em>
<a name="471" href="#471">471</a> <em class="jxr_comment">//        gen.createTypes(typeDefs);</em>
<a name="472" href="#472">472</a>     }
<a name="473" href="#473">473</a>         
<a name="474" href="#474">474</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> repositoryInfo(OptionSet options) {
<a name="475" href="#475">475</a>         callRepoInfo(options.valueOf(fRepoId), options.valueOf(fCount));
<a name="476" href="#476">476</a>     }
<a name="477" href="#477">477</a> 
<a name="478" href="#478">478</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createFiles(OptionSet options) {
<a name="479" href="#479">479</a>         ContentStream contentStream = <strong class="jxr_keyword">null</strong>;
<a name="480" href="#480">480</a>         String fileNamePattern = options.valueOf(fFileNamePattern);
<a name="481" href="#481">481</a>         <strong class="jxr_keyword">int</strong> count = options.valueOf(fCount);
<a name="482" href="#482">482</a>         <strong class="jxr_keyword">int</strong> contentSize = options.valueOf(fContentSize);
<a name="483" href="#483">483</a>         
<a name="484" href="#484">484</a>         System.out.println(<span class="jxr_string">"Creating local files with content: "</span>);
<a name="485" href="#485">485</a>         System.out.println(<span class="jxr_string">"Kind: "</span> + options.valueOf(fDocsPerFolder));
<a name="486" href="#486">486</a>         System.out.println(<span class="jxr_string">"Number of files: "</span> + count);
<a name="487" href="#487">487</a>         System.out.println(<span class="jxr_string">"File name pattern: "</span> + fileNamePattern);
<a name="488" href="#488">488</a>         System.out.println(<span class="jxr_string">"Kind of content: "</span> + options.valueOf(fContentKindStr));
<a name="489" href="#489">489</a>         System.out.println(<span class="jxr_string">"Size of content (text only): "</span> + contentSize);
<a name="490" href="#490">490</a>         
<a name="491" href="#491">491</a>         ObjectGenerator objGen = <strong class="jxr_keyword">new</strong> ObjectGenerator(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, fContentKind);
<a name="492" href="#492">492</a>         objGen.setContentSizeInKB(contentSize);
<a name="493" href="#493">493</a>         
<a name="494" href="#494">494</a>         InputStream is = <strong class="jxr_keyword">null</strong>;
<a name="495" href="#495">495</a>         FileOutputStream os = <strong class="jxr_keyword">null</strong>;
<a name="496" href="#496">496</a>         
<a name="497" href="#497">497</a>         <strong class="jxr_keyword">try</strong> {
<a name="498" href="#498">498</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0; i&lt;count; i++) {
<a name="499" href="#499">499</a>                 String fileName = String.format(fileNamePattern, i);
<a name="500" href="#500">500</a>                 System.out.println(<span class="jxr_string">"Generating file: "</span> + fileName);
<a name="501" href="#501">501</a>                 <strong class="jxr_keyword">if</strong> (contentSize &gt; 0) {
<a name="502" href="#502">502</a>                     <strong class="jxr_keyword">switch</strong> (fContentKind) {
<a name="503" href="#503">503</a>                     <strong class="jxr_keyword">case</strong> StaticText:
<a name="504" href="#504">504</a>                         contentStream = objGen.createContentStaticText();
<a name="505" href="#505">505</a>                         <strong class="jxr_keyword">break</strong>;
<a name="506" href="#506">506</a>                     <strong class="jxr_keyword">case</strong> LoremIpsumText:
<a name="507" href="#507">507</a>                         contentStream =  objGen.createContentLoremIpsumText();
<a name="508" href="#508">508</a>                         <strong class="jxr_keyword">break</strong>;
<a name="509" href="#509">509</a>                     <strong class="jxr_keyword">case</strong> LoremIpsumHtml:
<a name="510" href="#510">510</a>                         contentStream =  objGen.createContentLoremIpsumHtml();
<a name="511" href="#511">511</a>                         <strong class="jxr_keyword">break</strong>;
<a name="512" href="#512">512</a>                     <strong class="jxr_keyword">case</strong> ImageFractalJpeg:
<a name="513" href="#513">513</a>                         contentStream =  objGen.createContentFractalimageJpeg();
<a name="514" href="#514">514</a>                         <strong class="jxr_keyword">break</strong>;
<a name="515" href="#515">515</a>                     }
<a name="516" href="#516">516</a>                 }
<a name="517" href="#517">517</a> 
<a name="518" href="#518">518</a>                 <em class="jxr_comment">// write to a file:</em>
<a name="519" href="#519">519</a>                 is = contentStream.getStream();
<a name="520" href="#520">520</a>                 os = <strong class="jxr_keyword">new</strong> FileOutputStream (fileName);
<a name="521" href="#521">521</a>                 byte[] b = <strong class="jxr_keyword">new</strong> byte[64 * 1024];  
<a name="522" href="#522">522</a>                 <strong class="jxr_keyword">int</strong> read;  
<a name="523" href="#523">523</a>                 <strong class="jxr_keyword">while</strong> ((read = is.read(b)) != -1)   
<a name="524" href="#524">524</a>                     os.write(b, 0, read);  
<a name="525" href="#525">525</a>                 is.close();
<a name="526" href="#526">526</a>                 is = <strong class="jxr_keyword">null</strong>;
<a name="527" href="#527">527</a>                 os.close();
<a name="528" href="#528">528</a>                 os = <strong class="jxr_keyword">null</strong>;
<a name="529" href="#529">529</a>             }
<a name="530" href="#530">530</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="531" href="#531">531</a>             System.err.println(<span class="jxr_string">"Error generating file: "</span> + e);
<a name="532" href="#532">532</a>             e.printStackTrace();
<a name="533" href="#533">533</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="534" href="#534">534</a>             <strong class="jxr_keyword">try</strong> {
<a name="535" href="#535">535</a>                 <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != is)
<a name="536" href="#536">536</a>                         is.close();
<a name="537" href="#537">537</a>                 <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != os)
<a name="538" href="#538">538</a>                     os.close();
<a name="539" href="#539">539</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="540" href="#540">540</a>             }            
<a name="541" href="#541">541</a>         }
<a name="542" href="#542">542</a>     }
<a name="543" href="#543">543</a> 
<a name="544" href="#544">544</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> transferFiles(OptionSet options) {
<a name="545" href="#545">545</a>         String fileName = options.valueOf(fLocalFile);
<a name="546" href="#546">546</a>         String dirName = options.valueOf(fLocalDir);
<a name="547" href="#547">547</a>         String repoId = options.valueOf(fRepoId);
<a name="548" href="#548">548</a>         String folderId = options.valueOf(fRootFolder);
<a name="549" href="#549">549</a>         String name = fileName;
<a name="550" href="#550">550</a>         
<a name="551" href="#551">551</a>         <strong class="jxr_keyword">if</strong> ((<strong class="jxr_keyword">null</strong> == fileName || fileName.length() == 0) &amp;&amp; (<strong class="jxr_keyword">null</strong> == dirName || dirName.length() == 0)) {
<a name="552" href="#552">552</a>             System.out.println(<span class="jxr_string">"Error: You either have to provide a --file or a --dir option to copy file(s)."</span>);
<a name="553" href="#553">553</a>             <strong class="jxr_keyword">return</strong>;
<a name="554" href="#554">554</a>         }
<a name="555" href="#555">555</a>         
<a name="556" href="#556">556</a>         <em class="jxr_comment">// if no file name is provided there must be a directory</em>
<a name="557" href="#557">557</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == name || name.length() == 0)
<a name="558" href="#558">558</a>             name = dirName;
<a name="559" href="#559">559</a>         
<a name="560" href="#560">560</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == fRepoId || repoId.length() == 0) {
<a name="561" href="#561">561</a>             System.out.println(<span class="jxr_string">"Error: You have to provide a repository id"</span>);
<a name="562" href="#562">562</a>             <strong class="jxr_keyword">return</strong>;
<a name="563" href="#563">563</a>         }
<a name="564" href="#564">564</a>         System.out.println(<span class="jxr_string">"Copying files to a repository: "</span>);
<a name="565" href="#565">565</a>         System.out.println(<span class="jxr_string">"Repository id is: "</span> + repoId);
<a name="566" href="#566">566</a>         System.out.println(<span class="jxr_string">"Folder id used as root: "</span> + options.valueOf(fRootFolder));
<a name="567" href="#567">567</a>         
<a name="568" href="#568">568</a>         
<a name="569" href="#569">569</a>         Map&lt;String, String&gt; parameters = getConnectionParameters(getBinding(), repoId);
<a name="570" href="#570">570</a>         <a href="../../../../../../org/apache/chemistry/opencmis/client/filecopy/FileCopier.html">FileCopier</a> fc = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/filecopy/FileCopier.html">FileCopier</a>();
<a name="571" href="#571">571</a>         fc.connect(parameters);
<a name="572" href="#572">572</a>         fc.copyRecursive(name, folderId);
<a name="573" href="#573">573</a>     }
<a name="574" href="#574">574</a>         
<a name="575" href="#575">575</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> transferFilesTest(OptionSet options) {
<a name="576" href="#576">576</a>         String fileName = options.valueOf(fLocalFile);
<a name="577" href="#577">577</a>         
<a name="578" href="#578">578</a>         <strong class="jxr_keyword">if</strong> ((<strong class="jxr_keyword">null</strong> == fileName || fileName.length() == 0)) {
<a name="579" href="#579">579</a>             System.out.println(<span class="jxr_string">"Error: You either have to provide a --file option to test metadata extraction."</span>);
<a name="580" href="#580">580</a>             <strong class="jxr_keyword">return</strong>;
<a name="581" href="#581">581</a>         }
<a name="582" href="#582">582</a>         
<a name="583" href="#583">583</a>         System.out.println(<span class="jxr_string">"Testing metadata extraction: "</span>);
<a name="584" href="#584">584</a>         
<a name="585" href="#585">585</a>         <a href="../../../../../../org/apache/chemistry/opencmis/client/filecopy/FileCopier.html">FileCopier</a> fc = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/filecopy/FileCopier.html">FileCopier</a>();
<a name="586" href="#586">586</a>         fc.listMetadata(fileName);
<a name="587" href="#587">587</a>     }
<a name="588" href="#588">588</a> 
<a name="589" href="#589">589</a>     <strong class="jxr_keyword">private</strong> Map&lt;String, String&gt; getConnectionParameters(String binding, String repoId) {
<a name="590" href="#590">590</a>         Map&lt;String, String&gt; parameters = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a name="591" href="#591">591</a>         parameters.put(SessionParameter.REPOSITORY_ID, repoId);
<a name="592" href="#592">592</a>         parameters.put(SessionParameter.BINDING_TYPE, binding);
<a name="593" href="#593">593</a> 
<a name="594" href="#594">594</a>         <strong class="jxr_keyword">if</strong> (binding.equals(BindingType.ATOMPUB.value())) {
<a name="595" href="#595">595</a>             parameters.put(SessionParameter.ATOMPUB_URL, getAtomPubUrl());
<a name="596" href="#596">596</a>             filLoginParams(parameters, getUser(), getPassword());
<a name="597" href="#597">597</a>         } <strong class="jxr_keyword">if</strong> (binding.equals(BindingType.WEBSERVICES.value())) {
<a name="598" href="#598">598</a>             fillWSParameters(parameters, getWsUrl(), isPrefix(getWsUrl()), getUser(), getPassword());
<a name="599" href="#599">599</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (binding.equals(BindingType.BROWSER.value())) {
<a name="600" href="#600">600</a>             parameters.put(SessionParameter.BROWSER_URL, getBrowserUrl());
<a name="601" href="#601">601</a>             filLoginParams(parameters, getUser(), getPassword());
<a name="602" href="#602">602</a>         } <strong class="jxr_keyword">else</strong> {
<a name="603" href="#603">603</a>             System.out.println(<span class="jxr_string">"Error unknown binding: "</span> + binding);
<a name="604" href="#604">604</a>         }
<a name="605" href="#605">605</a> 
<a name="606" href="#606">606</a>         <strong class="jxr_keyword">return</strong> parameters;
<a name="607" href="#607">607</a>     }
<a name="608" href="#608">608</a> 
<a name="609" href="#609">609</a>     <strong class="jxr_keyword">private</strong> CmisBinding getClientBindings() {
<a name="610" href="#610">610</a>         <strong class="jxr_keyword">if</strong> (binding == <strong class="jxr_keyword">null</strong>) {
<a name="611" href="#611">611</a>             <strong class="jxr_keyword">if</strong> (fBindingType == BindingType.ATOMPUB) {
<a name="612" href="#612">612</a>                 binding = createAtomBinding(getAtomPubUrl(), getUser(), getPassword());
<a name="613" href="#613">613</a>             } <strong class="jxr_keyword">if</strong> (fBindingType == BindingType.WEBSERVICES) {
<a name="614" href="#614">614</a>                 String url = getWsUrl();
<a name="615" href="#615">615</a>                 binding = createWSBinding(url, isPrefix(url), getUser(), getPassword()); 
<a name="616" href="#616">616</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (fBindingType == BindingType.BROWSER) {
<a name="617" href="#617">617</a>                 binding = createBrowserBinding(getBrowserUrl(), getUser(), getPassword()); 
<a name="618" href="#618">618</a>             }
<a name="619" href="#619">619</a>         }
<a name="620" href="#620">620</a>         <strong class="jxr_keyword">return</strong> binding;
<a name="621" href="#621">621</a>     }
<a name="622" href="#622">622</a> 
<a name="623" href="#623">623</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> filLoginParams(Map&lt;String, String&gt; parameters, String user, String password) {
<a name="624" href="#624">624</a>         <strong class="jxr_keyword">if</strong> (user != <strong class="jxr_keyword">null</strong> &amp;&amp; user.length() &gt; 0) {
<a name="625" href="#625">625</a>             parameters.put(SessionParameter.USER, user);
<a name="626" href="#626">626</a>         }
<a name="627" href="#627">627</a>         <strong class="jxr_keyword">if</strong> (user != <strong class="jxr_keyword">null</strong> &amp;&amp; user.length() &gt; 0) {
<a name="628" href="#628">628</a>             parameters.put(SessionParameter.PASSWORD, password);
<a name="629" href="#629">629</a>         }
<a name="630" href="#630">630</a>     }
<a name="631" href="#631">631</a> 
<a name="632" href="#632">632</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> CmisBinding createAtomBinding(String url, String user, String password) {
<a name="633" href="#633">633</a> 
<a name="634" href="#634">634</a>         <em class="jxr_comment">// gather parameters</em>
<a name="635" href="#635">635</a>         Map&lt;String, String&gt; parameters = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a name="636" href="#636">636</a>         filLoginParams(parameters, user, password);
<a name="637" href="#637">637</a> 
<a name="638" href="#638">638</a>         <em class="jxr_comment">// get factory and create binding</em>
<a name="639" href="#639">639</a>         CmisBindingFactory factory = CmisBindingFactory.newInstance();
<a name="640" href="#640">640</a>         parameters.put(SessionParameter.ATOMPUB_URL, url);
<a name="641" href="#641">641</a>         CmisBinding binding = factory.createCmisAtomPubBinding(parameters);
<a name="642" href="#642">642</a>         <strong class="jxr_keyword">return</strong> binding;
<a name="643" href="#643">643</a>     }
<a name="644" href="#644">644</a> 
<a name="645" href="#645">645</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> CmisBinding createBrowserBinding(String url, String user, String password) {
<a name="646" href="#646">646</a> 
<a name="647" href="#647">647</a>         <em class="jxr_comment">// gather parameters</em>
<a name="648" href="#648">648</a>         Map&lt;String, String&gt; parameters = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a name="649" href="#649">649</a>         filLoginParams(parameters, user, password);
<a name="650" href="#650">650</a> 
<a name="651" href="#651">651</a>         <em class="jxr_comment">// get factory and create binding</em>
<a name="652" href="#652">652</a>         CmisBindingFactory factory = CmisBindingFactory.newInstance();
<a name="653" href="#653">653</a>         parameters.put(SessionParameter.BROWSER_URL, url);
<a name="654" href="#654">654</a>         CmisBinding binding = factory.createCmisBrowserBinding(parameters);
<a name="655" href="#655">655</a>         <strong class="jxr_keyword">return</strong> binding;
<a name="656" href="#656">656</a>     }
<a name="657" href="#657">657</a> 
<a name="658" href="#658">658</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isPrefix(String url) {
<a name="659" href="#659">659</a>         <strong class="jxr_keyword">boolean</strong> isPrefix = <strong class="jxr_keyword">true</strong>;
<a name="660" href="#660">660</a>         String urlLower = url.toLowerCase();
<a name="661" href="#661">661</a> 
<a name="662" href="#662">662</a>         <strong class="jxr_keyword">if</strong> (urlLower.endsWith(<span class="jxr_string">"?wsdl"</span>)) {
<a name="663" href="#663">663</a>             isPrefix = false;
<a name="664" href="#664">664</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (urlLower.endsWith(<span class="jxr_string">".wsdl"</span>)) {
<a name="665" href="#665">665</a>             isPrefix = false;
<a name="666" href="#666">666</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (urlLower.endsWith(<span class="jxr_string">".xml"</span>)) {
<a name="667" href="#667">667</a>             isPrefix = false;
<a name="668" href="#668">668</a>         }
<a name="669" href="#669">669</a>         <strong class="jxr_keyword">return</strong> isPrefix;
<a name="670" href="#670">670</a>     }
<a name="671" href="#671">671</a>     
<a name="672" href="#672">672</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisBinding createWSBinding(String url, <strong class="jxr_keyword">boolean</strong> isPrefix, String username, String password) {
<a name="673" href="#673">673</a>         Map&lt;String, String&gt; parameters = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a name="674" href="#674">674</a>         fillWSParameters(parameters, url, isPrefix, username, password);
<a name="675" href="#675">675</a>         
<a name="676" href="#676">676</a>         <em class="jxr_comment">// get factory and create provider</em>
<a name="677" href="#677">677</a>         CmisBindingFactory factory = CmisBindingFactory.newInstance();
<a name="678" href="#678">678</a>         CmisBinding binding = factory.createCmisWebServicesBinding(parameters);
<a name="679" href="#679">679</a> 
<a name="680" href="#680">680</a>         <strong class="jxr_keyword">return</strong> binding;
<a name="681" href="#681">681</a>     }
<a name="682" href="#682">682</a>     
<a name="683" href="#683">683</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> fillWSParameters(Map&lt;String, String&gt; parameters, String url, <strong class="jxr_keyword">boolean</strong> isPrefix, String username, String password) {
<a name="684" href="#684">684</a>         <em class="jxr_comment">// gather parameters</em>
<a name="685" href="#685">685</a>         parameters.put(SessionParameter.USER, username);
<a name="686" href="#686">686</a>         parameters.put(SessionParameter.PASSWORD, password);
<a name="687" href="#687">687</a> 
<a name="688" href="#688">688</a>         <strong class="jxr_keyword">if</strong> (!isPrefix) {
<a name="689" href="#689">689</a>             parameters.put(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE, url);
<a name="690" href="#690">690</a>             parameters.put(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE, url);
<a name="691" href="#691">691</a>             parameters.put(SessionParameter.WEBSERVICES_OBJECT_SERVICE, url);
<a name="692" href="#692">692</a>             parameters.put(SessionParameter.WEBSERVICES_VERSIONING_SERVICE, url);
<a name="693" href="#693">693</a>             parameters.put(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE, url);
<a name="694" href="#694">694</a>             parameters.put(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE, url);
<a name="695" href="#695">695</a>             parameters.put(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE, url);
<a name="696" href="#696">696</a>             parameters.put(SessionParameter.WEBSERVICES_POLICY_SERVICE, url);
<a name="697" href="#697">697</a>             parameters.put(SessionParameter.WEBSERVICES_ACL_SERVICE, url);
<a name="698" href="#698">698</a>         } <strong class="jxr_keyword">else</strong> {
<a name="699" href="#699">699</a>             parameters.put(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE, url + <span class="jxr_string">"RepositoryService?wsdl"</span>);
<a name="700" href="#700">700</a>             parameters.put(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE, url + <span class="jxr_string">"NavigationService?wsdl"</span>);
<a name="701" href="#701">701</a>             parameters.put(SessionParameter.WEBSERVICES_OBJECT_SERVICE, url + <span class="jxr_string">"ObjectService?wsdl"</span>);
<a name="702" href="#702">702</a>             parameters.put(SessionParameter.WEBSERVICES_VERSIONING_SERVICE, url + <span class="jxr_string">"VersioningService?wsdl"</span>);
<a name="703" href="#703">703</a>             parameters.put(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE, url + <span class="jxr_string">"DiscoveryService?wsdl"</span>);
<a name="704" href="#704">704</a>             parameters.put(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE, url + <span class="jxr_string">"RelationshipService?wsdl"</span>);
<a name="705" href="#705">705</a>             parameters.put(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE, url + <span class="jxr_string">"MultiFilingService?wsdl"</span>);
<a name="706" href="#706">706</a>             parameters.put(SessionParameter.WEBSERVICES_POLICY_SERVICE, url + <span class="jxr_string">"PolicyService?wsdl"</span>);
<a name="707" href="#707">707</a>             parameters.put(SessionParameter.WEBSERVICES_ACL_SERVICE, url + <span class="jxr_string">"ACLService?wsdl"</span>);
<a name="708" href="#708">708</a>         }
<a name="709" href="#709">709</a>     }
<a name="710" href="#710">710</a> 
<a name="711" href="#711">711</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getBinding() {
<a name="712" href="#712">712</a>         <strong class="jxr_keyword">return</strong> System.getProperty(PROP_BINDING, DEFAULT_BINDING);
<a name="713" href="#713">713</a>     }
<a name="714" href="#714">714</a>     
<a name="715" href="#715">715</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getAtomPubUrl() {
<a name="716" href="#716">716</a>         <strong class="jxr_keyword">return</strong> System.getProperty(PROP_ATOMPUB_URL, DEFAULT_ATOMPUB_URL);
<a name="717" href="#717">717</a>     }
<a name="718" href="#718">718</a> 
<a name="719" href="#719">719</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getWsUrl() {
<a name="720" href="#720">720</a>         <strong class="jxr_keyword">return</strong> System.getProperty(PROP_WS_URL, DEFAULT_WS_URL);
<a name="721" href="#721">721</a>     }
<a name="722" href="#722">722</a> 
<a name="723" href="#723">723</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getBrowserUrl() {
<a name="724" href="#724">724</a>         <strong class="jxr_keyword">return</strong> System.getProperty(PROP_BROWSER_URL, DEFAULT_BROWSER_BINDING_URL);
<a name="725" href="#725">725</a>     }
<a name="726" href="#726">726</a> 
<a name="727" href="#727">727</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getUser() {
<a name="728" href="#728">728</a>         <strong class="jxr_keyword">return</strong> System.getProperty(PROP_USER, DEFAULT_USER);
<a name="729" href="#729">729</a>     }
<a name="730" href="#730">730</a> 
<a name="731" href="#731">731</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPassword() {
<a name="732" href="#732">732</a>         <strong class="jxr_keyword">return</strong> System.getProperty(PROP_PASSWORD, DEFAULT_PASSWORD);
<a name="733" href="#733">733</a>     }
<a name="734" href="#734">734</a> 
<a name="735" href="#735">735</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> getUrl(String urlStr) {
<a name="736" href="#736">736</a>         URL url;
<a name="737" href="#737">737</a>         InputStream is;
<a name="738" href="#738">738</a>         InputStreamReader isr;
<a name="739" href="#739">739</a>         BufferedReader r;
<a name="740" href="#740">740</a>         String str;
<a name="741" href="#741">741</a> 
<a name="742" href="#742">742</a>         <strong class="jxr_keyword">try</strong> {
<a name="743" href="#743">743</a>             System.out.println(<span class="jxr_string">"Reading URL: "</span> + urlStr);
<a name="744" href="#744">744</a>             url = <strong class="jxr_keyword">new</strong> URL(urlStr);
<a name="745" href="#745">745</a>             is = url.openStream();
<a name="746" href="#746">746</a>             isr = <strong class="jxr_keyword">new</strong> InputStreamReader(is);
<a name="747" href="#747">747</a>             r = <strong class="jxr_keyword">new</strong> BufferedReader(isr);
<a name="748" href="#748">748</a>             <strong class="jxr_keyword">do</strong> {
<a name="749" href="#749">749</a>                 str = r.readLine();
<a name="750" href="#750">750</a>                 <strong class="jxr_keyword">if</strong> (str != <strong class="jxr_keyword">null</strong>) {
<a name="751" href="#751">751</a>                     System.out.println(str);
<a name="752" href="#752">752</a>                 }
<a name="753" href="#753">753</a>             } <strong class="jxr_keyword">while</strong> (str != <strong class="jxr_keyword">null</strong>);
<a name="754" href="#754">754</a>         } <strong class="jxr_keyword">catch</strong> (MalformedURLException e) {
<a name="755" href="#755">755</a>             System.out.println(<span class="jxr_string">"Must enter a valid URL"</span> + e);
<a name="756" href="#756">756</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="757" href="#757">757</a>             System.out.println(<span class="jxr_string">"Can not connect"</span> + e);
<a name="758" href="#758">758</a>         }
<a name="759" href="#759">759</a>     }
<a name="760" href="#760">760</a> 
<a name="761" href="#761">761</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

