This partially reverts commit c95f5ea, restoring use of Java 8 language
features and APIs to ethereumj-studio, while leaving etherumj-core
pinned to the Java 7 language level for Dalvik compatibility reasons.
For further details, see the prior commit and
https://github.com/ethereum/ethereumj/commit/c95f5ea#commitcomment-9119435.
Add .idea/codeStyleSettings.xml with explicit settings for each
2nd-level package used within ethereumj, adding a separator between
each (unfortunately there is no other way to gain this level of control
in IDEA).
Imports are generally in alphabetical order, with two key exceptions:
- org.ethereumj.* imports are always sorted at top, to simplify the
process of seeing how one ethereumj type relates to all others. This is
especially useful in the practice of avoiding cyclic package
dependencies.
- java.* and javax.* and sun.* imports are always sorted at bottom.
Wildcard imports are used for static imports whenever two or more
members of the same type are statically imported, but wildcards are
never used for non-static imports. This policy of explicitness helps
identify classes that are too "fat", i.e. have too many dependencies on
other types.
The root .gitignore file has been updated to allow
.idea/codeStyleSettings.xml, so as to automatically share it with other
team members. Any changes made to import organization settings will be
reflected in this file and should be checked in.
See updated ethereumj-studio/README.md for details. Note that this
commit removes the `build-post-package.xml` ant file (for now) to
simplify the Gradle arrangement. This functionality can be re-introduced
later and more simply using Gradle's native DSL. In the meantime, both
the -core and -studio projects can be run using `gradle run` or run as
executable jars by running `gradle shadowJar` followed by the usual
`java -jar` execution of the resulting `-all` jar file found in each
project's respective `build/libs` directory.
- Convert ethereumj-studio build from Maven to Gradle as well
- Extract common build elements to top-level build.gradle
- Update top-level README accordingly
Block#getMinGasPrice and Blockchain#getGasPrice were removed in commit
aad53ba, causing compilation failures in ethereumj-studio when building
against current master of ethereumj-core. As it is unclear whether these
methods have proper replacements, this commit simply replaces calls to
these now-missing methods with the value `42`. Obviously this is a
stopgap measure and should be addressed properly as soon as possible.
Prior to this change, the affected classes had Javadoc containing a url
as the first sentence. There were several issues with this:
- The url used was inconsistent, varying between www.etherj.com,
www.ethereumj.com and www.ethergit.com
- Use of a url in the first sentence of a Javadoc comment is not
consistent with Javadoc idioms. The first sentence should be the
a short, self-contained description--in this case, the description of
the class. If no such description is yet available, it is best to
simply omit all text, leaving any tags (such as @author or @since).
- Information about the project that this code belongs to should be
expressed in the license header for each file. Currently, most files
in ethereumj do not have license headers. This can be added in a
later commit.
- @since is recognized by Javadoc processor; "created on:" is not
- Remove hh:mm information as it is unnecessary
- Replace slashes in dates with dots, e.g. 26/12/2014 => 26.12.2014
- Do not align assignments on equals signs
- Use spaces before opening curly braces
- Add spaces between parameters as necessary
- Insert newlines between method declarations
- Other minor changes
This formatting pass is not comprehensive. For the most part, it does
not deal with Javadoc formatting, line wrapping, parameter alignment
rules or a number of other items that can be addressed later.
+ Spring IoC introduced
+ Block Store by sql/hibernate introduced
- Cache for blocks vanished
+ CLI for start
+ Connection architecture redesign for multiple connections
+ Server for incoming connections
+ Test adaption for new architecture and fix
+ Performance major improve: loading empty blocks: 10,000 for 40 secs
+ Blocks forking/alternative chains sollution
+ Network redesign for better user expirience, all the handlers are known to PeerClient now, and MessageQueue is also managed in the PeerClient
+ Listener callback for sync done
+ tx.isCreateContract() bug fix
+ repository.getBlock() bug fix