Commit Graph

1015 Commits

Author SHA1 Message Date
Roman Mandeleil bd2e6c8042 Ignore failure 2015-02-07 20:42:28 +02:00
Roman Mandeleil 25754f97cd Work on modulus testing in context of vmArithmeticTest.json
+ excluded test cases that fails
+ modulus work with sign number now
+ VM testing api can be used with excluded as well
2015-02-07 20:32:21 +02:00
Faiz Khan 6669523825 Fix long type usage for jsontestsuite & gaslimit 2015-02-07 06:36:42 -06:00
Roman Mandeleil a7b281007d Exclude recent failures 2015-02-06 22:49:02 +02:00
Roman Mandeleil 601c5f9b3a Measure block execution time 2015-02-06 10:34:42 +02:00
Roman Mandeleil 06c2d6ae73 Exclude faling tests 2015-02-04 17:58:08 +02:00
Faiz Khan a7e6bf65d0 Catch and protect against when getHReturn() passes null to avoid NPE 2015-02-04 08:02:48 -06:00
Roman Mandeleil 8985f6374a Cancel transaction approve by the clone transaction. 2015-02-04 15:14:15 +02:00
Roman Mandeleil a232df1998 Merge pull request #219 from 8aff8265aa/master_2
Protections must be done before state changes
2015-02-03 20:43:39 +02:00
Faiz Khan d6a2714c12 Move protection to beginning of contract creation to not spend gas 2015-02-03 12:34:35 -06:00
Faiz Khan 7c4f749835 Gas checks must be made earlier than other checks 2015-02-03 12:34:27 -06:00
Roman Mandeleil 097cc5418f Ignore failing test for a while 2015-02-03 19:58:33 +02:00
Roman Mandeleil 0e2720894b Adding block receipts to listener cycles 2015-02-03 19:13:16 +02:00
Roman Mandeleil 277ca6af7a Fix pending tx functionality + expose the correct interface 2015-02-02 22:02:57 +02:00
Roman Mandeleil 163036c5ea Introduce remote config + in memory block store
The library now can be initialized with just in memory
block saving with eviction policy of keep only last 1000 blocks,
that kind of block store is useful in on server usage of library.
In order to change the configuration for on server usage
use: `ethereum =  EthereumFactory.createEthereum(RemoteConfig.class);`
2015-01-30 22:20:45 +02:00
Chris Beams 63bb2aa852
Upgrade to antlr v4.5
Pick up the fix to antlr/antlr4#487 to eliminate spurious annotation
processor warnings.

