Releases: Hive2Hive/Hive2Hive
Release 1.2.4
Release 1.2.3
Hive2Hive is now available on Maven Central. You don't need to specify the custom repository anymore. Otherwise, there's no change on the codebase.
Release 1.2.2
Fixes changing the protection key for shared folders. In release 1.2.1 it was not possible to modify content of a shared folder.
Release 1.2.1
This release does not contain new features, but improves stability and fixes multiple bugs:
- Separate completely from BouncyCastle (was still used in a hashCode method)
- Set custom root directory in the console client
- Release buffers to keep memory usage low
- Add slow peer filter for storage and replication to enhance stability of mobile phones
- Auto-repair Locations during login if they are broken
- Reduce size of direct messages
- Upgrade to latest Process Framework
- Update to latest TomP2P
Release 1.2.0
This release includes a whole lot of improvements:
- Extracted the file management (more control for the user)
- Inject own encryption and serialization implementation if required
- Improved processing framework
- Updated P2P framework
- Android support
- Stability improvements
- API simplifications
- Other bugfixes
1.1.1 Alpha 1
First alpha release of version 1.1.1.
Release 1.1.0
With release 1.1.0, there comes a new set of features and improvements:
- Support sharing of files among one or multiple users (individual read / write permissions possible)
- New process framework speeding up the execution of the operations and enhancing the stability
- More advanced configuration and extension of the library possible
- Optimized model, removed unneeded objects in the DHT
- Per-file encryption instead of per-chunk encryption (less key generation)
- Caching of foreign public keys
- Many bug fixes
- Extended javadoc
The interfaces to create a node have slightly changed, allowing a more detailed peer configuration. Here's an example how to create a master and a 'normal' peer:
// master peer configuration
INetworkConfiguration masterConfig = NetworkConfiguration.create("masterID");
// node peer configuration with bootstrap address
INetworkConfiguration nodeConfig = NetworkConfiguration.create("nodeID", InetAddress.getByName("192.168.1.100"));
// default file configuration
IFileConfiguration defaultFileConfig = FileConfiguration.createDefault();
IH2HNode master = H2HNode.createNode(masterConfig, defaultFileConfig);
master.connect();
IH2HNode node = H2HNode.createNode(nodeConfig, defaultFileConfig);
node.connect();
Here's an example how to interact with the node:
UserCredentials userCredentials = new UserCredentials("user@hive2hive.com", "password", "1234");
// perform operations on the user management
IUserManager userManager = node.getUserManager();
IProcessComponent registerProcess = userManager.register(userCredentials);
// pause & resume the process
registerProcess.pause();
registerProcess.resume();
// attach a listener that are called when finished
registerProcess.attachListener(new IProcessComponentListener() {
@Override
public void onSucceeded() {
System.out.println("Successfully registered");
}
@Override
public void onFinished() {
// ignore
}
@Override
public void onFailed(RollbackReason reason) {
System.out.println("Failed! Reason: " + reason.getHint());
}
});
After a login, the file management can be used:
// for the login, the root folder must be specified
File root = new File(H2HConstants.DEFAULT_ROOT_PATH);
userManager.login(userCredentials, root.toPath());
// add a file
IFileManager fileManager = node.getFileManager();
IProcessComponent addProcess = fileManager.add(new File(root, "demo-file"));
First release
The first release of the Hive2Hive library. It does not contain all features yet, but the basic private file operations. This means, that it's possible to
- register a new user
- login as a registered user
- add, delete, move, update a file, folder or a whole (recursive) file tree
- logout when the user is done
When a user is logged in on multiple clients, they automatically synchronize in real-time, meaning that notifications are sent around when something has changed.
Note that there is also a (beta) function to share a folder (with all including children). This function is not well tested yet, but kept in this release to soft-soap you. This great feature and more are planned for the next release.
Here's the short basics how to use it:
// use the builder to create a Hive2Hive node
// create a master peer
H2HNodeBuilder masterBuilder = new H2HNodeBuilder().setIsMaster(true);
IH2HNode masterNode = masterBuilder.build();
// or a client peer
H2HNodeBuilder clientBuilder = new H2HNodeBuilder().setIsMaster(false).setBootstrapAddress(InetAddress.getByName("192.168.1.100"));
IH2HNode clientNode = clientBuilder.build();
Once you have created and connected a node, you can start using it:
// register a new user
UserCredentials userCredentials = new UserCredentials("user@hive2hive.com", "password", "1234");
IProcess register = clientNode.getUserManagement().register(userCredentials);
// pause & continue the process
register.pause();
register.continueProcess();
// add listeners that are called when finished
register.addListener(new IProcessListener() {
@Override
public void onSuccess() {
System.out.println("finished");
}
@Override
public void onFail(Exception exception) {
System.out.println("Failed! Reason: " + exception.getMessage());
}
});