You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-dev@james.apache.org by bu...@apache.org on 2012/05/08 12:06:44 UTC
svn commit: r816493 [3/17] - in /websites/staging/james/trunk/content: ./
hupa/ jdkim/ jdkim/mailets/ jsieve/ jsieve/mailet/ jsieve/util/ jspf/
mailbox/ mailet/ mailet/crypto/ mailet/maven-mailetdocs-plugin/
mailet/standard/ mime4j/ mime4j/start/ server/
Modified: websites/staging/james/trunk/content/jspf/contribute.html
==============================================================================
--- websites/staging/james/trunk/content/jspf/contribute.html (original)
+++ websites/staging/james/trunk/content/jspf/contribute.html Tue May 8 10:06:41 2012
@@ -1,53 +1,161 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/jspf/">Jspf</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>TODO!</p></div></div>
- <div class="clear"></div>
</div>
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../jspf/">Jspf</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
</div>
+</h1>
+</div>
+
+<p>TODO!</p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
</body>
</html>
Modified: websites/staging/james/trunk/content/jspf/design.html
==============================================================================
--- websites/staging/james/trunk/content/jspf/design.html (original)
+++ websites/staging/james/trunk/content/jspf/design.html Tue May 8 10:06:41 2012
@@ -1,53 +1,161 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/jspf/">Jspf</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>TODO!</p></div></div>
- <div class="clear"></div>
</div>
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../jspf/">Jspf</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
</div>
+</h1>
+</div>
+
+<p>TODO!</p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
</body>
</html>
Modified: websites/staging/james/trunk/content/jspf/documentation.html
==============================================================================
--- websites/staging/james/trunk/content/jspf/documentation.html (original)
+++ websites/staging/james/trunk/content/jspf/documentation.html Tue May 8 10:06:41 2012
@@ -1,53 +1,161 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/jspf/">Jspf</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>TODO!</p></div></div>
- <div class="clear"></div>
</div>
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../jspf/">Jspf</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
</div>
+</h1>
+</div>
+
+<p>TODO!</p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
</body>
</html>
Modified: websites/staging/james/trunk/content/jspf/index.html
==============================================================================
--- websites/staging/james/trunk/content/jspf/index.html (original)
+++ websites/staging/james/trunk/content/jspf/index.html Tue May 8 10:06:41 2012
@@ -1,75 +1,198 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/jspf/">Jspf</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>The jSPF library is pure Java SPF implementation. It was designed to match the current SPF-Specs of 2006-2009 (See RFC section). SPF is also knows as Sender Policy Framework. It was designed to detect email spoofing.This is the solution if you ever was tired of getting spam from yourself. For more informations see <a href="http://www.openspf.org">openspf website</a> .
+ </div>
+
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../jspf/">Jspf</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
+ </div>
+</h1>
+</div>
+
+<p>The jSPF library is pure Java SPF implementation. It was designed to match the current SPF-Specs of 2006-2009 (See RFC section). SPF is also knows as Sender Policy Framework. It was designed to detect email spoofing.This is the solution if you ever was tired of getting spam from yourself. For more informations see <a href="http://www.openspf.org">openspf website</a> .
<subsection name="2010"></p>
-<h4 id="jun2010-jspf-098-released">Jun/2010 - jSPF-0.9.8 released</h4>
+
+<h4>Jun/2010 - jSPF-0.9.8 released</h4>
+
<p>The JAMES Developer Team is proud to announce the <a href="../download.cgi">availability</a> release of APACHE jSPF-0.9.8. This release includes fixes for correct handling of TXT record escapings and pass the fc4408-tests-2009.10 testsuite.
</subsection><subsection name="2009"></p>
-<h4 id="jun2009-jspf-097-released">Jun/2009 - jSPF-0.9.7 released</h4>
+
+<h4>Jun/2009 - jSPF-0.9.7 released</h4>
+
<p>After 1 year we are proud to announce the <a href="../download.cgi">availability</a> release of APACHE jSPF-0.9.7. This release includes fixes for correct handling of $ signs in the local-part of emailaddresses and quotes in SPF-Records. It also includes a new version of dnsjnio which fixes some race-condition when using the async mode of jSPF.
</subsection><subsection name="2008"></p>
-<h4 id="apr2008-jspf-096-released">Apr/2008 - jSPF-0.9.6 released</h4>
+
+<h4>Apr/2008 - jSPF-0.9.6 released</h4>
+
<p>We are proud to announce the <a href="../download.cgi">availability</a> release of APACHE jSPF-0.9.6. This release fix two possible NullPointerExceptions and handle the "exp=" modifier correctly.
</subsection><subsection name="2007"></p>
-<h4 id="sept2007-jspf-095-released">Sept/2007 - jSPF-0.9.5 released</h4>
+
+<h4>Sept/2007 - jSPF-0.9.5 released</h4>
+
<p>We are proud to announce the <a href="../downloadunstable.cgi">availability</a> release of APACHE jSPF-0.9.5. This release spots an initial support for asynchronous processing and is fully <a href="http://www.openspf.org">RFC4408</a> compliant.</p>
-<h4 id="feb2007-jspf-09b4-released">Feb/2007 - jSPF-0.9b4 released</h4>
+
+<h4>Feb/2007 - jSPF-0.9b4 released</h4>
+
<p>After some more work was done, we proud to announce the <a href="../downloadunstable.cgi">release</a> of jSPF-0.9b4. 0.9b4 correctly supports SPF DNS record type (previously we only supported TXT record type) and introduce support for spf extension policies like fallback, override, trusted forwarder.
</subsection><subsection name="2006"></p>
-<h4 id="sep2006-jspf-09b3-released">Sep/2006 - jSPF-0.9b3 released</h4>
+
+<h4>Sep/2006 - jSPF-0.9b3 released</h4>
+
<p>0.9b3 introduces YAML based unit tests to check RFC compliance and a couple of minor fixes.</p>
-<h4 id="jul2006-first-public-release-of-jspf">Jul/2006 - First public release of jSPF</h4>
+
+<h4>Jul/2006 - First public release of jSPF</h4>
+
<p>After a fully rewrite of spf-java we finally release jSPF.
</subsection>
<strong>Latest: jSPF v0.9.5</strong> <br></br>jSPF v0.9.5 is the current release. Both <a href="../downloadunstable.cgi">binary and source</a> distributions are available.</p>
-<p>This release passes all YAML tests published by openspf.org (still under development). So it should be fully RFC4408 compliant.</p></div></div>
- <div class="clear"></div>
- </div>
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
- </div>
+<p>This release passes all YAML tests published by openspf.org (still under development). So it should be fully RFC4408 compliant.</p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
</body>
</html>
Modified: websites/staging/james/trunk/content/jspf/rfclist.html
==============================================================================
--- websites/staging/james/trunk/content/jspf/rfclist.html (original)
+++ websites/staging/james/trunk/content/jspf/rfclist.html Tue May 8 10:06:41 2012
@@ -1,53 +1,161 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/jspf/">Jspf</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>The actual SPF-RFC:<br></br> <a href="http://www.openspf.org/svn/project/specs/rfc4408.html">RFC4408</a> - Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1</p></div></div>
- <div class="clear"></div>
</div>
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../jspf/">Jspf</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
</div>
+</h1>
+</div>
+
+<p>The actual SPF-RFC:<br></br> <a href="http://www.openspf.org/svn/project/specs/rfc4408.html">RFC4408</a> - Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1</p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
</body>
</html>
Modified: websites/staging/james/trunk/content/mailbox/index.html
==============================================================================
--- websites/staging/james/trunk/content/mailbox/index.html (original)
+++ websites/staging/james/trunk/content/mailbox/index.html Tue May 8 10:06:41 2012
@@ -1,62 +1,177 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/mailbox/">Mailbox</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>The Apache James Mailbox is a library providing a flexible Mailbox storage accessible by mail protocols (IMAP4, POP3, SMTP,...) and other protocols.</p>
+ </div>
+
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../mailbox/">Mailbox</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
+ </div>
+</h1>
+</div>
+
+<p>The Apache James Mailbox is a library providing a flexible Mailbox storage accessible by mail protocols (IMAP4, POP3, SMTP,...) and other protocols.</p>
+
<p>It can also be embedded into your application to implement for example the <a href="http://www.mindspring.com/~mgrand/pattern_synopses3.htm#Mailbox">Mailbox Pattern</a> .</p>
+
<p>The prime usage of this library is clearly to serve as mailbox persistence for IMAP protocol. The API and implementations rely on <a href="http://james.apache.org/server/rfclist/imap4/rfc2060.txt">RFC 2060 IMAP4rev1</a> definitions and requirements but can perfectly be used in any other (non mail server) context.</p>
+
<p>The mailbox library supports different persistence mechanisms: MailDir, SQL Database via Apache OpenJPA, JCR (Java Content Repository based on Apache Jackrabbit) and Apache HBase.</p>
+
<p>You can <a href="http://james.apache.org/download.cgi">download</a> current 0.4 release. The <a href="apidocs/">API</a> as the schemas for the different implementations are susceptible to evolve.</p>
+
<p><a href="http://james.apache.org/server/3">Apache James Server 3</a> uses this library to implement its user mailboxes.</p>
+
<p>Apache James Mailbox is tested and fully compatible with other Apache James libraries such as the <a href="http://james.apache.org/imap">Apache James IMAP</a> (see <a href="https://svn.apache.org/repos/asf/james/mailbox-integration-tester/trunk/">this link</a> for the Mailbox/IMAP integration tests source code)</p>
+
<p>Go to the <a href="source-code.html">source code</a> page to get more information on how to develop on Apache James Mailbox.
- <img alt="" src="images/uml/org-apache-james-mailbox-package.png" title="" />
-Apache James Mailbox uses <a href="http://slf4j.org/">SLF4J</a> as logging facade. For specific bindings one needs to add a particular <a href="http://slf4j.org/faq.html#where_is_binding">SLF4J binding</a> .</p></div></div>
- <div class="clear"></div>
- </div>
+ <img src="images/uml/org-apache-james-mailbox-package.png" alt="" />
+Apache James Mailbox uses <a href="http://slf4j.org/">SLF4J</a> as logging facade. For specific bindings one needs to add a particular <a href="http://slf4j.org/faq.html#where_is_binding">SLF4J binding</a> .</p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
- </div>
</body>
</html>
Modified: websites/staging/james/trunk/content/mailbox/mailbox-api.html
==============================================================================
--- websites/staging/james/trunk/content/mailbox/mailbox-api.html (original)
+++ websites/staging/james/trunk/content/mailbox/mailbox-api.html Tue May 8 10:06:41 2012
@@ -1,51 +1,156 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/mailbox/">Mailbox</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>This module contains the interfaces and exceptions to be used by the mailbox clients. It represents the "external view" of the mailbox library client.</p>
+ </div>
+
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../mailbox/">Mailbox</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
+ </div>
+</h1>
+</div>
+
+<p>This module contains the interfaces and exceptions to be used by the mailbox clients. It represents the "external view" of the mailbox library client.</p>
+
<p>The services the mailbox library provides can be summarized as "store/retrieve/search/delete mails" and update the mails metadata (via uid and flags)</p>
+
<p>The main entrance interfaces are represented by 3 managers, each responsible for a specific area: the mailbox manager, the message manager and the subscription manager.</p>
+
<p>For example, Apache James Server injects the managers in the POP3, SMTP, IMAP4 servers and in the Mailet container.</p>
+
<p>Each implementation ( <a href="mailbox-memory.html">Memory</a> , <a href="mailbox-maildir.html">Maildir</a> , <a href="mailbox-jpa.html">JPA</a> , <a href="mailbox-jcr.html">JCR)</a> , <a href="mailbox-hbase.html">HBase</a> ) is responsible to implement the management interfaces. All "common/util" implementations reside in the <a href="mailbox-store.html">Mailbox Store</a> module.
<subsection name="Mailbox Manager">
The Mailbox Manager is responsible for session creation, operations on mailbox (create, delete, search) and to return a Message Manager. It also allows to copy and list messages.
@@ -53,12 +158,19 @@ The Mailbox Manager is responsible for s
The Message Manager is responsible to create, delete message and its associated metadata (the uid and the flags).
</subsection><subsection name="Subscription Manager">
The Subscription Manager is responsible for the (un)subscription between a user and a mailbox.
-</subsection></p></div></div>
- <div class="clear"></div>
- </div>
+</subsection></p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
- </div>
</body>
</html>
Modified: websites/staging/james/trunk/content/mailbox/mailbox-hbase.html
==============================================================================
--- websites/staging/james/trunk/content/mailbox/mailbox-hbase.html (original)
+++ websites/staging/james/trunk/content/mailbox/mailbox-hbase.html Tue May 8 10:06:41 2012
@@ -1,82 +1,174 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html lang="en">
<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../bootstrap.css" rel="stylesheet">
+ <link href="./../prettify.css" rel="stylesheet">
+ <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../images/favicon.ico" />
+ <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="./../images/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="./../images/apple-touch-icon-114x114.png" />
+ <script src="./../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../javascript/jquery-latest.js"></script>
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../javascript/common.js"></script>
+ <script src="./../javascript/prettyprint.js"></script>
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2717626-1']);
+ _gaq.push(['_setDomainName', 'apache.org']);
+ _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);
+ })();
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
-
- </style>
-
-
-
-
-
+ </script>
</head>
<body>
- <div id="page" class="container_16">
- <div id="header" class="grid_8">
- <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
- <h1>The Apache Software Foundation - Apache James website</h1>
- <h2></h2>
- </div>
- <div id="nav" class="grid_8">
- <ul>
- <!-- <li><a href="/" title="Welcome!">Home</a></li> of the greatest email server on the web -->
- <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
- <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
- <li><a href="http://people.apache.org" title="The People">People</a></li>
- <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
- <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
- </ul>
- <p><a href="/">Home</a> » <a href="/mailbox/">Mailbox</a></p>
- <form name="search" id="search" action="http://www.google.com/search" method="get">
- <input value="*.apache.org" name="sitesearch" type="hidden"/>
- <input type="text" name="q" id="query">
- <input type="submit" id="submit" value="Search">
- </form>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../index.html">Apache James</a>
+ <ul class="nav">
+ <li><a href="./../index.html">Home</a></li>
+ <li><a href="./../server/index.html">Server</a></li>
+ <li><a href="./../hupa/index.html">Hupa</a></li>
+ <li><a href="./../protocols/index.html">Protocols</a></li>
+ <li><a href="./../mailets/index.html">Mailets</a></li>
+ <li><a href="./../mailbox/index.html">Mailbox</a></li>
+ <li><a href="./../mime4j/index.html">Mime4j</a></li>
+ <li><a href="./../jsieve/index.html">jSieve</a></li>
+ <li><a href="./../jspf/index.html">jSPF</a></li>
+ <li><a href="./../jdkim/index.html">jDKIM</a></li>
+ <li><a href="./../mime4j/index.html">MPT</a></li>
+ <li><a href="./../postage/index.html">Postage</a></li>
+ <li><a href="./../downloads.html">Downloads</a></li>
+ <li><a href="./../documentation.html">Documentation</a></li>
+ <li><a href="./../support.html">Support</a></li>
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+ <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+ <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+ <!-- Google CSE Search Box Ends -->
+ </div>
</div>
- <div class="clear"></div>
- <div id="content" class="grid_16"><div class="section-content"><p>This module provides a mailbox implementation for peristing mailboxes (messages, and subscriptions) in a HBase cluster.
+ </div>
+
+ <div class="container">
+
+
+
+<div class="page-header">
+<small><a href="./../index.html">Home</a> » <a href="./../mailbox/">Mailbox</a></small><br>
+<h1>
+
+ <div style="float: right; position: relative; bottom: -10px; ">
+ <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+ <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+ <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
+ </div>
+</h1>
+</div>
+
+<p>This module provides a mailbox implementation for peristing mailboxes (messages, and subscriptions) in a HBase cluster.
This should provide an overview of the design and implementation of Mailbox HBase.
<subsection name="Tables">
The current implementations stores Messages, Mailboxes and Subscriptions in their own tables.
There are:</p>
+
<ul>
-<li>
-<p>JAMES_MAILBOXES - for storing mailboxes.</p>
-</li>
-<li>
-<p>JAMES_MESSAGES - for storing messages.</p>
-</li>
-<li>
-<p>JAMES_SUBSCRIPTIONS - for storing user subscriptions.
+<li>JAMES_MAILBOXES - for storing mailboxes.</li>
+<li>JAMES_MESSAGES - for storing messages.</li>
+<li>JAMES_SUBSCRIPTIONS - for storing user subscriptions.
</subsection><subsection name="Mailbox UID generation">
Mailboxes are identified using a unique <a href="http://download.oracle.com/javase/6/docs/api/java/util/UUID.html">UUID</a>
</subsection><subsection name="Message UID generation">
The IMAP RFC states that mailboxes should keep message UIDs unique and in ascending order. Mailbox HBase uses <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#incrementColumnValue(byte[],%20byte[],%20byte[],%20long)">incrementColumnValue</a> int the HBaseUidProvider implementation to achieve this.
-</subsection><subsection name="HBase row keys">HBase uses keys to access values. The current design uses the following row key structure:</p>
-</li>
-<li>
-<p>JAMES_MAILBOXES: row key is mailbox UUID</p>
-</li>
-<li>
-<p>JAMES_MESSAGES: row key is compound by concatenating mailbox UID and message UID (in reverseorder). This way we have messages groupd by mailbox and in descending order (most recent first).</p>
-</li>
-<li>
-<p>JAMES_SUBSCRIPTION: row key is user name.
+</subsection><subsection name="HBase row keys">HBase uses keys to access values. The current design uses the following row key structure:</li>
+<li>JAMES_MAILBOXES: row key is mailbox UUID</li>
+<li>JAMES_MESSAGES: row key is compound by concatenating mailbox UID and message UID (in reverseorder). This way we have messages groupd by mailbox and in descending order (most recent first).</li>
+<li>JAMES_SUBSCRIPTION: row key is user name.
</subsection><subsection name="Misc">
-Message bodyes (more importantly big attachements) sent to many users are stored many times. There is no space sharing yet.</p>
-</li>
+Message bodyes (more importantly big attachements) sent to many users are stored many times. There is no space sharing yet.</li>
</ul>
+
<p>Message data and mssage meta-data (flags and properties) are stored in different column families so the column family optimization options can apply. Keep in mind that message data does not change, while meta-data does change.
</subsection>
In order for the mailbox implementation to work you have to provide it with a link to your HBase cluster. Putting <em>hbase-site.xml</em> on the class path should be enough. Mailbox HBase will pick it up an read all the configuration parameters from it.</p>
+
<p>This is a onverview of the most important classes in the implementation.
<subsection name="HBaseMailboxManager">
<strong>HBaseMailboxManager</strong> extends the <strong>StoreMailboxManager</strong> class. It has a simple implementation that just overrides the <em>doCreateMailbox</em> method to return a HBaseMailbox implementation and <em>createMessageManger</em> method to return a HBaseMessageManager implementation. Other then that it relies on the default StoreMailboxManager implementation.
@@ -84,15 +176,23 @@ In order for the mailbox implementation
<strong>HBaseMessageManager</strong> extends StoreMailboxManager and provides an implementation for getPermanentFlags method.
</subsection><subsection name="Chunked Streams">
Message bodies can have varying sizes. Some have attachements of up to 25Mb, some even greater. There are practical limits to the size of a HBase column (see <a href="http://hbase.apache.org/book.html#supported.datatypes">http://hbase.apache.org/book.html#supported.datatypes</a> ). To adress this issue, the implementation splits the message into smaller chunks and saves each chunk into a separate column. The columns have increasing integer names starting with 1 and there can be at most Long.MAX_VALUE chunks.</p>
+
<p>The magic happens in <strong>ChunkInputStream</strong> and <strong>ChunkOutputStream</strong> that extend InputStream and OutputStream from java.io package.<br></br>Data is retrieved using HBase Get operation and stored into an internal byte array. Data is stored using HBase Put operation and chunks are split into <strong>chunkSize</strong> configurable sized chunks. Things could be more efficient if HBase had streaming support.
</subsection><subsection name="HBaseMessage">
Extends AbstractMessage and represents a message in the message store. What is important to remember is that the current implementation retrieves just the message meta-data from HBase and uses ChunkInputStream to load the message body only when needed.
-</subsection></p></div></div>
- <div class="clear"></div>
- </div>
+</subsection></p>
+
+
+
+
+ <footer>
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
- <div id="copyright" class="container_16">
- <p>Copyright © 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
- </div>
</body>
</html>