Read Me for TomTom SpeedTools Library
Copyright (C) 2012-2021, TomTom NV. All rights reserved.
SpeedTools is a collection of generic utilities, originally developed by Rijn Buve, Ruud Diterwich, Daan van Dijk and Andreas Wuest for a large commercial project.
The library was created to develop highly scalable web services, using Typesafe Akka, Google Guice and MongoDB, but many of the tools are usable in other contexts as well.
For documentation on what this library offers, have a look at the speedtools/src/site/markdown
directory, which is the entry point for the site documentation. It contains a list of all modules and APIs.
You can view the general documentation here:
http://tomtom-international.github.io/speedtools/
Or have a look at the JavaDoc API documentation at:
http://tomtom-international.github.io/speedtools/apidocs/index.html
The versioning scheme of the library starts at 3.0.0, because earlier releases exist were disclosed within TomTom only. From version 3.0.0 TomTom decided to contribute this library under the Apache License 2.0 to the open source community.
The test coverage of the project is unevenly distributed. Some of the modules have excellent test coverage in units tests, others lag a bit behind, or cannot be run without running, for example, a local MongoDB instance, or having access to secret API keys. Such unit tests have been marked as @Ignore
in the source tree, which brings the test coverage down. We welcome initiatives to increase the test coverage further. Most of the original code was suspect to strict code reviews.
There is an additional project speedtools-examples
with real-life examples of how to use the SpeedTools library. Check it out at https://github.com/tomtom-international/speedtools-examples
.
Happy coding!
Rijn Buve
TomTom NV
PS. For questions, issues and other remarks, you can contact me via email, or send a tweet to @rijnb.
License
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.
Using Git and .gitignore
It's good practice to set up a personal global .gitignore
file on your machine which filters a number of files on your file systems that you do not wish to submit to the Git repository. You can set up your own global ~/.gitignore
file by executing: git config --global core.excludesfile ~/.gitignore
In general, add the following file types to ~/.gitignore
(each entry should be on a separate line): *.com *.class *.dll *.exe *.o *.so *.log *.sql *.sqlite *.tlog *.epoch *.swp *.hprof *.hprof.index *.releaseBackup *~
If you're using a Mac, filter: .DS_Store* Thumbs.db
If you're using IntelliJ IDEA, filter: *.iml *.iws .idea/
If you're using Eclips, filter: .classpath .project .settings .cache
If you're using NetBeans, filter: nb-configuration.xml *.orig
The local .gitignore
file in the Git repository itself to reflect those file only that are produced by executing regular compile, build or release commands, such as: target/ out/
Bug Reports and New Feature Requests
If you encounter any problems with this library, don't hesitate to use the Issues
session to file your issues. Normally, one of our developers should be able to comment on them and fix.