<!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>Introduction to Apache Tamaya Incubating (German)</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>Introduction to Apache Tamaya Incubating (German)</h1>
			</div>

			<p><em>2014-12-15</em></p>

			<p><div class="paragraph">
<p>This article, written by Michael Thomas, gives an overview of Apache Tamaya Incubating, its concepts and motivation as a portable configuration system for Java SE, ME, EE-deployments.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://jaxenter.de/was-ist-apache-tamaya-171">Was ist Apache Tamaya? (German article)</a></p>
</li>
</ul>
</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>