Fixes #185
2015-01-30 14:05:56 +01:00
Roman Mandeleil dafa4b0718 Merge remote-tracking branch 'origin/master' 2015-01-29 15:05:25 +02:00
Roman Mandeleil f6233bba72 Adjust system to work with list of listeners + Upgrade Genesis + Upgrade to eth:52 2015-01-29 15:05:05 +02:00
Faiz Khan f9dd4fa735 Remove @Ignore and include passing test 2015-01-27 03:33:49 -06:00
Roman Mandeleil 8959f14c44 Extract key/val data source init to the DefaultConfig 2015-01-27 02:24:34 +02:00
Roman Mandeleil 86e7643f63 Redesign config init
Extracting DefaultConfig class and open the door
to implement plug-able custom config classes
2015-01-27 01:22:05 +02:00
Faiz Khan 36ea2069f4 Add fix for emptyTransaction test 2015-01-23 20:33:16 -06:00
Roman Mandeleil bbc8e060ad Exclude failing test 2015-01-23 19:30:40 +02:00
Roman Mandeleil c2931a2d12 Merge pull request #212 from ligi/ligi/code_review/simplify_rlp
Simplify RLP
2015-01-23 19:26:07 +02:00
Roman Mandeleil b10f31c8a5 Merge pull request #213 from marcegarba/master
Add testcases for org.ethereum.vm.DataWord
2015-01-23 19:22:22 +02:00
Roman Mandeleil 9d03fc5166 Keep long format in vm output 2015-01-23 10:50:25 +02:00
Roman Mandeleil c87a5c3cb6 Merge remote-tracking branch 'origin/master' 2015-01-22 12:49:45 +02:00
Roman Mandeleil 6fa25a2232 Update version for HELLO handshake 2015-01-22 12:49:25 +02:00
Marcelo Garbarino 66d8c21cb2 Add testcases for org.ethereum.vm.DataWord 2015-01-21 23:43:20 -03:00
ligi d824db620a Simplify RLP 2015-01-22 01:18:06 +01:00
Roman Mandeleil 5e2c988c85 Merge pull request #204 from gubatron/npe-fix-issue-195
init account's ecKey and address, avoid reported NPE
2015-01-21 11:46:18 +02:00
Roman Mandeleil 9198c7d264 Merge pull request #209 from ligi/ligi/code_review/cleanup_blockchainimpl
Cleanup in BlockchainImpl
2015-01-21 11:39:43 +02:00
ligi 31b51f1380 Cleanup in BlockchainImpl 2015-01-20 23:47:30 +01:00
ligi c45cc8cc4d Fix how and when default properties are used 2015-01-20 22:25:46 +01:00
Roman Mandeleil 93f6228034 Correct config for redis cloud in heroku env 2015-01-20 21:17:44 +02:00
Roman Mandeleil 84859727c4 Get REDISCLOUD_URL from the getEnv 2015-01-20 19:11:45 +02:00
Roman Mandeleil ebd2496a26 Merge remote-tracking branch 'origin/master' 2015-01-20 17:31:02 +02:00
Roman Mandeleil c449c25d57 Get REDISCLOUD_URL from the getEnv 2015-01-20 17:30:47 +02:00
Faiz Khan 6ddec0b4d9 Correct stSystemOperationsTest run with programCode.length protection 2015-01-20 09:01:40 -06:00
Roman Mandeleil 121065fa4d Revert "Correct stSystemOperationsTest run with programCode.length protection" 2015-01-20 16:54:40 +02:00
Roman Mandeleil fc7f18104e Merge pull request #205 from 8aff8265aa/master
Correct stSystemOperationsTest run with programCode.length protection
2015-01-20 16:50:16 +02:00
Faiz Khan ddad1508b5 Correct stSystemOperationsTest run with programCode.length protection 2015-01-20 08:48:18 -06:00
Roman Mandeleil e2570f7072 Fix redis pool init 2015-01-20 15:58:15 +02:00
Roman Mandeleil 158a86dfd2 Make available keyvalue.datasource override by -D param 2015-01-20 14:17:40 +02:00
Roman Mandeleil d7f2c859ea Clean imports 2015-01-20 13:37:58 +02:00
Roman Mandeleil cfebc1d99c Merge remote-tracking branch 'origin/master'
Conflicts:
	ethereumj-core/src/main/java/org/ethereum/datasource/RedisDataSource.java
2015-01-20 13:37:10 +02:00
Roman Mandeleil a3bf5310a3 Introduce support redis cloud in heroku environment 2015-01-20 13:35:33 +02:00
Chris Beams 9127c01890
Polish formatting
The sources affected by this commit have drifted in style since earlier
polishing commits such as f34d1f4 and a155518. The shared IDEA style
configuration file can help avoid this drift in the future. Simply run
Code->Reformat Code at the project level prior to committing. Note that
this code style configuration is not perfect, and not every change it
makes should be checked in. The ideal is to simply always write code that
conforms to the style conventions, but the automated settings are there
as a helping hand when necessary.

