Added: jclouds/site-content/blog/2012/03/09/ec2-gets-rid-of-that-if-instancetype-is32bit.html URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2012/03/09/ec2-gets-rid-of-that-if-instancetype-is32bit.html?rev=1923693&view=auto ============================================================================== --- jclouds/site-content/blog/2012/03/09/ec2-gets-rid-of-that-if-instancetype-is32bit.html (added) +++ jclouds/site-content/blog/2012/03/09/ec2-gets-rid-of-that-if-instancetype-is32bit.html Mon Feb 10 07:25:53 2025 @@ -0,0 +1,262 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>Apache jclouds® :: EC2 gets rid of that "if instancetype.is32bit" statement</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> + + + </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 ®</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="https://github.com/apache/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="/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="https://ci-builds.apache.org/job/JClouds/">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="https://www.apache.org">The Apache Software Foundation</a></li> + <li><a href="https://www.apache.org/licenses/">License</a></li> + <li><a href="https://www.apache.org/foundation/contributing.html">Donations</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/security/">Security</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li class="divider"></li> + <li class="dropdown-header">Apache Events</li> + <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></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.5.0">2.5.0</a></li> + <li><a href="/releasenotes/2.4.0">2.4.0</a></li> + <li><a href="/releasenotes/2.3.0">2.3.0</a></li> + <li><a href="/releasenotes/2.2.1">2.2.1</a></li> + <li><a href="/releasenotes/2.2.0">2.2.0</a></li> + <li><a href="/releasenotes/2.1.3">2.1.3</a></li> + <li><a href="/releasenotes/2.1.2">2.1.2</a></li> + <li><a href="/releasenotes/2.1.1">2.1.1</a></li> + <li><a href="/releasenotes/2.1.0">2.1.0</a></li> + <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 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>EC2 gets rid of that "if instancetype.is32bit" statement</h1> + <span class="text-muted">09 March 2012, by Adrian Cole</span> + </div> + <p>2 weeks ago, I started a bit of a rant on EC2âs 32bit-only vms.</p> + +<blockquote> + <p><em>32bit vms make me angry</em></p> +</blockquote> + +<blockquote> + <p><em>hey, #ec2! deprecate m1.small for a new 64bit t1.small #cloud</em></p> +</blockquote> + +<blockquote> + <p><em>@jeffbar any chance of a future blog titled: m1.small is dead. long live t1.small!</em></p> +</blockquote> + +<p>This occurred on freenode and twitter, mainly due to pent-up frustration, set off by needing a separate if statement in our JDK installer just to accommodate the lame 32bit m1.small instance.</p> + +<p>Iâm not (quite) self-absorbed enough to think Jeff Barrâs latest announcement was in response to this. Even if I was, my mention never reached him! (my tweet went to the less interested jeffbar, yeah the only one ârâ one). Nevertheless, our prayers were answered, and reported by the real <a href="https://twitter.com/#!/jeffbarr">@jeffbar</a>:</p> + +<blockquote> + <p><em><a href="http://aws.typepad.com/aws/2012/03/ec2-updates-new-instance-64-bit-bit-ubiquity-ssh-client.html">EC2 Updates: New Medium Instance, 64-bit Ubiquity, SSH Client</a></em></p> +</blockquote> + +<p>Hereâs the jist: Instead of deprecating the old m1.small, they updated it to support 64bit images (and also the c1.medium). To sweeten the deal, they also threw in a new m1.medium size, which is roughly a 2x m1.small.</p> + +<p>Now, all users producing images donât have to make a 32bit option just cause they need more ram than t1.micro. In fact, many will probably drop the maintenance entirely.</p> + +<p>For jclouds users, action is simple, update to version 1.3.2 which removes the restriction of m1.smallâs only being able to use 32bit AMIs.</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="https://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript> +<a href="https://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/apache/jclouds-site/edit/master/_posts/2012-03-09-ec2-gets-rid-of-that-if-instancetype-is32bit.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 © 2011-2014 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved. + <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>. + </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>
Added: jclouds/site-content/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and.html URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and.html?rev=1923693&view=auto ============================================================================== --- jclouds/site-content/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and.html (added) +++ jclouds/site-content/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and.html Mon Feb 10 07:25:53 2025 @@ -0,0 +1,273 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>Apache jclouds® :: Take a peek at vCloud Director 1.5, OpenStack, and VirtualBox</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> + + + </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 ®</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="https://github.com/apache/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="/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="https://ci-builds.apache.org/job/JClouds/">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="https://www.apache.org">The Apache Software Foundation</a></li> + <li><a href="https://www.apache.org/licenses/">License</a></li> + <li><a href="https://www.apache.org/foundation/contributing.html">Donations</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/security/">Security</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li class="divider"></li> + <li class="dropdown-header">Apache Events</li> + <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></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.5.0">2.5.0</a></li> + <li><a href="/releasenotes/2.4.0">2.4.0</a></li> + <li><a href="/releasenotes/2.3.0">2.3.0</a></li> + <li><a href="/releasenotes/2.2.1">2.2.1</a></li> + <li><a href="/releasenotes/2.2.0">2.2.0</a></li> + <li><a href="/releasenotes/2.1.3">2.1.3</a></li> + <li><a href="/releasenotes/2.1.2">2.1.2</a></li> + <li><a href="/releasenotes/2.1.1">2.1.1</a></li> + <li><a href="/releasenotes/2.1.0">2.1.0</a></li> + <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 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>Take a peek at vCloud Director 1.5, OpenStack, and VirtualBox</h1> + <span class="text-muted">23 March 2012, by Adrian Cole</span> + </div> + <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> + +<figure class="highlight"><pre><code class="language-clojure" data-lang="clojure"><span class="p">(</span><span class="nf">use</span><span class="w"> </span><span class="o">'</span><span class="ss">'org.jclouds.compute2</span><span class="p">)</span><span class="w"> +</span><span class="p">(</span><span class="nb">import</span><span class="w"> </span><span class="o">'</span><span class="ss">'org.jclouds.scriptbuilder.statements.login.AdminAccess</span><span class="p">)</span><span class="w"> +</span><span class="p">(</span><span class="k">def</span><span class="w"> </span><span class="n">compute</span><span class="w"> </span><span class="p">(</span><span class="nf">compute-service</span><span class="w"> </span><span class="s">"hpcloud-compute"</span><span class="w"> </span><span class="s">"tenantId:ACCESSKEY"</span><span class="w"> </span><span class="s">"SECRETKEY"</span><span class="w"> </span><span class="no">:slf4j</span><span class="w"> </span><span class="no">:sshj</span><span class="p">))</span><span class="w"> +</span><span class="p">(</span><span class="nf">create-node</span><span class="w"> </span><span class="n">compute</span><span class="w"> </span><span class="s">"test"</span><span class="w"> </span><span class="p">(</span><span class="nf">build-template</span><span class="w"> </span><span class="n">compute</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="no">:run-script</span><span class="w"> </span><span class="p">(</span><span class="nf">AdminAccess/standard</span><span class="p">)</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">))</span></code></pre></figure> + +<p>Hereâs an example of how to do the same on <a href="https://trystack.org/">TryStack</a>, authenticating w/ user & pass as opposed to key, via our <a href="https://github.com/jclouds/jclouds-examples/tree/master/compute-basics">java example</a>:</p> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash">java <span class="nt">-jar</span> target/compute-basics-jar-with-dependencies.jar trystack-nova tenantId:user password mygroup add</code></pre></figure> + +<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> + +<figure class="highlight"><pre><code class="language-clojure" data-lang="clojure"><span class="p">(</span><span class="k">def</span><span class="w"> </span><span class="n">compute</span><span class="w"> </span><span class="p">(</span><span class="nf">compute-service</span><span class="w"> </span><span class="s">"virtualbox"</span><span class="w"> </span><span class="s">"administrator"</span><span class="w"> </span><span class="s">"12345"</span><span class="w"> </span><span class="no">:sshj</span><span class="w"> </span><span class="no">:slf4j</span><span class="p">))</span></code></pre></figure> + +<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> + +<figure class="highlight"><pre><code class="language-clojure" data-lang="clojure"><span class="p">(</span><span class="nf">destroy-nodes-matching</span><span class="w"> </span><span class="n">compute</span><span class="w"> </span><span class="p">(</span><span class="nb">constantly</span><span class="w"> </span><span class="n">true</span><span class="p">))</span></code></pre></figure> + + + + <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="https://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript> +<a href="https://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/apache/jclouds-site/edit/master/_posts/2012-03-23-take-a-peek-at-vcloud-director-1-5-openstack-and.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 © 2011-2014 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved. + <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>. + </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> Added: jclouds/site-content/blog/2012/05/02/new-toys-in-1-5-0-alpha-6.html URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2012/05/02/new-toys-in-1-5-0-alpha-6.html?rev=1923693&view=auto ============================================================================== --- jclouds/site-content/blog/2012/05/02/new-toys-in-1-5-0-alpha-6.html (added) +++ jclouds/site-content/blog/2012/05/02/new-toys-in-1-5-0-alpha-6.html Mon Feb 10 07:25:53 2025 @@ -0,0 +1,275 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>Apache jclouds® :: New toys in 1.5.0-alpha.6</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> + + + </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 ®</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="https://github.com/apache/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="/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="https://ci-builds.apache.org/job/JClouds/">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="https://www.apache.org">The Apache Software Foundation</a></li> + <li><a href="https://www.apache.org/licenses/">License</a></li> + <li><a href="https://www.apache.org/foundation/contributing.html">Donations</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/security/">Security</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li class="divider"></li> + <li class="dropdown-header">Apache Events</li> + <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></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.5.0">2.5.0</a></li> + <li><a href="/releasenotes/2.4.0">2.4.0</a></li> + <li><a href="/releasenotes/2.3.0">2.3.0</a></li> + <li><a href="/releasenotes/2.2.1">2.2.1</a></li> + <li><a href="/releasenotes/2.2.0">2.2.0</a></li> + <li><a href="/releasenotes/2.1.3">2.1.3</a></li> + <li><a href="/releasenotes/2.1.2">2.1.2</a></li> + <li><a href="/releasenotes/2.1.1">2.1.1</a></li> + <li><a href="/releasenotes/2.1.0">2.1.0</a></li> + <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 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>New toys in 1.5.0-alpha.6</h1> + <span class="text-muted">02 May 2012, by Adrian Cole</span> + </div> + <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 <em>org.jclouds.labs/openstack-keystone</em>, and you can do stuff like this.</p> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">ContextBuilder</span> <span class="n">contextBuilder</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"openstack-keystone"</span><span class="o">);</span> +<span class="nc">RestContext</span> <span class="n">keystone</span> <span class="o">=</span> <span class="n">contextBuilder</span> + <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="s">"tenantId:user"</span><span class="o">,</span> <span class="s">"password"</span><span class="o">)</span> + <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="s">"https://keystone:35357"</span><span class="o">)</span> + <span class="o">.</span><span class="na">build</span><span class="o">();</span> + +<span class="k">for</span> <span class="o">(</span><span class="nc">String</span> <span class="n">regionId</span> <span class="o">:</span> <span class="n">keystone</span><span class="o">.</span><span class="na">getApi</span><span class="o">().</span><span class="na">getConfiguredRegions</span><span class="o">())</span> <span class="o">{</span> + <span class="nc">AdminClient</span> <span class="n">adminClient</span> <span class="o">=</span> <span class="n">keystone</span><span class="o">.</span><span class="na">getApi</span><span class="o">().</span><span class="na">getAdminClientForRegion</span><span class="o">(</span><span class="n">regionId</span><span class="o">);</span> + <span class="k">for</span> <span class="o">(</span><span class="nc">Tenant</span> <span class="n">tenant</span> <span class="o">:</span> <span class="n">adminClient</span><span class="o">.</span><span class="na">listTenants</span><span class="o">())</span> <span class="o">{</span> + <span class="c1">// ...</span> + <span class="o">}</span> +<span class="o">}</span></code></pre></figure> + +<p>Also pro, is our new Amazon CloudWatch support from Jeremy Whitlock. This is our first complete renovation of an AWS api to have the same look/feel as our new OpenStack stuff. Just add a dependency on <em>org.jclouds.providers/aws-cloudwatch</em> and you can do this!</p> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">ContextBuilder</span> <span class="n">contextBuilder</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"aws-cloudwatch"</span><span class="o">);</span> +<span class="nc">RestContext</span> <span class="n">cloudwatch</span> <span class="o">=</span> <span class="n">contextBuilder</span> + <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="s">"accessKey"</span><span class="o">,</span> <span class="s">"secretKey"</span><span class="o">)</span> + <span class="o">.</span><span class="na">build</span><span class="o">();</span> + +<span class="k">for</span> <span class="o">(</span><span class="nc">String</span> <span class="n">regionId</span> <span class="o">:</span> <span class="n">cloudwatch</span><span class="o">.</span><span class="na">getApi</span><span class="o">().</span><span class="na">getConfiguredRegions</span><span class="o">())</span> <span class="o">{</span> + <span class="nc">MetricClient</span> <span class="n">metricClient</span> <span class="o">=</span> <span class="n">cloudwatch</span><span class="o">.</span><span class="na">getApi</span><span class="o">().</span><span class="na">getMetricClientForRegion</span><span class="o">(</span><span class="n">regionId</span><span class="o">);</span> + <span class="k">for</span> <span class="o">(</span><span class="nc">Metric</span> <span class="n">metric</span> <span class="o">:</span> <span class="n">metricClient</span><span class="o">.</span><span class="na">listMetrics</span><span class="o">())</span> <span class="o">{</span> + <span class="c1">// ...</span> + <span class="o">}</span> +<span class="o">}</span></code></pre></figure> + +<p>And for the jenkins users, we also have an api for remote job and computer control, at <em>org.jclouds.labs/jenkins</em>!</p> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">ContextBuilder</span> <span class="n">contextBuilder</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"jenkins"</span><span class="o">);</span> +<span class="nc">RestContext</span> <span class="n">localhost</span> <span class="o">=</span> <span class="n">contextBuilder</span><span class="o">.</span><span class="na">build</span><span class="o">();</span> + +<span class="nc">Node</span> <span class="n">master</span> <span class="o">=</span> <span class="n">localhost</span><span class="o">.</span><span class="na">getApi</span><span class="o">().</span><span class="na">getMaster</span><span class="o">();</span> +<span class="n">localhost</span><span class="o">.</span><span class="na">getJobClient</span><span class="o">().</span><span class="na">createFromXML</span><span class="o">(</span><span class="s">"newJob"</span><span class="o">,</span> <span class="n">xmlAsString</span><span class="o">);</span></code></pre></figure> + +<p>This is especially helpful with the new <a href="https://github.com/jenkinsci/jclouds-plugin">jclouds-plugin</a>, which uses jclouds to spin up new slaves and publish artifacts to BlobStore. Tons more in there, too.</p> + +<p>Definitely play around, and let us know how it works!</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="https://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript> +<a href="https://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/apache/jclouds-site/edit/master/_posts/2012-05-02-new-toys-in-1-5-0-alpha-6.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 © 2011-2014 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved. + <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>. + </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> Added: jclouds/site-content/blog/2012/07/16/fluency-for-paginated-api-lists.html URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2012/07/16/fluency-for-paginated-api-lists.html?rev=1923693&view=auto ============================================================================== --- jclouds/site-content/blog/2012/07/16/fluency-for-paginated-api-lists.html (added) +++ jclouds/site-content/blog/2012/07/16/fluency-for-paginated-api-lists.html Mon Feb 10 07:25:53 2025 @@ -0,0 +1,279 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>Apache jclouds® :: Fluency for paginated api lists</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> + + + </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 ®</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="https://github.com/apache/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="/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="https://ci-builds.apache.org/job/JClouds/">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="https://www.apache.org">The Apache Software Foundation</a></li> + <li><a href="https://www.apache.org/licenses/">License</a></li> + <li><a href="https://www.apache.org/foundation/contributing.html">Donations</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/security/">Security</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li class="divider"></li> + <li class="dropdown-header">Apache Events</li> + <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></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.5.0">2.5.0</a></li> + <li><a href="/releasenotes/2.4.0">2.4.0</a></li> + <li><a href="/releasenotes/2.3.0">2.3.0</a></li> + <li><a href="/releasenotes/2.2.1">2.2.1</a></li> + <li><a href="/releasenotes/2.2.0">2.2.0</a></li> + <li><a href="/releasenotes/2.1.3">2.1.3</a></li> + <li><a href="/releasenotes/2.1.2">2.1.2</a></li> + <li><a href="/releasenotes/2.1.1">2.1.1</a></li> + <li><a href="/releasenotes/2.1.0">2.1.0</a></li> + <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 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>Fluency for paginated api lists</h1> + <span class="text-muted">16 July 2012, by Adrian Cole</span> + </div> + <p>The problem of large result sets is something cloud providers want you to have. For example, what better sign of cloud life is there than Amazon S3 having a trillion objects stored so far. The way most cloud apis deal with listing your million (or even thousand) things is to paginate the response.</p> + +<p>For example, you get a first page with maybe 500 records in it, and a <em>marker</em> you can use to get the next. Sounds pretty straightforward, and most jclouds abstractions do this dance for you. For example, our BlobStore api has an interface <a href="https://github.com/jclouds/jclouds/blob/master/blobstore/src/main/java/org/jclouds/blobstore/domain/PageSet.java">PageSet</a> which holds a bunch of results and the underlying marker. This also deals with the fact that sometimes <em><a href="http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html">marker</a></em> is called <em><a href="http://docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html">nextToken</a></em> or other unnecessarily different names :)</p> + +<p>3 years since the birth of <em>PageSet</em>, you can imagine folks could get a better idea of what they <em>really</em> want. Hereâs a few comments:</p> + +<ul> + <li><strong>Marker isnât necessarily a String!</strong> - <a href="http://gaul.org/">Andrew Gaul</a> notes that especially in native implementations, it isnât the case that Marker will always be a String. Imagine you are making an in-memory store. It is very likely the marker will be an Object in this case.</li> + <li><strong>Set is the wrong type for results!</strong> - <a href="http://tembrel.blogspot.com/">Tim Peierls</a> notes that uniqueness isnât a fundamental concern of API results. In fact, it can get in the way of streaming.</li> + <li><strong>Iterating through a bunch of pages is monkey-work!</strong> - <a href="http://www.thoughtspark.org/">Jeremy Whitlock</a> found dancing through each page to get a complete view of metrics was tiring, and made a CloudWatch function for that.</li> + <li><strong>Ensure it is possible to opt-out!</strong> - <a href="http://tbatchelli.org/">Toni Batchelli</a> notes that iterating across network calls can lead to inconsistent state. Particularly clojure users will want the option to manually control pagination.</li> +</ul> + +<p>This feedback underscored jclouds general concern to make things easier, yet still allow control. The status was tracked in issue 1011 and our jclouds-dev google group.</p> + +<p>Through several iterations and many thanks to Tim P. for the design, we have a new type: <a href="https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/collect/PagedIterable.java">PagedIterable</a>, which extends Guavaâs fantastic <em>FluentIterable</em>. Here are a few examples of how it can be used:</p> + +<h3 id="lazy-advance-through-all-your-metrics">Lazy advance through all your metrics:</h3> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">FluentIterable</span><span class="o"><</span><span class="nc">Metric</span><span class="o">></span> <span class="n">allMetrics</span> <span class="o">=</span> <span class="n">cloudwatch</span><span class="o">.</span><span class="na">getMetricApi</span><span class="o">().</span><span class="na">list</span><span class="o">().</span><span class="na">concat</span><span class="o">();</span></code></pre></figure> + +<p>###Â Advance only until we find the load balancer we want:</p> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">Optional</span><span class="o"><</span><span class="nc">LoadBalancer</span><span class="o">></span> <span class="n">firstInterestingLoadBalancer</span> <span class="o">=</span> <span class="n">elb</span> + <span class="o">.</span><span class="na">getLoadBalancerApi</span><span class="o">().</span><span class="na">list</span><span class="o">()</span> + <span class="o">.</span><span class="na">concat</span><span class="o">()</span> + <span class="o">.</span><span class="na">firstMatch</span><span class="o">(</span><span class="n">isInterestingLB</span><span class="o">());</span></code></pre></figure> + +<h3 id="get-only-the-first-page-of-database-instances">Get only the first page of database instances</h3> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">IterableWithMarker</span><span class="o"><</span><span class="nc">Instance</span><span class="o">></span> <span class="n">firstPage</span> <span class="o">=</span> <span class="n">rds</span><span class="o">.</span><span class="na">getInstanceApi</span><span class="o">().</span><span class="na">list</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span></code></pre></figure> + +<p>The above syntax is being worked through relevant apis. In order to try it out, grab jclouds 1.5.0-beta.7 (releasing today), and use any of the following methods:</p> + +<ul> + <li><em>cloudwatch/aws-cloudwatch</em> - MetricApi.list()</li> + <li><em>elb/aws-elb</em> - LoadBalancerApi.list()</li> + <li><em>iam/aws-iam</em> - UserApi.list()</li> + <li><em>rds/aws-rds</em> - InstanceApi.list() SecurityGroupApi.list() SubnetGroupApi.list()</li> +</ul> + +<p>Other apis and abstractions will be caught up while we finish the 1.5 release.</p> + +<p>Many thanks to guava for the base class, jclouds folks who participated in the design, as well the <a href="https://github.com/airlift/airlift">airlift</a> guys whoâs feedback helped solidify the idea. If you are interested in participating, please reach out on irc freenode #jclouds or @jclouds on twitter!</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="https://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript> +<a href="https://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/apache/jclouds-site/edit/master/_posts/2012-07-16-fluency-for-paginated-api-lists.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 © 2011-2014 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved. + <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>. + </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> Added: jclouds/site-content/blog/2012/09/28/jclouds-1-5-is-out.html URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2012/09/28/jclouds-1-5-is-out.html?rev=1923693&view=auto ============================================================================== --- jclouds/site-content/blog/2012/09/28/jclouds-1-5-is-out.html (added) +++ jclouds/site-content/blog/2012/09/28/jclouds-1-5-is-out.html Mon Feb 10 07:25:53 2025 @@ -0,0 +1,242 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>Apache jclouds® :: jclouds 1.5 is out!</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> + + + </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 ®</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="https://github.com/apache/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="/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="https://ci-builds.apache.org/job/JClouds/">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="https://www.apache.org">The Apache Software Foundation</a></li> + <li><a href="https://www.apache.org/licenses/">License</a></li> + <li><a href="https://www.apache.org/foundation/contributing.html">Donations</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/security/">Security</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li class="divider"></li> + <li class="dropdown-header">Apache Events</li> + <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></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.5.0">2.5.0</a></li> + <li><a href="/releasenotes/2.4.0">2.4.0</a></li> + <li><a href="/releasenotes/2.3.0">2.3.0</a></li> + <li><a href="/releasenotes/2.2.1">2.2.1</a></li> + <li><a href="/releasenotes/2.2.0">2.2.0</a></li> + <li><a href="/releasenotes/2.1.3">2.1.3</a></li> + <li><a href="/releasenotes/2.1.2">2.1.2</a></li> + <li><a href="/releasenotes/2.1.1">2.1.1</a></li> + <li><a href="/releasenotes/2.1.0">2.1.0</a></li> + <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 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>jclouds 1.5 is out!</h1> + <span class="text-muted">28 September 2012, by Adrian Cole</span> + </div> + <p>Over 6 months in the making, and just in time for JavaOne, jclouds 1.5 is formally released. Many of you have been awaiting (or helping build) massive new support for OpenStack based clouds. Thereâs even more, such as our new <a href="https://github.com/jenkinsci/jclouds-plugin">Jenkins Plugin</a> and <a href="https://github.com/jclouds/jclouds-cli">command-line utility</a>.</p> + +<p>I encourage you to check out our <a href="/documentation/releasenotes/1.5/">release notes</a> and give the newly minted version <a href="/documentation/userguide/install/">1.5.1</a> a whirl. If you havenât seen our new website, check it out and let <a href="https://twitter.com/silkysun">Becca</a> know how you like it!</p> + +<p>For those of you looking to <a href="http://www.meetup.com/jclouds/">meetup</a>, you can find us at the <a href="http://www.cloudbees.com/jenkins-user-conference-2012-san-francisco.cb">Jenkins User Conference</a>, <a href="http://www.oracle.com/javaone/index.html">JavaOne</a>, <a href="http://www.meetup.com/jclouds/events/84544992/">meetup at Abiquo</a> during <a href="http://www.vmworld.com/community/conference/europe/">VMworld EU</a>, the <a href="http://www.openstack.org/summit/san-diego-2012/">OpenStack Summit</a>, <a href="http://2012.java2days.com/">Java/Cloud2Days</a>, and <a href="http://therichwebexperience.com/conference/fort_lauderdale/2012/11/home">RWX</a>. You can also meet us on irc freenode #jclouds and our google group.</p> + +<p>Thanks to the many who made this happen, especially our community! Hereâs to 1.6!</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="https://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript> +<a href="https://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/apache/jclouds-site/edit/master/_posts/2012-09-28-jclouds-1-5-is-out.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 © 2011-2014 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved. + <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>. + </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>
