Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7f66073
set up some general stuff
auriium Mar 20, 2021
0dc153d
various minor api improvements
auriium Mar 23, 2021
ddfe0d4
commit changes and build
auriium Mar 23, 2021
bdde308
commit - waiting on Docker-java-api to fix issues on their side
auriium Mar 24, 2021
bce5384
last commit - everything needs a lot of work
auriium Mar 26, 2021
5f68b60
strange exceptions, might be my machine.
auriium Mar 27, 2021
f5f29b2
cringe
auriium Mar 29, 2021
417d7eb
various design changes
auriium Jul 7, 2021
4278afe
refactor MachineSourceProvider
auriium Jul 7, 2021
0b06836
Add gitignore back
auriium Jul 13, 2021
f7b5c40
Rename module integrated to module plugin, establish new documentation
auriium Jul 13, 2021
0427b63
Change logger format
auriium Jul 13, 2021
dcefbcc
Create new providers
auriium Jul 14, 2021
3f6319e
implement resource management
auriium Jul 18, 2021
f108316
switch to okhttp
auriium Jul 18, 2021
1027589
work on implementing tests
auriium Jul 23, 2021
13c8fff
various tests, closes #5, #2
auriium Jul 25, 2021
5969e39
Merge branch 'master' into tick-api
auriium Jul 25, 2021
3d27f25
Delete .idea directory
auriium Jul 25, 2021
61b1cc1
switch to redis so github actions doesnt have a stroke
auriium Jul 27, 2021
f882ee9
Merge remote-tracking branch 'origin/tick-api' into tick-api
auriium Jul 27, 2021
bf90b0b
please github actions please work
auriium Jul 27, 2021
7a7da63
fuck it figure it out later
auriium Jul 27, 2021
10c058c
how the fuck did it turn into windows windows is not unix based
auriium Jul 27, 2021
42a1b0b
add top command back
auriium Jul 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.idea/
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

20 changes: 0 additions & 20 deletions .idea/compiler.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/encodings.xml

This file was deleted.

30 changes: 0 additions & 30 deletions .idea/jarRepositories.xml

This file was deleted.

21 changes: 0 additions & 21 deletions .idea/misc.xml

This file was deleted.

124 changes: 0 additions & 124 deletions .idea/uiDesigner.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

47 changes: 33 additions & 14 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,36 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>me.aurium</groupId>
<artifactId>tick</artifactId>
<parent>
<groupId>xyz.auriium</groupId>
<artifactId>insect</artifactId>
<version>0.3.0</version>
</parent>

<artifactId>tickbox-parent</artifactId>
<version>1.0.0</version>

<name>TickBox</name>
<description>Testcontainers alternative</description>

<scm>
<developerConnection>scm:git:https://github.com/Auriium/TickBox.git</developerConnection>
</scm>

<modules>
<module>tick-full</module>
<module>tick-rapid</module>
<module>tick-api</module>
<module>tickbox-api</module>
<module>tickbox-containers-sql</module>
</modules>

<properties>
<compiler.version>1.8</compiler.version>

<maven.compiler.source>${compiler.version}</maven.compiler.source>
<maven.compiler.target>${compiler.version}</maven.compiler.target>

<maven.jarplugin.version>3.2.0</maven.jarplugin.version>
<maven.pluginplugin.version>3.6.0</maven.pluginplugin.version>
<maven.deploy.version>3.6.3</maven.deploy.version>

<testcontainers.version>1.15.2</testcontainers.version>
<docker.version>3.2.7</docker.version>
</properties>

<build>
Expand Down Expand Up @@ -52,13 +61,23 @@
</dependency>
</dependencies>

<distributionManagement>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>xyz.auriium</groupId>
<artifactId>tickbox-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</dependencyManagement>

<repositories>
<repository>
<id>repsy</id>
<name>ElytraForceRepo</name>
<url>https://repo.repsy.io/mvn/elytraforce/default</url>
<id>central-repo</id>
<url>https://repo.auriium.xyz/releases</url>
</repository>
</distributionManagement>
</repositories>


</project>

</project>
74 changes: 73 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,73 @@
Powerful testcontainer alternative with actually object oriented code, no bullshitty static abuse, no lombok, no ResourceReaper, no piss in the cup

# TickBox

A dockerized Database Container creation system + maven plugins.

# Description

A tool meant for developers who really really don't want to use the mess that is TestContainers.

Comes in both code-based (tickbox-api) and maven plugin (tickbox-plugin) formats depending on
your use case (Whether you want a single container for all tests or need multiple containers for
multiple tests.)

# Warning

TickBox is not TestContainers. It isn't really even meant to fill the same role that testcontainers fills.
Tick is a general purpose container creation library fit for use with JDBC. TestContainers is explicitly for testing.

While Tick is also very useful in the testing environment, Tick explicitly avoids hackery and "magic code"
that applications like TestContainers may implement in order to smoothen the testing experience.
In TestContainers, various reflective hacks are done in order to allow containers to stop at the end of a JUnit test.
A separate docker container is deployed just to make sure resources do not escape. (ryuk)

In TestContainers, I try to explicitly avoid magic code/hackery/static abuse while also offering you the option of choice.
TestContainers is brittle and static in design, and if you want to change something you'll have to dig deep into
the archaic, bloated source code and edit it in yourself. If you want to change something in TickBox, write a new
implementation of a single interface, or change a value in a configuration object.

The biggest part of TestContainers for me that I attempt to give choice with is the ResourceReaper,
or in our case, the ResourceManager. In TestContainers, it is a static part of the program
that is essential, forcing Ryuk and runtime shutdown hooks down your throat. Here, you may choose
if you would like the HookResourceManager (Features both automatic closing of containers on jvm shutdown
as well as closing of containers and images when the main Tick instance is closed) or the EmptyResourceManager
(which allows you to manually and explicitly remove resources left behind)

# Unix Info

If you want to use TickBox on Unix (MacOS or Linux) make sure that Docker is set up so it does
not need the sudo command to run. TickBox (And TestContainers) use console commands internally
to interact with Docker and if access to Docker is limited you will get an error like so:

```WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied```
```

You can fix this by following the instructions of the site here:
https://docs.docker.com/engine/install/linux-postinstall/

A Docker-Machine module exists but is currently unusuable due to the various requirements to convince
DockerMachine to port-forward external port access to the internal docker container. Therefore, please
do not attempt to use the docker-machine strategy.


# Maven Info

```
<dependencies>
<dependency>
<groupId>xyz.auriium</groupId>
<artifactId>tickbox-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

<repositories>
<repository>
<id>central-repo</id>
<url>https://repo.auriium.xyz/releases</url>
</repository>
</repositories>
```

"TickBox" as in "Tick", a parasite that hooks onto something (docker) and "Box", as in a container.
4 changes: 0 additions & 4 deletions tick-api/src/main/java/me/aurium/tick/DockerHolder.java

This file was deleted.

9 changes: 0 additions & 9 deletions tick-api/src/main/java/me/aurium/tick/DockerSource.java

This file was deleted.

2 changes: 0 additions & 2 deletions tick-api/tick-api.iml

This file was deleted.

Loading