The churn caused by drifting style and the commits that fix it damage the
utility of git over time. Reviewing changes, analyzing history, surgically
reverting commits, and many other use cases with git simply do not work as
well when styles get mixed and fixed. Let's work toward a common style.
2015-01-20 12:20:09 +01:00
Chris Beams 60b51b4aa6
Use @Ignore annotation from JUnit vs. Nashhorn 2015-01-20 12:20:08 +01:00
Chris Beams 2d785f9406
Optimize imports using shared IDEA configuration
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.
2015-01-20 12:20:08 +01:00
Chris Beams ee0e3e8aea
Strip trailing whitespace
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.
2015-01-20 12:20:07 +01:00
Chris Beams d55bc10a1a
Polish Javadoc
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.
2015-01-20 12:14:36 +01:00
Roman Mandeleil 79459a47b6 Fix property string 2015-01-20 12:51:29 +02:00
gubatron 858046ec2f init account's ecKey and address, avoid reported NPE 2015-01-19 20:11:23 -05:00
Roman Mandeleil a9b410b38a Fix file encoding for testing 2015-01-19 22:18:14 +02:00
Roman Mandeleil 780f0dce3e Fix test insolation 2015-01-19 20:48:52 +02:00
Roman Mandeleil 3fd0b47b1c Define config for key/val datasource selection 2015-01-19 20:28:56 +02:00
Roman Mandeleil 193f217b81 Connect KeyValueDataSource abstraction to the rest of the application
Repository , Trie implementation and Cache now going to the data through KeyValueDatasource
2015-01-19 19:34:00 +02:00
Roman Mandeleil 38cf19015b Introduce usage of key/val data source as abstraction
Implement Redis  key/val datasource
Implement LevelDb key/val datasource
2015-01-18 23:32:30 +02:00
ligi 0c96950e0e remove typos / add missing modifiers / code cleanup 2015-01-18 19:25:06 +01:00
Roman Mandeleil d097a56644 Introduce onHandShakePeer() callback will expose HelloMessage 2015-01-16 10:46:29 +02:00
Roman Mandeleil c7638c2617 Introduce getChannel() by peerId 2015-01-16 10:46:28 +02:00
Roman Mandeleil bbb9e9e303 Add onHandShakePeer() to EthereumListener 2015-01-16 10:46:28 +02:00
Roman Mandeleil c89e591d9e Merge pull request #201 from Bitcoinzie/patch-1
Update README.md
2015-01-15 17:37:33 +02:00
Bitcoinzie 3056dcab92 Update README.md
Changed snapshot version number to reflect poc-8 changes
2015-01-14 22:30:21 -08:00
ligi 6f0ca3e635 more typo removal 2015-01-15 00:07:55 +01:00
ligi 15971ed797 fix some typos and do some cleanup 2015-01-14 23:47:29 +01:00
Roman Mandeleil e56dfacaae Merge remote-tracking branch 'origin/master' 2015-01-14 11:47:58 +02:00
Roman Mandeleil 8112d87b86 Exclude new tests that doesn't pass 2015-01-14 11:47:41 +02:00
Roman Mandeleil bed4e9f8a8 upgrade to POC-8 2015-01-14 11:42:19 +02:00
ligi 59a5baff81 we want EMPTY_BYTE_ARRAY 2015-01-10 21:37:40 +01:00
ligi 3a8258a07e use the available ZERO_BYTE_ARRAY 2015-01-10 21:05:00 +01:00
ligi 9ab5c21fdd speed improvements and add test-cases 2015-01-10 20:37:51 +01:00
Roman Mandeleil 910a8b9552 Comment gas charge for pre-compiled contracts 2015-01-10 16:20:08 +02:00
Roman Mandeleil e3b1e3aa1e Polish some. 2015-01-09 18:14:26 +02:00
Roman Mandeleil b017df080b Implement pre-compiled contract
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
2015-01-09 16:41:36 +02:00
Roman Mandeleil 620f365205 Fix payment availability: sender.balance >= tx.value + tx.gas 2015-01-08 20:26:24 +02:00
Roman Mandeleil 18ed198750 Return stRecursiveCreate to the testing run 2015-01-08 20:01:42 +02:00
Roman Mandeleil 8bbdc3ae31 Merge remote-tracking branch 'origin/master' 2015-01-08 19:50:05 +02:00
Roman Mandeleil 7590efdb3b Remove cpp snippet 2015-01-08 19:49:12 +02:00
Roman Mandeleil 48b27d38ec Validate JUMPDEST by pre-compile + tweak injection of blockStore by the new interface 2015-01-08 19:48:37 +02:00
Roman Mandeleil 59833f3fd6 Fix BLOCKHASH op new rule
The blockhash retrieved by index on one of the
recent 256 blocks. If the index is out of that
window zero pushed into the stack as a result
2015-01-08 18:55:52 +02:00
Chris Beams 2af33195da
Set VM log level to ERROR for fast test execution 2015-01-07 09:17:12 +01:00
Chris Beams 84b1cef682
Increase stack size during testing
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.
2015-01-07 08:55:49 +01:00
Chris Beams 11e8a55304
Revert "Ignore GitHubStateTest#stSystemOperationsTest"
This reverts commit 52b417947b.
2015-01-07 08:15:19 +01:00
Chris Beams 52b417947b
Ignore GitHubStateTest#stSystemOperationsTest
This test results in a stack overflow.
2015-01-07 06:58:36 +01:00
Roman Mandeleil d5ff8bcaab Fix VMComplexText.test2 for new JUMPDEST logic 2015-01-06 21:39:20 +02:00
Roman Mandeleil cf66dc02df Fix JUMPDEST requirements in the VMTest 2015-01-06 21:20:17 +02:00
Roman Mandeleil 0039995aad Merge remote-tracking branch 'origin/master' 2015-01-06 20:53:57 +02:00
Roman Mandeleil 8eadadcd16 Fixed TCK test suite: stSystemOperationsTest.json, included back to the general run. 2015-01-06 20:53:28 +02:00
Roman Mandeleil c0e2bf2e38 Fix: result empty on no run was executed 2015-01-06 20:47:20 +02:00
Roman Mandeleil 02be38a85d Fix new call level
When the current level is 1024, next CALL/CREATE
will do simple return with zero value pushed to the
 stack
