Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional Backends (Oracle, Stardog, Neo4j) #86

Open
wants to merge 1,287 commits into
base: develop
Choose a base branch
from

Conversation

Matthimatiker
Copy link
Contributor

This Pull Request adds support for the following Triple Stores:

A Connector abstraction layer is introduced to allow adding new backends with minimal effort.
It uses several helper classes to hook into the existing Adapter layer:
connector-integration

Generic Connector test cases are provided to simplify adding new Stores.
Additionally, benchmarks (modeled with Athletic) are included. These are useful for optimization and Store comparison.

A Travis CI configuration was added to run unit tests and MySQL integration tests with several PHP versions. You might want to activate the corresponding WebHook for your repository to keep this integration. If you do not need it, then delete the configuration file .travis.yml.

The system relies on the Dependency Manager Composer to install its used libraries. Therefore, you might want to register Erfurt at Packagist to ensure that anybody can install it via Composer without further configuration.

…turn the correct triple count (it might have been better to use FILTERs); delete requests are now always passed to the underlying client, which also counts the effected triples during delete (#42)
Matthimatiker and others added 11 commits February 1, 2016 01:29
This reverts commit 50ccb7d.

According to the documentation of \Erfurt_Ac_Default::areModelsAllowed(), the previous return value was correct.
\Erfurt_StoreIntegrationTest::testGetImportsClosureMultipleCallsWithDifferentParameters() fails (at least with Virtuoso) in line 219 when always true is returned as suggested by 50ccb7d.
…ilures in case of changes in the behavior of the test framework
…s as if many PHP versions do not define the charset per default
@Matthimatiker
Copy link
Contributor Author

@k00ni This should be ready to merge now.

Sorry that it took so long, but I'm really busy at the moment.
Please note that I reverted commit 50ccb7d in commit 8a0fa9a to make the tests run. I guess that the previous version was correct, but you might want to double check that.

@k00ni
Copy link
Member

k00ni commented Feb 4, 2016

@Matthimatiker: First of all, thanks for the massive work you have done! We will look into this and try to merge it as soon as possible. There are maaaany commits, could you please give us a short summary, what all these are about? Thanks in advance.

@white-gecko
Copy link
Member

Or maybe a squashed commit resp. quashed commits focused on a topic/problem would be cool

@k00ni
Copy link
Member

k00ni commented Feb 19, 2016

@Matthimatiker: We will look into this pull request very soon. Could you please give me the rights to push to this branch of your fork?
Furthermore, is it possible that we can make a short Skype/Slack/... session to talk about this commit?

Thanks in advance!

@k00ni
Copy link
Member

k00ni commented Feb 22, 2016

Separate commits to own branch

I created a new branch named apply_pullrequest_86_matthimatiker and applied the latest state of @Matthimatiker's files to it.

Further changes besides adapters

Besides the new adapters for Neo4J, Stardog and Oracle, there are also changes concerning composer-integration and further integration tests.

Output of make test command

Running make test seems almost fine, got only 2 failures, 1 skipped and 3 incomplete. I guess Neo4J, Stardog and Oracle related tests were not executed, because my local machine lacks these backends.

Output

make test
make test-unit
make[1]: Entering directory `/home/k00ni/Documents/Erfurt'
rm -rf tests/cache tests/unit/cache tests/integration/cache
mkdir tests/cache
mkdir tests/unit/cache
mkdir tests/integration/cache
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.

....................................................II........S  63 / 920 (  6%)
.............................I................................. 126 / 920 ( 13%)
............................................................... 189 / 920 ( 20%)
............................................................... 252 / 920 ( 27%)
............................................................... 315 / 920 ( 34%)
............................................................... 378 / 920 ( 41%)
............................................................... 441 / 920 ( 47%)
............................................................... 504 / 920 ( 54%)
...........................F................................... 567 / 920 ( 61%)
............................................................... 630 / 920 ( 68%)
............................................................... 693 / 920 ( 75%)
............................................................... 756 / 920 ( 82%)
............................................................... 819 / 920 ( 89%)
..................................................F............ 882 / 920 ( 95%)
.....................................

Time: 6.46 seconds, Memory: 69.25Mb

There were 2 failures:

1) Erfurt_Store_Adapter_Container_ContainerFactoryTest::testFactoryUpdatesContainerWhenConfigFileChanges
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'another_value'
+'temp'

/home/k00ni/Documents/Erfurt/tests/unit/Erfurt/Store/Adapter/Container/ContainerFactoryTest.php:109

2) Erfurt_UtilsTest::testBuildLiteralString
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'"false"^^<http://www.w3.org/2001/XMLSchema#boolean>'
+'""^^<http://www.w3.org/2001/XMLSchema#boolean>'

/home/k00ni/Documents/Erfurt/tests/unit/Erfurt/UtilsTest.php:77

FAILURES!
Tests: 919, Assertions: 2048, Failures: 2, Skipped: 1, Incomplete: 3.
make[1]: *** [test-unit] Error 1
make[1]: Leaving directory `/home/k00ni/Documents/Erfurt'
make: *** [test] Error 2

@k00ni
Copy link
Member

k00ni commented Feb 22, 2016

Branch apply_pullrequest_86_matthimatiker contains a cleaned up and tested version of Erfurt. Besides the files of Matthimatiker, it also contains feature/php-composer branch content.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants