Skip to content
This repository has been archived by the owner on Aug 4, 2022. It is now read-only.

Commit

Permalink
[REEF-90]: Migrate REEF website code from a private repo to REEF repo
Browse files Browse the repository at this point in the history
This addressed the issue by

 * Modifying the pom.xml file of $REEF_HOME to exclude README.* files in all
   directories when using `mvn apache-rat:check`
 * Adding a directory labelled `website` which contains the source code for the
   REEF website
 * Adding license headers to all website/src/* files except README.md
 * Adding the parent artifact and groupID and artifactID for REEF inside the
   website project's pom.xml file

JIRA:
  [REEF-90] https://issues.apache.org/jira/browse/REEF-90

Pull Request:
  This closes #66
  • Loading branch information
joshuaseol authored and Markus Weimer committed Feb 5, 2015
1 parent 9defe61 commit fa77cc6
Show file tree
Hide file tree
Showing 27 changed files with 2,195 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ under the License.
<exclude>lang/java/.idea/**</exclude>
<exclude>**/*.iml</exclude>
<exclude>**/target/**</exclude>
<exclude>README.*</exclude>
<exclude>**/README.*</exclude>
<!-- The below are sometimes created during tests -->
<exclude>REEF_LOCAL_RUNTIME/**</exclude>
<!-- The Visual Studio build files -->
Expand Down
24 changes: 24 additions & 0 deletions website/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Website
===========

##Instructions

####Generating the HTML files

Navigate to the {$REEF_HOME}/website directory then use the command:

mvn clean site:site

This will generate a directory named "target" and inside, there will be a directory named "site". The site folder contains all files required for the website and index.html is the default page shown when the domain is first accessed.

####Generating the Javadocs files for REEF

Navigate to {$REEF_HOME} then use the command:

mvn javadoc:aggregate

This will create a directory named "apidocs" which includes all the necessary Javadocs for REEF.

####Combining the HTML files with Javadocs files

The site.xml file automatically searches for the apidocs at `apidocs/{$REEF_VERSION}/index.html`. When copying the apidocs to the svn, it is crucial to use this exact path because multiple index.html's exist and they must be referenced without ambiguity.
57 changes: 57 additions & 0 deletions website/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>website</artifactId>
<name>REEF Website</name>
<parent>
<groupId>org.apache.reef</groupId>
<artifactId>reef-project</artifactId>
<version>0.11.0-incubating-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>

<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<configuration>
<skipDeploy>true</skipDeploy>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
88 changes: 88 additions & 0 deletions website/src/site/apt/team.apt
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
------
Team
------
------

~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0

~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied. See the License for the
~~ specific language governing permissions and limitations
~~ under the License.

Team

A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

The team is comprised of Project Management Committee Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

* Mentors

*------------*-------------------------*
<<ID>> | <<Full Name>>
*------------*-------------------------*
cdouglas | Chris Douglas
*------------*-------------------------*
mattmann | Chris Mattmann
*------------*-------------------------*
rgardler | Ross Gardler
*------------*-------------------------*
omalley | Owen O'Malley
*------------*-------------------------*


*Committers

*------------*--------------------------*---------------------------*
<<ID>> || <<Full Name>> || <<Affiliation(s)>> |
*------------*--------------------------*---------------------------*
weimer | Markus Weimer | Microsoft |
*------------*--------------------------*---------------------------*
motus | Sergiy Matusevych | Microsoft |
*------------*--------------------------*---------------------------*
juliaw | Julia Wang | Microsoft |
*------------*--------------------------*---------------------------*
shravan | Shravan M Narayanamurthy | Microsoft |
*------------*--------------------------*---------------------------*
yingdachen | Yingda Chen | Microsoft |
*------------*--------------------------*---------------------------*
tmajest | Tony Majestro | Microsoft |
*------------*--------------------------*---------------------------*
sezgin | Beysim Sezgin | Microsoft |
*------------*--------------------------*---------------------------*
shulmanb | Boris Shulman | Microsoft |
*------------*--------------------------*---------------------------*
sears | Russell Sears | Purestorage |
*------------*--------------------------*---------------------------*
jrlee | Jung Ryong Lee | SK Telecom |
*------------*--------------------------*---------------------------*
jerryjung | You Sun Jung | SK Telecom |
*------------*--------------------------*---------------------------*
dongjoon | Dong Joon Hyun | SK Telecom |
*------------*--------------------------*---------------------------*
joshrosen | Josh Rosen | UC Berekely |
*------------*--------------------------*---------------------------*
tcondie | Tyson Condie | UCLA |
*------------*--------------------------*---------------------------*
bmyers | Brandon Myers | University of Washington |
*------------*--------------------------*---------------------------*
yunseong | Yunseong Lee | Seoul National University |
*------------*--------------------------*---------------------------*
taegeonum | Taegeon Um | Seoul National University |
*------------*--------------------------*---------------------------*
johnyangk | Youngseok Yang | Seoul National University |
*------------*--------------------------*---------------------------*
chobrian | Brian Cho | Seoul National University |
*------------*--------------------------*---------------------------*
bgchun | Byung-Gon Chun | Seoul National University |
*------------*--------------------------*---------------------------*
21 changes: 21 additions & 0 deletions website/src/site/markdown/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
#API

- [0.10.0-incubating](apidocs/0.10.0-incubating/index.html)
51 changes: 51 additions & 0 deletions website/src/site/markdown/coding-guideline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
#Coding Guidelines

###The Basics

We largely follow [Hadoop coding guidelines](http://wiki.apache.org/hadoop/CodeReviewChecklist):

- Use 2 (TWO) spaces to indent code.
- Use LF (Unix style) line endings.
- Do **not** use the `@author` Javadoc tag. (Be modest ! :-))
- For the rest, follow the original [Sun Java coding conventions](http://www.oracle.com/technetwork/java/codeconvtoc-136057.html).
- If some file has different formatting, try to match the existing style.
- Use [CheckStyle](http://checkstyle.sourceforge.net/) to verify your coding style.
- Avoid mixing both style and functionality changes in one commit.
- Make sure all files have the needed [license header](http://www.apache.org/legal/src-headers.html).

###Comments

We require committers to add comments to generate proper javadoc pages. In addition to this requirement, we encourage committers to add comments (if needed) to make code easier to understand.

- Class
- Interface
- Public constructor
- Public method
- Important fields
- Code part that captures complex logic

###On immutability of why you should make everything final

REEF favors immutable objects over mutable ones. When you browse the code base, you see that there is an enormous number of final and readonly modifiers used. The reason for this stems from the distributed and parallel nature of REEF: What cannot be changed doesn't have to be guarded with locks. Hence, immutability is an excellent tool to achieve both thread safety and performance. Following this line of thought, we arrive at the following guidelines:

- Make all instance variables possible `final`.
- Use the [Java Concurrency in Practice annotations](http://jcip.net.s3-website-us-east-1.amazonaws.com/) for the instance variables that aren't `final`.
- When a class has more than 3 non-`final` instance variables, consider breaking the class in two to limit the lock complexity.
Loading

0 comments on commit fa77cc6

Please sign in to comment.