2015-01-06 20:40:05 +02:00
Roman Mandeleil 832c24014d Fix internal call halt on any Exception push zero 2015-01-06 16:42:51 +02:00
Roman Mandeleil ab258b3fc9 Fix JUMPDEST requred in all cases 2015-01-06 16:41:53 +02:00
Roman Mandeleil 16965b02a2 Log success TCK test 2015-01-06 15:24:35 +02:00
Chris Beams 1c354cb736
Re-enable Bintray upload support
Thanks to @jbaruch for his comments at
https://github.com/ethereum/ethereumj/commit/00aba13#commitcomment-9167542
2015-01-06 14:08:17 +01:00
Chris Beams 00aba13a3d
Remove Bintray upload support for now
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
2015-01-06 11:50:03 +01:00
Chris Beams 04ba6c4ed7
Customize pom for publication to Maven Central 2015-01-06 11:22:12 +01:00
Chris Beams 7452765d62
Upgrade to Gradle propdeps plugin v0.0.7 2015-01-06 11:21:59 +01:00
Chris Beams f34d1f49dc
Polish changes made in pull request #189
- Organize imports using shared IDEA configuration

 - Format sources, including:
   - Normalize 4-space indentation
   - Wrap at 120 char right margin
   - Remove spaces around method arguments
