GEIGER local Storage implementation
This repository contains the implementation for the local storage used in the GEIGER project.
Structure
The code is structured in multiple packages.
localStorage contains interfaces used in all subpackages
localStorage.DB contains files for database interactions
localStorage.DB.mapper contains database mappers to translate functions into backends (e.g., SQL)
Build
This is a simple maven project and thus supports the common maven operations. For building the following commands can be used:
- ./gradlew clean test jar
Installation
As this is part of a bigger project there is no particular installation process.
GEIGER Project
The GEIGER project aims to create a solution for small businesses to protect themselves against cyber threats by constructing an application that calculates a threat score of the current device.
More information can be found under https://project.cyber-geiger.eu/
Get binaries
Precompiled binaries of the latest PRODUCTION build are available here.
Precompiled binaries of the latest integration build are available here.
| Stage | Build status |
|---|---|
| PROD: | |
| integration: | |
| development: |
Quick start
Create an ephemeral storage with a controller for testing puposes
StorageController controller = new GenericController("theOwner",new DummyMapper());
Create a persistent storage with a controller
torageController controller = new GenericController("theOwner",new H2SqlMapper("jdbc:h2:./dbFileName;AUTO_SERVER=TRUE", "user", "Password"));
Create a dummy plugin for GEIGER values to be provided
// create a new storage for testing
StorageController controller = new GenericController("theOwner",new DummyMapper());
// create a dummy feeder for values
DummyStorageFeeder cysec = new DummyStorageFeeder(controller);
// start providing values to the database in a continuous way
cysec.startFeeder();
// do whatever you want to do here
// ...
// stop feeding values
cysec.stopFeeder();