-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Brian Oliver
committed
Jun 7, 2016
1 parent
763a633
commit f045479
Showing
107 changed files
with
77,350 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
Contributing to the Oracle Coherence Demonstration | ||
================================================== | ||
|
||
_Copyright (c) 2014, 2016 Oracle and/or its affiliates The Universal Permissive License (UPL), Version 1.0_ | ||
|
||
<h4>Becoming a Contributor</h4> | ||
|
||
Contributing to the Coherence Demonstration can be done in various ways, each of which is | ||
valuable to the Java and Oracle Coherence Community. Contributions may | ||
include helping out by answering questions on the forums, isolating and submitting | ||
defects resolution requests, proposing or submitting defect resolutions (fixes), | ||
suggesting or building enhancements, introducing new features and improving tests | ||
and documentation. | ||
|
||
For all contributions that involve making a change to the source tree and thus | ||
releasing a new build of the Coherence Demonstration, those primarily | ||
being a defect fix, enhancement, new feature or documentation improvement, all | ||
non-Oracle contributors must complete and sign the | ||
[Oracle Contributors Agreement](http://oss.oracle.com/oca.pdf). | ||
|
||
To do this, simply print out the form, fill in the necessary details, scan it | ||
in and return via email to: oracle-ca_us [at] oracle [dot] com. | ||
|
||
**Note 1:** For the "Project Name:" please write "Coherence Demonstration". | ||
|
||
**Note 2:** This is the same agreement used for making contributions to GlassFish, | ||
Open Solaris and the Open Java itself. If you already have executed this | ||
agreement then you're ready to contribute to the Coherence Demonstration. | ||
|
||
Should you have any questions regarding this agreement, you should consult the | ||
[Oracle Contributors Agreement FAQ](http://www.oracle.com/technetwork/oca-faq-405384.pdf) | ||
|
||
<h4>Roles and Responsibilities</h4> | ||
|
||
As mentioned above, there are quite a few ways to contribute to the Coherence | ||
Demonstration, and not all of them involve contributing source code! Simply using | ||
the software, participating on mailing lists or forums, filing bug reports or | ||
enhancement requests are an incredibly valuable form of participation. | ||
|
||
The typical roles and responsibilities for contributors to the Coherence Demonstration | ||
project are often categorized as follows: | ||
|
||
Users, Contributors, Committers, Maintainers, and Project Leads. | ||
|
||
**Users:** | ||
|
||
Users are the people who use the software. Users are using the software, reporting | ||
bugs, making feature requests and suggestions. This is by far the most important | ||
category of people. Without users, there is no reason for the project. | ||
|
||
*How to become one:* Download the software and use it to build an application. | ||
|
||
**Contributors:** | ||
|
||
Contributors are individuals who contribute to an Coherence Demonstration project, | ||
but do not have write access to the source tree. Contributions can be in the form of | ||
source code patches, new code, or bug reports, but could also include documentation | ||
content like articles, FAQs, or screenshots. | ||
|
||
A contributor who has sent in beneficial source code patches on a project | ||
can be elevated to Committer status by a Maintainer. | ||
|
||
Integration of a Contributor submissions done at the discretion of a Maintainer, | ||
but this is an iterative, communicative process. Note that for code to be | ||
integrated, a completed Oracle Contribution Agreement is required from | ||
each contributor. | ||
|
||
*How to become one:* Contribute in any of the ways described above: either code, | ||
examples, web site updates, tests, bugs, and patches. If you're interested in | ||
becoming a Committer to the source base, get the sources to the project, make | ||
an improvement or fix a bug, and send that code to the developers using a Pull Request | ||
or attach it to the bug report in the issue tracking system. | ||
|
||
**Committers:** | ||
|
||
Committers are individuals that have had Pull Requests for their contributions accepted. | ||
|
||
Rules for how , once you have commit access, will vary by project and | ||
module. Be sure to ask before you start making changes! | ||
|
||
*How to become one:* Submit Pull Requests, and ask the Maintainer of | ||
the code to review and accept the changes. The Maintainer will review the changes | ||
and seek consensus with other Maintainers and committers. | ||
|
||
**Maintainers:** | ||
|
||
Each module has one Maintainer, who has check-in permissions (either for that | ||
module or globally), and "manages" a group of Committers. They are responsible | ||
for reviewing contributed Pull Requests, bug fixes, and new code from the development | ||
branch of the source tree into the stable branch. Maintainers are responsible | ||
for making sure that these contributions do not break the build. | ||
|
||
The Maintainer is also responsible for ensuring everyone who contributes | ||
has submitted an Oracle Contribution Agreement. | ||
|
||
A Maintainer is responsible for their module, and for accepting Pull Requests | ||
from Contributors. They also act as the "police force" of the module, | ||
helping to ensure quality across the build. | ||
|
||
*How to become one:* | ||
|
||
- Start a module (you need to have written some working code on your project | ||
to do this, you'll also need to talk to the Project Lead). | ||
|
||
- Have responsibility for that module handed over to you from the current Maintainer. | ||
|
||
- Take over an abandoned project--sometimes someone starts something, but for | ||
one reason or another can't continue to work on it. If it's interesting to you, | ||
volunteer! | ||
|
||
**Project Lead:** | ||
|
||
The Coherence Demonstration has several Project Leads. | ||
|
||
The Project Leads are currently appointed by Oracle. They are responsible for | ||
managing the entire project, helping to create policies by consensus that | ||
ensure global quality. | ||
|
||
<h4>Making a Contribution</h4> | ||
|
||
All contributors are required to be a Committer in order to commit | ||
contributions to the Coherence Demonstration, including documentation. | ||
|
||
To become a Committer you must first clearly demonstrate both | ||
skill as a developer and be capable of strictly adhering to the quality | ||
and architectural requirements of the Coherence Demonstration. In order | ||
to demonstrate these abilities, it's best to get started by submitting Pull Requests | ||
and then asking the Maintainer or Project Lead to review said changes, after which | ||
they may be accepted and submitted (either by the Maintainer or Project Lead). | ||
|
||
Like all large projects, the Coherence Demonstration employs strict coding | ||
guidelines. For the most part these are easily automated using the preferred | ||
tool called [JIndent](http://www.jindent.com). A JIndent style-template for | ||
the Coherence Demonstration is located in the documents folder of the source tree. | ||
|
||
**Note:** Oracle does not supply licenses for JIndent. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# Oracle Coherence Demo | ||
|
||
You may not use the identified files except in compliance with the | ||
Universal Permissive License (UPL), Version 1.0 (the "License.") | ||
|
||
You may obtain a copy of the License at | ||
https://opensource.org/licenses/UPL. A copy of the license is | ||
also reproduced below. | ||
|
||
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. | ||
|
||
``` | ||
Copyright (c) 2015, 2016 Oracle and/or its affiliates | ||
The Universal Permissive License (UPL), Version 1.0 | ||
Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this | ||
software, associated documentation and/or data (collectively the "Software"), free of charge and under any and | ||
all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor | ||
hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) | ||
the Larger Works (as defined below), to deal in both | ||
(a) the Software, and | ||
(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software | ||
(each a “Larger Work” to which the Software is contributed by such licensors), | ||
without restriction, including without limitation the rights to copy, create derivative works of, display, | ||
perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have | ||
sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. | ||
This license is subject to the following condition: | ||
The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must | ||
be included in all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO | ||
THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,146 @@ | ||
# coherence-demo | ||
The Coherence Demonstration | ||
Oracle Coherence Demonstration | ||
============================== | ||
|
||
Overview | ||
-------- | ||
|
||
This document describes how to build and run the Coherence Demonstration application. | ||
Building the application results in a single self-contained jar as well as javadoc and source. | ||
The demonstration showcases Coherence general features, scalability capabilities as well as new 12.2.1 | ||
features including: | ||
|
||
Cache Persistence | ||
Federation | ||
Java 8 Support | ||
|
||
The demonstration uses AngularJS 1.4.1, Bootstrap 3.3.4 as well as a number of other | ||
frameworks. The UI interacts with Coherence using REST. | ||
|
||
Prerequisites | ||
------------- | ||
|
||
In order to run the demonstration you must have the following installed: | ||
1. Java 8 SE Development Kit or Runtime environment. | ||
|
||
You can download the software from: | ||
- Java SE Development Kit - http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html | ||
- JAVA SE Runtime Environment - http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html | ||
|
||
2. Maven version 3.2.5 or above installed and configured. | ||
3. Coherence 12.2.1.0.2 or above installed. | ||
If you wish to demonstrate the the Coherence JVisualVM Plug-in, follow the instructions | ||
below to install: | ||
https://docs.oracle.com/middleware/1221/coherence/manage/jmx.htm#COHMG5582 | ||
4. You must use a browser that supports AngularJS to run this application. As of | ||
writing this, the following are supported: | ||
Safari, Chrome, Firefox, Opera 15, IE9 and mobile browsers (Android, Chrome Mobile, iOS Safari). | ||
|
||
For more information on browser compatibility see https://code.angularjs.org/1.4.1/docs/misc/faq. | ||
|
||
Ensure the following environment variables are set: | ||
|
||
JAVA_HOME | ||
Make sure that the JAVA_HOME environment variable points to the location of a JDK supported by the | ||
Oracle Coherence version you are using. | ||
|
||
COHERENCE_HOME | ||
Make sure COHERENCE_HOME is set to point to your Coherence install directory. | ||
This is only required for the Maven install-file commands. | ||
|
||
MAVEN_HOME | ||
If mvn command is not in your path then you should set MAVEN_HOME and then add MAVEN_HOME\bin to your PATH | ||
in a similar way to Java being added to the path below. | ||
|
||
You must also ensure the java command is in the path. | ||
E.g. for Linux/UNIX: | ||
export PATH=$JAVA_HOME/bin:$PATH | ||
|
||
For Windows: | ||
set PATH=%JAVA_HOME%\bin;%PATH% | ||
|
||
You must have Coherence and Coherence-REST installed into your local maven repository. If you | ||
do not, then carry out the following, replacing the version number with the version | ||
of Coherence you have installed. | ||
|
||
E.g. for Linux/UNIX/Mac: | ||
|
||
mvn install:install-file -Dfile=$COHERENCE_HOME/lib/coherence.jar -DpomFile=$COHERENCE_HOME/plugins/maven/com/oracle/coherence/coherence/12.2.1/coherence.12.2.1.pom | ||
mvn install:install-file -Dfile=$COHERENCE_HOME/lib/coherence-rest.jar -DpomFile=$COHERENCE_HOME/plugins/maven/com/oracle/coherence/coherence-rest/12.2.1/coherence-rest.12.2.1.pom | ||
|
||
E.g. for Windows: | ||
|
||
mvn install:install-file -Dfile=%COHERENCE_HOME%\lib\coherence.jar -DpomFile=%COHERENCE_HOME%\plugins\maven\com\oracle\coherence\coherence\12.2.1\coherence.12.2.1.pom | ||
mvn install:install-file -Dfile=%COHERENCE_HOME%\lib\coherence-rest.jar -DpomFile=%COHERENCE_HOME%\plugins\maven\com\oracle\coherence\coherence-rest\12.2.1\coherence-rest.12.2.1.pom | ||
|
||
Note: You may need to specify your settings.xml file by adding the following to download | ||
required dependencies. | ||
|
||
"mvn -s /path/to/settings.xml ..." | ||
|
||
Build Instructions | ||
------------------ | ||
Build the Coherence Demonstration by using: | ||
"mvn clean install" | ||
|
||
The target directory will contain a number of files: | ||
- coherence-demo-2.0.0.jar - Executable JAR file, see instructions below | ||
- coherence-demo-2.0.0-javadoc.jar - javadoc | ||
- coherence-demo-2.0.0-sources.jar - sources | ||
|
||
Run Instructions | ||
---------------- | ||
Ensuring you have Java 8 in the PATH for your operating system, simply run the following: | ||
|
||
java -jar target/coherence-demo-2.0.0.jar | ||
|
||
This command will startup a Coherence cache server as well as HTTP server on port 8080 for | ||
serving REST and application data. Once the cache server starts, the default browser | ||
will be opened up to http://127.0.0.1:8080/application/index.html and the application will | ||
load. (If you wish to change the port used, see below.) | ||
|
||
The following features are available to demonstrate: | ||
- Dynamically add/ remove cluster members and observing the data repartition and recover automatically. | ||
- Create and Recover snapshots via the "Persistence" menu. | ||
- Enable Real-Time price updates | ||
- Enable/ Disable indexes for queries | ||
- Add additional data, clear the cache or populate the cache from the "Tools" menu | ||
- Start JVisualVM from the "Tools" menu. | ||
|
||
- Start a secondary cluster via the "Federation" menu. | ||
- Pause and resume replication to secondary cluster | ||
- Issue replicate all to secondary cluster | ||
- Open secondary cluster dashboard to observe changes being replicated | ||
- Stop Federation and shutdown secondary cluster | ||
Note: If you recover a snapshot on a cluster you must replicate all to re-sync. | ||
|
||
To shutdown the application use the "Shutdown" option from the "Tools" menu. | ||
This will shutdown all processes including the secondary cluster if started. | ||
|
||
Note: Secondary cluster may not form if you are running on a VPN due to security restrictions. | ||
|
||
Modifying the Defaults | ||
---------------------- | ||
HTTP Ports and hostname | ||
The default HTTP hostname is 127.0.0.1 and default port is 8080. To modify these you can | ||
add the http.hostname or http.port properties on startup: | ||
|
||
java -Dhttp.hostname=myhostname -Dhttp.port=9000 -jar coherence-demo-2.0.0.jar | ||
|
||
By changing the http.hostname you will be able to access the application outside of | ||
your local machine. | ||
|
||
Default Cluster Names | ||
When starting up the application the timezone is analyzed and some sensible defaults | ||
for primary and secondary cluster names are chosen (see Launcher.java). If you wish to | ||
sepcify your own, you can do the following: | ||
|
||
java -Dprimary.cluster=NewYork -Dsecondary.cluster=Boston -jar coherence-demo-2.0.0.jar | ||
|
||
If you wish to use a cluster name with a space you must enclose it in quotes. | ||
|
||
References | ||
---------- | ||
For more information on Oracle Coherence, please see the following links: | ||
- Download Coherence - http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html | ||
- Coherence Documentation - http://docs.oracle.com/middleware/1221/coherence/index.html | ||
- Coherence Community - http://coherence.java.net/ |
Oops, something went wrong.