The affected sources have drifted from import organization conventions
since the shared IDEA configuration was added in commit a155518. There
are several ways to avoid this in the future:
1. Run Code->Optimize Imports manually prior to making any commit (or
use the shortcut key).
2. Select 'Optimize Imports on the Fly' from
Preferences->Editor->General->Auto Import.
If IDEA is not being used, simply follow convention.
Trailing whitespace has crept into the sources affected by this commit
since the original stripping in commit e5fcf5b. Editors and IDEs should
be configured to strip trailing whitespace on save, or in any case
trailing whitespace should be manually stripped prior to commit/push.
Fix syntax for @author and @since tags, for the same reasons detailed in
commits 7d2cf7f and c38907b, respectively.
Recommendations:
- Disable automatic Javadoc templates completely within IDEA.
- Add Javadoc by hand when new classes are created.
- Follow the proper conventions for `@author` and `@since` tags.
- Do not add @since tags in src/test classes. Javadoc for these types
will never be generated or published, and developers can query
creation date metadata (more accurately) from git for these classes.
Note that in the future--particularly once ethereumj has its own
independent versioning--it will be desirable to use `@since` tags with
version values (for semantic versioning clarity, backward compatibility
analysis and communication, etc). Until then, the `@since DD.MM.YY`
approach will suffice.
In order to improve performance of certain VM functionality
Ethereum introduce plug-in mechanism called pre-compiled
contracts.
Supported functionality:
ecRecover - (addr: 01) - recover address out of hash, v, r, s - parameters.
sha256 - (addr: 02) - calculate hash value with sha256 algorithm
ripempd160 - (addr:03) - calculate hash value with repimpd algorithm
This is in order to accommodate GitHubStateTest#stSystemOperationsTest,
which tests Ethereum's rules around maximum call stack depth, and thus
requires increasing Java's own defaults.
If this option is not set, this test results in a
StackOverflowException. Note that the setting is applied to Gradle's
`test` closure as opposed to a the global `JAVA_OPTS` environment
variable, because Gradle spawns a new process for executing tests.
There is a known issue with Gradle's new `maven-publish` plugin that
causes all dependencies in the published pom to runtime-scoped [1]. This
causes conflicts with our use of Spring's `propdeps` Gradle plugin that
introduces optional and provided scopes.
This commit drops down to using Gradle's older, orginal `maven` plugin,
and JFrog's old-style `artifactory-publish` plugin in order to preserve
propdeps support.
This means removing JFrog's `bintray` plugin, as it appears to depend on
the `maven-publish` plugin. For the moment, ethereumj only really needs
to publish snapshots, and this is still supported. This is a stopgap
measure; it will be necessary to deal with getting uploads to
Bintray/JCenter working again once we're ready for a non-snapshot
release, but this can be dealt with later.
[1]: http://forums.gradle.org/gradle/topics/maven_publish_plugin_generated_pom_making_dependency_scope_runtime
- Organize imports using shared IDEA configuration
- Format sources, including:
- Normalize 4-space indentation
- Wrap at 120 char right margin
- Remove spaces around method arguments