<!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=UTF-8" />
<title>CassandraMetadataRepository xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.metadata.repository.cassandra;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *  <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Predicate;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Iterables;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.serializers.LongSerializer;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.serializers.StringSerializer;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ColumnFamilyResult;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ColumnFamilyTemplate;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ColumnFamilyUpdater;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ThriftColumnFamilyTemplate;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.Keyspace;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.beans.ColumnSlice;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.beans.OrderedRows;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.beans.Row;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.exceptions.HInvalidRequestException;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.factory.HFactory;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.mutation.MutationResult;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.mutation.Mutator;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.query.QueryResult;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.query.RangeSlicesQuery;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaConfiguration;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ArtifactMetadata;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.CiManagement;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Dependency;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.FacetedMetadata;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.IssueManagement;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.License;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MailingList;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MetadataFacet;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MetadataFacetFactory;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Organization;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectMetadata;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionMetadata;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionReference;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Scm;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataRepository;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataRepositoryException;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataResolutionException;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.MetadataFacetModel;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.Namespace;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.Project;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.ProjectVersionMetadataModel;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.Repository;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.modelmapper.ModelMapper;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> javax.persistence.PersistenceException;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <strong class="jxr_keyword">import</strong> java.util.UUID;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.archiva.metadata.repository.cassandra.CassandraUtils.*;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.archiva.metadata.repository.cassandra.model.ColumnNames.*;
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment"> * @author Olivier Lamy</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment"> * @since 2.0.0</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">CassandraMetadataRepository</a>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">implements</strong> MetadataRepository
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  {
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  
<a class="jxr_linenumber" name="L97" href="#L97">97</a>      <strong class="jxr_keyword">private</strong> Logger logger = LoggerFactory.getLogger( getClass() );
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>      <strong class="jxr_keyword">private</strong> ArchivaConfiguration configuration;
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, MetadataFacetFactory&gt; metadataFacetFactories;
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.html">CassandraArchivaManager</a> cassandraArchivaManager;
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; projectVersionMetadataTemplate;
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 
<a class="jxr_linenumber" name="L107" href="#L107">107</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; projectTemplate;
<a class="jxr_linenumber" name="L108" href="#L108">108</a> 
<a class="jxr_linenumber" name="L109" href="#L109">109</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; artifactMetadataTemplate;
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; metadataFacetTemplate;
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; mailingListTemplate;
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; licenseTemplate;
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; dependencyTemplate;
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Keyspace keyspace;
<a class="jxr_linenumber" name="L120" href="#L120">120</a> 
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> StringSerializer ss = StringSerializer.get();
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
<a class="jxr_linenumber" name="L123" href="#L123">123</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">CassandraMetadataRepository</a>( Map&lt;String, MetadataFacetFactory&gt; metadataFacetFactories,
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                                         ArchivaConfiguration configuration,
<a class="jxr_linenumber" name="L125" href="#L125">125</a>                                         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.html">CassandraArchivaManager</a> cassandraArchivaManager )
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         <strong class="jxr_keyword">this</strong>.metadataFacetFactories = metadataFacetFactories;
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         <strong class="jxr_keyword">this</strong>.configuration = configuration;
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <strong class="jxr_keyword">this</strong>.cassandraArchivaManager = cassandraArchivaManager;
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         <strong class="jxr_keyword">this</strong>.keyspace = cassandraArchivaManager.getKeyspace();
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate =
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                                               cassandraArchivaManager.getProjectVersionMetadataFamilyName(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L135" href="#L135">135</a>                                               StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L136" href="#L136">136</a>                                               StringSerializer.get() );
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         <strong class="jxr_keyword">this</strong>.projectTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a>                                                                  cassandraArchivaManager.getProjectFamilyName(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a>                                                                  <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a>                                                                  StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a>                                                                  StringSerializer.get() );
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a>                                                                           cassandraArchivaManager.getArtifactMetadataFamilyName(),
<a class="jxr_linenumber" name="L146" href="#L146">146</a>                                                                           StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L147" href="#L147">147</a>                                                                           StringSerializer.get() );
<a class="jxr_linenumber" name="L148" href="#L148">148</a> 
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         <strong class="jxr_keyword">this</strong>.metadataFacetTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                                                                        cassandraArchivaManager.getMetadataFacetFamilyName(),
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                                                                        <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                                                                        StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L153" href="#L153">153</a>                                                                        StringSerializer.get() );
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         <strong class="jxr_keyword">this</strong>.mailingListTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a>                                                                      cassandraArchivaManager.getMailingListFamilyName(),
<a class="jxr_linenumber" name="L157" href="#L157">157</a>                                                                      <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>                                                                      StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L159" href="#L159">159</a>                                                                      StringSerializer.get() );
<a class="jxr_linenumber" name="L160" href="#L160">160</a> 
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         <strong class="jxr_keyword">this</strong>.licenseTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L162" href="#L162">162</a>                                                                  cassandraArchivaManager.getLicenseFamilyName(),
<a class="jxr_linenumber" name="L163" href="#L163">163</a>                                                                  <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                                                                  StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L165" href="#L165">165</a>                                                                  StringSerializer.get() );
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 
<a class="jxr_linenumber" name="L167" href="#L167">167</a>         <strong class="jxr_keyword">this</strong>.dependencyTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L168" href="#L168">168</a>                                                                     cassandraArchivaManager.getDependencyFamilyName(),
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                                                                     <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L170" href="#L170">170</a>                                                                     StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                                                                     StringSerializer.get() );
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     }
<a class="jxr_linenumber" name="L173" href="#L173">173</a> 
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">     * if the repository doesn't exist it will be created</em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">     * @param repositoryId</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">     * @return</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> getOrCreateRepository( String repositoryId )
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L183" href="#L183">183</a>     {
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         String cf = cassandraArchivaManager.getRepositoryFamilyName();
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(),
<a class="jxr_linenumber" name="L188" href="#L188">188</a>                                      StringSerializer.get() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             .setColumnFamily( cf ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L192" href="#L192">192</a>             .execute();
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         {
<a class="jxr_linenumber" name="L196" href="#L196">196</a>             <em class="jxr_comment">// we need to create the repository</em>
<a class="jxr_linenumber" name="L197" href="#L197">197</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> repository = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>( repositoryId );
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
<a class="jxr_linenumber" name="L199" href="#L199">199</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L200" href="#L200">200</a>             {
<a class="jxr_linenumber" name="L201" href="#L201">201</a>                 MutationResult mutationResult = HFactory.createMutator( keyspace, StringSerializer.get() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L202" href="#L202">202</a>                     .addInsertion( repositoryId, cf,
<a class="jxr_linenumber" name="L203" href="#L203">203</a>                                    CassandraUtils.column( REPOSITORY_NAME.toString(), repository.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L204" href="#L204">204</a>                     .execute();
<a class="jxr_linenumber" name="L205" href="#L205">205</a>                 logger.debug( <span class="jxr_string">"time to insert repository: {}"</span>, mutationResult.getExecutionTimeMicro() );
<a class="jxr_linenumber" name="L206" href="#L206">206</a>                 <strong class="jxr_keyword">return</strong> repository;
<a class="jxr_linenumber" name="L207" href="#L207">207</a>             }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>             <strong class="jxr_keyword">catch</strong> ( HInvalidRequestException e )
<a class="jxr_linenumber" name="L209" href="#L209">209</a>             {
<a class="jxr_linenumber" name="L210" href="#L210">210</a>                 logger.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L211" href="#L211">211</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MetadataRepositoryException( e.getMessage(), e );
<a class="jxr_linenumber" name="L212" href="#L212">212</a>             }
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         }
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
<a class="jxr_linenumber" name="L216" href="#L216">216</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>(
<a class="jxr_linenumber" name="L217" href="#L217">217</a>             result.get().getList().get( 0 ).getColumnSlice().getColumnByName( REPOSITORY_NAME.toString() ).getValue() );
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     }
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> getRepository( String repositoryId )
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L223" href="#L223">223</a>     {
<a class="jxr_linenumber" name="L224" href="#L224">224</a> 
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L226" href="#L226">226</a>             .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(),
<a class="jxr_linenumber" name="L227" href="#L227">227</a>                                      StringSerializer.get() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L228" href="#L228">228</a>             .setColumnFamily( cassandraArchivaManager.getRepositoryFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L229" href="#L229">229</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L230" href="#L230">230</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a>             .execute();
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         <strong class="jxr_keyword">return</strong> ( result.get().getCount() &gt; 0 ) ? <strong class="jxr_keyword">new</strong> Repository( repositoryId ) : <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     }
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     @Override
<a class="jxr_linenumber" name="L236" href="#L236">236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L238" href="#L238">238</a>     {
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         updateOrAddNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L240" href="#L240">240</a>     }
<a class="jxr_linenumber" name="L241" href="#L241">241</a> 
<a class="jxr_linenumber" name="L242" href="#L242">242</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> updateOrAddNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     {
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L246" href="#L246">246</a>         {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> repository = getOrCreateRepository( repositoryId );
<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
<a class="jxr_linenumber" name="L249" href="#L249">249</a>             String key =
<a class="jxr_linenumber" name="L250" href="#L250">250</a>                 <strong class="jxr_keyword">new</strong> Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build();
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 
<a class="jxr_linenumber" name="L252" href="#L252">252</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = getNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L253" href="#L253">253</a>             <strong class="jxr_keyword">if</strong> ( namespace == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L254" href="#L254">254</a>             {
<a class="jxr_linenumber" name="L255" href="#L255">255</a>                 String cf = cassandraArchivaManager.getNamespaceFamilyName();
<a class="jxr_linenumber" name="L256" href="#L256">256</a>                 namespace = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a>( namespaceId, repository );
<a class="jxr_linenumber" name="L257" href="#L257">257</a>                 HFactory.createMutator( keyspace, StringSerializer.get() )
<a class="jxr_linenumber" name="L258" href="#L258">258</a>                     <em class="jxr_comment">//  values</em>
<a class="jxr_linenumber" name="L259" href="#L259">259</a>                     .addInsertion( key, cf, CassandraUtils.column( NAME.toString(), namespace.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L260" href="#L260">260</a>                     .addInsertion( key, cf, CassandraUtils.column( REPOSITORY_NAME.toString(), repository.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L261" href="#L261">261</a>                     .execute();
<a class="jxr_linenumber" name="L262" href="#L262">262</a>             }
<a class="jxr_linenumber" name="L263" href="#L263">263</a> 
<a class="jxr_linenumber" name="L264" href="#L264">264</a>             <strong class="jxr_keyword">return</strong> namespace;
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         }
<a class="jxr_linenumber" name="L266" href="#L266">266</a>         <strong class="jxr_keyword">catch</strong> ( HInvalidRequestException e )
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>             logger.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MetadataRepositoryException( e.getMessage(), e );
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         }
<a class="jxr_linenumber" name="L271" href="#L271">271</a>     }
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 
<a class="jxr_linenumber" name="L273" href="#L273">273</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> getNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L274" href="#L274">274</a>     {
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L277" href="#L277">277</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L278" href="#L278">278</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L279" href="#L279">279</a>             .setColumnNames( REPOSITORY_NAME.toString(), NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a>             .addEqualsExpression( NAME.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a>             .execute();
<a class="jxr_linenumber" name="L283" href="#L283">283</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &gt; 0 )
<a class="jxr_linenumber" name="L284" href="#L284">284</a>         {
<a class="jxr_linenumber" name="L285" href="#L285">285</a>             ColumnSlice&lt;String, String&gt; columnSlice = result.get().getList().get( 0 ).getColumnSlice();
<a class="jxr_linenumber" name="L286" href="#L286">286</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a>( getStringValue( columnSlice, NAME.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L287" href="#L287">287</a>                                   <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) ) );
<a class="jxr_linenumber" name="L288" href="#L288">288</a> 
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         }
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     }
<a class="jxr_linenumber" name="L292" href="#L292">292</a> 
<a class="jxr_linenumber" name="L293" href="#L293">293</a> 
<a class="jxr_linenumber" name="L294" href="#L294">294</a>     @Override
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     {
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         {
<a class="jxr_linenumber" name="L301" href="#L301">301</a>             String key = <strong class="jxr_keyword">new</strong> Namespace.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L302" href="#L302">302</a>                 .withNamespace( namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L303" href="#L303">303</a>                 .withRepositoryId( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L304" href="#L304">304</a>                 .build();
<a class="jxr_linenumber" name="L305" href="#L305">305</a> 
<a class="jxr_linenumber" name="L306" href="#L306">306</a>             HFactory.createMutator( cassandraArchivaManager.getKeyspace(), <strong class="jxr_keyword">new</strong> StringSerializer() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L307" href="#L307">307</a>                 .addDeletion( key, cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L308" href="#L308">308</a>                 .execute();
<a class="jxr_linenumber" name="L309" href="#L309">309</a> 
<a class="jxr_linenumber" name="L310" href="#L310">310</a>             QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L311" href="#L311">311</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L312" href="#L312">312</a>                 .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L313" href="#L313">313</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L314" href="#L314">314</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L315" href="#L315">315</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L316" href="#L316">316</a>                 .execute();
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 
<a class="jxr_linenumber" name="L318" href="#L318">318</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L319" href="#L319">319</a>             {
<a class="jxr_linenumber" name="L320" href="#L320">320</a>                 <strong class="jxr_keyword">this</strong>.projectTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>             }
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 
<a class="jxr_linenumber" name="L323" href="#L323">323</a>             result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L324" href="#L324">324</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L325" href="#L325">325</a>                 .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L326" href="#L326">326</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L327" href="#L327">327</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L328" href="#L328">328</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L329" href="#L329">329</a>                 .execute();
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 
<a class="jxr_linenumber" name="L331" href="#L331">331</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L332" href="#L332">332</a>             {
<a class="jxr_linenumber" name="L333" href="#L333">333</a>                 <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L334" href="#L334">334</a>                 removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L335" href="#L335">335</a>             }
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 
<a class="jxr_linenumber" name="L337" href="#L337">337</a>             result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L338" href="#L338">338</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L339" href="#L339">339</a>                 .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L340" href="#L340">340</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L341" href="#L341">341</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L342" href="#L342">342</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L343" href="#L343">343</a>                 .execute();
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 
<a class="jxr_linenumber" name="L345" href="#L345">345</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L346" href="#L346">346</a>             {
<a class="jxr_linenumber" name="L347" href="#L347">347</a>                 <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L348" href="#L348">348</a>             }
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
<a class="jxr_linenumber" name="L350" href="#L350">350</a>             result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L351" href="#L351">351</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L352" href="#L352">352</a>                 .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L353" href="#L353">353</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L354" href="#L354">354</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L355" href="#L355">355</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L356" href="#L356">356</a>                 .execute();
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 
<a class="jxr_linenumber" name="L358" href="#L358">358</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L359" href="#L359">359</a>             {
<a class="jxr_linenumber" name="L360" href="#L360">360</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L361" href="#L361">361</a>             }
<a class="jxr_linenumber" name="L362" href="#L362">362</a> 
<a class="jxr_linenumber" name="L363" href="#L363">363</a>         }
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         <strong class="jxr_keyword">catch</strong> ( HInvalidRequestException e )
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         {
<a class="jxr_linenumber" name="L366" href="#L366">366</a>             logger.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L367" href="#L367">367</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MetadataRepositoryException( e.getMessage(), e );
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         }
<a class="jxr_linenumber" name="L369" href="#L369">369</a>     }
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 
<a class="jxr_linenumber" name="L371" href="#L371">371</a> 
<a class="jxr_linenumber" name="L372" href="#L372">372</a>     @Override
<a class="jxr_linenumber" name="L373" href="#L373">373</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeRepository( <strong class="jxr_keyword">final</strong> String repositoryId )
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L375" href="#L375">375</a>     {
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         <em class="jxr_comment">// TODO use cql queries to delete all</em>
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         List&lt;String&gt; namespacesKey = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L379" href="#L379">379</a> 
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L381" href="#L381">381</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L382" href="#L382">382</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L383" href="#L383">383</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L384" href="#L384">384</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L385" href="#L385">385</a>             .execute();
<a class="jxr_linenumber" name="L386" href="#L386">386</a> 
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L388" href="#L388">388</a>         {
<a class="jxr_linenumber" name="L389" href="#L389">389</a>             namespacesKey.add( row.getKey() );
<a class="jxr_linenumber" name="L390" href="#L390">390</a>         }
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         HFactory.createMutator( cassandraArchivaManager.getKeyspace(), ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L393" href="#L393">393</a>             .addDeletion( namespacesKey, cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             .execute();
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         <em class="jxr_comment">//delete repositoryId</em>
<a class="jxr_linenumber" name="L397" href="#L397">397</a>         HFactory.createMutator( cassandraArchivaManager.getKeyspace(), ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L398" href="#L398">398</a>             .addDeletion( repositoryId, cassandraArchivaManager.getRepositoryFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             .execute();
<a class="jxr_linenumber" name="L400" href="#L400">400</a> 
<a class="jxr_linenumber" name="L401" href="#L401">401</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L402" href="#L402">402</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L403" href="#L403">403</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L404" href="#L404">404</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L405" href="#L405">405</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L406" href="#L406">406</a>             .execute();
<a class="jxr_linenumber" name="L407" href="#L407">407</a> 
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L409" href="#L409">409</a>         {
<a class="jxr_linenumber" name="L410" href="#L410">410</a>             <strong class="jxr_keyword">this</strong>.projectTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L411" href="#L411">411</a>         }
<a class="jxr_linenumber" name="L412" href="#L412">412</a> 
<a class="jxr_linenumber" name="L413" href="#L413">413</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L414" href="#L414">414</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L415" href="#L415">415</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L416" href="#L416">416</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L417" href="#L417">417</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L418" href="#L418">418</a>             .execute();
<a class="jxr_linenumber" name="L419" href="#L419">419</a> 
<a class="jxr_linenumber" name="L420" href="#L420">420</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         {
<a class="jxr_linenumber" name="L422" href="#L422">422</a>             <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L423" href="#L423">423</a>             removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         }
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L427" href="#L427">427</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L428" href="#L428">428</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L429" href="#L429">429</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L431" href="#L431">431</a>             .execute();
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L436" href="#L436">436</a>         }
<a class="jxr_linenumber" name="L437" href="#L437">437</a> 
<a class="jxr_linenumber" name="L438" href="#L438">438</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L439" href="#L439">439</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L440" href="#L440">440</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L441" href="#L441">441</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L442" href="#L442">442</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L443" href="#L443">443</a>             .execute();
<a class="jxr_linenumber" name="L444" href="#L444">444</a> 
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L446" href="#L446">446</a>         {
<a class="jxr_linenumber" name="L447" href="#L447">447</a>             <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L448" href="#L448">448</a>         }
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 
<a class="jxr_linenumber" name="L450" href="#L450">450</a> 
<a class="jxr_linenumber" name="L451" href="#L451">451</a>     }
<a class="jxr_linenumber" name="L452" href="#L452">452</a> 
<a class="jxr_linenumber" name="L453" href="#L453">453</a>     @Override
<a class="jxr_linenumber" name="L454" href="#L454">454</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getRepositories()
<a class="jxr_linenumber" name="L455" href="#L455">455</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L456" href="#L456">456</a>     {
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         {
<a class="jxr_linenumber" name="L459" href="#L459">459</a>             logger.debug( <span class="jxr_string">"getRepositories"</span> );
<a class="jxr_linenumber" name="L460" href="#L460">460</a> 
<a class="jxr_linenumber" name="L461" href="#L461">461</a>             <strong class="jxr_keyword">final</strong> QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; cResult = <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L462" href="#L462">462</a>                 HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L463" href="#L463">463</a>                                                  ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L464" href="#L464">464</a>                     .setColumnFamily( cassandraArchivaManager.getRepositoryFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L465" href="#L465">465</a>                     .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L466" href="#L466">466</a>                     .setRange( <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, false, Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L467" href="#L467">467</a>                     .execute();
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 
<a class="jxr_linenumber" name="L469" href="#L469">469</a>             List&lt;String&gt; repoIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( cResult.get().getCount() );
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 
<a class="jxr_linenumber" name="L471" href="#L471">471</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : cResult.get() )
<a class="jxr_linenumber" name="L472" href="#L472">472</a>             {
<a class="jxr_linenumber" name="L473" href="#L473">473</a>                 repoIds.add( getStringValue( row.getColumnSlice(), REPOSITORY_NAME.toString() ) );
<a class="jxr_linenumber" name="L474" href="#L474">474</a>             }
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 
<a class="jxr_linenumber" name="L476" href="#L476">476</a>             <strong class="jxr_keyword">return</strong> repoIds;
<a class="jxr_linenumber" name="L477" href="#L477">477</a>         }
<a class="jxr_linenumber" name="L478" href="#L478">478</a>         <strong class="jxr_keyword">catch</strong> ( PersistenceException e )
<a class="jxr_linenumber" name="L479" href="#L479">479</a>         {
<a class="jxr_linenumber" name="L480" href="#L480">480</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MetadataRepositoryException( e.getMessage(), e );
<a class="jxr_linenumber" name="L481" href="#L481">481</a>         }
<a class="jxr_linenumber" name="L482" href="#L482">482</a> 
<a class="jxr_linenumber" name="L483" href="#L483">483</a>     }
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 
<a class="jxr_linenumber" name="L485" href="#L485">485</a>     <em class="jxr_comment">// FIXME this one need peformance improvement maybe a cache?</em>
<a class="jxr_linenumber" name="L486" href="#L486">486</a>     @Override
<a class="jxr_linenumber" name="L487" href="#L487">487</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getRootNamespaces( <strong class="jxr_keyword">final</strong> String repoId )
<a class="jxr_linenumber" name="L488" href="#L488">488</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L489" href="#L489">489</a>     {
<a class="jxr_linenumber" name="L490" href="#L490">490</a> 
<a class="jxr_linenumber" name="L491" href="#L491">491</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L492" href="#L492">492</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L493" href="#L493">493</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L494" href="#L494">494</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L495" href="#L495">495</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L496" href="#L496">496</a>             .execute();
<a class="jxr_linenumber" name="L497" href="#L497">497</a> 
<a class="jxr_linenumber" name="L498" href="#L498">498</a>         Set&lt;String&gt; namespaces = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L499" href="#L499">499</a> 
<a class="jxr_linenumber" name="L500" href="#L500">500</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L501" href="#L501">501</a>         {
<a class="jxr_linenumber" name="L502" href="#L502">502</a>             namespaces.add( StringUtils.substringBefore( getStringValue( row.getColumnSlice(), NAME.toString() ), <span class="jxr_string">"."</span> ) );
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         }
<a class="jxr_linenumber" name="L504" href="#L504">504</a> 
<a class="jxr_linenumber" name="L505" href="#L505">505</a>         <strong class="jxr_keyword">return</strong> namespaces;
<a class="jxr_linenumber" name="L506" href="#L506">506</a>     }
<a class="jxr_linenumber" name="L507" href="#L507">507</a> 
<a class="jxr_linenumber" name="L508" href="#L508">508</a>     <em class="jxr_comment">// FIXME this one need peformance improvement maybe a cache?</em>
<a class="jxr_linenumber" name="L509" href="#L509">509</a>     @Override
<a class="jxr_linenumber" name="L510" href="#L510">510</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getNamespaces( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespaceId )
<a class="jxr_linenumber" name="L511" href="#L511">511</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L512" href="#L512">512</a>     {
<a class="jxr_linenumber" name="L513" href="#L513">513</a> 
<a class="jxr_linenumber" name="L514" href="#L514">514</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L515" href="#L515">515</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L516" href="#L516">516</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L517" href="#L517">517</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L518" href="#L518">518</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L519" href="#L519">519</a>             .execute();
<a class="jxr_linenumber" name="L520" href="#L520">520</a> 
<a class="jxr_linenumber" name="L521" href="#L521">521</a>         List&lt;String&gt; namespaces = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 
<a class="jxr_linenumber" name="L523" href="#L523">523</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L524" href="#L524">524</a>         {
<a class="jxr_linenumber" name="L525" href="#L525">525</a>             String currentNamespace = getStringValue( row.getColumnSlice(), NAME.toString() );
<a class="jxr_linenumber" name="L526" href="#L526">526</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.startsWith( currentNamespace, namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L527" href="#L527">527</a>                 &amp;&amp; ( StringUtils.length( currentNamespace ) &gt; StringUtils.length( namespaceId ) ) )
<a class="jxr_linenumber" name="L528" href="#L528">528</a>             {
<a class="jxr_linenumber" name="L529" href="#L529">529</a>                 <em class="jxr_comment">// store after namespaceId '.' but before next '.'</em>
<a class="jxr_linenumber" name="L530" href="#L530">530</a>                 <em class="jxr_comment">// call org namespace org.apache.maven.shared -&gt; stored apache</em>
<a class="jxr_linenumber" name="L531" href="#L531">531</a> 
<a class="jxr_linenumber" name="L532" href="#L532">532</a>                 String calledNamespace = StringUtils.endsWith( namespaceId, <span class="jxr_string">"."</span> ) ? namespaceId : namespaceId + <span class="jxr_string">"."</span>;
<a class="jxr_linenumber" name="L533" href="#L533">533</a>                 String storedNamespace = StringUtils.substringAfter( currentNamespace, calledNamespace );
<a class="jxr_linenumber" name="L534" href="#L534">534</a> 
<a class="jxr_linenumber" name="L535" href="#L535">535</a>                 storedNamespace = StringUtils.substringBefore( storedNamespace, <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="L536" href="#L536">536</a> 
<a class="jxr_linenumber" name="L537" href="#L537">537</a>                 namespaces.add( storedNamespace );
<a class="jxr_linenumber" name="L538" href="#L538">538</a>             }
<a class="jxr_linenumber" name="L539" href="#L539">539</a>         }
<a class="jxr_linenumber" name="L540" href="#L540">540</a> 
<a class="jxr_linenumber" name="L541" href="#L541">541</a>         <strong class="jxr_keyword">return</strong> namespaces;
<a class="jxr_linenumber" name="L542" href="#L542">542</a> 
<a class="jxr_linenumber" name="L543" href="#L543">543</a>     }
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 
<a class="jxr_linenumber" name="L545" href="#L545">545</a>     <em class="jxr_comment">// only use for testing purpose</em>
<a class="jxr_linenumber" name="L546" href="#L546">546</a>     <strong class="jxr_keyword">protected</strong> List&lt;String&gt; getNamespaces( <strong class="jxr_keyword">final</strong> String repoId )
<a class="jxr_linenumber" name="L547" href="#L547">547</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L548" href="#L548">548</a>     {
<a class="jxr_linenumber" name="L549" href="#L549">549</a> 
<a class="jxr_linenumber" name="L550" href="#L550">550</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L551" href="#L551">551</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L552" href="#L552">552</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L553" href="#L553">553</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L554" href="#L554">554</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L555" href="#L555">555</a>             .execute();
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 
<a class="jxr_linenumber" name="L557" href="#L557">557</a>         List&lt;String&gt; namespaces = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L558" href="#L558">558</a> 
<a class="jxr_linenumber" name="L559" href="#L559">559</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L560" href="#L560">560</a>         {
<a class="jxr_linenumber" name="L561" href="#L561">561</a>             namespaces.add( getStringValue( row.getColumnSlice(), NAME.toString() ) );
<a class="jxr_linenumber" name="L562" href="#L562">562</a>         }
<a class="jxr_linenumber" name="L563" href="#L563">563</a> 
<a class="jxr_linenumber" name="L564" href="#L564">564</a>         <strong class="jxr_keyword">return</strong> namespaces;
<a class="jxr_linenumber" name="L565" href="#L565">565</a>     }
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 
<a class="jxr_linenumber" name="L568" href="#L568">568</a>     @Override
<a class="jxr_linenumber" name="L569" href="#L569">569</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateProject( String repositoryId, ProjectMetadata projectMetadata )
<a class="jxr_linenumber" name="L570" href="#L570">570</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L571" href="#L571">571</a>     {
<a class="jxr_linenumber" name="L572" href="#L572">572</a> 
<a class="jxr_linenumber" name="L573" href="#L573">573</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L574" href="#L574">574</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L575" href="#L575">575</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L576" href="#L576">576</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L577" href="#L577">577</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L578" href="#L578">578</a>             .addEqualsExpression( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L579" href="#L579">579</a>             .addEqualsExpression( PROJECT_ID.toString(), projectMetadata.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L580" href="#L580">580</a>             .execute();
<a class="jxr_linenumber" name="L581" href="#L581">581</a> 
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         <em class="jxr_comment">// project exists ? if yes return nothing to update here</em>
<a class="jxr_linenumber" name="L583" href="#L583">583</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &gt; 0 )
<a class="jxr_linenumber" name="L584" href="#L584">584</a>         {
<a class="jxr_linenumber" name="L585" href="#L585">585</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L586" href="#L586">586</a>         }
<a class="jxr_linenumber" name="L587" href="#L587">587</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L588" href="#L588">588</a>         {
<a class="jxr_linenumber" name="L589" href="#L589">589</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = updateOrAddNamespace( repositoryId, projectMetadata.getNamespace() );
<a class="jxr_linenumber" name="L590" href="#L590">590</a> 
<a class="jxr_linenumber" name="L591" href="#L591">591</a>             String key =
<a class="jxr_linenumber" name="L592" href="#L592">592</a>                 <strong class="jxr_keyword">new</strong> Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace( namespace ).build();
<a class="jxr_linenumber" name="L593" href="#L593">593</a> 
<a class="jxr_linenumber" name="L594" href="#L594">594</a>             String cf = cassandraArchivaManager.getProjectFamilyName();
<a class="jxr_linenumber" name="L595" href="#L595">595</a>             projectTemplate.createMutator()
<a class="jxr_linenumber" name="L596" href="#L596">596</a>                 <em class="jxr_comment">//  values</em>
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                 .addInsertion( key, cf, CassandraUtils.column( PROJECT_ID.toString(), projectMetadata.getId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L598" href="#L598">598</a>                 .addInsertion( key, cf, CassandraUtils.column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L599" href="#L599">599</a>                 .addInsertion( key, cf, CassandraUtils.column( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L600" href="#L600">600</a>                 .execute();
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         }
<a class="jxr_linenumber" name="L602" href="#L602">602</a>     }
<a class="jxr_linenumber" name="L603" href="#L603">603</a> 
<a class="jxr_linenumber" name="L604" href="#L604">604</a>     @Override
<a class="jxr_linenumber" name="L605" href="#L605">605</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getProjects( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace )
<a class="jxr_linenumber" name="L606" href="#L606">606</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L607" href="#L607">607</a>     {
<a class="jxr_linenumber" name="L608" href="#L608">608</a> 
<a class="jxr_linenumber" name="L609" href="#L609">609</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L610" href="#L610">610</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L611" href="#L611">611</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L612" href="#L612">612</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L613" href="#L613">613</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L614" href="#L614">614</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L615" href="#L615">615</a>             .execute();
<a class="jxr_linenumber" name="L616" href="#L616">616</a> 
<a class="jxr_linenumber" name="L617" href="#L617">617</a>         <strong class="jxr_keyword">final</strong> Set&lt;String&gt; projects = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L618" href="#L618">618</a> 
<a class="jxr_linenumber" name="L619" href="#L619">619</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L620" href="#L620">620</a>         {
<a class="jxr_linenumber" name="L621" href="#L621">621</a>             projects.add( getStringValue( row.getColumnSlice(), PROJECT_ID.toString() ) );
<a class="jxr_linenumber" name="L622" href="#L622">622</a>         }
<a class="jxr_linenumber" name="L623" href="#L623">623</a> 
<a class="jxr_linenumber" name="L624" href="#L624">624</a>         <strong class="jxr_keyword">return</strong> projects;
<a class="jxr_linenumber" name="L625" href="#L625">625</a>     }
<a class="jxr_linenumber" name="L626" href="#L626">626</a> 
<a class="jxr_linenumber" name="L627" href="#L627">627</a>     @Override
<a class="jxr_linenumber" name="L628" href="#L628">628</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeProject( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String namespaceId, <strong class="jxr_keyword">final</strong> String projectId )
<a class="jxr_linenumber" name="L629" href="#L629">629</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L630" href="#L630">630</a>     {
<a class="jxr_linenumber" name="L631" href="#L631">631</a> 
<a class="jxr_linenumber" name="L632" href="#L632">632</a>         String key = <strong class="jxr_keyword">new</strong> Project.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L633" href="#L633">633</a>             .withProjectId( projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L634" href="#L634">634</a>             .withNamespace( <strong class="jxr_keyword">new</strong> Namespace( namespaceId, <strong class="jxr_keyword">new</strong> Repository( repositoryId ) ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L635" href="#L635">635</a>             .build();
<a class="jxr_linenumber" name="L636" href="#L636">636</a> 
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         <strong class="jxr_keyword">this</strong>.projectTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L638" href="#L638">638</a> 
<a class="jxr_linenumber" name="L639" href="#L639">639</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L640" href="#L640">640</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L641" href="#L641">641</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L642" href="#L642">642</a>             .setColumnNames( ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L643" href="#L643">643</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L644" href="#L644">644</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L645" href="#L645">645</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L646" href="#L646">646</a>             .execute();
<a class="jxr_linenumber" name="L647" href="#L647">647</a> 
<a class="jxr_linenumber" name="L648" href="#L648">648</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L649" href="#L649">649</a>         {
<a class="jxr_linenumber" name="L650" href="#L650">650</a>             <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L651" href="#L651">651</a>             removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L652" href="#L652">652</a>         }
<a class="jxr_linenumber" name="L653" href="#L653">653</a> 
<a class="jxr_linenumber" name="L654" href="#L654">654</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L655" href="#L655">655</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L656" href="#L656">656</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L657" href="#L657">657</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L658" href="#L658">658</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L659" href="#L659">659</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L660" href="#L660">660</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L661" href="#L661">661</a>             .execute();
<a class="jxr_linenumber" name="L662" href="#L662">662</a> 
<a class="jxr_linenumber" name="L663" href="#L663">663</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L664" href="#L664">664</a>         {
<a class="jxr_linenumber" name="L665" href="#L665">665</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L666" href="#L666">666</a>         }
<a class="jxr_linenumber" name="L667" href="#L667">667</a>     }
<a class="jxr_linenumber" name="L668" href="#L668">668</a> 
<a class="jxr_linenumber" name="L669" href="#L669">669</a>     @Override
<a class="jxr_linenumber" name="L670" href="#L670">670</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getProjectVersions( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String projectId )
<a class="jxr_linenumber" name="L671" href="#L671">671</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L672" href="#L672">672</a>     {
<a class="jxr_linenumber" name="L673" href="#L673">673</a> 
<a class="jxr_linenumber" name="L674" href="#L674">674</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L675" href="#L675">675</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L676" href="#L676">676</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L677" href="#L677">677</a>             .setColumnNames( PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L678" href="#L678">678</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L679" href="#L679">679</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L680" href="#L680">680</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L681" href="#L681">681</a>             .execute();
<a class="jxr_linenumber" name="L682" href="#L682">682</a> 
<a class="jxr_linenumber" name="L683" href="#L683">683</a>         <strong class="jxr_keyword">int</strong> count = result.get().getCount();
<a class="jxr_linenumber" name="L684" href="#L684">684</a> 
<a class="jxr_linenumber" name="L685" href="#L685">685</a>         <strong class="jxr_keyword">if</strong> ( count &lt; 1 )
<a class="jxr_linenumber" name="L686" href="#L686">686</a>         {
<a class="jxr_linenumber" name="L687" href="#L687">687</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         }
<a class="jxr_linenumber" name="L689" href="#L689">689</a> 
<a class="jxr_linenumber" name="L690" href="#L690">690</a>         Set&lt;String&gt; versions = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( count );
<a class="jxr_linenumber" name="L691" href="#L691">691</a> 
<a class="jxr_linenumber" name="L692" href="#L692">692</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; orderedRows : result.get() )
<a class="jxr_linenumber" name="L693" href="#L693">693</a>         {
<a class="jxr_linenumber" name="L694" href="#L694">694</a>             versions.add( getStringValue( orderedRows.getColumnSlice(), PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L695" href="#L695">695</a>         }
<a class="jxr_linenumber" name="L696" href="#L696">696</a> 
<a class="jxr_linenumber" name="L697" href="#L697">697</a>         <strong class="jxr_keyword">return</strong> versions;
<a class="jxr_linenumber" name="L698" href="#L698">698</a> 
<a class="jxr_linenumber" name="L699" href="#L699">699</a>     }
<a class="jxr_linenumber" name="L700" href="#L700">700</a> 
<a class="jxr_linenumber" name="L701" href="#L701">701</a>     @Override
<a class="jxr_linenumber" name="L702" href="#L702">702</a>     <strong class="jxr_keyword">public</strong> ProjectMetadata getProject( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String id )
<a class="jxr_linenumber" name="L703" href="#L703">703</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L704" href="#L704">704</a>     {
<a class="jxr_linenumber" name="L705" href="#L705">705</a> 
<a class="jxr_linenumber" name="L706" href="#L706">706</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L707" href="#L707">707</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L708" href="#L708">708</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L709" href="#L709">709</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L710" href="#L710">710</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L711" href="#L711">711</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L712" href="#L712">712</a>             .addEqualsExpression( PROJECT_ID.toString(), id ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L713" href="#L713">713</a>             .execute();
<a class="jxr_linenumber" name="L714" href="#L714">714</a> 
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         <strong class="jxr_keyword">int</strong> count = result.get().getCount();
<a class="jxr_linenumber" name="L716" href="#L716">716</a> 
<a class="jxr_linenumber" name="L717" href="#L717">717</a>         <strong class="jxr_keyword">if</strong> ( count &lt; 1 )
<a class="jxr_linenumber" name="L718" href="#L718">718</a>         {
<a class="jxr_linenumber" name="L719" href="#L719">719</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L720" href="#L720">720</a>         }
<a class="jxr_linenumber" name="L721" href="#L721">721</a> 
<a class="jxr_linenumber" name="L722" href="#L722">722</a>         ProjectMetadata projectMetadata = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L723" href="#L723">723</a>         projectMetadata.setId( id );
<a class="jxr_linenumber" name="L724" href="#L724">724</a>         projectMetadata.setNamespace( namespace );
<a class="jxr_linenumber" name="L725" href="#L725">725</a> 
<a class="jxr_linenumber" name="L726" href="#L726">726</a>         logger.debug( <span class="jxr_string">"getProject repoId: {}, namespace: {}, projectId: {} -&gt; {}"</span>, repoId, namespace, id,
<a class="jxr_linenumber" name="L727" href="#L727">727</a>                       projectMetadata );
<a class="jxr_linenumber" name="L728" href="#L728">728</a> 
<a class="jxr_linenumber" name="L729" href="#L729">729</a>         <strong class="jxr_keyword">return</strong> projectMetadata;
<a class="jxr_linenumber" name="L730" href="#L730">730</a>     }
<a class="jxr_linenumber" name="L731" href="#L731">731</a> 
<a class="jxr_linenumber" name="L732" href="#L732">732</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a> mapProjectVersionMetadataModel( ColumnSlice&lt;String, String&gt; columnSlice )
<a class="jxr_linenumber" name="L733" href="#L733">733</a>     {
<a class="jxr_linenumber" name="L734" href="#L734">734</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a> projectVersionMetadataModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a>();
<a class="jxr_linenumber" name="L735" href="#L735">735</a>         projectVersionMetadataModel.setId( getStringValue( columnSlice, ID.toString() ) );
<a class="jxr_linenumber" name="L736" href="#L736">736</a>         projectVersionMetadataModel.setDescription( getStringValue( columnSlice, DESCRIPTION.toString() ) );
<a class="jxr_linenumber" name="L737" href="#L737">737</a>         projectVersionMetadataModel.setName( getStringValue( columnSlice, NAME.toString() ) );
<a class="jxr_linenumber" name="L738" href="#L738">738</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a>( getStringValue( columnSlice, NAMESPACE_ID.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L739" href="#L739">739</a>                                              <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) ) );
<a class="jxr_linenumber" name="L740" href="#L740">740</a>         projectVersionMetadataModel.setNamespace( namespace );
<a class="jxr_linenumber" name="L741" href="#L741">741</a>         projectVersionMetadataModel.setIncomplete(
<a class="jxr_linenumber" name="L742" href="#L742">742</a>             Boolean.parseBoolean( getStringValue( columnSlice, <span class="jxr_string">"incomplete"</span> ) ) );
<a class="jxr_linenumber" name="L743" href="#L743">743</a>         projectVersionMetadataModel.setProjectId( getStringValue( columnSlice, PROJECT_ID.toString() ) );
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         projectVersionMetadataModel.setUrl( getStringValue( columnSlice, URL.toString() ) );
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         <strong class="jxr_keyword">return</strong> projectVersionMetadataModel;
<a class="jxr_linenumber" name="L746" href="#L746">746</a>     }
<a class="jxr_linenumber" name="L747" href="#L747">747</a> 
<a class="jxr_linenumber" name="L748" href="#L748">748</a> 
<a class="jxr_linenumber" name="L749" href="#L749">749</a>     @Override
<a class="jxr_linenumber" name="L750" href="#L750">750</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateProjectVersion( String repositoryId, String namespaceId, String projectId,
<a class="jxr_linenumber" name="L751" href="#L751">751</a>                                       ProjectVersionMetadata versionMetadata )
<a class="jxr_linenumber" name="L752" href="#L752">752</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L753" href="#L753">753</a>     {
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L755" href="#L755">755</a>         {
<a class="jxr_linenumber" name="L756" href="#L756">756</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = getNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L757" href="#L757">757</a> 
<a class="jxr_linenumber" name="L758" href="#L758">758</a>             <strong class="jxr_keyword">if</strong> ( namespace == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L759" href="#L759">759</a>             {
<a class="jxr_linenumber" name="L760" href="#L760">760</a>                 updateOrAddNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L761" href="#L761">761</a>             }
<a class="jxr_linenumber" name="L762" href="#L762">762</a> 
<a class="jxr_linenumber" name="L763" href="#L763">763</a>             <strong class="jxr_keyword">if</strong> ( getProject( repositoryId, namespaceId, projectId ) == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L764" href="#L764">764</a>             {
<a class="jxr_linenumber" name="L765" href="#L765">765</a>                 ProjectMetadata projectMetadata = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L766" href="#L766">766</a>                 projectMetadata.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L767" href="#L767">767</a>                 projectMetadata.setId( projectId );
<a class="jxr_linenumber" name="L768" href="#L768">768</a>                 updateProject( repositoryId, projectMetadata );
<a class="jxr_linenumber" name="L769" href="#L769">769</a>             }
<a class="jxr_linenumber" name="L770" href="#L770">770</a> 
<a class="jxr_linenumber" name="L771" href="#L771">771</a>         }
<a class="jxr_linenumber" name="L772" href="#L772">772</a>         <strong class="jxr_keyword">catch</strong> ( MetadataResolutionException e )
<a class="jxr_linenumber" name="L773" href="#L773">773</a>         {
<a class="jxr_linenumber" name="L774" href="#L774">774</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MetadataRepositoryException( e.getMessage(), e );
<a class="jxr_linenumber" name="L775" href="#L775">775</a>         }
<a class="jxr_linenumber" name="L776" href="#L776">776</a> 
<a class="jxr_linenumber" name="L777" href="#L777">777</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L778" href="#L778">778</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L779" href="#L779">779</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L780" href="#L780">780</a>             .setColumnNames( PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L781" href="#L781">781</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L782" href="#L782">782</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L783" href="#L783">783</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L784" href="#L784">784</a>             .addEqualsExpression( PROJECT_VERSION.toString(), versionMetadata.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L785" href="#L785">785</a>             .execute();
<a class="jxr_linenumber" name="L786" href="#L786">786</a> 
<a class="jxr_linenumber" name="L787" href="#L787">787</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a> projectVersionMetadataModel = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L788" href="#L788">788</a>         <strong class="jxr_keyword">boolean</strong> creation = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L789" href="#L789">789</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &gt; 0 )
<a class="jxr_linenumber" name="L790" href="#L790">790</a>         {
<a class="jxr_linenumber" name="L791" href="#L791">791</a>             projectVersionMetadataModel =
<a class="jxr_linenumber" name="L792" href="#L792">792</a>                 mapProjectVersionMetadataModel( result.get().getList().get( 0 ).getColumnSlice() );
<a class="jxr_linenumber" name="L793" href="#L793">793</a>             creation = false;
<a class="jxr_linenumber" name="L794" href="#L794">794</a>         }
<a class="jxr_linenumber" name="L795" href="#L795">795</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L796" href="#L796">796</a>         {
<a class="jxr_linenumber" name="L797" href="#L797">797</a>             projectVersionMetadataModel = getModelMapper().map( versionMetadata, ProjectVersionMetadataModel.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L798" href="#L798">798</a>         }
<a class="jxr_linenumber" name="L799" href="#L799">799</a> 
<a class="jxr_linenumber" name="L800" href="#L800">800</a>         projectVersionMetadataModel.setProjectId( projectId );
<a class="jxr_linenumber" name="L801" href="#L801">801</a>         projectVersionMetadataModel.setNamespace( <strong class="jxr_keyword">new</strong> Namespace( namespaceId, <strong class="jxr_keyword">new</strong> Repository( repositoryId ) ) );
<a class="jxr_linenumber" name="L802" href="#L802">802</a> 
<a class="jxr_linenumber" name="L803" href="#L803">803</a>         projectVersionMetadataModel.setCiManagement( versionMetadata.getCiManagement() );
<a class="jxr_linenumber" name="L804" href="#L804">804</a>         projectVersionMetadataModel.setIssueManagement( versionMetadata.getIssueManagement() );
<a class="jxr_linenumber" name="L805" href="#L805">805</a>         projectVersionMetadataModel.setOrganization( versionMetadata.getOrganization() );
<a class="jxr_linenumber" name="L806" href="#L806">806</a>         projectVersionMetadataModel.setScm( versionMetadata.getScm() );
<a class="jxr_linenumber" name="L807" href="#L807">807</a> 
<a class="jxr_linenumber" name="L808" href="#L808">808</a>         projectVersionMetadataModel.setMailingLists( versionMetadata.getMailingLists() );
<a class="jxr_linenumber" name="L809" href="#L809">809</a>         projectVersionMetadataModel.setDependencies( versionMetadata.getDependencies() );
<a class="jxr_linenumber" name="L810" href="#L810">810</a>         projectVersionMetadataModel.setLicenses( versionMetadata.getLicenses() );
<a class="jxr_linenumber" name="L811" href="#L811">811</a> 
<a class="jxr_linenumber" name="L812" href="#L812">812</a>         <em class="jxr_comment">// we don't test of repository and namespace really exist !</em>
<a class="jxr_linenumber" name="L813" href="#L813">813</a>         String key = <strong class="jxr_keyword">new</strong> ProjectVersionMetadataModel.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L814" href="#L814">814</a>             .withRepository( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L815" href="#L815">815</a>             .withNamespace( namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L816" href="#L816">816</a>             .withProjectId( projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L817" href="#L817">817</a>             .withProjectVersion( versionMetadata.getVersion() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L818" href="#L818">818</a>             .withId( versionMetadata.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L819" href="#L819">819</a>             .build();
<a class="jxr_linenumber" name="L820" href="#L820">820</a> 
<a class="jxr_linenumber" name="L821" href="#L821">821</a>         <em class="jxr_comment">// FIXME nested objects to store!!!</em>
<a class="jxr_linenumber" name="L822" href="#L822">822</a>         <strong class="jxr_keyword">if</strong> ( creation )
<a class="jxr_linenumber" name="L823" href="#L823">823</a>         {
<a class="jxr_linenumber" name="L824" href="#L824">824</a>             String cf = cassandraArchivaManager.getProjectVersionMetadataFamilyName();
<a class="jxr_linenumber" name="L825" href="#L825">825</a>             Mutator&lt;String&gt; mutator = projectVersionMetadataTemplate.createMutator()
<a class="jxr_linenumber" name="L826" href="#L826">826</a>                 <em class="jxr_comment">//  values</em>
<a class="jxr_linenumber" name="L827" href="#L827">827</a>                 .addInsertion( key, cf, column( PROJECT_ID.toString(), projectId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L828" href="#L828">828</a>                 .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L829" href="#L829">829</a>                 .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespaceId ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L830" href="#L830">830</a>                 .addInsertion( key, cf, column( PROJECT_VERSION.toString(), versionMetadata.getVersion() ) ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L831" href="#L831">831</a> 
<a class="jxr_linenumber" name="L832" href="#L832">832</a>             addInsertion( mutator, key, cf, DESCRIPTION.toString(), versionMetadata.getDescription() );
<a class="jxr_linenumber" name="L833" href="#L833">833</a> 
<a class="jxr_linenumber" name="L834" href="#L834">834</a>             addInsertion( mutator, key, cf, NAME.toString(), versionMetadata.getName() );
<a class="jxr_linenumber" name="L835" href="#L835">835</a> 
<a class="jxr_linenumber" name="L836" href="#L836">836</a>             addInsertion( mutator, key, cf, <span class="jxr_string">"incomplete"</span>, Boolean.toString( versionMetadata.isIncomplete() ) );
<a class="jxr_linenumber" name="L837" href="#L837">837</a> 
<a class="jxr_linenumber" name="L838" href="#L838">838</a>             addInsertion( mutator, key, cf, URL.toString(), versionMetadata.getUrl() );
<a class="jxr_linenumber" name="L839" href="#L839">839</a>             {
<a class="jxr_linenumber" name="L840" href="#L840">840</a>                 CiManagement ci = versionMetadata.getCiManagement();
<a class="jxr_linenumber" name="L841" href="#L841">841</a>                 <strong class="jxr_keyword">if</strong> ( ci != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L842" href="#L842">842</a>                 {
<a class="jxr_linenumber" name="L843" href="#L843">843</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"ciManagement.system"</span>, ci.getSystem() );
<a class="jxr_linenumber" name="L844" href="#L844">844</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"ciManagement.url"</span>, ci.getUrl() );
<a class="jxr_linenumber" name="L845" href="#L845">845</a>                 }
<a class="jxr_linenumber" name="L846" href="#L846">846</a>             }
<a class="jxr_linenumber" name="L847" href="#L847">847</a> 
<a class="jxr_linenumber" name="L848" href="#L848">848</a>             {
<a class="jxr_linenumber" name="L849" href="#L849">849</a>                 IssueManagement issueManagement = versionMetadata.getIssueManagement();
<a class="jxr_linenumber" name="L850" href="#L850">850</a> 
<a class="jxr_linenumber" name="L851" href="#L851">851</a>                 <strong class="jxr_keyword">if</strong> ( issueManagement != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L852" href="#L852">852</a>                 {
<a class="jxr_linenumber" name="L853" href="#L853">853</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"issueManagement.system"</span>, issueManagement.getSystem() );
<a class="jxr_linenumber" name="L854" href="#L854">854</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"issueManagement.url"</span>, issueManagement.getUrl() );
<a class="jxr_linenumber" name="L855" href="#L855">855</a>                 }
<a class="jxr_linenumber" name="L856" href="#L856">856</a>             }
<a class="jxr_linenumber" name="L857" href="#L857">857</a> 
<a class="jxr_linenumber" name="L858" href="#L858">858</a>             {
<a class="jxr_linenumber" name="L859" href="#L859">859</a>                 Organization organization = versionMetadata.getOrganization();
<a class="jxr_linenumber" name="L860" href="#L860">860</a>                 <strong class="jxr_keyword">if</strong> ( organization != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L861" href="#L861">861</a>                 {
<a class="jxr_linenumber" name="L862" href="#L862">862</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"organization.name"</span>, organization.getName() );
<a class="jxr_linenumber" name="L863" href="#L863">863</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"organization.url"</span>, organization.getUrl() );
<a class="jxr_linenumber" name="L864" href="#L864">864</a>                 }
<a class="jxr_linenumber" name="L865" href="#L865">865</a>             }
<a class="jxr_linenumber" name="L866" href="#L866">866</a> 
<a class="jxr_linenumber" name="L867" href="#L867">867</a>             {
<a class="jxr_linenumber" name="L868" href="#L868">868</a>                 Scm scm = versionMetadata.getScm();
<a class="jxr_linenumber" name="L869" href="#L869">869</a>                 <strong class="jxr_keyword">if</strong> ( scm != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L870" href="#L870">870</a>                 {
<a class="jxr_linenumber" name="L871" href="#L871">871</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"scm.url"</span>, scm.getUrl() );
<a class="jxr_linenumber" name="L872" href="#L872">872</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"scm.connection"</span>, scm.getConnection() );
<a class="jxr_linenumber" name="L873" href="#L873">873</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"scm.developerConnection"</span>, scm.getDeveloperConnection() );
<a class="jxr_linenumber" name="L874" href="#L874">874</a>                 }
<a class="jxr_linenumber" name="L875" href="#L875">875</a>             }
<a class="jxr_linenumber" name="L876" href="#L876">876</a> 
<a class="jxr_linenumber" name="L877" href="#L877">877</a>             recordMailingList( key, versionMetadata.getMailingLists() );
<a class="jxr_linenumber" name="L878" href="#L878">878</a> 
<a class="jxr_linenumber" name="L879" href="#L879">879</a>             recordLicenses( key, versionMetadata.getLicenses() );
<a class="jxr_linenumber" name="L880" href="#L880">880</a> 
<a class="jxr_linenumber" name="L881" href="#L881">881</a>             recordDependencies( key, versionMetadata.getDependencies(), repositoryId );
<a class="jxr_linenumber" name="L882" href="#L882">882</a> 
<a class="jxr_linenumber" name="L883" href="#L883">883</a>             MutationResult mutationResult = mutator.execute();
<a class="jxr_linenumber" name="L884" href="#L884">884</a>         }
<a class="jxr_linenumber" name="L885" href="#L885">885</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L886" href="#L886">886</a>         {
<a class="jxr_linenumber" name="L887" href="#L887">887</a>             ColumnFamilyUpdater&lt;String, String&gt; updater = projectVersionMetadataTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L888" href="#L888">888</a>             addUpdateStringValue( updater, PROJECT_ID.toString(), projectId );
<a class="jxr_linenumber" name="L889" href="#L889">889</a>             addUpdateStringValue( updater, REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L890" href="#L890">890</a>             addUpdateStringValue( updater, NAMESPACE_ID.toString(), namespaceId );
<a class="jxr_linenumber" name="L891" href="#L891">891</a>             addUpdateStringValue( updater, PROJECT_VERSION.toString(), versionMetadata.getVersion() );
<a class="jxr_linenumber" name="L892" href="#L892">892</a>             addUpdateStringValue( updater, DESCRIPTION.toString(), versionMetadata.getDescription() );
<a class="jxr_linenumber" name="L893" href="#L893">893</a> 
<a class="jxr_linenumber" name="L894" href="#L894">894</a>             addUpdateStringValue( updater, NAME.toString(), versionMetadata.getName() );
<a class="jxr_linenumber" name="L895" href="#L895">895</a> 
<a class="jxr_linenumber" name="L896" href="#L896">896</a>             updater.setString( <span class="jxr_string">"incomplete"</span>, Boolean.toString( versionMetadata.isIncomplete() ) );
<a class="jxr_linenumber" name="L897" href="#L897">897</a>             addUpdateStringValue( updater, URL.toString(), versionMetadata.getUrl() );
<a class="jxr_linenumber" name="L898" href="#L898">898</a> 
<a class="jxr_linenumber" name="L899" href="#L899">899</a>             {
<a class="jxr_linenumber" name="L900" href="#L900">900</a>                 CiManagement ci = versionMetadata.getCiManagement();
<a class="jxr_linenumber" name="L901" href="#L901">901</a>                 <strong class="jxr_keyword">if</strong> ( ci != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L902" href="#L902">902</a>                 {
<a class="jxr_linenumber" name="L903" href="#L903">903</a>                     addUpdateStringValue( updater, <span class="jxr_string">"ciManagement.system"</span>, ci.getSystem() );
<a class="jxr_linenumber" name="L904" href="#L904">904</a>                     addUpdateStringValue( updater, <span class="jxr_string">"ciManagement.url"</span>, ci.getUrl() );
<a class="jxr_linenumber" name="L905" href="#L905">905</a>                 }
<a class="jxr_linenumber" name="L906" href="#L906">906</a>             }
<a class="jxr_linenumber" name="L907" href="#L907">907</a>             {
<a class="jxr_linenumber" name="L908" href="#L908">908</a>                 IssueManagement issueManagement = versionMetadata.getIssueManagement();
<a class="jxr_linenumber" name="L909" href="#L909">909</a>                 <strong class="jxr_keyword">if</strong> ( issueManagement != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L910" href="#L910">910</a>                 {
<a class="jxr_linenumber" name="L911" href="#L911">911</a>                     addUpdateStringValue( updater, <span class="jxr_string">"issueManagement.system"</span>, issueManagement.getSystem() );
<a class="jxr_linenumber" name="L912" href="#L912">912</a>                     addUpdateStringValue( updater, <span class="jxr_string">"issueManagement.url"</span>, issueManagement.getUrl() );
<a class="jxr_linenumber" name="L913" href="#L913">913</a>                 }
<a class="jxr_linenumber" name="L914" href="#L914">914</a>             }
<a class="jxr_linenumber" name="L915" href="#L915">915</a>             {
<a class="jxr_linenumber" name="L916" href="#L916">916</a>                 Organization organization = versionMetadata.getOrganization();
<a class="jxr_linenumber" name="L917" href="#L917">917</a>                 <strong class="jxr_keyword">if</strong> ( organization != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L918" href="#L918">918</a>                 {
<a class="jxr_linenumber" name="L919" href="#L919">919</a>                     addUpdateStringValue( updater, <span class="jxr_string">"organization.name"</span>, organization.getName() );
<a class="jxr_linenumber" name="L920" href="#L920">920</a>                     addUpdateStringValue( updater, <span class="jxr_string">"organization.url"</span>, organization.getUrl() );
<a class="jxr_linenumber" name="L921" href="#L921">921</a>                 }
<a class="jxr_linenumber" name="L922" href="#L922">922</a>             }
<a class="jxr_linenumber" name="L923" href="#L923">923</a>             {
<a class="jxr_linenumber" name="L924" href="#L924">924</a>                 Scm scm = versionMetadata.getScm();
<a class="jxr_linenumber" name="L925" href="#L925">925</a>                 <strong class="jxr_keyword">if</strong> ( scm != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L926" href="#L926">926</a>                 {
<a class="jxr_linenumber" name="L927" href="#L927">927</a>                     addUpdateStringValue( updater, <span class="jxr_string">"scm.url"</span>, scm.getUrl() );
<a class="jxr_linenumber" name="L928" href="#L928">928</a>                     addUpdateStringValue( updater, <span class="jxr_string">"scm.connection"</span>, scm.getConnection() );
<a class="jxr_linenumber" name="L929" href="#L929">929</a>                     addUpdateStringValue( updater, <span class="jxr_string">"scm.developerConnection"</span>, scm.getDeveloperConnection() );
<a class="jxr_linenumber" name="L930" href="#L930">930</a>                 }
<a class="jxr_linenumber" name="L931" href="#L931">931</a>             }
<a class="jxr_linenumber" name="L932" href="#L932">932</a> 
<a class="jxr_linenumber" name="L933" href="#L933">933</a>             <em class="jxr_comment">// update is a delete record</em>
<a class="jxr_linenumber" name="L934" href="#L934">934</a>             removeMailingList( key );
<a class="jxr_linenumber" name="L935" href="#L935">935</a>             recordMailingList( key, versionMetadata.getMailingLists() );
<a class="jxr_linenumber" name="L936" href="#L936">936</a> 
<a class="jxr_linenumber" name="L937" href="#L937">937</a>             removeLicenses( key );
<a class="jxr_linenumber" name="L938" href="#L938">938</a>             recordLicenses( key, versionMetadata.getLicenses() );
<a class="jxr_linenumber" name="L939" href="#L939">939</a> 
<a class="jxr_linenumber" name="L940" href="#L940">940</a>             removeDependencies( key );
<a class="jxr_linenumber" name="L941" href="#L941">941</a>             recordDependencies( key, versionMetadata.getDependencies(), repositoryId );
<a class="jxr_linenumber" name="L942" href="#L942">942</a> 
<a class="jxr_linenumber" name="L943" href="#L943">943</a>             projectVersionMetadataTemplate.update( updater );
<a class="jxr_linenumber" name="L944" href="#L944">944</a> 
<a class="jxr_linenumber" name="L945" href="#L945">945</a>         }
<a class="jxr_linenumber" name="L946" href="#L946">946</a> 
<a class="jxr_linenumber" name="L947" href="#L947">947</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a> artifactMetadataModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a>();
<a class="jxr_linenumber" name="L948" href="#L948">948</a>         artifactMetadataModel.setRepositoryId( repositoryId );
<a class="jxr_linenumber" name="L949" href="#L949">949</a>         artifactMetadataModel.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L950" href="#L950">950</a>         artifactMetadataModel.setProject( projectId );
<a class="jxr_linenumber" name="L951" href="#L951">951</a>         artifactMetadataModel.setProjectVersion( versionMetadata.getVersion() );
<a class="jxr_linenumber" name="L952" href="#L952">952</a>         artifactMetadataModel.setVersion( versionMetadata.getVersion() );
<a class="jxr_linenumber" name="L953" href="#L953">953</a>         updateFacets( versionMetadata, artifactMetadataModel );
<a class="jxr_linenumber" name="L954" href="#L954">954</a> 
<a class="jxr_linenumber" name="L955" href="#L955">955</a>     }
<a class="jxr_linenumber" name="L956" href="#L956">956</a> 
<a class="jxr_linenumber" name="L957" href="#L957">957</a> 
<a class="jxr_linenumber" name="L958" href="#L958">958</a>     @Override
<a class="jxr_linenumber" name="L959" href="#L959">959</a>     <strong class="jxr_keyword">public</strong> ProjectVersionMetadata getProjectVersion( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace,
<a class="jxr_linenumber" name="L960" href="#L960">960</a>                                                      <strong class="jxr_keyword">final</strong> String projectId, <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L961" href="#L961">961</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L962" href="#L962">962</a>     {
<a class="jxr_linenumber" name="L963" href="#L963">963</a> 
<a class="jxr_linenumber" name="L964" href="#L964">964</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L965" href="#L965">965</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L966" href="#L966">966</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L967" href="#L967">967</a>             .setColumnNames( PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L968" href="#L968">968</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L969" href="#L969">969</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L970" href="#L970">970</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L971" href="#L971">971</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L972" href="#L972">972</a>             .execute();
<a class="jxr_linenumber" name="L973" href="#L973">973</a> 
<a class="jxr_linenumber" name="L974" href="#L974">974</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L975" href="#L975">975</a>         {
<a class="jxr_linenumber" name="L976" href="#L976">976</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L977" href="#L977">977</a>         }
<a class="jxr_linenumber" name="L978" href="#L978">978</a> 
<a class="jxr_linenumber" name="L979" href="#L979">979</a>         String key = result.get().iterator().next().getKey();
<a class="jxr_linenumber" name="L980" href="#L980">980</a> 
<a class="jxr_linenumber" name="L981" href="#L981">981</a>         ColumnFamilyResult&lt;String, String&gt; columnFamilyResult = <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.queryColumns( key );
<a class="jxr_linenumber" name="L982" href="#L982">982</a> 
<a class="jxr_linenumber" name="L983" href="#L983">983</a>         <strong class="jxr_keyword">if</strong> ( !columnFamilyResult.hasResults() )
<a class="jxr_linenumber" name="L984" href="#L984">984</a>         {
<a class="jxr_linenumber" name="L985" href="#L985">985</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L986" href="#L986">986</a>         }
<a class="jxr_linenumber" name="L987" href="#L987">987</a> 
<a class="jxr_linenumber" name="L988" href="#L988">988</a>         ProjectVersionMetadata projectVersionMetadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L989" href="#L989">989</a>         projectVersionMetadata.setId( columnFamilyResult.getString( PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L990" href="#L990">990</a>         projectVersionMetadata.setDescription( columnFamilyResult.getString( DESCRIPTION.toString() ) );
<a class="jxr_linenumber" name="L991" href="#L991">991</a>         projectVersionMetadata.setName( columnFamilyResult.getString( NAME.toString() ) );
<a class="jxr_linenumber" name="L992" href="#L992">992</a> 
<a class="jxr_linenumber" name="L993" href="#L993">993</a>         projectVersionMetadata.setIncomplete( Boolean.parseBoolean( columnFamilyResult.getString( <span class="jxr_string">"incomplete"</span> ) ) );
<a class="jxr_linenumber" name="L994" href="#L994">994</a> 
<a class="jxr_linenumber" name="L995" href="#L995">995</a>         projectVersionMetadata.setUrl( columnFamilyResult.getString( URL.toString() ) );
<a class="jxr_linenumber" name="L996" href="#L996">996</a>         {
<a class="jxr_linenumber" name="L997" href="#L997">997</a>             String ciUrl = columnFamilyResult.getString( <span class="jxr_string">"ciManagement.url"</span> );
<a class="jxr_linenumber" name="L998" href="#L998">998</a>             String ciSystem = columnFamilyResult.getString( <span class="jxr_string">"ciManagement.system"</span> );
<a class="jxr_linenumber" name="L999" href="#L999">999</a> 
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( ciSystem ) || StringUtils.isNotEmpty( ciUrl ) )
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>             {
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>                 projectVersionMetadata.setCiManagement( <strong class="jxr_keyword">new</strong> CiManagement( ciSystem, ciUrl ) );
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>             }
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>         }
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>         {
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>             String issueUrl = columnFamilyResult.getString( <span class="jxr_string">"issueManagement.url"</span> );
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a>             String issueSystem = columnFamilyResult.getString( <span class="jxr_string">"issueManagement.system"</span> );
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( issueSystem ) || StringUtils.isNotEmpty( issueUrl ) )
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>             {
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a>                 projectVersionMetadata.setIssueManagement( <strong class="jxr_keyword">new</strong> IssueManagement( issueSystem, issueUrl ) );
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>             }
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a>         }
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>         {
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>             String organizationUrl = columnFamilyResult.getString( <span class="jxr_string">"organization.url"</span> );
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>             String organizationName = columnFamilyResult.getString( <span class="jxr_string">"organization.name"</span> );
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( organizationUrl ) || StringUtils.isNotEmpty( organizationName ) )
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>             {
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>                 projectVersionMetadata.setOrganization( <strong class="jxr_keyword">new</strong> Organization( organizationName, organizationUrl ) );
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a>             }
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>         }
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>         {
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>             String devConn = columnFamilyResult.getString( <span class="jxr_string">"scm.developerConnection"</span> );
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>             String conn = columnFamilyResult.getString( <span class="jxr_string">"scm.connection"</span> );
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a>             String url = columnFamilyResult.getString( <span class="jxr_string">"scm.url"</span> );
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( devConn ) || StringUtils.isNotEmpty( conn ) || StringUtils.isNotEmpty( url ) )
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>             {
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>                 projectVersionMetadata.setScm( <strong class="jxr_keyword">new</strong> Scm( conn, devConn, url ) );
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a>             }
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>         }
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>         projectVersionMetadata.setMailingLists( getMailingLists( key ) );
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a>         projectVersionMetadata.setLicenses( getLicenses( key ) );
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a>         projectVersionMetadata.setDependencies( getDependencies( key ) );
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>         <em class="jxr_comment">// facets</em>
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a> 
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a>             .setColumnNames( FACET_ID.toString(), KEY.toString(), VALUE.toString(), NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a>             .execute();
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a> 
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>         Map&lt;String, Map&lt;String, String&gt;&gt; metadataFacetsPerFacetIds = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a> 
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>         {
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a>             String facetId = getStringValue( columnSlice, FACET_ID.toString() );
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>             Map&lt;String, String&gt; metaValues = metadataFacetsPerFacetIds.get( facetId );
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>             <strong class="jxr_keyword">if</strong> ( metaValues == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a>             {
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a>                 metaValues = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a>                 metadataFacetsPerFacetIds.put( facetId, metaValues );
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a>             }
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a>             metaValues.put( getStringValue( columnSlice, KEY.toString() ), getStringValue( columnSlice, VALUE.toString() ) );
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a>         }
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a> 
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a>         <strong class="jxr_keyword">if</strong> ( !metadataFacetsPerFacetIds.isEmpty() )
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a>         {
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : metadataFacetsPerFacetIds.entrySet() )
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>             {
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a>                 MetadataFacetFactory metadataFacetFactory = metadataFacetFactories.get( entry.getKey() );
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>                 <strong class="jxr_keyword">if</strong> ( metadataFacetFactory != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a>                 {
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a>                     MetadataFacet metadataFacet = metadataFacetFactory.createMetadataFacet();
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>                     metadataFacet.fromProperties( entry.getValue() );
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>                     projectVersionMetadata.addFacet( metadataFacet );
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a>                 }
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>             }
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>         }
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a> 
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a>         <strong class="jxr_keyword">return</strong> projectVersionMetadata;
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>     }
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a> 
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> recordMailingList( String projectVersionMetadataKey, List&lt;MailingList&gt; mailingLists )
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>     {
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a>         <strong class="jxr_keyword">if</strong> ( mailingLists == <strong class="jxr_keyword">null</strong> || mailingLists.isEmpty() )
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a>         {
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>         }
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a>         Mutator&lt;String&gt; mailingMutator = <strong class="jxr_keyword">this</strong>.mailingListTemplate.createMutator();
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a>         <strong class="jxr_keyword">for</strong> ( MailingList mailingList : mailingLists )
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a>         {
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>             <em class="jxr_comment">// we don't care about the key as the real used one with the projectVersionMetadata</em>
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a>             String keyMailingList = UUID.randomUUID().toString();
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a>             String cfMailingList = cassandraArchivaManager.getMailingListFamilyName();
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a> 
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"projectVersionMetadataModel.key"</span>,
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a>                           projectVersionMetadataKey );
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, NAME.toString(), mailingList.getName() );
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"mainArchiveUrl"</span>,
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>                           mailingList.getMainArchiveUrl() );
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"postAddress"</span>, mailingList.getPostAddress() );
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"subscribeAddress"</span>,
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>                           mailingList.getSubscribeAddress() );
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"unsubscribeAddress"</span>,
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a>                           mailingList.getUnsubscribeAddress() );
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a>             <strong class="jxr_keyword">int</strong> idx = 0;
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>             <strong class="jxr_keyword">for</strong> ( String otherArchive : mailingList.getOtherArchives() )
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a>             {
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>                 addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"otherArchive."</span> + idx, otherArchive );
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a>                 idx++;
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a>             }
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a> 
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a>         }
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a>         mailingMutator.execute();
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a>     }
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a> 
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> removeMailingList( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a>     {
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a> 
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>                 .setColumnFamily( cassandraArchivaManager.getMailingListFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a>                 .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a>                 .execute();
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a> 
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>         {
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a>         }
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a> 
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a>         {
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a>             <strong class="jxr_keyword">this</strong>.mailingListTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a>         }
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a> 
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>     }
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a> 
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a>     <strong class="jxr_keyword">protected</strong> List&lt;MailingList&gt; getMailingLists( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>     {
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a>         List&lt;MailingList&gt; mailingLists = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a> 
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>                 .setColumnFamily( cassandraArchivaManager.getMailingListFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a>                 .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>                 .execute();
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a>         {
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult =
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>                 <strong class="jxr_keyword">this</strong>.mailingListTemplate.queryColumns( row.getKey() );
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a> 
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a>             MailingList mailingList = <strong class="jxr_keyword">new</strong> MailingList();
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>             mailingList.setName( columnFamilyResult.getString( NAME.toString() ) );
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a>             mailingList.setMainArchiveUrl( columnFamilyResult.getString( <span class="jxr_string">"mainArchiveUrl"</span> ) );
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a>             mailingList.setPostAddress( columnFamilyResult.getString( <span class="jxr_string">"postAddress"</span> ) );
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>             mailingList.setSubscribeAddress( columnFamilyResult.getString( <span class="jxr_string">"subscribeAddress"</span> ) );
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a>             mailingList.setUnsubscribeAddress( columnFamilyResult.getString( <span class="jxr_string">"unsubscribeAddress"</span> ) );
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a> 
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>             List&lt;String&gt; otherArchives = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a> 
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>             <strong class="jxr_keyword">for</strong> ( String columnName : columnFamilyResult.getColumnNames() )
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>             {
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>                 <strong class="jxr_keyword">if</strong> ( StringUtils.startsWith( columnName, <span class="jxr_string">"otherArchive."</span> ) )
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a>                 {
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a>                     otherArchives.add( columnFamilyResult.getString( columnName ) );
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a>                 }
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a>             }
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a> 
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a>             mailingList.setOtherArchives( otherArchives );
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>             mailingLists.add( mailingList );
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a>         }
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a> 
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>         <strong class="jxr_keyword">return</strong> mailingLists;
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>     }
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a> 
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> recordLicenses( String projectVersionMetadataKey, List&lt;License&gt; licenses )
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>     {
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a> 
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.isEmpty() )
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>         {
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>         }
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>         Mutator&lt;String&gt; licenseMutator = <strong class="jxr_keyword">this</strong>.licenseTemplate.createMutator();
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a> 
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a>         <strong class="jxr_keyword">for</strong> ( License license : licenses )
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>         {
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a>             <em class="jxr_comment">// we don't care about the key as the real used one with the projectVersionMetadata</em>
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>             String keyLicense = UUID.randomUUID().toString();
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a>             String cfLicense = cassandraArchivaManager.getLicenseFamilyName();
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a> 
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>             addInsertion( licenseMutator, keyLicense, cfLicense, <span class="jxr_string">"projectVersionMetadataModel.key"</span>,
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a>                           projectVersionMetadataKey );
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a> 
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a>             addInsertion( licenseMutator, keyLicense, cfLicense, NAME.toString(), license.getName() );
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a> 
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>             addInsertion( licenseMutator, keyLicense, cfLicense, URL.toString(), license.getUrl() );
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a> 
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>         }
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>         licenseMutator.execute();
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>     }
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a> 
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> removeLicenses( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>     {
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a> 
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>                 .setColumnFamily( cassandraArchivaManager.getLicenseFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a>                 .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>                 .execute();
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>         {
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>             <strong class="jxr_keyword">this</strong>.licenseTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>         }
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>     }
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a> 
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>     <strong class="jxr_keyword">protected</strong> List&lt;License&gt; getLicenses( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>     {
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>         List&lt;License&gt; licenses = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a> 
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>                 .setColumnFamily( cassandraArchivaManager.getLicenseFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>                 .setColumnNames( <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>                 .execute();
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a> 
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>         {
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult = <strong class="jxr_keyword">this</strong>.licenseTemplate.queryColumns( row.getKey() );
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a> 
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>             licenses.add(
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>                 <strong class="jxr_keyword">new</strong> License( columnFamilyResult.getString( NAME.toString() ), columnFamilyResult.getString( URL.toString() ) ) );
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>         }
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a> 
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>         <strong class="jxr_keyword">return</strong> licenses;
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>     }
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a> 
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a> 
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> recordDependencies( String projectVersionMetadataKey, List&lt;Dependency&gt; dependencies,
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>                                        String repositoryId )
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>     {
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a> 
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>         <strong class="jxr_keyword">if</strong> ( dependencies == <strong class="jxr_keyword">null</strong> || dependencies.isEmpty() )
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>         {
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>         }
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>         Mutator&lt;String&gt; dependencyMutator = <strong class="jxr_keyword">this</strong>.dependencyTemplate.createMutator();
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a> 
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>         <strong class="jxr_keyword">for</strong> ( Dependency dependency : dependencies )
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>         {
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>             <em class="jxr_comment">// we don't care about the key as the real used one with the projectVersionMetadata</em>
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>             String keyDependency = UUID.randomUUID().toString();
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>             String cfDependency = cassandraArchivaManager.getDependencyFamilyName();
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a> 
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"projectVersionMetadataModel.key"</span>,
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>                           projectVersionMetadataKey );
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a> 
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a> 
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"classifier"</span>, dependency.getClassifier() );
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a> 
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"optional"</span>,
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a>                           Boolean.toString( dependency.isOptional() ) );
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a> 
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"scope"</span>, dependency.getScope() );
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a> 
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"systemPath"</span>, dependency.getSystemPath() );
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a> 
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"type"</span>, dependency.getType() );
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a> 
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, ARTIFACT_ID.toString(), dependency.getArtifactId() );
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a> 
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, GROUP_ID.toString(), dependency.getGroupId() );
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a> 
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, VERSION.toString(), dependency.getVersion() );
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a> 
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>         }
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>         dependencyMutator.execute();
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>     }
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a> 
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> removeDependencies( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>     {
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a> 
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>                 .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a>                 .setColumnNames( GROUP_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a>                 .execute();
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>         {
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>             <strong class="jxr_keyword">this</strong>.dependencyTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>         }
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>     }
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a> 
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>     <strong class="jxr_keyword">protected</strong> List&lt;Dependency&gt; getDependencies( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>     {
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>         List&lt;Dependency&gt; dependencies = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a> 
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>                 .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>                 .setColumnNames( <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>                 .execute();
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> 
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>         {
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult =
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>                 <strong class="jxr_keyword">this</strong>.dependencyTemplate.queryColumns( row.getKey() );
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a> 
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>             Dependency dependency = <strong class="jxr_keyword">new</strong> Dependency();
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>             dependency.setClassifier( columnFamilyResult.getString( <span class="jxr_string">"classifier"</span> ) );
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> 
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a>             dependency.setOptional( Boolean.parseBoolean( columnFamilyResult.getString( <span class="jxr_string">"optional"</span> ) ) );
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a> 
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>             dependency.setScope( columnFamilyResult.getString( <span class="jxr_string">"scope"</span> ) );
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a> 
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a>             dependency.setSystemPath( columnFamilyResult.getString( <span class="jxr_string">"systemPath"</span> ) );
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a> 
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>             dependency.setType( columnFamilyResult.getString( <span class="jxr_string">"type"</span> ) );
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a> 
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>             dependency.setArtifactId( columnFamilyResult.getString( ARTIFACT_ID.toString() ) );
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> 
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>             dependency.setGroupId( columnFamilyResult.getString( GROUP_ID.toString() ) );
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a> 
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>             dependency.setVersion( columnFamilyResult.getString( VERSION.toString() ) );
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a> 
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>             dependencies.add( dependency );
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>         }
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a> 
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>         <strong class="jxr_keyword">return</strong> dependencies;
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a>     }
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a> 
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>     @Override
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateArtifact( String repositoryId, String namespaceId, String projectId, String projectVersion,
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>                                 ArtifactMetadata artifactMeta )
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>     {
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a> 
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = getNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>         <strong class="jxr_keyword">if</strong> ( namespace == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>         {
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>             namespace = updateOrAddNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>         }
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a> 
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>         ProjectMetadata projectMetadata = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>         projectMetadata.setId( projectId );
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>         projectMetadata.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>         updateProject( repositoryId, projectMetadata );
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> 
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>         String key = <strong class="jxr_keyword">new</strong> ArtifactMetadataModel.KeyBuilder().withNamespace( namespace ).withProject( projectId ).withId(
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a>             artifactMeta.getId() ).withProjectVersion( projectVersion ).build();
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a> 
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>         <em class="jxr_comment">// exists?</em>
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a> 
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>         <strong class="jxr_keyword">boolean</strong> exists = <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.isColumnsExist( key );
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a> 
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>         <strong class="jxr_keyword">if</strong> ( exists )
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>         {
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>             <em class="jxr_comment">// updater</em>
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>             ColumnFamilyUpdater&lt;String, String&gt; updater = <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>             updater.setLong( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().getTime() );
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>             updater.setLong( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().getTime() );
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>             updater.setLong( SIZE.toString(), artifactMeta.getSize() );
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>             addUpdateStringValue( updater, MD5.toString(), artifactMeta.getMd5() );
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>             addUpdateStringValue( updater, SHA1.toString(), artifactMeta.getSha1() );
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>             addUpdateStringValue( updater, VERSION.toString(), artifactMeta.getVersion() );
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.update( updater );
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>         }
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>         {
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>             String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getArtifactMetadataFamilyName();
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>             <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>                 .addInsertion( key, cf, column( ID.toString(), artifactMeta.getId() ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>                 .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>                 .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespaceId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>                 .addInsertion( key, cf, column( PROJECT.toString(), artifactMeta.getProject() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>                 .addInsertion( key, cf, column( PROJECT_VERSION.toString(), projectVersion ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>                 .addInsertion( key, cf, column( VERSION.toString(), artifactMeta.getVersion() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>                 .addInsertion( key, cf, column( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().getTime() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>                 .addInsertion( key, cf, column( SIZE.toString(), artifactMeta.getSize() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>                 .addInsertion( key, cf, column( MD5.toString(), artifactMeta.getMd5() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>                 .addInsertion( key, cf, column( SHA1.toString(), artifactMeta.getSha1() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>                 .addInsertion( key, cf, column( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().getTime() ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>                 .execute();
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>         }
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a> 
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>         key = <strong class="jxr_keyword">new</strong> ProjectVersionMetadataModel.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>             .withRepository( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>             .withNamespace( namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>             .withProjectId( projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>             .withProjectVersion( projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>             .withId( artifactMeta.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>             .build();
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a> 
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>             .setColumnNames( VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>             .addEqualsExpression( VERSION.toString(), artifactMeta.getVersion() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>             .execute();
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> 
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>         exists = result.get().getCount() &gt; 0;
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a> 
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>         <strong class="jxr_keyword">if</strong> ( !exists )
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>         {
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>             String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getProjectVersionMetadataFamilyName();
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a> 
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>             projectVersionMetadataTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>                 .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespace.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>                 .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>                 .addInsertion( key, cf, column( PROJECT_VERSION.toString(), projectVersion ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>                 .addInsertion( key, cf, column( PROJECT_ID.toString(), projectId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a>                 .addInsertion( key, cf, column( VERSION.toString(), artifactMeta.getVersion() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>                 .execute();
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a> 
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>         }
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a> 
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a> artifactMetadataModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a>();
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> 
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>         artifactMetadataModel.setRepositoryId( repositoryId );
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a>         artifactMetadataModel.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>         artifactMetadataModel.setProject( projectId );
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>         artifactMetadataModel.setProjectVersion( projectVersion );
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>         artifactMetadataModel.setVersion( artifactMeta.getVersion() );
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>         artifactMetadataModel.setFileLastModified( artifactMeta.getFileLastModified() == <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>                                                        ? <strong class="jxr_keyword">new</strong> Date().getTime()
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>                                                        : artifactMeta.getFileLastModified().getTime() );
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> 
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>         <em class="jxr_comment">// now facets</em>
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>         updateFacets( artifactMeta, artifactMetadataModel );
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a> 
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>     }
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a> 
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>     @Override
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getArtifactVersions( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String projectId,
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>                                                    <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a>     {
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a> 
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>             .setColumnNames( VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>             .execute();
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a> 
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>         <strong class="jxr_keyword">final</strong> Set&lt;String&gt; versions = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a> 
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>         {
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>             versions.add( getStringValue( row.getColumnSlice(), VERSION.toString() ) );
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         }
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> 
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>         <strong class="jxr_keyword">return</strong> versions;
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a> 
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>     }
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a> 
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> <em class="jxr_javadoccomment">     * iterate over available facets to remove/add from the artifactMetadata</em>
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> <em class="jxr_javadoccomment">     * @param facetedMetadata</em>
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a> <em class="jxr_javadoccomment">     * @param artifactMetadataModel only use for the key</em>
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateFacets( <strong class="jxr_keyword">final</strong> FacetedMetadata facetedMetadata,
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>                                <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a> artifactMetadataModel )
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>     {
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a> 
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>         String cf = cassandraArchivaManager.getMetadataFacetFamilyName();
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a> 
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">final</strong> String facetId : metadataFacetFactories.keySet() )
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         {
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>             MetadataFacet metadataFacet = facetedMetadata.getFacet( facetId );
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>             <strong class="jxr_keyword">if</strong> ( metadataFacet == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>             {
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>             }
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>             <em class="jxr_comment">// clean first</em>
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a> 
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>             QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>                 HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>                     .setColumnFamily( cf ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>                     .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>                     .addEqualsExpression( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>                     .addEqualsExpression( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>                     .addEqualsExpression( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>                     .addEqualsExpression( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>                     .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>                     .execute();
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> 
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>             {
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>             }
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a> 
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>             Map&lt;String, String&gt; properties = metadataFacet.toProperties();
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a> 
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; entry : properties.entrySet() )
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>             {
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>                 String key = <strong class="jxr_keyword">new</strong> MetadataFacetModel.KeyBuilder().withKey( entry.getKey() ).withArtifactMetadataModel(
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>                     artifactMetadataModel ).withFacetId( facetId ).withName( metadataFacet.getName() ).build();
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>                 Mutator&lt;String&gt; mutator = metadataFacetTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>                     .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>                     .addInsertion( key, cf, column( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>                     .addInsertion( key, cf, column( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>                     .addInsertion( key, cf, column( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>                     .addInsertion( key, cf, column( FACET_ID.toString(), facetId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>                     .addInsertion( key, cf, column( KEY.toString(), entry.getKey() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>                     .addInsertion( key, cf, column( VALUE.toString(), entry.getValue() ) );
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a> 
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>                 <strong class="jxr_keyword">if</strong> ( metadataFacet.getName() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>                 {
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>                     mutator.addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) );
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>                 }
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a> 
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>                 mutator.execute();
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>             }
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>         }
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>     }
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a> 
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a> 
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>     @Override
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>     <strong class="jxr_keyword">public</strong> List&lt;String&gt; getMetadataFacets( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId )
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>     {
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a> 
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>             .execute();
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a> 
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>         <strong class="jxr_keyword">final</strong> List&lt;String&gt; facets = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a> 
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>         {
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>             facets.add( getStringValue( row.getColumnSlice(), NAME.toString() ) );
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>         }
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>         <strong class="jxr_keyword">return</strong> facets;
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>     }
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a> 
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>     @Override
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> hasMetadataFacet( String repositoryId, String facetId )
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>     {
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>         <strong class="jxr_keyword">return</strong> !getMetadataFacets( repositoryId, facetId ).isEmpty();
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>     }
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a> 
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>     @Override
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>     <strong class="jxr_keyword">public</strong> MetadataFacet getMetadataFacet( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId, <strong class="jxr_keyword">final</strong> String name )
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>     {
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a> 
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>         MetadataFacetFactory metadataFacetFactory = metadataFacetFactories.get( facetId );
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a>         <strong class="jxr_keyword">if</strong> ( metadataFacetFactory == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>         {
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>         }
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a> 
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>             .setColumnNames( KEY.toString(), VALUE.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>             .addEqualsExpression( NAME.toString(), name ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>             .execute();
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> 
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>         MetadataFacet metadataFacet = metadataFacetFactory.createMetadataFacet( repositoryId, name );
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>         <strong class="jxr_keyword">int</strong> size = result.get().getCount();
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>         <strong class="jxr_keyword">if</strong> ( size &lt; 1 )
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>         {
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>         }
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>         Map&lt;String, String&gt; map = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;( size );
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>         {
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>             map.put( getStringValue( columnSlice, KEY.toString() ), getStringValue( columnSlice, VALUE.toString() ) );
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>         }
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>         metadataFacet.fromProperties( map );
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>         <strong class="jxr_keyword">return</strong> metadataFacet;
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>     }
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a> 
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>     @Override
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addMetadataFacet( String repositoryId, MetadataFacet metadataFacet )
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>     {
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> 
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>         <strong class="jxr_keyword">if</strong> ( metadataFacet == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>         {
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>         }
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> 
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>         <strong class="jxr_keyword">if</strong> ( metadataFacet.toProperties().isEmpty() )
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>         {
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>             String key = <strong class="jxr_keyword">new</strong> MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>                 metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).build();
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a> 
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>             <strong class="jxr_keyword">boolean</strong> exists = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.isColumnsExist( key );
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a> 
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>             <strong class="jxr_keyword">if</strong> ( exists )
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>             {
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>                 ColumnFamilyUpdater&lt;String, String&gt; updater = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>                 addUpdateStringValue( updater, FACET_ID.toString(), metadataFacet.getFacetId() );
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>                 addUpdateStringValue( updater, NAME.toString(), metadataFacet.getName() );
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.update( updater );
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>             }
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>             {
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>                 String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getMetadataFacetFamilyName();
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                     .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>                     .addInsertion( key, cf, column( FACET_ID.toString(), metadataFacet.getFacetId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>                     .addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>                     .execute();
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>             }
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a> 
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>         }
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>         {
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; entry : metadataFacet.toProperties().entrySet() )
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>             {
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>                 String key = <strong class="jxr_keyword">new</strong> MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>                     metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).withKey( entry.getKey() ).build();
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a> 
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>                 <strong class="jxr_keyword">boolean</strong> exists = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.isColumnsExist( key );
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>                 <strong class="jxr_keyword">if</strong> ( !exists )
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>                 {
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>                     String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getMetadataFacetFamilyName();
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>                     <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>                         .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                         .addInsertion( key, cf, column( FACET_ID.toString(), metadataFacet.getFacetId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                         .addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>                         .addInsertion( key, cf, column( KEY.toString(), entry.getKey() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>                         .addInsertion( key, cf, column( VALUE.toString(), entry.getValue() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>                         .execute();
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>                 }
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>                 {
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>                     ColumnFamilyUpdater&lt;String, String&gt; updater = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>                     addUpdateStringValue( updater, VALUE.toString(), entry.getValue() );
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>                     <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.update( updater );
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>                 }
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>             }
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>         }
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>     }
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a> 
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>     @Override
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeMetadataFacets( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId )
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>     {
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> 
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>             .setColumnNames( KEY.toString(), VALUE.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>             .execute();
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a> 
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>         {
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>             <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>         }
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a> 
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>     }
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a> 
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>     @Override
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeMetadataFacet( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId, <strong class="jxr_keyword">final</strong> String name )
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>     {
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a> 
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>             .setColumnNames( KEY.toString(), VALUE.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>             .addEqualsExpression( NAME.toString(), name ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>             .execute();
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> 
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>         {
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>             <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>         }
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>     }
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a> 
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>     @Override
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByDateRange( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> Date startTime,
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>                                                            <strong class="jxr_keyword">final</strong> Date endTime )
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>     {
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a> 
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>         LongSerializer ls = LongSerializer.get();
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a>         RangeSlicesQuery&lt;String, String, Long&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>             .createRangeSlicesQuery( keyspace, ss, ss, ls ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>             .setColumnNames( ArtifactMetadataModel.COLUMNS ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> 
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>         <strong class="jxr_keyword">if</strong> ( startTime != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>         {
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>             query = query.addGteExpression( WHEN_GATHERED.toString(), startTime.getTime() );
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>         }
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>         <strong class="jxr_keyword">if</strong> ( endTime != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>         {
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>             query = query.addLteExpression( WHEN_GATHERED.toString(), endTime.getTime() );
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>         }
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a>         QueryResult&lt;OrderedRows&lt;String, String, Long&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a> 
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> 
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, Long&gt; row : result.get() )
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>         {
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>             ColumnSlice&lt;String, Long&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>             String repositoryName = getAsStringValue( columnSlice, REPOSITORY_NAME.toString() );
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.equals( repositoryName, repositoryId ) )
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>             {
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a> 
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>                 artifactMetadatas.add( mapArtifactMetadataLongColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>             }
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>         }
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> 
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>         <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>     }
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a> 
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> 
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>     <strong class="jxr_keyword">protected</strong> ArtifactMetadata mapArtifactMetadataLongColumnSlice( ColumnSlice&lt;String, Long&gt; columnSlice )
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>     {
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>         ArtifactMetadata artifactMetadata = <strong class="jxr_keyword">new</strong> ArtifactMetadata();
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>         artifactMetadata.setNamespace( getAsStringValue( columnSlice, NAMESPACE_ID.toString() ) );
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>         artifactMetadata.setSize( getLongValue( columnSlice, SIZE.toString() ) );
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>         artifactMetadata.setId( getAsStringValue( columnSlice, ID.toString() ) );
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>         artifactMetadata.setFileLastModified( getLongValue( columnSlice, FILE_LAST_MODIFIED.toString() ) );
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a>         artifactMetadata.setMd5( getAsStringValue( columnSlice, MD5.toString() ) );
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>         artifactMetadata.setProject( getAsStringValue( columnSlice, PROJECT.toString() ) );
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>         artifactMetadata.setProjectVersion( getAsStringValue( columnSlice, PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>         artifactMetadata.setRepositoryId( getAsStringValue( columnSlice, REPOSITORY_NAME.toString() ) );
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>         artifactMetadata.setSha1( getAsStringValue( columnSlice, SHA1.toString() ) );
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>         artifactMetadata.setVersion( getAsStringValue( columnSlice, VERSION.toString() ) );
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>         Long whenGathered = getLongValue( columnSlice, WHEN_GATHERED.toString() );
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>         <strong class="jxr_keyword">if</strong> ( whenGathered != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>         {
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>             artifactMetadata.setWhenGathered( <strong class="jxr_keyword">new</strong> Date( whenGathered ) );
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>         }
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a>         <strong class="jxr_keyword">return</strong> artifactMetadata;
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>     }
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> 
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a>     <strong class="jxr_keyword">protected</strong> ArtifactMetadata mapArtifactMetadataStringColumnSlice( ColumnSlice&lt;String, String&gt; columnSlice )
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>     {
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>         ArtifactMetadata artifactMetadata = <strong class="jxr_keyword">new</strong> ArtifactMetadata();
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>         artifactMetadata.setNamespace( getStringValue( columnSlice, NAMESPACE_ID.toString() ) );
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>         artifactMetadata.setSize( getAsLongValue( columnSlice, SIZE.toString() ) );
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>         artifactMetadata.setId( getStringValue( columnSlice, ID.toString() ) );
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>         artifactMetadata.setFileLastModified( getAsLongValue( columnSlice, FILE_LAST_MODIFIED.toString() ) );
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>         artifactMetadata.setMd5( getStringValue( columnSlice, MD5.toString() ) );
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>         artifactMetadata.setProject( getStringValue( columnSlice, PROJECT.toString() ) );
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>         artifactMetadata.setProjectVersion( getStringValue( columnSlice, PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>         artifactMetadata.setRepositoryId( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) );
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>         artifactMetadata.setSha1( getStringValue( columnSlice, SHA1.toString() ) );
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>         artifactMetadata.setVersion( getStringValue( columnSlice, VERSION.toString() ) );
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         Long whenGathered = getAsLongValue( columnSlice, WHEN_GATHERED.toString() );
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>         <strong class="jxr_keyword">if</strong> ( whenGathered != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         {
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>             artifactMetadata.setWhenGathered( <strong class="jxr_keyword">new</strong> Date( whenGathered ) );
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>         }
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>         <strong class="jxr_keyword">return</strong> artifactMetadata;
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>     }
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a> 
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>     @Override
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>     <strong class="jxr_keyword">public</strong> Collection&lt;ArtifactMetadata&gt; getArtifactsByChecksum( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String checksum )
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>     {
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a> 
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>         <em class="jxr_comment">// cql cannot run or in queries so running twice the query</em>
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>         Map&lt;String, ArtifactMetadata&gt; artifactMetadataMap = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> 
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>             .setColumnNames( ArtifactMetadataModel.COLUMNS ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a> 
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>         query = query.addEqualsExpression( SHA1.toString(), checksum ).addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> 
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a> 
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>         {
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> 
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>             artifactMetadataMap.put( row.getKey(), mapArtifactMetadataStringColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> 
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>         }
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> 
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a>         query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a>             .setColumnNames( NAMESPACE_ID.toString(), SIZE.toString(), ID.toString(), FILE_LAST_MODIFIED.toString(), MD5.toString(), PROJECT.toString(), PROJECT_VERSION.toString(),
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a>                              REPOSITORY_NAME.toString(), VERSION.toString(), WHEN_GATHERED.toString(), SHA1.toString() ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> 
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>         query = query.addEqualsExpression( MD5.toString(), checksum ).addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> 
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>         result = query.execute();
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> 
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a>         {
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a> 
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>             artifactMetadataMap.put( row.getKey(), mapArtifactMetadataStringColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> 
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>         }
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a> 
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>         <strong class="jxr_keyword">return</strong> artifactMetadataMap.values();
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>     }
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> 
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> <em class="jxr_javadoccomment">     * Project version and artifact level metadata are stored in the same place, no distinctions in Cassandra</em>
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a> <em class="jxr_javadoccomment">     * implementation, just calls {@link #getArtifactsByMetadata(String, String, String)}</em>
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>     @Override
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByProjectVersionMetadata( String key, String value, String repositoryId )
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>     {
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>         <strong class="jxr_keyword">return</strong> getArtifactsByMetadata( key, value, repositoryId );
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>     }
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a> 
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>     @Override
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByMetadata( String key, String value, String repositoryId )
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>     {
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>         RangeSlicesQuery&lt;String, String, String&gt; query =
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>             HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a>             .setColumnNames( MetadataFacetModel.COLUMNS ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a>             .addEqualsExpression( VALUE.toString(), value );
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a> 
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a>         <strong class="jxr_keyword">if</strong> ( key != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a>         {
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>             query.addEqualsExpression( KEY.toString(), key ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a>         }
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a>         <strong class="jxr_keyword">if</strong> ( repositoryId != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a>         {
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a>             query.addEqualsExpression( <span class="jxr_string">"repositoryName"</span>, repositoryId );
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>         }
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a> 
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; metadataFacetResult = query.execute();
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a>         <strong class="jxr_keyword">if</strong> ( metadataFacetResult.get() == <strong class="jxr_keyword">null</strong> || metadataFacetResult.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a>         {
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a>         }
<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a> 
<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> LinkedList&lt;ArtifactMetadata&gt;();
<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a> 
<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a>         <em class="jxr_comment">// TODO doing multiple queries, there should be a way to get all the artifactMetadatas for any number of</em>
<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a>         <em class="jxr_comment">// projects</em>
<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : metadataFacetResult.get() )
<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a>         {
<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a>             QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; artifactMetadataResult =
<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a>                 HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a>                 .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a>                 .setColumnNames( ArtifactMetadataModel.COLUMNS ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(),
<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a>                                       getStringValue( row.getColumnSlice(), REPOSITORY_NAME ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), getStringValue( row.getColumnSlice(), NAMESPACE_ID ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a>                 .addEqualsExpression( PROJECT.toString(), getStringValue( row.getColumnSlice(), PROJECT_ID ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a>                 .addEqualsExpression( PROJECT_VERSION.toString(),
<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a>                                       getStringValue( row.getColumnSlice(), PROJECT_VERSION ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a>                 .execute();
<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a> 
<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a>             <strong class="jxr_keyword">if</strong> ( artifactMetadataResult.get() == <strong class="jxr_keyword">null</strong> || artifactMetadataResult.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a>             {
<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a>                 <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a>             }
<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a> 
<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; artifactMetadataRow : artifactMetadataResult.get() )
<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a>             {
<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a>                 artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( artifactMetadataRow.getColumnSlice() ) );
<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a>             }
<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a>         }
<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> 
<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a>         <strong class="jxr_keyword">return</strong> mapArtifactMetadataToArtifact( metadataFacetResult, artifactMetadatas );
<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a>     }
<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a> 
<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a>     @Override
<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByProperty( String key, String value, String repositoryId )
<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a>     {
<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a>             HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a>             .setColumnNames( PROJECT_ID.toString(), REPOSITORY_NAME.toString(), NAMESPACE_ID.toString(),
<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a>                              PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a>             .addEqualsExpression( key, value ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a>             .execute();
<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a> 
<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a>         <strong class="jxr_keyword">int</strong> count = result.get().getCount();
<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a> 
<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a>         <strong class="jxr_keyword">if</strong> ( count &lt; 1 )
<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a>         {
<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a>         }
<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a> 
<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> LinkedList&lt;ArtifactMetadata&gt;();
<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a> 
<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a>         {
<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a>             <em class="jxr_comment">// TODO doing multiple queries, there should be a way to get all the artifactMetadatas for any number of</em>
<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a>             <em class="jxr_comment">// projects</em>
<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a>             {
<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a>                 artifacts.addAll( getArtifacts( getStringValue( row.getColumnSlice(), REPOSITORY_NAME ),
<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a>                                                 getStringValue( row.getColumnSlice(), NAMESPACE_ID ),
<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a>                                                 getStringValue( row.getColumnSlice(), PROJECT_ID ),
<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a>                                                 getStringValue( row.getColumnSlice(), PROJECT_VERSION ) ) );
<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a>             }
<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a>             <strong class="jxr_keyword">catch</strong> ( MetadataResolutionException e )
<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a>             {
<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a>                 <em class="jxr_comment">// never raised</em>
<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( e );
<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a>             }
<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a>         }
<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a>         <strong class="jxr_keyword">return</strong> artifacts;
<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a>     }
<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a> 
<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a>     @Override
<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeArtifact( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String project,
<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a>                                 <strong class="jxr_keyword">final</strong> String version, <strong class="jxr_keyword">final</strong> String id )
<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a>     {
<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a>         logger.debug( <span class="jxr_string">"removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'"</span>,
<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a>                       repositoryId, namespace, project, version, id );
<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a>         String key =
<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a>             <strong class="jxr_keyword">new</strong> ArtifactMetadataModel.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespace ).withId(
<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a>                 id ).withProjectVersion( version ).withProject( project ).build();
<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a> 
<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a>         <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a> 
<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a>         key = <strong class="jxr_keyword">new</strong> ProjectVersionMetadataModel.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a>             .withRepository( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a>             .withNamespace( namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a>             .withProjectId( project ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a>             .withProjectVersion( version ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a>             .withId( id ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a>             .build();
<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a> 
<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a>         <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a>     }
<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a> 
<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a>     @Override
<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeArtifact( ArtifactMetadata artifactMetadata, String baseVersion )
<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a>     {
<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a>         logger.debug( <span class="jxr_string">"removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'"</span>,
<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a>                       artifactMetadata.getRepositoryId(), artifactMetadata.getNamespace(),
<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a>                       artifactMetadata.getProject(), baseVersion, artifactMetadata.getId() );
<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a>         String key =
<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a>             <strong class="jxr_keyword">new</strong> ArtifactMetadataModel.KeyBuilder().withRepositoryId( artifactMetadata.getRepositoryId() ).withNamespace(
<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a>                 artifactMetadata.getNamespace() ).withId( artifactMetadata.getId() ).withProjectVersion(
<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a>                 baseVersion ).withProject( artifactMetadata.getProject() ).build();
<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a> 
<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a>         <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a> 
<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a>     }
<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a> 
<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a>     @Override
<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeArtifact( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String project,
<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a>                                 <strong class="jxr_keyword">final</strong> String version, <strong class="jxr_keyword">final</strong> MetadataFacet metadataFacet )
<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a>     {
<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a> 
<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1988" href="#L1988">1988</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a>             .setColumnNames( NAMESPACE_ID.toString() ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a> 
<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a>         query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a>             .addEqualsExpression( PROJECT.toString(), project ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a>             .addEqualsExpression( VERSION.toString(), version );
<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a> 
<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a> 
<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a>         {
<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a>         }
<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a>     }
<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a> 
<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a> 
<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a>     @Override
<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifacts( <strong class="jxr_keyword">final</strong> String repositoryId )
<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a>     {
<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a> 
<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a>             .setColumnNames( ArtifactMetadataModel.COLUMNS ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a> 
<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a>         query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a> 
<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a> 
<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a> 
<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a>         {
<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a> 
<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a>             artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a> 
<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a>         }
<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a> 
<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a>         <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a>     }
<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a> 
<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a> 
<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a>     @Override
<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a>     <strong class="jxr_keyword">public</strong> Collection&lt;ProjectVersionReference&gt; getProjectReferences( String repoId, String namespace, String projectId,
<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a>                                                                      String projectVersion )
<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a>     {
<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a>             .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a>             .setColumnNames( <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a>             .addEqualsExpression( GROUP_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a>             .addEqualsExpression( ARTIFACT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a>             .addEqualsExpression( VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a>             .execute();
<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a> 
<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a>         List&lt;String&gt; dependenciesIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a> 
<a class="jxr_linenumber" name="L2050" href="#L2050">2050</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a>         {
<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a>             dependenciesIds.add( getStringValue( row.getColumnSlice(), <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) );
<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a>         }
<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a> 
<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a>         List&lt;ProjectVersionReference&gt; references = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a> 
<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a>         <strong class="jxr_keyword">for</strong> ( String key : dependenciesIds )
<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a>         {
<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult =
<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a>                 <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.queryColumns( key );
<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a>             references.add( <strong class="jxr_keyword">new</strong> ProjectVersionReference( ProjectVersionReference.ReferenceType.DEPENDENCY, <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a>                                                          columnFamilyResult.getString( PROJECT_ID.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a>                                                          columnFamilyResult.getString( NAMESPACE_ID.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a>                                                          columnFamilyResult.getString( PROJECT_VERSION.toString() ) ) );
<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a>         }
<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a> 
<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a>         <strong class="jxr_keyword">return</strong> references;
<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a>     }
<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a> 
<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a>     @Override
<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeProjectVersion( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String projectId,
<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a>                                       <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L2074" href="#L2074">2074</a>     {
<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a> 
<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a>             .setColumnNames( VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a>             .execute();
<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a> 
<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a>         {
<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a>             <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a>             removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a>             removeLicenses( row.getKey() );
<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a>             removeDependencies( row.getKey() );
<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a>         }
<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a> 
<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a>             .setColumnNames( NAMESPACE_ID.toString() ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a> 
<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a>         query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a>             .addEqualsExpression( PROJECT.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion );
<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> 
<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a>         result = query.execute();
<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a> 
<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a>         {
<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a> 
<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a>         }
<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a>     }
<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a> 
<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a>     @Override
<a class="jxr_linenumber" name="L2114" href="#L2114">2114</a>     <strong class="jxr_keyword">public</strong> Collection&lt;ArtifactMetadata&gt; getArtifacts( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace,
<a class="jxr_linenumber" name="L2115" href="#L2115">2115</a>                                                       <strong class="jxr_keyword">final</strong> String projectId, <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L2116" href="#L2116">2116</a>         <strong class="jxr_keyword">throws</strong> MetadataResolutionException
<a class="jxr_linenumber" name="L2117" href="#L2117">2117</a>     {
<a class="jxr_linenumber" name="L2118" href="#L2118">2118</a> 
<a class="jxr_linenumber" name="L2119" href="#L2119">2119</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L2120" href="#L2120">2120</a>             HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2121" href="#L2121">2121</a>                 .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2122" href="#L2122">2122</a>                 .setColumnNames( ArtifactMetadataModel.COLUMNS )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2123" href="#L2123">2123</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2124" href="#L2124">2124</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2125" href="#L2125">2125</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2126" href="#L2126">2126</a>                 .addEqualsExpression( PROJECT.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2127" href="#L2127">2127</a>                 .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2128" href="#L2128">2128</a>                 .execute();
<a class="jxr_linenumber" name="L2129" href="#L2129">2129</a> 
<a class="jxr_linenumber" name="L2130" href="#L2130">2130</a>         <strong class="jxr_keyword">if</strong> ( result.get() == <strong class="jxr_keyword">null</strong> || result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L2131" href="#L2131">2131</a>         {
<a class="jxr_linenumber" name="L2132" href="#L2132">2132</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L2133" href="#L2133">2133</a>         }
<a class="jxr_linenumber" name="L2134" href="#L2134">2134</a> 
<a class="jxr_linenumber" name="L2135" href="#L2135">2135</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2136" href="#L2136">2136</a> 
<a class="jxr_linenumber" name="L2137" href="#L2137">2137</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2138" href="#L2138">2138</a>         {
<a class="jxr_linenumber" name="L2139" href="#L2139">2139</a>             artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( row.getColumnSlice() ) );
<a class="jxr_linenumber" name="L2140" href="#L2140">2140</a>         }
<a class="jxr_linenumber" name="L2141" href="#L2141">2141</a> 
<a class="jxr_linenumber" name="L2142" href="#L2142">2142</a>         result = HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2143" href="#L2143">2143</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2144" href="#L2144">2144</a>             .setColumnNames( MetadataFacetModel.COLUMNS ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2145" href="#L2145">2145</a>             .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2146" href="#L2146">2146</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2147" href="#L2147">2147</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2148" href="#L2148">2148</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2149" href="#L2149">2149</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2150" href="#L2150">2150</a>             .execute();
<a class="jxr_linenumber" name="L2151" href="#L2151">2151</a> 
<a class="jxr_linenumber" name="L2152" href="#L2152">2152</a>         <strong class="jxr_keyword">return</strong> mapArtifactMetadataToArtifact(result, artifactMetadatas);
<a class="jxr_linenumber" name="L2153" href="#L2153">2153</a>     }
<a class="jxr_linenumber" name="L2154" href="#L2154">2154</a> 
<a class="jxr_linenumber" name="L2155" href="#L2155">2155</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2156" href="#L2156">2156</a> <em class="jxr_javadoccomment">     * Attach metadata to each of the  ArtifactMetadata objects</em>
<a class="jxr_linenumber" name="L2157" href="#L2157">2157</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2158" href="#L2158">2158</a>     <strong class="jxr_keyword">private</strong> List&lt;ArtifactMetadata&gt; mapArtifactMetadataToArtifact(QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result, List&lt;ArtifactMetadata&gt; artifactMetadatas) {
<a class="jxr_linenumber" name="L2159" href="#L2159">2159</a>         <strong class="jxr_keyword">if</strong> ( result.get() == <strong class="jxr_keyword">null</strong> || result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L2160" href="#L2160">2160</a>         {
<a class="jxr_linenumber" name="L2161" href="#L2161">2161</a>             <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L2162" href="#L2162">2162</a>         }
<a class="jxr_linenumber" name="L2163" href="#L2163">2163</a> 
<a class="jxr_linenumber" name="L2164" href="#L2164">2164</a>         <strong class="jxr_keyword">final</strong> List&lt;MetadataFacetModel&gt; metadataFacetModels = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2165" href="#L2165">2165</a> 
<a class="jxr_linenumber" name="L2166" href="#L2166">2166</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2167" href="#L2167">2167</a>         {
<a class="jxr_linenumber" name="L2168" href="#L2168">2168</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L2169" href="#L2169">2169</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.html">MetadataFacetModel</a> metadataFacetModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.html">MetadataFacetModel</a>();
<a class="jxr_linenumber" name="L2170" href="#L2170">2170</a>             metadataFacetModel.setFacetId( getStringValue( columnSlice, FACET_ID.toString() ) );
<a class="jxr_linenumber" name="L2171" href="#L2171">2171</a>             metadataFacetModel.setName( getStringValue( columnSlice, NAME.toString() ) );
<a class="jxr_linenumber" name="L2172" href="#L2172">2172</a>             metadataFacetModel.setValue( getStringValue( columnSlice, VALUE.toString() ) );
<a class="jxr_linenumber" name="L2173" href="#L2173">2173</a>             metadataFacetModel.setKey( getStringValue( columnSlice, KEY.toString() ) );
<a class="jxr_linenumber" name="L2174" href="#L2174">2174</a>             metadataFacetModel.setProjectVersion( getStringValue( columnSlice, PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L2175" href="#L2175">2175</a>             metadataFacetModels.add( metadataFacetModel );
<a class="jxr_linenumber" name="L2176" href="#L2176">2176</a>         }
<a class="jxr_linenumber" name="L2177" href="#L2177">2177</a> 
<a class="jxr_linenumber" name="L2178" href="#L2178">2178</a>         <em class="jxr_comment">// rebuild MetadataFacet for artifacts</em>
<a class="jxr_linenumber" name="L2179" href="#L2179">2179</a> 
<a class="jxr_linenumber" name="L2180" href="#L2180">2180</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">final</strong> ArtifactMetadata artifactMetadata : artifactMetadatas )
<a class="jxr_linenumber" name="L2181" href="#L2181">2181</a>         {
<a class="jxr_linenumber" name="L2182" href="#L2182">2182</a>             Iterable&lt;MetadataFacetModel&gt; metadataFacetModelIterable =
<a class="jxr_linenumber" name="L2183" href="#L2183">2183</a>                 Iterables.filter( metadataFacetModels, <strong class="jxr_keyword">new</strong> Predicate&lt;MetadataFacetModel&gt;()
<a class="jxr_linenumber" name="L2184" href="#L2184">2184</a>                 {
<a class="jxr_linenumber" name="L2185" href="#L2185">2185</a>                     @Override
<a class="jxr_linenumber" name="L2186" href="#L2186">2186</a>                     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> apply( MetadataFacetModel metadataFacetModel )
<a class="jxr_linenumber" name="L2187" href="#L2187">2187</a>                     {
<a class="jxr_linenumber" name="L2188" href="#L2188">2188</a>                         <strong class="jxr_keyword">if</strong> ( metadataFacetModel != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2189" href="#L2189">2189</a>                         {
<a class="jxr_linenumber" name="L2190" href="#L2190">2190</a>                             <strong class="jxr_keyword">return</strong> StringUtils.equals( artifactMetadata.getVersion(),
<a class="jxr_linenumber" name="L2191" href="#L2191">2191</a>                                                        metadataFacetModel.getProjectVersion() );
<a class="jxr_linenumber" name="L2192" href="#L2192">2192</a>                         }
<a class="jxr_linenumber" name="L2193" href="#L2193">2193</a>                         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L2194" href="#L2194">2194</a>                     }
<a class="jxr_linenumber" name="L2195" href="#L2195">2195</a>                 } );
<a class="jxr_linenumber" name="L2196" href="#L2196">2196</a>             Iterator&lt;MetadataFacetModel&gt; iterator = metadataFacetModelIterable.iterator();
<a class="jxr_linenumber" name="L2197" href="#L2197">2197</a>             Map&lt;String, List&lt;MetadataFacetModel&gt;&gt; metadataFacetValuesPerFacetId = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L2198" href="#L2198">2198</a>             <strong class="jxr_keyword">while</strong> ( iterator.hasNext() )
<a class="jxr_linenumber" name="L2199" href="#L2199">2199</a>             {
<a class="jxr_linenumber" name="L2200" href="#L2200">2200</a>                 <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.html">MetadataFacetModel</a> metadataFacetModel = iterator.next();
<a class="jxr_linenumber" name="L2201" href="#L2201">2201</a>                 List&lt;MetadataFacetModel&gt; values = metadataFacetValuesPerFacetId.get( metadataFacetModel.getName() );
<a class="jxr_linenumber" name="L2202" href="#L2202">2202</a>                 <strong class="jxr_keyword">if</strong> ( values == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2203" href="#L2203">2203</a>                 {
<a class="jxr_linenumber" name="L2204" href="#L2204">2204</a>                     values = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L2205" href="#L2205">2205</a>                     metadataFacetValuesPerFacetId.put( metadataFacetModel.getFacetId(), values );
<a class="jxr_linenumber" name="L2206" href="#L2206">2206</a>                 }
<a class="jxr_linenumber" name="L2207" href="#L2207">2207</a>                 values.add( metadataFacetModel );
<a class="jxr_linenumber" name="L2208" href="#L2208">2208</a> 
<a class="jxr_linenumber" name="L2209" href="#L2209">2209</a>             }
<a class="jxr_linenumber" name="L2210" href="#L2210">2210</a> 
<a class="jxr_linenumber" name="L2211" href="#L2211">2211</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, List&lt;MetadataFacetModel&gt;&gt; entry : metadataFacetValuesPerFacetId.entrySet() )
<a class="jxr_linenumber" name="L2212" href="#L2212">2212</a>             {
<a class="jxr_linenumber" name="L2213" href="#L2213">2213</a>                 MetadataFacetFactory metadataFacetFactory = metadataFacetFactories.get( entry.getKey() );
<a class="jxr_linenumber" name="L2214" href="#L2214">2214</a>                 <strong class="jxr_keyword">if</strong> ( metadataFacetFactory != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2215" href="#L2215">2215</a>                 {
<a class="jxr_linenumber" name="L2216" href="#L2216">2216</a>                     List&lt;MetadataFacetModel&gt; facetModels = entry.getValue();
<a class="jxr_linenumber" name="L2217" href="#L2217">2217</a>                     <strong class="jxr_keyword">if</strong> ( !facetModels.isEmpty() )
<a class="jxr_linenumber" name="L2218" href="#L2218">2218</a>                     {
<a class="jxr_linenumber" name="L2219" href="#L2219">2219</a>                         MetadataFacet metadataFacet = metadataFacetFactory.createMetadataFacet();
<a class="jxr_linenumber" name="L2220" href="#L2220">2220</a>                         Map&lt;String, String&gt; props = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;( facetModels.size() );
<a class="jxr_linenumber" name="L2221" href="#L2221">2221</a>                         <strong class="jxr_keyword">for</strong> ( MetadataFacetModel metadataFacetModel : facetModels )
<a class="jxr_linenumber" name="L2222" href="#L2222">2222</a>                         {
<a class="jxr_linenumber" name="L2223" href="#L2223">2223</a>                             props.put( metadataFacetModel.getKey(), metadataFacetModel.getValue() );
<a class="jxr_linenumber" name="L2224" href="#L2224">2224</a>                         }
<a class="jxr_linenumber" name="L2225" href="#L2225">2225</a>                         metadataFacet.fromProperties( props );
<a class="jxr_linenumber" name="L2226" href="#L2226">2226</a>                         artifactMetadata.addFacet( metadataFacet );
<a class="jxr_linenumber" name="L2227" href="#L2227">2227</a>                     }
<a class="jxr_linenumber" name="L2228" href="#L2228">2228</a>                 }
<a class="jxr_linenumber" name="L2229" href="#L2229">2229</a>             }
<a class="jxr_linenumber" name="L2230" href="#L2230">2230</a>         }
<a class="jxr_linenumber" name="L2231" href="#L2231">2231</a> 
<a class="jxr_linenumber" name="L2232" href="#L2232">2232</a>         <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L2233" href="#L2233">2233</a>     }
<a class="jxr_linenumber" name="L2234" href="#L2234">2234</a> 
<a class="jxr_linenumber" name="L2235" href="#L2235">2235</a>     @Override
<a class="jxr_linenumber" name="L2236" href="#L2236">2236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> save()
<a class="jxr_linenumber" name="L2237" href="#L2237">2237</a>     {
<a class="jxr_linenumber" name="L2238" href="#L2238">2238</a>         logger.trace( <span class="jxr_string">"save"</span> );
<a class="jxr_linenumber" name="L2239" href="#L2239">2239</a>     }
<a class="jxr_linenumber" name="L2240" href="#L2240">2240</a> 
<a class="jxr_linenumber" name="L2241" href="#L2241">2241</a>     @Override
<a class="jxr_linenumber" name="L2242" href="#L2242">2242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close()
<a class="jxr_linenumber" name="L2243" href="#L2243">2243</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L2244" href="#L2244">2244</a>     {
<a class="jxr_linenumber" name="L2245" href="#L2245">2245</a>         logger.trace( <span class="jxr_string">"close"</span> );
<a class="jxr_linenumber" name="L2246" href="#L2246">2246</a>     }
<a class="jxr_linenumber" name="L2247" href="#L2247">2247</a> 
<a class="jxr_linenumber" name="L2248" href="#L2248">2248</a>     @Override
<a class="jxr_linenumber" name="L2249" href="#L2249">2249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> revert()
<a class="jxr_linenumber" name="L2250" href="#L2250">2250</a>     {
<a class="jxr_linenumber" name="L2251" href="#L2251">2251</a>         logger.warn( <span class="jxr_string">"CassandraMetadataRepository cannot revert"</span> );
<a class="jxr_linenumber" name="L2252" href="#L2252">2252</a>     }
<a class="jxr_linenumber" name="L2253" href="#L2253">2253</a> 
<a class="jxr_linenumber" name="L2254" href="#L2254">2254</a>     @Override
<a class="jxr_linenumber" name="L2255" href="#L2255">2255</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> canObtainAccess( Class&lt;?&gt; aClass )
<a class="jxr_linenumber" name="L2256" href="#L2256">2256</a>     {
<a class="jxr_linenumber" name="L2257" href="#L2257">2257</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L2258" href="#L2258">2258</a>     }
<a class="jxr_linenumber" name="L2259" href="#L2259">2259</a> 
<a class="jxr_linenumber" name="L2260" href="#L2260">2260</a>     @Override
<a class="jxr_linenumber" name="L2261" href="#L2261">2261</a>     <strong class="jxr_keyword">public</strong> &lt;T&gt; T obtainAccess( Class&lt;T&gt; aClass )
<a class="jxr_linenumber" name="L2262" href="#L2262">2262</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L2263" href="#L2263">2263</a>     {
<a class="jxr_linenumber" name="L2264" href="#L2264">2264</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a class="jxr_linenumber" name="L2265" href="#L2265">2265</a>             <span class="jxr_string">"Access using "</span> + aClass + <span class="jxr_string">" is not supported on the cassandra metadata storage"</span> );
<a class="jxr_linenumber" name="L2266" href="#L2266">2266</a>     }
<a class="jxr_linenumber" name="L2267" href="#L2267">2267</a> 
<a class="jxr_linenumber" name="L2268" href="#L2268">2268</a> 
<a class="jxr_linenumber" name="L2269" href="#L2269">2269</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">ModelMapperHolder</a>
<a class="jxr_linenumber" name="L2270" href="#L2270">2270</a>     {
<a class="jxr_linenumber" name="L2271" href="#L2271">2271</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> ModelMapper MODEL_MAPPER = <strong class="jxr_keyword">new</strong> ModelMapper();
<a class="jxr_linenumber" name="L2272" href="#L2272">2272</a>     }
<a class="jxr_linenumber" name="L2273" href="#L2273">2273</a> 
<a class="jxr_linenumber" name="L2274" href="#L2274">2274</a>     <strong class="jxr_keyword">protected</strong> ModelMapper getModelMapper()
<a class="jxr_linenumber" name="L2275" href="#L2275">2275</a>     {
<a class="jxr_linenumber" name="L2276" href="#L2276">2276</a>         <strong class="jxr_keyword">return</strong> ModelMapperHolder.MODEL_MAPPER;
<a class="jxr_linenumber" name="L2277" href="#L2277">2277</a>     }
<a class="jxr_linenumber" name="L2278" href="#L2278">2278</a> 
<a class="jxr_linenumber" name="L2279" href="#L2279">2279</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2280" href="#L2280">2280</a> <em class="jxr_javadoccomment">     * This implementation just calls getArtifactsByMetadata( null, text, repositoryId ). We can't search artifacts by</em>
<a class="jxr_linenumber" name="L2281" href="#L2281">2281</a> <em class="jxr_javadoccomment">     * any property.</em>
<a class="jxr_linenumber" name="L2282" href="#L2282">2282</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2283" href="#L2283">2283</a>     @Override
<a class="jxr_linenumber" name="L2284" href="#L2284">2284</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; searchArtifacts( String text, String repositoryId, <strong class="jxr_keyword">boolean</strong> exact )
<a class="jxr_linenumber" name="L2285" href="#L2285">2285</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L2286" href="#L2286">2286</a>     {
<a class="jxr_linenumber" name="L2287" href="#L2287">2287</a>         <strong class="jxr_keyword">return</strong> getArtifactsByMetadata( <strong class="jxr_keyword">null</strong>, text, repositoryId );
<a class="jxr_linenumber" name="L2288" href="#L2288">2288</a>     }
<a class="jxr_linenumber" name="L2289" href="#L2289">2289</a> 
<a class="jxr_linenumber" name="L2290" href="#L2290">2290</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2291" href="#L2291">2291</a> <em class="jxr_javadoccomment">     * The exact parameter is ignored as we can't do non exact searches in Cassandra</em>
<a class="jxr_linenumber" name="L2292" href="#L2292">2292</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2293" href="#L2293">2293</a>     @Override
<a class="jxr_linenumber" name="L2294" href="#L2294">2294</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; searchArtifacts( String key, String text, String repositoryId, <strong class="jxr_keyword">boolean</strong> exact )
<a class="jxr_linenumber" name="L2295" href="#L2295">2295</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException
<a class="jxr_linenumber" name="L2296" href="#L2296">2296</a>     {
<a class="jxr_linenumber" name="L2297" href="#L2297">2297</a>         <em class="jxr_comment">// TODO optimize</em>
<a class="jxr_linenumber" name="L2298" href="#L2298">2298</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> LinkedList&lt;ArtifactMetadata&gt;();
<a class="jxr_linenumber" name="L2299" href="#L2299">2299</a>         artifacts.addAll( getArtifactsByMetadata( key, text, repositoryId ) );
<a class="jxr_linenumber" name="L2300" href="#L2300">2300</a>         artifacts.addAll( getArtifactsByProperty( key, text, repositoryId ) );
<a class="jxr_linenumber" name="L2301" href="#L2301">2301</a>         <strong class="jxr_keyword">return</strong> artifacts;
<a class="jxr_linenumber" name="L2302" href="#L2302">2302</a>     }
<a class="jxr_linenumber" name="L2303" href="#L2303">2303</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
