Author: nacx
Date: Tue Jan 16 10:45:34 2018
New Revision: 1821227

URL: http://svn.apache.org/viewvc?rev=1821227&view=rev
Log:
deploy jclouds site content

Added:
    jclouds/site-content/blog/2018/
    jclouds/site-content/blog/2018/01/
    jclouds/site-content/blog/2018/01/16/
    jclouds/site-content/blog/2018/01/16/keystone-v3/
    jclouds/site-content/blog/2018/01/16/keystone-v3/index.html
Modified:
    jclouds/site-content/blog/atom.xml
    jclouds/site-content/blog/index.html
    jclouds/site-content/blog/page2/index.html
    jclouds/site-content/blog/page3/index.html
    jclouds/site-content/blog/page4/index.html
    jclouds/site-content/blog/page5/index.html
    jclouds/site-content/blog/page6/index.html
    jclouds/site-content/index.html

Added: jclouds/site-content/blog/2018/01/16/keystone-v3/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/2018/01/16/keystone-v3/index.html?rev=1821227&view=auto
==============================================================================
--- jclouds/site-content/blog/2018/01/16/keystone-v3/index.html (added)
+++ jclouds/site-content/blog/2018/01/16/keystone-v3/index.html Tue Jan 16 
10:45:34 2018
@@ -0,0 +1,331 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+<title>Apache jclouds&reg; :: OpenStack Keystone V3 Support</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="description" content="">
+<meta name="author" content="">
+
+<!--link rel="stylesheet/less" href="less/bootstrap.less" type="text/css" /-->
+<!--link rel="stylesheet/less" href="less/responsive.less" type="text/css" /-->
+<!--script src="js/less-1.3.3.min.js"></script-->
+<!--append ‘#!watch’ to the browser URL, then refresh the page. -->
+
+<link href="/css/bootstrap.min.css" rel="stylesheet">
+<link href="/css/style.css" rel="stylesheet">
+<link href="/css/syntax.css" rel="stylesheet">
+
+<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+<!--[if lt IE 9]>
+<script src="js/html5shiv.js"></script>
+<![endif]-->
+
+<!-- Fav and touch icons -->
+<!--
+<link rel="apple-touch-icon-precomposed" sizes="144x144" 
href="/img/apple-touch-icon-144-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="114x114" 
href="/img/apple-touch-icon-114-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="72x72" 
href="/img/apple-touch-icon-72-precomposed.png">
+<link rel="apple-touch-icon-precomposed" 
href="/img/apple-touch-icon-57-precomposed.png">
+-->
+<link rel="shortcut icon" href="/favicon.ico">
+
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" 
title="Blog Posts Feed">
+<link rel="alternate" type="application/atom+xml" 
href="/releasenotes/atom.xml" title="Release Notes Feed">
+
+<script type="text/javascript" src="/js/jquery.min.js"></script>
+<script type="text/javascript" src="/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="/js/toc.js"></script>
+
+<script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-8638379-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+     var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+     var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+     })();
+</script>
+<script type="text/javascript">
+    
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+     
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+     
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-47106724-1', 'jclouds.apache.org');
+    ga('send', 'pageview');
+</script>
+
+    </head>
+    <body>
+        <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target="#bs-example-navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="/">Apache jclouds &reg;</a>
+        </div>
+
+        <div class="collapse navbar-collapse" 
id="bs-example-navbar-collapse-1">
+            <ul class="nav navbar-nav">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Getting Started<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/start/what-is-jclouds/">What Is Apache 
jclouds?</a></li>
+                        <li><a href="/start/install/">Installation 
Guide</a></li>
+                        <li class="divider"></li>
+                        <li><a href="/start/concepts/">Core Concepts</a></li>
+                        <li><a href="/start/compute/">ComputeService</a></li>
+                        <li><a href="/start/blobstore/">BlobStore</a></li>
+                        <li><a 
href="http://github.com/jclouds/jclouds-examples";>Examples</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Documentation<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/reference/providers/">Cloud 
Providers</a></li>
+                        <li><a href="/guides">User Guides</a></li>
+                        <li><a 
href="/reference/troubleshooting/">Troubleshooting</a></li>
+                        <li><a 
href="/reference/configuration/">Configuration</a></li>
+                        <li><a href="/reference/logging/">Logging</a></li>
+                        <li><a href="/reference/javadoc/">Javadoc</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Developer Guides</li>
+                        <li><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/";>Wiki</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Community<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/community/">Get In Touch!</a></li>
+                        <li><a href="http://www.meetup.com/jclouds/";>Attend An 
Event</a></li>
+                        <li><a href="/community/users/">Who Is Using 
jclouds?</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Contribute</li>
+                        <li><a href="/reference/report-a-bug/">Report a 
Bug</a></li>
+                        <li><a 
href="http://jclouds.ci.cloudbees.com";>Continuous Integration</a></li>
+                        <li><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute";>How
 To Contribute Code</a></li>
+                        <li><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>How
 To Contribute Documentation</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">About Apache<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org";>The Apache 