2015-01-06 09:50:58 +01:00
Roman Mandeleil 02e7c28ffd Merge pull request #189 from d53d4f7ff2cc77b71/tests-2
Add tests for Messages in p2p/eth
2015-01-06 10:35:57 +02:00
Chris Beams 2165bd506e
Avoid transitive dependency on various logging libs
Use Spring's `propdeps` plugin to introduce optional/provided scopes for
gradle dependencies. Mark libraries such as slf4j-log4j12 as optional.
These libraries are required to run a local ethereumj node, but they are
not required in order to compile against ethereumj in a downstream
appliaction. These libraries easily can cause conflicts, for example if
another slf4j-* library (such as slf4j-logback) is on the classpath.
2015-01-05 18:52:34 +01:00
Chris Beams b977605771
Declare concrete slf4j logging deps as runtime-scoped 2015-01-05 15:12:51 +01:00
Faiz Khan a2f94729ba Remove usage of toString to test NullPointerException 2015-01-04 03:23:51 -06:00
Faiz Khan dbb7efadcf Add bounds checks for disconnect message 2015-01-04 03:00:46 -06:00
Faiz Khan 3f788161bc Add tests for disconnect, hello, peers and status messages 2015-01-04 02:56:42 -06:00
Faiz Khan da24699ed5 Peer test 2015-01-04 02:53:34 -06:00
Faiz Khan b07b4a816f First test 2015-01-04 02:53:28 -06:00
Chris Beams 6c559e6a65
Remove unused JDK 8 API imports 2015-01-02 07:48:29 +01:00
Marcelo Garbarino 64e0f7335f Add testcase for org.ethereum.vm.LogInfo 2015-01-01 15:39:58 -03:00
Chris Beams aa7191d4a6
Re-enable publication of coverage reports
Prior to this commit, jacoco coverage report XML files were not actually
being written to disk, meaning that the Gradle coveralls plugin had
nothing to publish to https://coveralls.io/r/ethereum/ethereumj. HTML
reports are now being written as well, for convenient local browsing.
2014-12-30 20:52:25 +01:00
Chris Beams addbcdeb09
Publish core artifacts continuously via Travis CI
The Travis CI build now publishes ethereumj-core artifacts (classes,
sources and javadoc jars) on every push to master. See updated
ethereumj-core/README.md for details. Note that the `gradle release`
task has been renamed to `gradle publish`.
2014-12-30 20:49:18 +01:00
Chris Beams 936de35cff
Restore JDK 8 source compatibility in ethereumj-studio
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.
2014-12-30 20:09:20 +01:00
Chris Beams a155518b41
Polish whitespace and imports
As part of pull request #179, commits 0d922e1, 003249c and d099100
introduced use of Java 8 language features and APIs. Commit c95f5ea
manually reverted these changes (see #184 as to why), but in the process
re-introduced formatting issues originally cleaned up by other commits
in #179. This change fixes those formatting issues.

 - Replace leading tabs with spaces (for reasons detailed in 0827fb5)
 - Add space before opening curly brace
 - Optimize imports using shared .idea/codeStyleSettings.xml (note
   especially expansion of wildcard imports. See rationale in 780393d)
 - Do not align assignments on equals sign
 - Remove unnecessary additional newlines
 - Remove braces from single-line loops and conditionals
2014-12-30 19:28:19 +01:00
Roman Mandeleil c95f5ea75f reverting for java7 2014-12-30 13:45:16 +02:00
Roman Mandeleil 3c0e7c894d adjusting for java8 api 2014-12-29 21:37:20 +02:00
Chris Beams be51e4d958
Publish artifacts to oss.jfrog.org and Bintray
See updates to ethereumj-core/README.md for details.
2014-12-29 16:43:37 +01:00
Chris Beams 7015d42221 Merge pull request #182 from cbeams/patch-2 2014-12-29 11:47:36 +01:00
Chris Beams 25ff32446f Remove denomination values absent in white paper
A recent revision of the Ethereum white paper removes the denominations
labeled 'lovelace', 'babbage' and 'shannon' [1]. This commit reflects
the change to the whitepaper by removing the corresponding labels from
the Denomination enum (as an aside, note the discrepancy between
'lovelace' in the whitepaper and 'ada' in our implementation).

go-ethereum still contains these values, but cpp-ethereum does
not. This commit assumes that the whitepaper and cpp implementation
represent the current consensus on explicitly named denominations.

By the same rationale, the 'douglas' and 'einstein' labels have been
removed as well. These values never appeared in the whitepaper or cpp
implementations. They were introduced to the go implementation in
ethereum/go-ethereum@e7d9bcd, but because the whitepaper and cpp
implementation are silent on these values, they are omitted here.

[1]: http://git.io/xJJf7g
2014-12-29 10:37:57 +01:00
Chris Beams bd2e4bd89e Rename Denomination#{FINNY => FINNEY} 2014-12-29 10:35:21 +01:00
Chris Beams 8089f6e57c Polish whitespace and imports
- Replace leading tabs with spaces
 - Add space before opening curly brace
 - Optimize imports using shared .idea/codeStyleSettings.xml
 - Do not align assignments on equals sign
 - Remove unnecessary extra newlines
2014-12-29 10:34:50 +01:00
Roman Mandeleil 364e774d4e + unicode for javadoc 2014-12-28 23:28:16 +02:00
Roman Mandeleil 4ab4d4d919 + catch up on lost NEW_BLOCK packet
- temporary cancel rollback on fork
2014-12-28 22:59:24 +02:00
Roman Mandeleil e5d2a32a13 update config file for poc-7 default peer 2014-12-28 22:21:14 +02:00
Chris Beams 90592dc267
Build -sources and -javadoc jars
Running `gradle build` within ethereumj-core will now produce -sources
and -javadoc jars in `build/libs`, alongside the already existing
classes jar. Run `gradle install` to install these artifacts to the
local `~/.m2` repository.
2014-12-27 14:50:22 +01:00
Chris Beams abb1ad8956
Fix remaining javadoc warnings
As of this commit there are now warnings at the command line when
running `gradle javadoc`.
2014-12-27 14:50:22 +01:00
Chris Beams 687c27e54b
Configure javadoc to ignore 'missing' warnings
This change ensures that all Javadoc syntax, reference, html errors, etc
are reported at the commandline during the gradle build, but warnings
for missing Javadoc elements (e.g. no @return tag, @param tags, etc) are
suppressed. `man javadoc` for details.
2014-12-27 14:50:21 +01:00
Chris Beams 4845f2bd00
Configure Gradle javadoc task
Run with `gradle javadoc` and see output in `build/docs/javadoc'.
2014-12-27 14:50:21 +01:00
Chris Beams 68724da3ac
Fix broken link in ECKey javadoc 2014-12-27 14:50:15 +01:00
Chris Beams 0d922e1b30
Collapse foreach loops using Iterable#forEach 2014-12-27 03:53:35 +01:00
Chris Beams 003249cb77
Collapse foreach loops using Stream#collect 2014-12-27 03:53:35 +01:00
Chris Beams d099100adf
Replace anonymous types with lambdas and method refs 2014-12-27 03:53:34 +01:00
Chris Beams 18b0f6f52c
Replace explicit types with <> syntax 2014-12-27 03:30:42 +01:00
Chris Beams 0425862cd4
Replace for loops with foreach where appropriate 2014-12-27 03:30:42 +01:00
Chris Beams 14fa1ef4b6
Remove unnecessary boxing and unboxing 2014-12-27 03:30:18 +01:00
Chris Beams 6c4502150e
Remove redundant type casts 2014-12-27 03:30:17 +01:00
Chris Beams 780393dae9
Organize imports with shared IDEA configuration
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.
2014-12-27 02:16:02 +01:00
Chris Beams d7671814b7
Remove unused imports 2014-12-27 01:44:27 +01:00
Chris Beams 75443aaa13
Support running ethereumj-studio as executable jar
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.
2014-12-27 01:44:25 +01:00
Chris Beams 6645493adc
Move Gradle wrapper infrastructure to top level 2014-12-27 01:44:25 +01:00
Chris Beams 0900039bdd
Introduce top-level Gradle build
- Convert ethereumj-studio build from Maven to Gradle as well
 - Extract common build elements to top-level build.gradle
 - Update top-level README accordingly
2014-12-27 01:44:24 +01:00
Chris Beams 4a992fe93f
Ignore already-broken tests
The tests ignored in this commit have been failing for some time--both
under the Maven build and now under the new Gradle build. See
https://travis-ci.org/ethereum/ethereumj/builds/45100679 for an example
CI build that reflects these failures.

Rather than tracking down and fixing each issue, this commit ignores
each of these known failures such that subsequent refactorings and
changes can be made with the benifit of running the tests that do work
and knowing that no new failures have crept in.
2014-12-26 22:08:11 +01:00
Chris Beams e4ff767f45
Support installation of artifacts to local maven repo
Apply Gradle's 'maven' plugin in order to support `./gradlew install`
task, similar to `mvn install` for building and copying artifacts to the
users local ~/.m2 repository.
2014-12-26 21:50:15 +01:00
Chris Beams f845a3b751
Eliminate dependency on antlr4 Maven plugin
After porting the build from Maven to Gradle (see prior commits), the
org.ethereum.serpent.ParserGenerator class is no longer necessary as the
configuration of the antlr compiler that happened in this class now
happens directly in build.gradle. This class is thus removed in this
commit.

The plexus FileUtils class introduced by the antlr4 Maven plugin had
also been used in several locations in the codebase, probably just for
reasons of convenience. These uses have been replaced with Spring's
FileSystemUtils in order to allow for dropping the dependency on the
antlr4 Maven plugin entirely.
2014-12-26 21:49:01 +01:00
Chris Beams f9bcd2abad
Resolve JUnit 4.10 vs. 4.11 classpath conflict
ethereumj-core depends on elements specific to the JUnit 4.11 API, but (for
reasons that can only be assumed dubious) json-simple:1.1.1 transitively
includes JUnit 4.10. At the command line, Gradle handles this cleanly,
and gives ethereumj-core's direct dependence on 4.11 the precedence it
deserves. However, IDEA gets confused and gives 4.10 precedence. This
change explicitly excludes the transitive dependency from
json-simple->junit:4.10, eliminating the issue completely.
2014-12-26 21:49:00 +01:00
Chris Beams 2a8ecab299
Introduce src/gen/java for generated sources
Previously, sources generated from the serpent antlr grammar in
ethereumj-core/src/main/antlr4 were output into the build/generated-src
directory by default. This worked from the command line without issue,
but caused issues within IDEA, because the entirety of the 'build'
directory is excluded from compilation by default when working with a
Gradle-based project in IDEA.

This change simplifies the arrangement by writing these antlr-generated
sources to the src/gen/java. A .gitignore file has been added to ensure
that transient source files don't accidentally get checked in. A readme
file has been added to explain the situation to the uninitiated.
2014-12-26 21:49:00 +01:00
Chris Beams 7af08b54b5
Generate Gradle wrapper 2014-12-26 21:48:59 +01:00
Chris Beams 996e98d5cc
Port build from Maven to Gradle 2014-12-26 21:48:59 +01:00
Chris Beams a63f6445cc
Remove urls from class-level Javadoc
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.
2014-12-26 11:57:21 +01:00
Chris Beams 7d2cf7f954
Use @since tags in Javadoc vs. "created on" metadata
- @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
2014-12-26 11:47:47 +01:00