<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	    <meta charset="utf-8"/>
	    <title>About Tamaya</title>
	    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
	    <meta name="description" content="Homepage of Apache Tamaya (incubating)"/>
	    <meta name="author" content="Apache Tamaya Project Team"/>
	    <meta name="keywords" content="Apache Tamaya Incubating, configuration, Java, ASF, Apache Software Foundation"/>
      <meta name="generator" content="JBake ${content.version}"/>

	    <!-- Le styles -->
	    <link href="css/bootstrap.min.css" rel="stylesheet"/>
	    <link href="css/asciidoctor.css" rel="stylesheet"/>
	    <link href="css/base.css" rel="stylesheet"/>
	    <link href="css/prettify.css" rel="stylesheet"/>

	    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
	    <!--[if lt IE 9]>
	      <script src="js/html5shiv.min.js"></script>
	    <![endif]-->

	    <!-- Fav and touch icons from ASF -->
			<link rel="shortcut icon" href="favicon.ico"/>
			<link rel="apple-touch-icon" sizes="57x57" href="favicons/apple-touch-icon-57x57.png"/>
		  <link rel="apple-touch-icon" sizes="60x60" href="favicons/apple-touch-icon-60x60.png"/>
		  <link rel="apple-touch-icon" sizes="72x72" href="favicons/apple-touch-icon-72x72.png"/>
		  <link rel="apple-touch-icon" sizes="76x76" href="favicons/apple-touch-icon-76x76.png"/>
		  <link rel="apple-touch-icon" sizes="114x114" href="favicons/apple-touch-icon-114x114.png"/>
		  <link rel="apple-touch-icon" sizes="120x120" href="favicons/apple-touch-icon-120x120.png"/>
		  <link rel="apple-touch-icon" sizes="144x144" href="favicons/apple-touch-icon-144x144.png"/>
		  <link rel="apple-touch-icon" sizes="152x152" href="favicons/apple-touch-icon-152x152.png"/>
		  <link rel="apple-touch-icon" sizes="180x180" href="favicons/apple-touch-icon-180x180.png"/>
		  <link rel="icon" type="image/png" href="favicons/favicon-32x32.png" sizes="32x32"/>
		  <link rel="icon" type="image/png" href="favicons/favicon-194x194.png" sizes="194x194"/>
		  <link rel="icon" type="image/png" href="favicons/favicon-96x96.png" sizes="96x96"/>
		  <link rel="icon" type="image/png" href="favicons/android-chrome-192x192.png" sizes="192x192"/>
		  <link rel="icon" type="image/png" href="favicons/favicon-16x16.png" sizes="16x16"/>
		  <link rel="manifest" href="favicons/manifest.json"/>
		  <link rel="shortcut icon" href="favicons/favicon.ico"/>
		  <meta name="msapplication-TileColor" content="#603cba"/>
		  <meta name="msapplication-TileImage" content="favicons/mstile-144x144.png"/>
		  <meta name="msapplication-config" content="favicons/browserconfig.xml"/>
		  <meta name="theme-color" content="#303284"/>
	</head>
	<body onload="prettyPrint()">
	<div id="wrap">
		<div>

	  <!-- Fixed navbar -->
      <div 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=".navbar-collapse">
            <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="index.html">Tamaya Home</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
						<li><a href="start.html">Tamaya in 5 minutes</a></li>
						<li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
              <ul class="dropdown-menu">
								<li><a href="documentation/usecases.html">Use Cases and Requirements</a></li>
								<li><a href="documentation/quickstart.html">Quickstart</a></li>
								<li><a href="documentation/api.html">API</a></li>
								<li><a href="documentation/core.html">Core</a></li>
								<li><a href="documentation/extensions.html">Extension Guide</a></li>
								<li class="divider"></li>
								<li><a href="apidocs/stable/index.html">Javadoc 0.4-incubating (release/stable)</a></li>
								<li><a href="apidocs/development/index.html">Javadoc 0.5-incubating-SNAPSHOT (development)</a></li>
              </ul>
            </li>
						<li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
              <ul class="dropdown-menu">
								<li><a href="development/source.html">Sources</a></li>
								<li><a href="development/community.html">Community</a></li>
								<li><a href="development/team.html">Project Team</a></li>
								<li><a target="_blank" href="https://builds.apache.org/view/S-Z/view/Tamaya/">CI / ASF Jenkins</a></li>
								<li><a target="_blank" href="https://issues.apache.org/jira/browse/TAMAYA">Issues / ASF Jira</a></li>
								<li><a href="devguide.html">Development Guide</a></li>
								<li><a href="release-guide.html">Release Guide</a></li>
								<li class="divider"></li>
								<li><a href="development/possible-contributions.html">Possible Contributions</a></li>
              </ul>
            </li>
						<li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
              <ul class="dropdown-menu">
								<li><a href="download.html">Download</a></li>
								<li><a href="history.html">Release History</a></li>
              </ul>
            </li>
						<li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
              <ul class="dropdown-menu">
								<li><a href="https://www.apache.org/">Apache Software Foundation (ASF)</a></li>
								<li><a href="https://www.apache.org/foundation/how-it-works.html">How the ASF works</a></li>
								<li><a href="https://www.apache.org/foundation/getinvolved.html">Get Involved</a></li>
								<li><a href="https://www.apache.org/dev/">Developer Resources</a></li>
								<li><a href="https://www.apache.org/foundation/policies/conduct.html">Code of Conduct</a></li>
								<li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
								<li><a href="https://www.apache.org/licenses/">License</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>
								<hr/>
								<li><a  href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Current Apache event"/></a></li>
              </ul>
            </li>
