Commit Graph

924 Commits

Author SHA1 Message Date
Manfred Karrer
00455dfd7a Rename BootstrappedPeerFactory to BootstrappedPeerDHTBuilder 2014-11-13 12:13:51 +01:00
Manfred Karrer
a134c85f24 Remove double future callback in TomP2PNode, refactoring, cleanup 2014-11-13 12:12:49 +01:00
Chris Beams
8d70e23ba5
Use #ofType in commandline parsing for type safety
- Remove Node#getPortAsString; it is now no longer necessary
2014-11-13 12:10:22 +01:00
Chris Beams
0e167bed6c
Introduce customized JOptCommandLinePropertySource
This temporary subclass introduces the same change proposed in
spring-projects/spring-framework#693, and should be removed when that
pull request is merged and made available.
2014-11-13 12:09:37 +01:00
Chris Beams
c7f7b37572
Expose network information to GUI cleanly
This commit introduces io.bitsquare.network.ClientNode--an interface
whose name and structure will surely change--as a simplistic abstraction
over TomP2PNode that allows for exposing information to the "Network"
tab of the Preferences section of the GUI without actually requiring the
injection of TomP2PNode and other tomp2p internals into the GUI layer.

Changes to 'network' and 'msg' packages:
----------------------------------------

 - Move ConnectionType enum from test into main tree, and expose
   ClientNode#getConnectionType.

 - Both ClientNode and TomP2P are now available for injection. Both
   types are bound to the same TomP2P singleton instance. Note
   especially how NetworkPreferencesViewCB now receives a ClientNode
   instead of a TomP2PNode.

 - Restore package-private visibility to BootstrappedPeerFactory

 - Remove no longer necessary TomP2PNode#getPeerDHT

 - Expose getter for BootstrappedPeerFactory#bootstrapState