Software Foundation</a></li>
+                        <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/contributing.html";>Donations</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                        <li><a href="http://www.apache.org/security/";>Report a 
Vulnerability</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                    </ul>
+                </li>
+                <li><a href="/blog">Blog</a></li>
+            </ul>
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Release Notes<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <!-- only keep the release notes for supported 
versions in this list -->
+                        <li><a href="/releasenotes/2.0.3">2.0.3</a></li>
+                        <li><a href="/releasenotes/2.0.2">2.0.2</a></li>
+                        <li><a href="/releasenotes/2.0.1">2.0.1</a></li>
+                        <li><a href="/releasenotes/2.0.0">2.0.0</a></li>
+                        <li><a href="/releasenotes/1.9.3">1.9.3</a></li>
+                        <li><a href="/releasenotes/1.9.2">1.9.2</a></li>
+                        <li><a href="/releasenotes/1.9.1">1.9.1</a></li>
+                        <li><a href="/releasenotes/1.9.0">1.9.0</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Previous releases</li>
+                        <li><a href="/releasenotes">Release archive</a></li>
+                    </ul>
+                </li>
+                <li>
+                    <div>
+                        <a class="btn btn-success navbar-btn" 
href="/start/install/">
+                            <span class="glyphicon glyphicon-download"></span>
+                            Install
+                        </a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
+
+        <div class="container">
+            <div class="page-header">
+                <h1>OpenStack Keystone V3 Support</h1>
+                <span class="text-muted">16 January 2018, by <a 
href="https://twitter.com/IgnasiBarrera";>Ignasi Barrera</a></span>
+            </div>
+            <p>In the last few months, the jclouds community has been working 
hard on adding support for <strong>OpenStack Keystone V3</strong>. This has not 
been easy, as all the existing OpenStack APIs depend on it and we try hard to 
keep our APIs backwards-compatible. We wanted a clean solution that allowed 
users to upgrade with minimal changes required to existing code.</p>
+
+<p>After lots of work, we're finally there and are very happy to announce 
that, starting from the upcoming <code>2.1.0</code> release, jclouds will also 
support version 3 of the OpenStack Keystone API!</p>
+
+<!--more-->
+
+
+<p>No new dependencies will be required to use the OpenStack Keystone V3 API: 
<code>openstack-keystone</code> contains the code for both V2 and V3, so all 
jclouds providers and APIs can support both versions.</p>
+
+<h1>Configuring OpenStack services to use Keystone V3</h1>
+
+<p>Configuring OpenStack services to use Keystone V3 is pretty 
straightforward. Just create your jclouds <a 
href="/start/concepts/">context</a> with the following configuration 
property:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">Properties</span> <span class="n">overrides</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Properties</span><span class="o">();</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">KEYSTONE_VERSION</span><span class="o">,</span> <span 
class="s">&quot;3&quot;</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h3>Configuring authentication</h3>
+
+<p>Keystone V3 supports several authentication mechanisms, which provide 
authentication tokens with different permissions. It is important to configure 
the correct authentication method, otherwise some operations offered by the 
Keystone API might not be available.</p>
+
+<p>By default, jclouds uses <strong>password authentication with unscoped 
authorization</strong>. Project or domain authorization scopes can be 
configured by setting the <code>KeystoneProperties.SCOPE</code> property when 
creating your jclouds context, for example:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">Properties</span> <span class="n">overrides</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Properties</span><span class="o">();</span>
+<span class="c1">// Project scoped authorization (can use the project name or 
the ID)</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;project:jclouds&quot;</span><span class="o">);</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;projectId:2f9b30f706bc45d7923e055567be2e98&quot;</span><span 
class="o">);</span>
+<span class="c1">// Domain scoped authorization (can use the domain name or 
the ID)</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;domain:default&quot;</span><span class="o">);</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;domainId:2f9b30f706bc45d7923e055567be2e98&quot;</span><span 
class="o">);</span>
+</code></pre></div>
+
+
+<p>Credentials in Keystone V3 must include the <code>domain</code> name and 
the <code>username</code>, as shown above.</p>
+
+<h1>Using Keystone V3 APIs</h1>
+
+<p>If you are using <code>openstack-nova</code> or other OpenStack APIs, 
configuring the properties above will suffice. This section describes changes 
needed only if you are using the Keystone API <strong>directly</strong>.</p>
+
+<p>In order to use the <code>openstack-keystone</code> API to connect to 
Keystone V3, use the <code>openstack-keystone-3</code> API ID when creating the 
context. For example:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">KeystoneApi</span> <span class="n">keystone</span> <span 
class="o">=</span> <span class="n">ContextBuilder</span><span 
class="o">.</span><span class="na">newBuilder</span><span 
class="o">(</span><span class="s">&quot;openstack-keystone-3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span 
class="o">(</span><span 
class="s">&quot;http://openstack-keystone/identity/v3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span 
class="o">(</span><span class="s">&quot;domain:admin&quot;</span><span 
class="o">,</span> <span class="s">&quot;password&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span 
class="o">(</span><span class="n">overrides</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">modules</span><span 
class="o">(</span><span class="n">ImmutableSet</span><span 
class="o">.</span><span class="na">of</span><span class="o">(</span><span 
class="k">new</span> <span class="n">SLF4JLoggingModule</span><span 
class="o">()))</span>
+   <span class="o">.</span><span class="na">buildApi</span><span 
class="o">(</span><span class="n">KeystoneApi</span><span 
class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h3>Invoking Keystone API methods that use PATCH operations</h3>
+
+<p>In the Keystone V3 API, most of the update operations are carried out by 
sending <code>PATCH</code> HTTP requests. The <code>PATCH</code> verb, however, 
is not supported by jclouds' default Java HTTP driver. If you plan to use such 
API methods, you will use an HTTP driver with support for <code>PATCH</code>, 
such as the <a 
href="https://github.com/jclouds/jclouds/tree/master/drivers/okhttp";>OkHttp</a> 
or <a 
href="https://github.com/jclouds/jclouds/tree/master/drivers/apachehc";>ApacheHC</a>
 drivers.</p>
+
+<p>To configure an HTTP driver, add the corresponding module to the list of 
modules passed to the <code>ContextBuilder</code> when creating your jclouds 
context. For example:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">KeystoneApi</span> <span class="n">keystone</span> <span 
class="o">=</span> <span class="n">ContextBuilder</span><span 
class="o">.</span><span class="na">newBuilder</span><span 
class="o">(</span><span class="s">&quot;openstack-keystone-3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span 
class="o">(</span><span 
class="s">&quot;http://openstack-keystone/identity/v3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span 
class="o">(</span><span class="s">&quot;domain:admin&quot;</span><span 
class="o">,</span> <span class="s">&quot;password&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span 
class="o">(</span><span class="n">overrides</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">modules</span><span 
class="o">(</span><span class="n">ImmutableSet</span><span 
class="o">.</span><span class="na">of</span><span class="o">(</span><span 
class="k">new</span> <span class="n">SLF4JLoggingModule</span><span 
class="o">(),</span> <span class="k">new</span> <span 
class="n">OkHttpCommandExecutorServiceModule</span><span class="o">()))</span> 
<span class="c1">// use OkHttp driver</span>
+   <span class="o">.</span><span class="na">buildApi</span><span 
class="o">(</span><span class="n">KeystoneApi</span><span 
class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h1>Notes and breaking changes</h1>
+
+<p>Supporting both the V2 and V3 Keystone APIs required a major refactor of 
the <code>openstack-keystone</code> API. Many packages and classes have been 
renamed, moved and deleted as a result. If your code uses constants or other 
global classes, you may need to update the following package references:</p>
+
+<ul>
+<li>Class <code>KeystoneProperties</code> has been moved to 
<code>org.jclouds.openstack.keystone.config</code>.</li>
+<li>Class <code>CredentialTypes</code> has been moved to 
<code>org.jclouds.openstack.keystone.auth.config</code>.</li>
+<li>The <code>KeystoneAuthenticationModule</code> and the 
<code>AuthenticationApiModule</code> have been refactored and generalised into:
+
+<ul>
+<li><code>AuthenticationModule</code> - Providing authentication services to 
all OpenStack APIs and providers.</li>
+<li><code>ServiceCatalogModule</code> - Providing endpoint resolution to all 
OpenStack APIs and providers.</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Use <code>AuthenticationModule</code> and <code>ServiceCatalogModule</code> 
when developing OpenStack APIs.</p>
+
+            
+            <div id="comments">
+                <hr/>
+                <div id="disqus_thread"></div>
+<script type="text/javascript">
+var disqus_shortname = 'jclouds';
+/* * * DON'T EDIT BELOW THIS LINE * * */
+(function() {
+    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; 
dsq.async = true;
+    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+    (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
+})();
+</script>
+<noscript>Please enable JavaScript to view the <a 
href="http://disqus.com/?ref_noscript";>Comments powered by 
Disqus.</a></noscript>
+<a href="http://disqus.com"; class="dsq-brlink">Comments powered by <span 
class="logo-disqus">Disqus</span></a>
+
+            </div>
+            
+            <div class="row clearfix">
+                <div id="footer" class="col-md-12 column">
+                    <div id="footer">
+    <hr/>
+    <div class="row clearfix">
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/start/">Getting Started</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/reference/report-a-bug/">Report 
a Bug</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a 
href="https://github.com/jclouds/jclouds-site/edit/master/_posts/2018-01-16-keystone-v3.md";>Fix
 This Page</a><a class="text-primary" 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";><sup>*</sup></a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute";>Contribute
 Code</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/community/">Contact Us</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" 
href="https://twitter.com/jclouds";>Follow Us</a>
+            </p>
+        </div>
+    </div>
+    <hr style="margin-top: 10px"/>
+    <div class="row clearfix">
+        <div class="col-md-12 column">
+            <p class="text-center">
+              Copyright &copy; 2011-2014 <a href="http://www.apache.org";>The 
Apache Software Foundation</a>. All Rights Reserved.
+            </p>
+            <p class="text-center">
+              Apache, jclouds, Apache jclouds, the jclouds logo, and the 
Apache feather logos are registered trademarks or trademarks of the Apache 
Software Foundation.
+            </p>
+            <p class="text-center">
+              <img src="/img/Apache_Logo.png" height="120" />
+            </p>
+            <p class="text-center">
+                <a href="https://donate.apache.org/"; title="Support Apache">
+                    <img src="/img/support-apache.png" height="120" />
+                </a>
+            </p>
+            <br/>
+        </div>
+    </div>
+</div>
+
+                </div>
+            </div>
+        </div>
+    </body>
+</html>

Modified: jclouds/site-content/blog/atom.xml
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/atom.xml?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/atom.xml (original)
+++ jclouds/site-content/blog/atom.xml Tue Jan 16 10:45:34 2018
@@ -8,6 +8,98 @@
 
   
   <entry>
+    <id>https://jclouds.apache.org/blog/2018/01/16/keystone-v3</id>
+    <title type="html"><![CDATA[OpenStack Keystone V3 Support]]></title>
+    <link href="https://jclouds.apache.org/blog/2018/01/16/keystone-v3"/>
+    <updated>2018-01-16T00:00:00Z</updated>
+    <content type="html"><![CDATA[<p>In the last few months, the jclouds 
community has been working hard on adding support for <strong>OpenStack 
Keystone V3</strong>. This has not been easy, as all the existing OpenStack 
APIs depend on it and we try hard to keep our APIs backwards-compatible. We 
wanted a clean solution that allowed users to upgrade with minimal changes 
required to existing code.</p>
+
+<p>After lots of work, we're finally there and are very happy to announce 
that, starting from the upcoming <code>2.1.0</code> release, jclouds will also 
support version 3 of the OpenStack Keystone API!</p>
+
+<!--more-->
+
+
+<p>No new dependencies will be required to use the OpenStack Keystone V3 API: 
<code>openstack-keystone</code> contains the code for both V2 and V3, so all 
jclouds providers and APIs can support both versions.</p>
+
+<h1>Configuring OpenStack services to use Keystone V3</h1>
+
+<p>Configuring OpenStack services to use Keystone V3 is pretty 
straightforward. Just create your jclouds <a 
href="/start/concepts/">context</a> with the following configuration 
property:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">Properties</span> <span class="n">overrides</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Properties</span><span class="o">();</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">KEYSTONE_VERSION</span><span class="o">,</span> <span 
class="s">&quot;3&quot;</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h3>Configuring authentication</h3>
+
+<p>Keystone V3 supports several authentication mechanisms, which provide 
authentication tokens with different permissions. It is important to configure 
the correct authentication method, otherwise some operations offered by the 
Keystone API might not be available.</p>
+
+<p>By default, jclouds uses <strong>password authentication with unscoped 
authorization</strong>. Project or domain authorization scopes can be 
configured by setting the <code>KeystoneProperties.SCOPE</code> property when 
creating your jclouds context, for example:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">Properties</span> <span class="n">overrides</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Properties</span><span class="o">();</span>
+<span class="c1">// Project scoped authorization (can use the project name or 
the ID)</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;project:jclouds&quot;</span><span class="o">);</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;projectId:2f9b30f706bc45d7923e055567be2e98&quot;</span><span 
class="o">);</span>
+<span class="c1">// Domain scoped authorization (can use the domain name or 
the ID)</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;domain:default&quot;</span><span class="o">);</span>
+<span class="n">overrides</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">KeystoneProperties</span><span class="o">.</span><span 
class="na">SCOPE</span><span class="o">,</span> <span 
class="s">&quot;domainId:2f9b30f706bc45d7923e055567be2e98&quot;</span><span 
class="o">);</span>
+</code></pre></div>
+
+
+<p>Credentials in Keystone V3 must include the <code>domain</code> name and 
the <code>username</code>, as shown above.</p>
+
+<h1>Using Keystone V3 APIs</h1>
+
+<p>If you are using <code>openstack-nova</code> or other OpenStack APIs, 
configuring the properties above will suffice. This section describes changes 
needed only if you are using the Keystone API <strong>directly</strong>.</p>
+
+<p>In order to use the <code>openstack-keystone</code> API to connect to 
Keystone V3, use the <code>openstack-keystone-3</code> API ID when creating the 
context. For example:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">KeystoneApi</span> <span class="n">keystone</span> <span 
class="o">=</span> <span class="n">ContextBuilder</span><span 
class="o">.</span><span class="na">newBuilder</span><span 
class="o">(</span><span class="s">&quot;openstack-keystone-3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span 
class="o">(</span><span 
class="s">&quot;http://openstack-keystone/identity/v3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span 
class="o">(</span><span class="s">&quot;domain:admin&quot;</span><span 
class="o">,</span> <span class="s">&quot;password&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span 
class="o">(</span><span class="n">overrides</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">modules</span><span 
class="o">(</span><span class="n">ImmutableSet</span><span 
class="o">.</span><span class="na">of</span><span class="o">(</span><span 
class="k">new</span> <span class="n">SLF4JLoggingModule</span><span 
class="o">()))</span>
+   <span class="o">.</span><span class="na">buildApi</span><span 
class="o">(</span><span class="n">KeystoneApi</span><span 
class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h3>Invoking Keystone API methods that use PATCH operations</h3>
+
+<p>In the Keystone V3 API, most of the update operations are carried out by 
sending <code>PATCH</code> HTTP requests. The <code>PATCH</code> verb, however, 
is not supported by jclouds' default Java HTTP driver. If you plan to use such 
API methods, you will use an HTTP driver with support for <code>PATCH</code>, 
such as the <a 
href="https://github.com/jclouds/jclouds/tree/master/drivers/okhttp";>OkHttp</a> 
or <a 
href="https://github.com/jclouds/jclouds/tree/master/drivers/apachehc";>ApacheHC</a>
 drivers.</p>
+
+<p>To configure an HTTP driver, add the corresponding module to the list of 
modules passed to the <code>ContextBuilder</code> when creating your jclouds 
context. For example:</p>
+
+<div class="highlight"><pre><code class="java"><span 
class="n">KeystoneApi</span> <span class="n">keystone</span> <span 
class="o">=</span> <span class="n">ContextBuilder</span><span 
class="o">.</span><span class="na">newBuilder</span><span 
class="o">(</span><span class="s">&quot;openstack-keystone-3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span 
class="o">(</span><span 
class="s">&quot;http://openstack-keystone/identity/v3&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span 
class="o">(</span><span class="s">&quot;domain:admin&quot;</span><span 
class="o">,</span> <span class="s">&quot;password&quot;</span><span 
class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span 
class="o">(</span><span class="n">overrides</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">modules</span><span 
class="o">(</span><span class="n">ImmutableSet</span><span 
class="o">.</span><span class="na">of</span><span class="o">(</span><span 
class="k">new</span> <span class="n">SLF4JLoggingModule</span><span 
class="o">(),</span> <span class="k">new</span> <span 
class="n">OkHttpCommandExecutorServiceModule</span><span class="o">()))</span> 
<span class="c1">// use OkHttp driver</span>
+   <span class="o">.</span><span class="na">buildApi</span><span 
class="o">(</span><span class="n">KeystoneApi</span><span 
class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h1>Notes and breaking changes</h1>
+
+<p>Supporting both the V2 and V3 Keystone APIs required a major refactor of 
the <code>openstack-keystone</code> API. Many packages and classes have been 
renamed, moved and deleted as a result. If your code uses constants or other 
global classes, you may need to update the following package references:</p>
+
+<ul>
+<li>Class <code>KeystoneProperties</code> has been moved to 
<code>org.jclouds.openstack.keystone.config</code>.</li>
+<li>Class <code>CredentialTypes</code> has been moved to 
<code>org.jclouds.openstack.keystone.auth.config</code>.</li>
+<li>The <code>KeystoneAuthenticationModule</code> and the 
<code>AuthenticationApiModule</code> have been refactored and generalised into:
+
+<ul>
+<li><code>AuthenticationModule</code> - Providing authentication services to 
all OpenStack APIs and providers.</li>
+<li><code>ServiceCatalogModule</code> - Providing endpoint resolution to all 
OpenStack APIs and providers.</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Use <code>AuthenticationModule</code> and <code>ServiceCatalogModule</code> 
when developing OpenStack APIs.</p>
+]]></content>
+  </entry>
+  
+  <entry>
     <id>https://jclouds.apache.org/blog/2016/08/22/arbitrary-cpu-ram</id>
     <title type="html"><![CDATA[Adding support for arbitrary CPU and RAM to 
ComputeService]]></title>
     <link href="https://jclouds.apache.org/blog/2016/08/22/arbitrary-cpu-ram"/>
@@ -1044,61 +1136,4 @@ These classes are used to represent Open
 ]]></content>
   </entry>
   
-  <entry>
-    
<id>https://jclouds.apache.org/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and</id>
-    <title type="html"><![CDATA[Take a peek at vCloud Director 1.5, OpenStack, 
and VirtualBox]]></title>
-    <link 
href="https://jclouds.apache.org/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and"/>
-    <updated>2012-03-23T00:00:00Z</updated>
-    <content type="html"><![CDATA[<p>The jclouds team have been working very 
hard lately, particularly on a few new apis. We've decided to cage them no 
longer and cut jclouds 1.5.0-alpha.1. Most notably, we've added the 
openstack-nova api, and three new providers, all of which discovered via <a 
href="http://docs.openstack.org/api/openstack-identity-service/2.0/content/";>OpenStack
 Keystone v2.0</a>.</p>
-
-<ul>
-<li>trystack-nova</li>
-<li>hpcloud-compute</li>
-<li>hpcloud-objectstorage</li>
-</ul>
-
-
-<p>Here's how to boot up a new machine and add your login using the new <a 
href="https://hpcloud.com/";>hpcloud-compute</a> provider in clojure:</p>
-
-<div class="highlight"><pre><code class="clojure"><span 
class="p">(</span><span class="nf">use</span> <span class="o">&#39;</span><span 
class="ss">&#39;org.jclouds.compute2</span><span class="p">)</span>
-<span class="p">(</span><span class="nb">import </span><span 
class="o">&#39;</span><span 
class="ss">&#39;org.jclouds.scriptbuilder.statements.login.AdminAccess</span><span
 class="p">)</span>
-<span class="p">(</span><span class="k">def </span><span 
class="nv">compute</span>  <span class="p">(</span><span 
class="nf">compute-service</span> <span 
class="s">&quot;hpcloud-compute&quot;</span> <span 
class="s">&quot;tenantId:ACCESSKEY&quot;</span> <span 
class="s">&quot;SECRETKEY&quot;</span>    <span class="ss">:slf4j</span> <span 
class="ss">:sshj</span><span class="p">))</span>
-<span class="p">(</span><span class="nf">create-node</span> <span 
class="nv">compute</span> <span class="s">&quot;test&quot;</span>   <span 
class="p">(</span><span class="nf">build-template</span> <span 
class="nv">compute</span> <span class="p">{</span> <span 
class="ss">:run-script</span> <span class="p">(</span><span 
class="nf">AdminAccess/standard</span><span class="p">)</span> <span 
class="p">}</span> <span class="p">))</span>
-</code></pre></div>
-
-
-<p>Here's an example of how to do the same on <a 
href="https://trystack.org/";>TryStack</a>, authenticating w/ user &amp; pass as 
opposed to key, via our <a 
href="https://github.com/jclouds/jclouds-examples/tree/master/compute-basics";>java
 example</a>:</p>
-
-<div class="highlight"><pre><code class="bash">java -jar 
target/compute-basics-jar-with-dependencies.jar trystack-nova tenantId:user 
password mygroup add
-</code></pre></div>
-
-
-<p>In the group org.jclouds.labs, you'll find two more new and notable members 
of the jclouds family:</p>
-
-<ul>
-<li><strong>vcloud-director:</strong> supports 250 user and admin operations 
defined in the <a 
href="http://www.vmware.com/products/vcloud-director/overview.html";>vCloud 
Director</a> 1.5 ReST API</li>
-<li><strong>virtualbox:</strong> start a group of vms on your laptop, provided 
an iso location for Ubuntu</li>
-</ul>
-
-
-<p>You can try out virtualbox like any other api. For example, you can use the 
clojure above, only changing how you create the connection slightly:</p>
-
-<div class="highlight"><pre><code class="clojure"><span 
class="p">(</span><span class="k">def </span><span class="nv">compute</span> 
<span class="p">(</span><span class="nf">compute-service</span> <span 
class="s">&quot;virtualbox&quot;</span> <span 
class="s">&quot;administrator&quot;</span> <span 
class="s">&quot;12345&quot;</span> <span class="ss">:sshj</span> <span 
class="ss">:slf4j</span><span class="p">))</span>
-</code></pre></div>
-
-
-<p>The code in labs will certainly change before we release a beta, but feel 
free to check them out. Meanwhile, you can try them out and give us feedback on 
#jclouds irc freenode or jclouds-dev google group!</p>
-
-<p>Finally, many thanks to the <a 
href="https://github.com/jclouds/jclouds/compare/1.4.x...1.5.x";>dozen 
contributors</a> who's work is in this alpha, and particularly HP and VMware 
for sponsoring substantial effort.</p>
-
-<p>Oh, and don't forget to clean up your nodes :)</p>
-
-<div class="highlight"><pre><code class="clojure"><span 
class="p">(</span><span class="nf">destroy-nodes-matching</span> <span 
class="nv">compute</span> <span class="p">(</span><span class="nb">constantly 
</span><span class="nv">true</span><span class="p">))</span>
-</code></pre></div>
-
-
-
-]]></content>
-  </entry>
-  
 </feed>

Modified: jclouds/site-content/blog/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/index.html (original)
+++ jclouds/site-content/blog/index.html Tue Jan 16 10:45:34 2018
@@ -165,6 +165,11 @@
             <p><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>Write
 a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2018/01/16/keystone-v3">OpenStack 
Keystone V3 Support</a></h3>
+<span class="text-muted">16 January 2018, by <a 
href="https://twitter.com/IgnasiBarrera";>Ignasi Barrera</a></span>
+<p>In the last few months, the jclouds community has been working hard on 
adding support for OpenStack Keystone V3. This has not been easy, as all the 
existing OpenStack APIs depend on it and we try hard to keep our APIs 
backwards-compatible. We wanted a clean solution that allowed users to upgrade 
with minimal changes required to existing code.
+</p>
+
 <h3><a class="text-primary" href="/blog/2016/08/22/arbitrary-cpu-ram">Adding 
support for arbitrary CPU and RAM to ComputeService</a></h3>
 <span class="text-muted">22 August 2016, by <a 
href="https://github.com/ivanlomba";>Iván Lomba</a></span>
 <p>Through of a Google Summer of Code project, Apache jclouds now allows users 
to manually set arbitrary values for desired CPU and RAM of compute instances.
@@ -190,12 +195,6 @@
 <p>Google Summer of Code 2014 has concluded and both Apache jclouds students 
have successfully completed their projects, Amazon Glacier and Google Cloud 
Storage support.
 </p>
 
-<h3><a class="text-primary" href="/blog/2014/09/04/better-builders">Better 
Builders with jclouds!</a></h3>
-<span class="text-muted">04 September 2014, by Zack Shoylev</span>
-<p>If you are a new jclouds developer, or even if you are already developing 
jclouds support for any of the OpenStack or Rackspace APIs, you have likely 
seen the domain classes that are used throughout the the jclouds codebase.
-These classes are used to represent OpenStack resources, particularly the JSON 
structures supported by OpenStack APIs.
-</p>
-
 
 
 <ul class="pagination text-center">

Modified: jclouds/site-content/blog/page2/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/page2/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/page2/index.html (original)
+++ jclouds/site-content/blog/page2/index.html Tue Jan 16 10:45:34 2018
@@ -165,6 +165,12 @@
             <p><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>Write
 a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2014/09/04/better-builders">Better 
Builders with jclouds!</a></h3>
+<span class="text-muted">04 September 2014, by Zack Shoylev</span>
+<p>If you are a new jclouds developer, or even if you are already developing 
jclouds support for any of the OpenStack or Rackspace APIs, you have likely 
seen the domain classes that are used throughout the the jclouds codebase.
+These classes are used to represent OpenStack resources, particularly the JSON 
structures supported by OpenStack APIs.
+</p>
+
 <h3><a class="text-primary" href="/blog/2014/08/05/1-release-2-committers">1 
release, 2 committers...a busy week for jclouds!</a></h3>
 <span class="text-muted">05 August 2014, by <a 
href="http://blog.xebialabs.com/author/aphillips/";>Andrew Phillips</a></span>
 <p>There's a lot going on this week for the jclouds community. Most 
importantly, we're really pleased to introduce two new committers: Andrea Turli 
and Chris Custine.
@@ -185,11 +191,6 @@
 <p>The Google Summer of Code (GSoC) accepted projects have been announced and 
we will have 3 students working on jclouds related projects!
 </p>
 
-<h3><a class="text-primary" href="/blog/2014/03/04/jclouds-meetup">jclouds 
Meetup</a></h3>
-<span class="text-muted">04 March 2014, by <a 
href="https://twitter.com/everett_toews";>Everett Toews</a></span>
-<p>Last night we held a jclouds meetup at Cloudera offices in San Francisco. 
It was a well attended meetup and there were a number of new faces along with 
our more regular group of attendees. We recorded the whole thing with Google 
Hangouts on Air and you can get to know everyone in the first 5 minutes!
-</p>
-
 
 
 <ul class="pagination text-center">

Modified: jclouds/site-content/blog/page3/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/page3/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/page3/index.html (original)
+++ jclouds/site-content/blog/page3/index.html Tue Jan 16 10:45:34 2018
@@ -165,6 +165,11 @@
             <p><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>Write
 a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2014/03/04/jclouds-meetup">jclouds 
Meetup</a></h3>
+<span class="text-muted">04 March 2014, by <a 
href="https://twitter.com/everett_toews";>Everett Toews</a></span>
+<p>Last night we held a jclouds meetup at Cloudera offices in San Francisco. 
It was a well attended meetup and there were a number of new faces along with 
our more regular group of attendees. We recorded the whole thing with Google 
Hangouts on Air and you can get to know everyone in the first 5 minutes!
+</p>
+
 <h3><a class="text-primary" 
href="/blog/2014/03/03/joining-the-asf-new-site-and-jclouds-1-7">Joining the 
ASF, new site, and jclouds 1.7!</a></h3>
 <span class="text-muted">03 March 2014, by Ignasi Barrera</span>
 <p>It's been a while since our last blog post, and lots has happened since 
then. There have been many things that have kept us busy, and finally, all the 
hard work is starting to show up. During this time, we've:
@@ -185,11 +190,6 @@
 <p>jclouds community is an international group with over 100 contributors 
since we started in early 2009. The idea of holidays vary, but we decided 
Mistletoe as an appropriate codename for jclouds 1.5.4. Here's why.
 </p>
 
-<h3><a class="text-primary" 
href="/blog/2012/11/17/jclouds-1-5-3-out-the-door">jclouds 1.5.3 out the 
door</a></h3>
-<span class="text-muted">17 November 2012, by Adrian Cole</span>
-<p>Released on 2012-11-14, jclouds 1.5.3 includes minor fixes, and a few 
important updates.
-</p>
-
 
 
 <ul class="pagination text-center">

Modified: jclouds/site-content/blog/page4/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/page4/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/page4/index.html (original)
+++ jclouds/site-content/blog/page4/index.html Tue Jan 16 10:45:34 2018
@@ -165,6 +165,11 @@
             <p><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>Write
 a guest post!</a></p>
 
 
+<h3><a class="text-primary" 
href="/blog/2012/11/17/jclouds-1-5-3-out-the-door">jclouds 1.5.3 out the 
door</a></h3>
+<span class="text-muted">17 November 2012, by Adrian Cole</span>
+<p>Released on 2012-11-14, jclouds 1.5.3 includes minor fixes, and a few 
important updates.
+</p>
+
 <h3><a class="text-primary" 
href="/blog/2012/11/09/500-jclouds-builds-on-buildhive-and-counting">500 
jclouds builds on BuildHive and counting...</a></h3>
 <span class="text-muted">09 November 2012, by Adrian Cole</span>
 <p>At jclouds, we've been running our Jenkins continuous integration jobs in 
CloudBees' DEV@cloud for a while now (CloudBees has a FOSS programme). We also 
have an active and ever-increasing contributor community, which amongst others 
means... lots of pull requests.
@@ -185,11 +190,6 @@
 <p>We are very near beta, I promise! In the mean time, we just cut a new 
codebase with a bunch of cool new toys. Here's a few. Thanks to Adam Lowe, we 
are getting even deeper into OpenStack with more Keystone support than ever. 
Setup your code to pull org.jclouds.labs/openstack-keystone, and you can do 
stuff like this.
 </p>
 
-<h3><a class="text-primary" 
href="/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and">Take a 
peek at vCloud Director 1.5, OpenStack, and VirtualBox</a></h3>
-<span class="text-muted">23 March 2012, by Adrian Cole</span>
-<p>The jclouds team have been working very hard lately, particularly on a few 
new apis. We've decided to cage them no longer and cut jclouds 1.5.0-alpha.1. 
Most notably, we've added the openstack-nova api, and three new providers, all 
of which discovered via OpenStack Keystone v2.0.
-</p>
-
 
 
 <ul class="pagination text-center">

Modified: jclouds/site-content/blog/page5/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/page5/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/page5/index.html (original)
+++ jclouds/site-content/blog/page5/index.html Tue Jan 16 10:45:34 2018
@@ -165,6 +165,11 @@
             <p><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>Write
 a guest post!</a></p>
 
 
+<h3><a class="text-primary" 
href="/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and">Take a 
peek at vCloud Director 1.5, OpenStack, and VirtualBox</a></h3>
+<span class="text-muted">23 March 2012, by Adrian Cole</span>
+<p>The jclouds team have been working very hard lately, particularly on a few 
new apis. We've decided to cage them no longer and cut jclouds 1.5.0-alpha.1. 
Most notably, we've added the openstack-nova api, and three new providers, all 
of which discovered via OpenStack Keystone v2.0.
+</p>
+
 <h3><a class="text-primary" 
href="/blog/2012/03/09/ec2-gets-rid-of-that-if-instancetype-is32bit">EC2 gets 
rid of that "if instancetype.is32bit" statement</a></h3>
 <span class="text-muted">09 March 2012, by Adrian Cole</span>
 <p>2 weeks ago, I started a bit of a rant on EC2's 32bit-only vms.
@@ -185,11 +190,6 @@
 <p>The 1.2 release of jclouds includes results of almost 2 months effort by 
our community. A total of 55 Issues were addressed between jclouds 1.1 and 1.2, 
stabilizing the cloud so you don't have to!
 </p>
 
-<h3><a class="text-primary" 
href="/blog/2009/05/13/catching-exceptions-with-less-keystrokes">Catching 
exceptions with fewer keystrokes</a></h3>
-<span class="text-muted">13 May 2009, by Adrian Cole</span>
-<p>Some of us hate checked exceptions, but still use them for one reason or 
another. A common problem we have is unnecessary exception nesting, or runtime 
swallowing. This often leads to the all to familiar and crufty code with a 
million catch blocks. jclouds has a slightly different approach that strikes a 
balance, allowing checked exceptions to be dealt with, but without the pain of 
so many lines of repetitious code.
-</p>
-
 
 
 <ul class="pagination text-center">

Modified: jclouds/site-content/blog/page6/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/blog/page6/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/blog/page6/index.html (original)
+++ jclouds/site-content/blog/page6/index.html Tue Jan 16 10:45:34 2018
@@ -165,6 +165,11 @@
             <p><a 
href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation";>Write
 a guest post!</a></p>
 
 
+<h3><a class="text-primary" 
href="/blog/2009/05/13/catching-exceptions-with-less-keystrokes">Catching 
exceptions with fewer keystrokes</a></h3>
+<span class="text-muted">13 May 2009, by Adrian Cole</span>
+<p>Some of us hate checked exceptions, but still use them for one reason or 
another. A common problem we have is unnecessary exception nesting, or runtime 
swallowing. This often leads to the all to familiar and crufty code with a 
million catch blocks. jclouds has a slightly different approach that strikes a 
balance, allowing checked exceptions to be dealt with, but without the pain of 
so many lines of repetitious code.
+</p>
+
 <h3><a class="text-primary" 
href="/blog/2009/05/11/jclouds-s3-beta-released">jclouds-s3 beta 
released</a></h3>
 <span class="text-muted">11 May 2009, by Adrian Cole</span>
 <p>jclouds provides any-weight clouds tools for Java 5 and later: you choose 
the depth you want. We are pleased to announce our first beta of jclouds-s3. 
jclouds-s3 provides both Map&lt;String,InputStream> and FutureCommand 
interfaces to Amazon S3.

Modified: jclouds/site-content/index.html
URL: 
http://svn.apache.org/viewvc/jclouds/site-content/index.html?rev=1821227&r1=1821226&r2=1821227&view=diff
==============================================================================
--- jclouds/site-content/index.html (original)
+++ jclouds/site-content/index.html Tue Jan 16 10:45:34 2018
@@ -202,6 +202,10 @@
                 </div>
             </div>
 
+            <div id="keystonev3" class="alert alert-success">
+                <p>If you are an OpenStack user, read our <a 
href="/blog/2018/01/16/keystone-v3/">last blog post</a> about the 
<strong>OpenStack Keystone V3</strong> integration that will be released in 
jclouds <strong>2.1.0</strong>!</p>
+            </div>
+
             <div id="releasenews" class="alert alert-info">
                 <p>The <a href="/start/install/">latest version</a> is 2.0.3 
released on 2017-11-30! Read the <a href="/releasenotes/2.0.3/">release 
notes</a>.</p>
             </div>


Reply via email to