forked from vmware-archive/IoT-ConnectedCar
-
Notifications
You must be signed in to change notification settings - Fork 0
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
0 parents
commit 22bc18f
Showing
229 changed files
with
71,653 additions
and
0 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,35 @@ | ||
target | ||
.classpath | ||
.project | ||
.settings | ||
bin | ||
build.log | ||
integration-repo | ||
ivy-cache | ||
spring-build | ||
derby-home | ||
derbydb | ||
derby.log | ||
derbydb | ||
com.springsource.sts.config.flow.prefs | ||
s3.properties | ||
.idea | ||
*.iml | ||
*.ipr | ||
*.iws | ||
.*.swp | ||
.DS_Store | ||
.springBeans | ||
build | ||
.gradle | ||
out | ||
logs | ||
vf.gf* | ||
spring-shell.log | ||
*.pyc | ||
IoT-Data-Science/PythonModel/Output/Models | ||
IoT-Data-Science/Data | ||
pyspark-docker | ||
IoT-Data-Science/PythonModel/metastore_db | ||
lib | ||
data |
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,199 @@ | ||
Contributor Guidelines | ||
====================== | ||
|
||
Have something you'd like to contribute to **Connected Car**? We welcome pull requests, but ask that you carefully read this document first to understand how best to submit them; what kind of changes are likely to be accepted; and what to expect from the Pivotal team when evaluating your submission. | ||
|
||
Please refer back to this document as a checklist before issuing any pull request; this will save time for everyone! | ||
|
||
## Understand the basics | ||
|
||
Not sure what a *pull request* is, or how to submit one? Take a look at GitHub's excellent [help documentation][] first. | ||
|
||
## Search Github first; create an issue if necessary | ||
|
||
Is there already an issue that addresses your concern? Do a bit of searching in our [Github issue tracker][] to see if you can find something similar. If not, please create a new issue before submitting a pull request unless the change is truly trivial, e.g. typo fixes, removing compiler warnings, etc. | ||
|
||
## Fork the Repository | ||
|
||
1. Go to [https://github.com/Pivotal-Field-Engineering/IoT-ConnectedCar](https://github.com/Pivotal-Field-Engineering/IoT-ConnectedCar) | ||
2. Hit the "fork" button and choose your own github account as the target | ||
3. For more details see [http://help.github.com/fork-a-repo/](http://help.github.com/fork-a-repo/) | ||
|
||
## Setup your Local Development Environment | ||
|
||
1. `git clone [email protected]:<your-github-username>/IoT-ConnectedCar.git` | ||
2. `cd IoT-ConnectedCar` | ||
3. `git remote show` | ||
_you should see only 'origin' - which is the fork you created for your own github account_ | ||
4. `git remote add upstream [email protected]:Pivotal-Field-Engineering/IoT-ConnectedCar.git` | ||
5. `git remote show` | ||
_you should now see 'upstream' in addition to 'origin' where 'upstream' is the *Pivotal-Field-Engineering*repository from which releases are built_ | ||
6. `git fetch --all` | ||
7. `git branch -a` | ||
_you should see branches on origin as well as upstream, including 'master'_ | ||
|
||
## A Day in the Life of a Contributor | ||
|
||
* _Always_ work on topic branches (Typically use the Github ticket ID as the branch name). | ||
- For example, to create and switch to a new branch for issue CC-123: `git checkout -b CC-123` | ||
* You might be working on several different topic branches at any given time, but when at a stopping point for one of those branches, commit (a local operation). | ||
* Please follow the "Commit Guidelines" described in this chapter of Pro Git: [http://progit.org/book/ch5-2.html](http://progit.org/book/ch5-2.html) | ||
* Then to begin working on another issue (say CC-101): `git checkout CC-101`. The _-b_ flag is not needed if that branch already exists in your local repository. | ||
* When ready to resolve an issue or to collaborate with others, you can push your branch to origin (your fork), e.g.: `git push origin CC-123` | ||
* If you want to collaborate with another contributor, have them fork your repository (add it as a remote) and `git fetch <your-username>` to grab your branch. Alternatively, they can use `git fetch --all` to sync their local state with all of their remotes. | ||
* If you grant that collaborator push access to your repository, they can even apply their changes to your branch. | ||
* When ready for your contribution to be reviewed for potential inclusion in the master branch of the canonical *Pivotal-Field-Engineering* repository (what you know as 'upstream'), issue a pull request to the *Pivotal-Field-Engineering* repository (for more detail, see [http://help.github.com/send-pull-requests/](http://help.github.com/send-pull-requests/)). | ||
* The project lead may merge your changes into the upstream master branch as-is, he may keep the pull request open yet add a comment about something that should be modified, or he might reject the pull request by closing it. | ||
* A prerequisite for any pull request is that it will be cleanly merge-able with the upstream master's current state. **This is the responsibility of any contributor.** If your pull request cannot be applied cleanly, the project lead will most likely add a comment requesting that you make it merge-able. For a full explanation, see the Pro Git section on rebasing: [http://progit.org/book/ch3-6.html](http://progit.org/book/ch3-6.html). As stated there: "> Often, you’ll do this to make sure your commits apply cleanly on a remote branch — perhaps in a project to which you’re trying to contribute but that you don’t maintain." | ||
|
||
## Keeping your Local Code in Sync | ||
* As mentioned above, you should always work on topic branches (since 'master' is a moving target). However, you do want to always keep your own 'origin' master branch in synch with the 'upstream' master. | ||
* Within your local working directory, you can sync up all remotes' branches with: `git fetch --all` | ||
* While on your own local master branch: `git pull upstream master` (which is the equivalent of fetching upstream/master and merging that into the branch you are in currently) | ||
* Now that you're in synch, switch to the topic branch where you plan to work, e.g.: `git checkout -b CC-123` | ||
* When you get to a stopping point: `git commit` | ||
* If changes have occurred on the upstream/master while you were working you can synch again: | ||
- Switch back to master: `git checkout master` | ||
- Then: `git pull upstream master` | ||
- Switch back to the topic branch: `git checkout CC-123` (no -b needed since the branch already exists) | ||
- Rebase the topic branch to minimize the distance between it and your recently synched master branch: `git rebase master` | ||
(Again, for more detail see the Pro Git section on rebasing: [http://progit.org/book/ch3-6.html](http://progit.org/book/ch3-6.html)) | ||
* **Note** You cannot rebase if you have already pushed your branch to your remote because you'd be rewriting history (see **'The Perils of Rebasing'** in the article). If you rebase by mistake, you can undo it as discussed [in this stackoverflow discussion](http://stackoverflow.com/questions/134882/undoing-a-git-rebase). Once you have published your branch, you need to merge in the master rather than rebasing. | ||
* Now, if you issue a pull request, it is much more likely to be merged without conflicts. Most likely, any pull request that would produce conflicts will be deferred until the issuer of that pull request makes these adjustments. | ||
* Assuming your pull request is merged into the 'upstream' master, you will actually end up pulling that change into your own master eventually, and at that time, you may decide to delete the topic branch from your local repository and your fork (origin) if you pushed it there. | ||
- to delete the local branch: `git branch -d CC-123` | ||
- to delete the branch from your origin: `git push origin :CC-123` | ||
|
||
## Maintain a linear commit history | ||
|
||
When issuing pull requests, please ensure that your commit history is linear. From the command line you can check this using: | ||
|
||
```` | ||
log --graph --pretty=oneline | ||
```` | ||
|
||
As this may cause lots of typing, we recommend creating a global alias, e.g. `git logg` for this: | ||
|
||
```` | ||
git config --global alias.logg 'log --graph --pretty=oneline' | ||
```` | ||
|
||
This command, will provide the following output, which in this case shows a nice linear history: | ||
|
||
```` | ||
* 930406ed0bb220e9ca72daf09eec02ee4ca788f4 Added README.md for POC module | ||
* 7886a74c5825644495dd3fc7cf240f1abba05ac4 Fixed averaging and automatic restart for stream prediction | ||
* 697f6347ee1a18af1fbeb5cf0aca4733144194ac Updated paths for simulator to reflect new version of the VM | ||
* 64a947230cdb1b51271ff1737979e4abef2b1562 Fixed DataFilter script and start_dashboard.sh | ||
* ad3f05e2725200fc8e359315035c40425295432a Fixed port configuration for dashboard | ||
* 35d7c70a3d2956053f5e2e9b2b219cb094d81d4b Fixed scripts to match code refactoring | ||
```` | ||
If you see intersecting lines, that usually means that you forgot to rebase you branch. As mentioned earlier, **please rebase against master** before issuing a pull request. | ||
|
||
## Mind the whitespace | ||
|
||
Please carefully follow the whitespace and formatting conventions already present in the framework. | ||
|
||
1. Tabs, not spaces | ||
2. Unix (LF), not DOS (CRLF) line endings | ||
3. Eliminate all trailing whitespace | ||
4. Wrap Javadoc at 90 characters | ||
5. Aim to wrap code at 90 characters, but favor readability over wrapping | ||
6. Preserve existing formatting; i.e. do not reformat code for its own sake | ||
7. Search the codebase using `git grep` and other tools to discover common | ||
naming conventions, etc. | ||
8. Latin-1 (ISO-8859-1) encoding for Java sources; use `native2ascii` to convert | ||
if necessary | ||
|
||
## Add Apache license header to all new classes | ||
|
||
```java | ||
/* | ||
* Copyright 2002-2013 the original author or authors. | ||
* | ||
* Licensed 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. | ||
*/ | ||
|
||
package ...; | ||
``` | ||
|
||
## Update license header to modified files as necessary | ||
|
||
Always check the date range in the Apache license header. For example, if you've modified a file in 2013 whose header still reads | ||
|
||
```java | ||
* Copyright 2002-2011 the original author or authors. | ||
``` | ||
|
||
then be sure to update it to 2013 appropriately | ||
|
||
```java | ||
* Copyright 2002-2013 the original author or authors. | ||
``` | ||
|
||
## Use @since tags | ||
|
||
Use @since tags for newly-added public API types and methods e.g. | ||
|
||
```java | ||
/** | ||
* ... | ||
* | ||
* @author First Last | ||
* @since 3.0 | ||
* @see ... | ||
*/ | ||
``` | ||
|
||
## Submit JUnit test cases for all behavior changes | ||
|
||
Search the codebase to find related unit tests and add additional @Test methods within. It is also acceptable to submit test cases on a per Github issue basis. | ||
|
||
## Squash commits | ||
|
||
Use `git rebase --interactive`, `git add --patch` and other tools to "squash" multiple commits into atomic changes. In addition to the man pages for git, there are many resources online to help you understand how these tools work. Here is one: http://book.git-scm.com/4_interactive_rebasing.html. | ||
|
||
## Use your real name in git commits | ||
|
||
Please configure git to use your real first and last name for any commits you intend to submit as pull requests. For example, this is not acceptable: | ||
|
||
Author: Nickname <[email protected]> | ||
|
||
Rather, please include your first and last name, properly capitalized: | ||
|
||
Author: First Last <[email protected]> | ||
|
||
This goes a long way to ensuring useful output from tools like `git shortlog` and others. | ||
|
||
You can configure this globally via the account admin area GitHub (useful for fork-and-edit cases); globally with | ||
|
||
git config --global user.name "First Last" | ||
git config --global user.email [email protected] | ||
|
||
or locally for the *IoT-ConnectedCar repository only by omitting the '--global' flag: | ||
|
||
cd IoT-ConnectedCar | ||
git config user.name "First Last" | ||
git config user.email [email protected] | ||
|
||
## Run all tests prior to submission | ||
|
||
See the [checking out and building][] section of the README for instructions. Make sure that all tests pass prior to submitting your pull request. | ||
|
||
## Mention your pull request on the associated Github issue | ||
|
||
Add a comment to the associated Github issue(s) linking to your new pull request. | ||
|
||
[help documentation]: http://help.github.com/send-pull-requests | ||
[Github issue tracker]: https://github.com/Pivotal-Field-Engineering/IoT-ConnectedCar/issues | ||
[checking out and building]: https://github.com/Pivotal-Field-Engineering/IoT-ConnectedCar#building-from-source |
Empty file.
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,17 @@ | ||
# Connected Car Simulator | ||
This module consists of a Spring Batch job that can read a recorded journey (recorded in | ||
JSON format) and "replay" it. The batch job is built as a Spring Boot über jar so all you | ||
need to do to execute the job is build the module and execute the following command: | ||
|
||
``` | ||
$ java -jar IoT-CarSimulator.jar inputFile=<PATH_TO_INPUT> delay=<DELAY_IN_MILLISECONDS> | ||
``` | ||
|
||
The `<PATH_TO_INPUT>` is the path to the input file in the same format as the test | ||
input file found in `src/test/resources/data`. The `<DELAY_IN_MILLISECONDS>` is the | ||
delay between sending each record. The iOS app used in the demo (Herbie) sends data once | ||
a second, but it can be useful to speed things along for testing, etc. | ||
|
||
# References | ||
* [Spring Batch](https://spring.io/projects/spring-batch) | ||
* [Spring Boot](https://spring.io/projects/spring-boot) |
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,35 @@ | ||
/* | ||
* Copyright 2014-2015 the original author or authors. | ||
* | ||
* Licensed 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. | ||
*/ | ||
package com.acmemotors; | ||
|
||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
|
||
/** | ||
* To execute the simulator run the following command: | ||
* <code> | ||
* $ java -jar IoT-CarSimulator.jar inputFile=<PATH_TO_INPUT> delay=<DELAY_IN_MILLISECONDS> | ||
* </code> | ||
* | ||
* @author George Foster | ||
* @author Michael Minella | ||
*/ | ||
@SpringBootApplication | ||
public class Main { | ||
public static void main(String[] args) throws Exception { | ||
SpringApplication.run(Main.class, args); | ||
} | ||
} |
Oops, something went wrong.