Changes to 'gui' package:
-------------------------

 - NetworkPreferencesViewCB has been simplified. All no-op methods have
   been removed, and the class now simply implements JavaFX's
   Initializable interface as opposed to Bitsquare's own ViewCB
   hierarchy, because the latter is not actually necessary (no caching
   is required for the data handled by this controller, etc.

 - In order to make the above possible, PreferencesViewCB now tolerates
   adding non-ViewCB child controllers.

 - NetworkPreferencesPM has been removed (perhaps temporarily), in an
   experiment to see "just how simple" CB controller classes can be.

 - Text fields in NetworkPreferencesView have been renamed.

Notes:
------

The data that now shows up in the "Network" tab is no longer formatted
as it once was; values are essentially nothing more than their #toString
representations. Again, this can be tweaked further, but leaving things
in this raw state provides an opportunity to discuss the current
presentation model approach, ViewCB hierarchy, etc.
2014-11-13 11:47:56 +01:00
Manfred Karrer
dc3911883c Handle shutdown in BootstrappedPeerFactory 2014-11-13 11:20:02 +01:00
Manfred Karrer
2521023025 Add null checks 2014-11-13 11:19:14 +01:00
Manfred Karrer
fe0dcb510c Add IndirectReplication 2014-11-13 11:03:18 +01:00
Manfred Karrer
ba64b79d3d Remove mBit from selection (see #271) 2014-11-13 03:31:40 +01:00
Manfred Karrer
0384c683c7 Fix wrong close handler (#270) 2014-11-13 03:09:12 +01:00
Manfred Karrer
d146a5a338 Add scaling for system tray icon (#242) 2014-11-13 02:52:49 +01:00
Manfred Karrer
704230fbdd Deactivate close tab button when funds are paid (#130) 2014-11-13 02:35:33 +01:00
Manfred Karrer
e459ce8419 Fix tx history update bug (#234) 2014-11-13 02:00:40 +01:00
Manfred Karrer
a86add2d9b Fix nullpointer 2014-11-13 01:45:39 +01:00
Manfred Karrer
19e0763ff5 Fix missing update in open trade screen (#244) 2014-11-13 01:43:48 +01:00
Manfred Karrer
f92f7de138 Cleanup 2014-11-13 01:02:43 +01:00
Manfred Karrer
f71d7c3bd4 Fix sorting bug in open trades (#239) 2014-11-13 00:52:16 +01:00
Manfred Karrer
2d5f1fb0e6 Remove web view for help 2014-11-13 00:41:33 +01:00
Manfred Karrer
59db93dbdc Use Utilities.openURL instead of Desktop.getDesktop().browse 2014-11-13 00:40:58 +01:00
Manfred Karrer
57faf40759 Fix missing update in open trades table (part of #239) 2014-11-13 00:28:33 +01:00
Chris Beams
d657763596
Merge branch 'cbeams'
* cbeams:
  Refactor SignatureService
  Polish formatting
  Rename io.bitsquare.crypto.{Crypto=>Signature}Service
  Replace 'Facade' naming with 'Service' naming
2014-11-12 14:07:13 +01:00
Manfred Karrer
a81db94f25
Remove NetworkPreferencesModel 2014-11-12 14:04:17 +01:00
Chris Beams
c0d415e12b
Refactor SignatureService
SignatureService methods are now generic with respect to Bitsquare's
domain, i.e. there is no longer any awareness of "contracts",
"registration data", or the like. In fact, because SignatureService
holds no state whatsoever, it would be reasonable to refactor the class
into a set of static utility methods. However, this change leaves
SignatureService as a DI-managed POJO for the time being.

Major changes:

 - Rename #signContract => #signMessage
 - Rename #getEmbeddedAccountRegistrationData => #digestMessageWithSignature
2014-11-12 13:59:27 +01:00
Chris Beams
75b7482bf1
Polish formatting 2014-11-12 11:15:28 +01:00
Chris Beams
99dcea4001
Rename io.bitsquare.crypto.{Crypto=>Signature}Service 2014-11-12 11:11:16 +01:00
Chris Beams
80758a0a47
Replace 'Facade' naming with 'Service' naming 2014-11-12 10:49:50 +01:00
Manfred Karrer
526727134f Add network info screen 2014-11-12 04:37:49 +01:00
Manfred Karrer
60102661ff Cleanup 2014-11-12 03:23:55 +01:00
Manfred Karrer
8d5cdf8d1f Use Trace loggong level for tomp2p and bitcoinJ 2014-11-12 03:16:31 +01:00
Manfred Karrer
5fe0db7ba8 Use UUID instead of Random 2014-11-12 03:15:55 +01:00
Chris Beams
eed2be1942
Merge branch 'cbeams'
* cbeams:
  Add 'appJar' and 'bootstapNodeJar' tasks to build
2014-11-11 23:54:59 +01:00
Chris Beams
6c36b2fa46
Add 'appJar' and 'bootstapNodeJar' tasks to build
The build now exposes two explicit ShadowJar tasks: one for the main
JavaFX client (`appJar`) and one for the headless bootstrap node
(`bootstrapNodeJar`).

Run as follows:

    ./gradlew appJar
    -- or --
    ./gradlew bootstrapNodeJar

The resulting executable jar for each will be found in the `build/libs`
directory.

Thanks to @johnrengleman for his help at johnrengelman/shadow#108

Resolves #265
Resolves #252
2014-11-11 23:53:32 +01:00
Chris Beams
69ed19d3dc
Merge branch 'cbeams'
* cbeams:
  Reorder methods in BitsquareEnvironment for clarity
  Introduce 'app.version' property and remove hardcoded version
  Use Preconditions#checkNotNull vs. #checkArgument
  Rename name, port properties to node.name, node.port
  Remove unused ApplicationPreferences variable
  Rename config file from bitsquare.{conf=>properties}
2014-11-11 22:56:43 +01:00
Chris Beams
14dde61832
Reorder methods in BitsquareEnvironment for clarity 2014-11-11 22:55:33 +01:00
Chris Beams
9adc41e23f
Introduce 'app.version' property and remove hardcoded version 2014-11-11 22:55:33 +01:00
Chris Beams
15a6d8a295
Use Preconditions#checkNotNull vs. #checkArgument 2014-11-11 21:56:44 +01:00
Chris Beams
ccd5f815f8
Rename name, port properties to node.name, node.port 2014-11-11 21:52:43 +01:00
Chris Beams
d55a03f2d8
Remove unused ApplicationPreferences variable 2014-11-11 21:51:57 +01:00
Chris Beams
1fcd0343d5
Rename config file from bitsquare.{conf=>properties} 2014-11-11 21:38:48 +01:00
Manfred Karrer
f23a1b8fa6 Add app preferences UI 2014-11-11 20:06:51 +01:00
Chris Beams
0136ea2884
Polish and test BitsquareEnvironment
- Introduce a test-time dependency on spring-test module for access to
   MockPropertySource and friends.

 - Add BitsquareEnvironmentTests and test that property source precedence
   works as expected, i.e. that properties supplied on the command line
   have highest precedence, overriding those picked up via environment
   variables, system properties, the bitsquare.properties file or any of
   the other available property sources.
2014-11-11 19:29:26 +01:00
Chris Beams
c8770f96a9
Move io.bitsquare.{=>app.}BitsquareEnvironmentTests 2014-11-11 19:29:25 +01:00
Manfred Karrer
eb0bd4a99a Rename usage of settings to applicationPreferences 2014-11-11 18:49:32 +01:00
Manfred Karrer
33085b5c2c Refactor Settings model to 2 separate models 2014-11-11 18:43:08 +01:00
Manfred Karrer
9751a5206e Rename settings package to preferences 2014-11-11 17:11:37 +01:00
Manfred Karrer
2ac43f63d4 Add 2 sub screens for preferences 2014-11-11 16:56:09 +01:00
Manfred Karrer
b5fc148b75 Use ViewCB<? extends PresentationModel instead of Initializable type 2014-11-11 16:20:39 +01:00
Chris Beams
d3f1ec252e
Merge branch 'wip-cbeams'
These changes eliminate the use of "appName" throughout the codebase in
favor of explicitly named, and therefore individually configurable
alternatives specific to each component. For example, instead of passing
the application name through the WalletFacade boundary and then using a
utility like AppDirectory to put construct the wallet directory on the
fly, the path to wallet directory is now passed explicitly as a
@Named(WALLET_DIR) parameter to the WalletFacade constructor.

The result is not only better configurability (e.g. the WALLET_DIR
property can be overridden without affecting any other parts of the
system), but also better understandability. See
BitsquareEnvironment#defaultProperties to see how it all comes together.
Note how the value of appName is mapped to each of these new properties,
all in one place where it's easy to get an overview etc.

Also, as of this commit, there is only one place in the codebase where
the word "Bitsquare" is hard-coded (in `i.b.app.BitsquareEnvironment`):

    $ git grep -h '"Bitsquare"' src
        public static final String DEFAULT_APP_NAME = "Bitsquare";

To keep things clean, further hard-coding should be avoided from this
point forward.

See extended comments for each commit for details.

* wip-cbeams:
  Eliminate remaining uses of @Named("appName")
  Introduce explicit title param in ViewCB
  Introduce io.bitsquare.btc.UserAgent
  Introduce explicit dir and prefix params in Persistence
  Introduce explicit wallet and useragent params in WalletFacade
  Rename environment "app properties"=>"default properties"
2014-11-11 14:59:59 +01:00
Chris Beams
1c0a6ee432
Eliminate remaining uses of @Named("appName")
Changes include:

 - Remove lighthouse.files.AppDirectory. Several methods from this class
   have, as of this commit, been rewritten and moved into the
   BitsquareEnvironment and BitsquareApp classes as appropriate.

 - Rename "appName" property => "app.name" for consistency with other
   configurable properties.

 - Allow configuration of both user and application data directories on
   the command line. See --help menu for details.
2014-11-11 14:57:18 +01:00
Chris Beams
454ee1fbe0
Introduce explicit title param in ViewCB
Like previous commits, this change removes reliance on the global
"appName" in favor of an explicit and configurable "view.title"
parameter. It is still set by default to the value of appName, but this
assignment is now done in BitsquareEnvironment, as are the other similar
parameters that have been broken out in previous commits.
2014-11-11 12:27:18 +01:00