
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2016-10-27
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache Flex® - Contributing to the Flex Website</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="./css/bootstrap.min.css" rel="stylesheet" />
		<link href="./css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/docs.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />

		<link href="http://yandex.st/highlightjs/7.5/styles/default.min.css" rel="stylesheet" />

		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->


		
<link rel="icon" href="img/favicon.ico" type="image/x-icon"/>
<link rel="apple-touch-icon" href="img/apple-touch-icon-60.png"/>
<link sizes="76x76" rel="apple-touch-icon" href="img/apple-touch-icon-76.png"/>
<link sizes="120x120" rel="apple-touch-icon" href="img/apple-touch-icon-120.png"/>
<link sizes="152x152" rel="apple-touch-icon" href="img/apple-touch-icon-152.png"/>
	</head>

	<body class="page-doc-website project-flex-site" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="index.html" title="Home">Home</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="about-whatis.html" title="What is Flex?">What is Flex?</a></li>
									<li ><a href="about-features.html" title="Features">Features</a></li>
									<li ><a href=".html" title="Tour de Flex">Tour de Flex</a></li>
									<li ><a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a></li>
									<li ><a href="about-people.html" title="The Team">The Team</a></li>
									<li ><a href="about-history.html" title="Project History">Project History</a></li>
									<li ><a href="about-assets.html" title="Logo and Assets">Logo and Assets</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="community-getinvolved.html" title="How to get involved">How to get involved</a></li>
									<li ><a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a></li>
									<li ><a href="community-3rdparty.html" title="Third-Party">Third-Party</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a></li>
									<li ><a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</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="dev-faq.html" title="Developer FAQ">Developer FAQ</a></li>
									<li ><a href="dev-sourcecode.html" title="Source Code">Source Code</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="doc-getstarted.html" title="Getting Started">Getting Started</a></li>
									<li ><a href="doc-videos.html" title="Videos">Videos</a></li>
									<li ><a href=".html" title="Flex ASDocs">Flex ASDocs</a></li>
									<li ><a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a></li>
									<li ><a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a></li>
									<li ><a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a></li>
									<li ><a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a></li>
									<li class="active"><a href="" title="Contributing to the Flex Website">Contributing to the Flex Website</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a></li>
									<li ><a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a></li>
									<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Download Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="download-installer.html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a></li>
									<li ><a href="download-source.html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a></li>
									<li ><a href="download-binaries.html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a></li>
									<li ><a href="download-flexjs.html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a></li>
									<li ><a href="download-flexunit.html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a></li>
									<li ><a href="download-blazeds.html" title="Blaze DS Source Code">Blaze DS Source Code</a></li>
									<li ><a href="download-tourdeflex.html" title="Tour De Flex Source Code">Tour De Flex Source Code</a></li>
									<li ><a href="download-squiggly.html" title="Squiggly Spell Checker">Squiggly Spell Checker</a></li>
									<li ><a href="download-utilities.html" title="Flex Utilities">Flex Utilities</a></li>
									<li ><a href="download-archive.html" title="Previous Versions">Previous Versions</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="http://flex.apache.org/" id="bannerLeft"><img src="img/logo-flex.png" alt='"'Apache Flex'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://www.apache.org" id="bannerRight"><img src="img/logo-asf.png" alt='"'An Apache Project'"' /></a>
				</div>
			</div>
		</div>
	</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<div class="page-header">
 <h1>Contributing to the Flex Website</h1>
</div> 
<p>This document describes how the Maven version of the Flex Website is created and why it is done that way.</p> 
<div class="section"> 
 <h2 id="The_Git_repo_and_its_structure">The Git repo and its structure</h2> 
 <p>Currently the <tt>flex-site</tt> repo, which is available at:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://git-wip-us.apache.org/repos/asf/flex-site.git