<!-- Example:
						<li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li class="divider"></li>
                <li class="dropdown-header">Nav header</li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
-->
			<li><a href="sitemap.xml">Sitemap</a></li>
			<li><a href="feed.xml">Subscribe</a></li>
			<li><a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
                                 <img class="incubator-logo" src="logos/apache-incubator.png"/></a></li>
          </ul>

        </div><!--/.nav-collapse -->
      </div>
    </div>

	</div>
		<div class="container">

			<div class="page-header">
				<h1>About Tamaya</h1>
			</div>

			<p><em>2019-11-17</em></p>

			<p><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Apache Tamaya (incubating) provides a <strong>unopinionated and powerful
configuration solution</strong> for developers on the JVM.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_rationale">Rationale</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Configuration is one of the most prominent cross-cutting concerns similar to logging. Most of us already have been
writing similar code again and again in each of our projects. Sometimes in a similar way but mostly always slightly
different, but certainly with high coupling to your configuration backends. Given your code is reused or integrated
some how, or deployed by some customers, struggling starts: not supported backends, different policies, missing
combination and validation mechanisms and so on. Tamaya solves all this by defining a common API and backend SPI.
Your code is decoupled from the configuration backend. There is no difference if your code is deployed on your dev box
or in a clustered Docker environment in production, it stays the same!</p>
</div>
<div class="paragraph">
<p>For further information we recommend to have a look at our documentation resources:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="features.html">Feature Overview</a></p>
</li>
<li>
<p><a href="documentation/usecases.html">Use Cases and Requirements</a></p>
</li>
<li>
<p><a href="highleveldesign.html">High Level Design</a></p>
</li>
<li>
<p><a href="documentation/api.html">API</a></p>
</li>
<li>
<p><a href="documentation/core.html">Core</a></p>
</li>
<li>
<p><a href="documentation/extensions.html">Extensions</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_you_just_wanna_start_right_away">You just wanna start right away</h2>
<div class="sectionbody">
<div class="paragraph">
<p>So here is five liner to start&#8230;&#8203;</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Add <code>org.apache.tamaya:tamaya-core:0.5-incubating-SNAPSHOT</code> to your dependencies.</p>
</li>
<li>
<p>Add some config to <code>META-INF/javaconfiguration.properties</code></p>
</li>
<li>
<p>Access your configuration by <code>Configuration.current()</code> and use it.</p>
</li>
<li>
<p>Look at the <a href="features.html">extensions modules</a> to customize your setup!</p>
</li>
<li>
<p>Enjoy!</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>And, yes, give feedback, so we can improve ;-)</p>
</div>
</div>
</div></p>

			<hr />
		</div>
	</div>
	<div>
			<div id="push"></div>

		    <div id="footer">
		      <div class="container">
		        <p class="muted credit">&copy; 2014-<span>2019</span> Apache Software Foundation | Mixed with <a href="https://getbootstrap.com/">Bootstrap v3.1.1</a>
							| Baked with <a href="https://jbake.org">JBake <span>v2.6.4</span></a>
							at <span>2019-11-17</span> |
						<a class="twitter-follow-button" data-show-count="false" href="https://twitter.com/tamayaconf">Follow @tamayaconf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
						</p>
						<p>
								<b>Disclaimer</b>
                    Apache Tamaya (incubating) is an effort undergoing
                    incubation at
                    The Apache Software Foundation (ASF), sponsored by
                    the Apache Incubator. Incubation is required of
                    all newly accepted projects until a further review indicates
                    that the infrastructure, communications, and decision making
                    process have stabilized in a manner consistent with other
                    successful ASF projects. While incubation status is not
                    necessarily a reflection of the completeness or stability of
                    the code, it does indicate that the project has yet to
                    be fully endorsed by the ASF.<br />
										Apache, Apache Tamaya, and the Apache Tamaya logo are registered trademarks or trademarks of The Apache Software Foundation in the U.S. and/or other countries.<br />
                    <a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
											<img class="incubator-logo" src="logos/apache-incubator.png" style="height: 50px;"/>
										</a>
							</p>
		      </div>
		    </div>

		    <!-- Le javascript
		    ================================================== -->
		    <!-- Placed at the end of the document so the pages load faster -->
		    <script src="js/jquery-1.11.1.min.js"></script>
		    <script src="js/bootstrap.min.js"></script>
		    <script src="js/prettify.js"></script>
    	</div>
    </body>
</html>