</pre> 
  </div> 
 </div> 
 <p>Because we haven’t quite decided which path to go in migrating away from the Apache CMS and SVN to a GIT-based version, we have decided to create branches for each approach and decide later on which of them we will be using. The document you are reading is generated by the <tt>maven-site</tt> branch, which is based upon Apache Maven using the <tt>maven-site-plugin</tt></p> 
 <p>The repository currently contains several branches:</p> 
 <ul> 
  <li><tt>master</tt> (Is just there to prevent problems when checking out)</li> 
  <li><tt>maven-site</tt> (Contains this document and is a version of the Apache Flex website, which is built from markdown content using the maven-site-plugin in a Maven build)</li> 
  <li><tt>asf-site</tt> (Contains the HTML the <tt>maven-site</tt> project creates when running the `site:deploy goal. This it the static code of the Apache Flex website which will be served by the Apache Webservers)</li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="How_the_site_is_generated">How the site is generated</h2> 
 <p>Currently the projects are able to produce content in their own repositories. The main Apache Foundation webservers server their content from a SVN repository hosted at:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://svn.apache.org/repos/infra/websites/production/{project-name}
</pre> 
  </div> 
 </div> 
 <p>Each project has a sub-directory which is probably mapped to a virtual host in the HTTPD config. For the Apache Flex project the <tt>flex.apache.org</tt> domain is probably mapped to <tt>https://svn.apache.org/repos/infra/websites/production/flex</tt></p> 
 <p>The projects however cannot publish direct into this repository. Therefore the Infra team have created tools to sync content from projects repositories with their sub-directory of that SVN repo:</p> 
 <ul> 
  <li>For SVN based sites this is svnpubsub</li> 
  <li>For GIT based sites this is gitpubsub</li> 
  <li>The Apache CMS which sort of generates content from a SVN repo and automatically publishes that so some sort of staging area from which you can review changes and release them to production using a web-ui (This is the way the Apache Flex website is currently created)</li> 
 </ul> 
 <p>As we are planning on using GIT and therefore we have to migrate away from the Apache CMS, which can only deal with SVN based repositories.</p> 
 <p>The <tt>maven-site</tt> branch contains a simple Maven project which utilizes the <tt>maven-site-plugin</tt> to generate the Website and render <tt>Markdown</tt> content as nice looking HTML Website. This static content is then checked in to the <tt>asf-site</tt> branch of the same GIT repository.</p> 
 <p>As this checking-in requires commit permissions, we cannot run this job on the normal ASF Jenkins instances. The only build system that allows automatic commits to git is <tt>buildbot</tt> and here you have to use the built in commands to execute the GIT operation. Setting up a job here was a little more tricky than with jenkins as you have to provide the job definition by adding a config file to a SNV repo hosted at:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects
</pre> 
  </div> 
 </div> 
 <p>Currently the config file (<tt>flex.conf</tt>) for building the <tt>maven-site</tt> version of the Flex website looks like this:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre># This is the config file for generating the website of the flex project.

#########################################################################################
# Add a new scheduler for the current job
#########################################################################################

# Check the &quot;maven-site&quot; branch in the &quot;flex-site&quot; git repo for changes and trigger
# the &quot;maven-flex-site&quot; job if there are changes
c['schedulers'].append(SingleBranchScheduler(name=&quot;on-maven-flex-site-commit&quot;,
                    change_filter=filter.ChangeFilter(branch='maven-site' , project='flex-site'),
                    treeStableTimer=2,
                    builderNames=[&quot;maven-flex-site&quot;]))



#########################################################################################
# Define the Job
#########################################################################################

# Build Factory (Define which steps have to be performed to execute the build)
flexSiteJobFactory = factory.BuildFactory()
# 1. Checkout the &quot;flex-site&quot; branch of the flex-site repo
flexSiteJobFactory.addStep(Git(
    repourl=&quot;https://git-wip-us.apache.org/repos/asf/flex-site.git&quot;,
    branch='maven-site',
    workdir=&quot;build&quot;,
    retry=(10, 5), # retry 5 times with a 10 second delay
    retryFetch=True,
    mode='full',
    method='fresh'
    ))

# 2. Run a Maven &quot;clean site&quot; build on the checked out repo.
# (This produces the new website content in the &quot;target/staging&quot; directory)
flexSiteJobFactory.addStep(Compile(command=[&quot;mvn&quot; , &quot;clean&quot; , &quot;site&quot;, &quot;-X&quot;]))

# 3. Clone repo again in &quot;target/asf-site&quot;
flexSiteJobFactory.addStep(ShellCommand(command=[&quot;git&quot; , &quot;clone&quot; , &quot;https://git-wip-us.apache.org/repos/asf/flex-site.git&quot;, &quot;target/asf-site&quot;]))

# 4. Checkout the &quot;asf-site&quot; branch
flexSiteJobFactory.addStep(ShellCommand(command=[&quot;git&quot; , &quot;checkout&quot; , &quot;asf-site&quot;], workdir=&quot;/home/buildslave/slave/maven-flex-site-build-dir/build/target/asf-site&quot;))

# 5. Copy content over from the &quot;target/staging&quot; to the &quot;target/asf-site&quot; directory
flexSiteJobFactory.addStep(ShellCommand(command=[&quot;cp&quot; , &quot;-a&quot; , &quot;/home/buildslave/slave/maven-flex-site-build-dir/build/target/site/.&quot;, &quot;/home/buildslave/slave/maven-flex-site-build-dir/build/target/asf-site/&quot;]))

# 6. Add all the updated files to the GIT stage
flexSiteJobFactory.addStep(ShellCommand(command=[&quot;git&quot; , &quot;add&quot; , &quot;.&quot;], workdir=&quot;/home/buildslave/slave/maven-flex-site-build-dir/build/target/asf-site&quot;))

# 7. Commit the staged changes
flexSiteJobFactory.addStep(ShellCommand(command=[&quot;git&quot; , &quot;commit&quot; , &quot;-m&quot; , &quot;Automatic Site Publish by Buildbot&quot;], workdir=&quot;/home/buildslave/slave/maven-flex-site-build-dir/build/target/asf-site&quot;))

# 8. Push the update back to the remot repo
flexSiteJobFactory.addStep(ShellCommand(command=[&quot;git&quot; , &quot;push&quot;, &quot;origin&quot;, &quot;asf-site&quot;], workdir=&quot;/home/buildslave/slave/maven-flex-site-build-dir/build/target/asf-site&quot;))


#########################################################################################
# Define the Builder
#########################################################################################

# Run the job with the name &quot;maven-flex-site&quot; on the agent with the name &quot;bb_slave1_ubuntu&quot;
# Use the working directory &quot;maven-flex-site-build-dir&quot; and report the outcome in the
# category &quot;maven-flex-site-category&quot;
flexSiteBuild = {'name': &quot;maven-flex-site&quot;,
      'slavename': &quot;bb_slave1_ubuntu&quot;,
      'builddir': &quot;maven-flex-site-build-dir&quot;,
      'factory': flexSiteJobFactory,
      'category': &quot;maven-flex-site-category&quot;,
     }



#########################################################################################
# Add the new flexSiteBuild to the other builders (
#########################################################################################

c['builders'].append(flexSiteBuild)



#########################################################################################
# Define how the status should be reported
#########################################################################################

c['status'].append(mail.MailNotifier(fromaddr=&quot;buildbot@apache.org&quot;,
                                      extraRecipients=[&quot;commits@flex.apache.org&quot;],
                                      sendToInterestedUsers=False,
                                      mode=&quot;change&quot;,
                                      categories=[&quot;maven-flex-site-category&quot;]))
</pre> 
  </div> 
 </div> 
 <p>In order to make <tt>buildbot</tt> find the new config, you need to add it to a file called <tt>projects.conf</tt> in the same directory as the config file. </p> 
 <p>As soon as you commit, <tt>buildbot</tt> will automatically process the config file and report any problems via Email.</p> 
 <p>In above script I defined a build-job called <tt>maven-flex-site</tt> so the url to view it’s state is:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://ci.apache.org/builders/maven-flex-site/
</pre> 
  </div> 
 </div> 
 <p>Unfortunately you can’t directly click on a button to run the build, but you can always trigger a build manually using IRC. In order to do this, you need to </p> 
 <ol style="list-style-type: decimal"> 
  <li>connect to the channel <tt>#asftest</tt> on a <tt>freenode</tt> IRC server (I used <tt>chat.freenode.net</tt>).</li> 
  <li>send the following message: <tt>pony-bot: force build maven-flex-site because ponies</tt></li> 
 </ol> 
 <p>(Don’t ask me about the ponies. I was told there are multiple bots listening and <tt>pony-bot</tt> is one that is able to trigger the build … and the <tt>because ponies</tt> makes Pono happy, because he seems to like ponies a lot ;-) )</p> 
 <p>At least after this you should see some results in the job overview page.</p> 
</div> 
<div class="section"> 
 <h2 id="Getting_the_site_online">Getting the site online</h2> 
 <p>The previous steps will have made sure an up-to-date version of the website is available in the <tt>asf-site</tt> branch of your GIT repo. In order to make it publicly available, you have to make sure <tt>gitpubsub</tt> is configured.</p> 
 <p>These settings are done in GIT. In contrast to the buildbot configuration this change however has to be done by one of the infra guys. To make things easier, I’ll document what has to be done however:</p> 
 <ol style="list-style-type: decimal"> 
  <li>Checkout the <tt>infrastructure-puppet</tt> GIT repo from: <a class="externalLink" href="https://git1-us-west.apache.org/repos/asf/infrastructure-puppet.git">https://git1-us-west.apache.org/repos/asf/infrastructure-puppet.git</a></li> 
  <li>Edit the file: <tt>modules/gitwcsub/files/config/gitwcsub.cfg</tt></li> 
  <li>Add a line to that file: <tt>/www/flex.apache.org/content/ng: flex-site</tt></li> 
 </ol> 
 <p>This will map the content of the <tt>asf-site</tt> branch of the <tt>flex-site.git</tt> repo to <tt>/www/flex.apache.org/content/ng</tt>. It seems that the web-server is configured to serve the <tt>content</tt> directory, that’s why we have to append the <tt>contenct</tt> to the end of the domain. It seems all the other projects do this differently, so don’t be confused.</p> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span4 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About Flex</li>
						<li >
							<a href="about-whatis.html" title="What is Flex?">What is Flex?</a>
						</li>
						<li >
							<a href="about-features.html" title="Features">Features</a>
						</li>
						<li >
							<a href=".html" title="Tour de Flex">Tour de Flex</a>
						</li>
						<li >
							<a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a>
						</li>
						<li >
							<a href="about-people.html" title="The Team">The Team</a>
						</li>
						<li >
							<a href="about-history.html" title="Project History">Project History</a>
						</li>
						<li >
							<a href="about-assets.html" title="Logo and Assets">Logo and Assets</a>
						</li>
						<li class="nav-header">Community</li>
						<li >
							<a href="community-getinvolved.html" title="How to get involved">How to get involved</a>
						</li>
						<li >
							<a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a>
						</li>
						<li >
							<a href="community-3rdparty.html" title="Third-Party">Third-Party</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a>
						</li>
					</ul>
				</div>
				<div class="span4 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Development</li>
						<li >
							<a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a>
						</li>
						<li >
							<a href="dev-sourcecode.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a>
						</li>
						<li class="nav-header">Documentation</li>
						<li >
							<a href="doc-getstarted.html" title="Getting Started">Getting Started</a>
						</li>
						<li >
							<a href="doc-videos.html" title="Videos">Videos</a>
						</li>
						<li >
							<a href=".html" title="Flex ASDocs">Flex ASDocs</a>
						</li>
						<li >
							<a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a>
						</li>
						<li >
							<a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a>
						</li>
						<li class="active">
							<a href="#" title="Contributing to the Flex Website">Contributing to the Flex Website</a>
						</li>
					</ul>
				</div>
				<div class="span4 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About Apache</li>
						<li >
							<a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a>
						</li>
						<li class="nav-header">Download Flex</li>
						<li >
							<a href="download-installer.html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a>
						</li>
						<li >
							<a href="download-source.html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a>
						</li>
						<li >
							<a href="download-binaries.html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a>
						</li>
						<li >
							<a href="download-flexjs.html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a>
						</li>
						<li >
							<a href="download-flexunit.html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a>
						</li>
						<li >
							<a href="download-blazeds.html" title="Blaze DS Source Code">Blaze DS Source Code</a>
						</li>
						<li >
							<a href="download-tourdeflex.html" title="Tour De Flex Source Code">Tour De Flex Source Code</a>
						</li>
						<li >
							<a href="download-squiggly.html" title="Squiggly Spell Checker">Squiggly Spell Checker</a>
						</li>
						<li >
							<a href="download-utilities.html" title="Flex Utilities">Flex Utilities</a>
						</li>
						<li >
							<a href="download-archive.html" title="Previous Versions">Previous Versions</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2016 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="./js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>
	<script src="http://yandex.st/highlightjs/7.5/highlight.min.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
