Skip to content

Commit 1000436

Browse files
committed
Merge branch '80'
2 parents c5e925e + 15e17a9 commit 1000436

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+5107
-292
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/.idea/
33
/.vagrant/
44
/bin/
5+
/build/
56
/docs/
67
/vendor/
78
/venv/

.travis.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ addons:
44
apt:
55
packages:
66
- libssl-dev
7+
- oracle-java8-installer
78
cache:
89
ccache: true
910
directories:
@@ -82,10 +83,20 @@ before_script:
8283
- composer self-update
8384
- composer install -n
8485
# Use the BEHAT_EXTRA_OPTIONS to supply options to Behat runs
85-
- BEHAT_EXTRA_OPTIONS=
86+
- BEHAT_EXTRA_OPTIONS=--profile=cassandra-version-2.2
8687
# Use the BEHAT_SKIP_TAGS to skip tests on TravisCI
87-
- BEHAT_SKIP_TAGS=~@skip-travisci
88+
- BEHAT_SKIP_TAGS=~@skip-ci
8889
- export BEHAT_EXTRA_OPTIONS BEHAT_SKIP_TAGS
90+
# Switch to Java 8 for non-java projects
91+
- if [ $(uname -a | grep x86_64 >/dev/null) ]; then
92+
ARCH_SUFFIX=amd64;
93+
else ARCH_SUFFIX=i386;
94+
fi
95+
- if [ -d "/usr/lib/jvm/java-8-oracle-$ARCH_SUFFIX" ]; then
96+
export JAVA_HOME="/usr/lib/jvm/java-8-oracle-$ARCH_SUFFIX";
97+
else export JAVA_HOME="/usr/lib/jvm/java-8-oracle";
98+
fi
99+
- export PATH=${JAVA_HOME}/bin:${PATH}
89100

90101
script:
91102
# Execute .phpt tests

behat.yml

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,37 @@ default:
77
tags: "~@cassandra-version-less-2.1&&~@cassandra-version-only-2.0&&~@broken"
88
contexts:
99
- FeatureContext:
10-
cassandra_version: 2.1.12
10+
cassandra_version: 3.0.8
11+
12+
cassandra-version-2.2:
13+
formatters:
14+
pretty: true
15+
suites:
16+
default:
17+
filters:
18+
tags: "~@cassandra-version-3.0&&~@cassandra-version-less-2.1&&~@cassandra-version-only-2.0&&~@broken"
19+
contexts:
20+
- FeatureContext:
21+
cassandra_version: 2.2.7
22+
23+
cassandra-version-2.1:
24+
formatters:
25+
pretty: true
26+
suites:
27+
default:
28+
filters:
29+
tags: "~@cassandra-version-3.0&&~@cassandra-version-2.2&&~@cassandra-version-less-2.1&&~@cassandra-version-only-2.0&&~@broken"
30+
contexts:
31+
- FeatureContext:
32+
cassandra_version: 2.1.15
1133

1234
cassandra-version-2.0:
1335
formatters:
1436
pretty: true
1537
suites:
1638
default:
1739
filters:
18-
tags: "~@cassandra-version-2.1&&~@broken"
40+
tags: "~@cassandra-version-3.0&&~@cassandra-version-2.2&&~@cassandra-version-2.1&&~@broken"
1941
contexts:
2042
- FeatureContext:
2143
cassandra_version: 2.0.17
@@ -26,7 +48,7 @@ cassandra-version-1.2:
2648
suites:
2749
default:
2850
filters:
29-
tags: "~@cassandra-version-2.0&&~@cassandra-version-2.1&&~@cassandra-version-only-2.0&&~broken"
51+
tags: "~@cassandra-version-3.0&&~@cassandra-version-2.2&&~@cassandra-version-2.0&&~@cassandra-version-2.1&&~@cassandra-version-only-2.0&&~broken"
3052
contexts:
3153
- FeatureContext:
3254
cassandra_version: 1.2.19

ext/config.m4

Lines changed: 107 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
PHP_ARG_WITH(cassandra, Enable Cassandra extension,
22
[ --with-cassandra[=DIR] Enable the Cassandra extension.])
33

4+
AC_MSG_CHECKING([for supported PHP version])
5+
PHP_CASSANDRA_FOUND_PHP_VERSION=`${PHP_CONFIG} --version`
6+
PHP_CASSANDRA_FOUND_PHP_VERSION_NUMBER=`echo "${PHP_CASSANDRA_FOUND_PHP_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 100 + [$]2) * 100 + [$]3;}'`
7+
if test "$PHP_CASSANDRA_FOUND_PHP_VERSION_NUMBER" -lt "50500"; then
8+
AC_MSG_ERROR([not supported. PHP version 5.5.0+ required (found $PHP_CASSANDRA_FOUND_PHP_VERSION)])
9+
else
10+
AC_MSG_RESULT([supported ($PHP_CASSANDRA_FOUND_PHP_VERSION)])
11+
fi
12+
413
if test -z "$PHP_UV"; then
514
PHP_ARG_WITH(uv, libuv install dir,
615
[ --with-uv=DIR Specify libuv install dir.])
@@ -14,94 +23,108 @@ fi
1423
if test "$PHP_CASSANDRA" != "no"; then
1524
CASSANDRA_CLASSES="\
1625
src/Cassandra.c \
26+
src/Cassandra/Aggregate.c \
27+
src/Cassandra/BatchStatement.c \
28+
src/Cassandra/Bigint.c \
29+
src/Cassandra/Blob.c \
1730
src/Cassandra/Cluster.c \
1831
src/Cassandra/Cluster/Builder.c \
32+
src/Cassandra/Collection.c \
33+
src/Cassandra/Column.c \
34+
src/Cassandra/Decimal.c \
35+
src/Cassandra/DefaultAggregate.c \
1936
src/Cassandra/DefaultCluster.c \
37+
src/Cassandra/DefaultColumn.c \
38+
src/Cassandra/DefaultFunction.c \
39+
src/Cassandra/DefaultIndex.c \
40+
src/Cassandra/DefaultKeyspace.c \
41+
src/Cassandra/DefaultMaterializedView.c \
42+
src/Cassandra/DefaultSchema.c \
43+
src/Cassandra/DefaultSession.c \
44+
src/Cassandra/DefaultTable.c \
2045
src/Cassandra/Exception.c \
21-
src/Cassandra/Exception/DomainException.c \
22-
src/Cassandra/Exception/InvalidArgumentException.c \
23-
src/Cassandra/Exception/LogicException.c \
24-
src/Cassandra/Exception/RuntimeException.c \
25-
src/Cassandra/Exception/TimeoutException.c \
26-
src/Cassandra/Exception/ExecutionException.c \
27-
src/Cassandra/Exception/ReadTimeout.c \
28-
src/Cassandra/Exception/WriteTimeoutException.c \
29-
src/Cassandra/Exception/UnavailableException.c \
30-
src/Cassandra/Exception/TruncateException.c \
31-
src/Cassandra/Exception/ValidationException.c \
32-
src/Cassandra/Exception/InvalidQueryException.c \
33-
src/Cassandra/Exception/InvalidSyntaxException.c \
34-
src/Cassandra/Exception/UnauthorizedException.c \
35-
src/Cassandra/Exception/UnpreparedException.c \
36-
src/Cassandra/Exception/ConfigurationException.c \
37-
src/Cassandra/Exception/AlreadyExistsException.c \
38-
src/Cassandra/Exception/AuthenticationException.c \
39-
src/Cassandra/Exception/ProtocolException.c \
40-
src/Cassandra/Exception/ServerException.c \
41-
src/Cassandra/Exception/IsBootstrappingException.c \
42-
src/Cassandra/Exception/OverloadedException.c \
43-
src/Cassandra/Exception/DivideByZeroException.c \
44-
src/Cassandra/Exception/RangeException.c \
46+
src/Cassandra/ExecutionOptions.c \
47+
src/Cassandra/Float.c \
48+
src/Cassandra/Function.c \
4549
src/Cassandra/Future.c \
50+
src/Cassandra/FutureClose.c \
4651
src/Cassandra/FuturePreparedStatement.c \
4752
src/Cassandra/FutureRows.c \
4853
src/Cassandra/FutureSession.c \
4954
src/Cassandra/FutureValue.c \
50-
src/Cassandra/FutureClose.c \
55+
src/Cassandra/Index.c \
56+
src/Cassandra/Inet.c \
57+
src/Cassandra/Keyspace.c \
58+
src/Cassandra/Map.c \
59+
src/Cassandra/MaterializedView.c \
60+
src/Cassandra/Numeric.c \
61+
src/Cassandra/PreparedStatement.c \
62+
src/Cassandra/RetryPolicy.c \
63+
src/Cassandra/Rows.c \
64+
src/Cassandra/Schema.c \
5165
src/Cassandra/Session.c \
52-
src/Cassandra/DefaultSession.c \
66+
src/Cassandra/Set.c \
67+
src/Cassandra/SimpleStatement.c \
5368
src/Cassandra/SSLOptions.c \
5469
src/Cassandra/SSLOptions/Builder.c \
5570
src/Cassandra/Statement.c \
56-
src/Cassandra/ExecutionOptions.c \
57-
src/Cassandra/SimpleStatement.c \
58-
src/Cassandra/PreparedStatement.c \
59-
src/Cassandra/BatchStatement.c \
60-
src/Cassandra/Rows.c \
61-
src/Cassandra/Column.c \
62-
src/Cassandra/DefaultColumn.c \
63-
src/Cassandra/DefaultKeyspace.c \
64-
src/Cassandra/DefaultSchema.c \
65-
src/Cassandra/DefaultTable.c \
66-
src/Cassandra/Keyspace.c \
67-
src/Cassandra/Schema.c \
6871
src/Cassandra/Table.c \
69-
src/Cassandra/Type.c \
70-
src/Cassandra/Type/Collection.c \
71-
src/Cassandra/Type/Map.c \
72-
src/Cassandra/Type/Scalar.c \
73-
src/Cassandra/Type/Set.c \
74-
src/Cassandra/Type/Tuple.c \
75-
src/Cassandra/Type/UserType.c \
76-
src/Cassandra/Type/Custom.c \
77-
src/Cassandra/RetryPolicy.c \
78-
src/Cassandra/RetryPolicy/DefaultPolicy.c \
79-
src/Cassandra/RetryPolicy/DowngradingConsistency.c \
80-
src/Cassandra/RetryPolicy/Fallthrough.c \
81-
src/Cassandra/RetryPolicy/Logging.c \
72+
src/Cassandra/Timestamp.c \
8273
src/Cassandra/TimestampGenerator.c \
8374
src/Cassandra/TimestampGenerator/Monotonic.c \
8475
src/Cassandra/TimestampGenerator/ServerSide.c \
85-
";
86-
87-
CASSANDRA_TYPES="\
88-
src/Cassandra/Float.c \
89-
src/Cassandra/Bigint.c \
90-
src/Cassandra/Blob.c \
91-
src/Cassandra/Decimal.c \
92-
src/Cassandra/Inet.c \
93-
src/Cassandra/Numeric.c \
94-
src/Cassandra/UuidInterface.c \
95-
src/Cassandra/Uuid.c \
96-
src/Cassandra/Timestamp.c \
9776
src/Cassandra/Timeuuid.c \
98-
src/Cassandra/Varint.c \
99-
src/Cassandra/Set.c \
100-
src/Cassandra/Map.c \
101-
src/Cassandra/Collection.c \
10277
src/Cassandra/Tuple.c \
78+
src/Cassandra/Type.c \
10379
src/Cassandra/UserTypeValue.c \
80+
src/Cassandra/Uuid.c \
81+
src/Cassandra/UuidInterface.c \
10482
src/Cassandra/Value.c \
83+
src/Cassandra/Varint.c \
84+
";
85+
86+
CASSANDRA_EXCEPTIONS="\
87+
src/Cassandra/Exception/AlreadyExistsException.c \
88+
src/Cassandra/Exception/AuthenticationException.c \
89+
src/Cassandra/Exception/ConfigurationException.c \
90+
src/Cassandra/Exception/DivideByZeroException.c \
91+
src/Cassandra/Exception/DomainException.c \
92+
src/Cassandra/Exception/ExecutionException.c \
93+
src/Cassandra/Exception/InvalidArgumentException.c \
94+
src/Cassandra/Exception/InvalidQueryException.c \
95+
src/Cassandra/Exception/InvalidSyntaxException.c \
96+
src/Cassandra/Exception/IsBootstrappingException.c \
97+
src/Cassandra/Exception/LogicException.c \
98+
src/Cassandra/Exception/OverloadedException.c \
99+
src/Cassandra/Exception/ProtocolException.c \
100+
src/Cassandra/Exception/RangeException.c \
101+
src/Cassandra/Exception/ReadTimeout.c \
102+
src/Cassandra/Exception/RuntimeException.c \
103+
src/Cassandra/Exception/ServerException.c \
104+
src/Cassandra/Exception/TimeoutException.c \
105+
src/Cassandra/Exception/TruncateException.c \
106+
src/Cassandra/Exception/UnauthorizedException.c \
107+
src/Cassandra/Exception/UnavailableException.c \
108+
src/Cassandra/Exception/UnpreparedException.c \
109+
src/Cassandra/Exception/ValidationException.c \
110+
src/Cassandra/Exception/WriteTimeoutException.c
111+
";
112+
113+
CASSANDRA_RETRY_POLICIES="\
114+
src/Cassandra/RetryPolicy/DefaultPolicy.c \
115+
src/Cassandra/RetryPolicy/DowngradingConsistency.c \
116+
src/Cassandra/RetryPolicy/Fallthrough.c \
117+
src/Cassandra/RetryPolicy/Logging.c
118+
";
119+
120+
CASSANDRA_TYPES="\
121+
src/Cassandra/Type/Collection.c \
122+
src/Cassandra/Type/Custom.c \
123+
src/Cassandra/Type/Map.c \
124+
src/Cassandra/Type/Scalar.c \
125+
src/Cassandra/Type/Set.c \
126+
src/Cassandra/Type/Tuple.c \
127+
src/Cassandra/Type/UserType.c
105128
";
106129

107130
CASSANDRA_UTIL="\
@@ -127,8 +150,14 @@ if test "$PHP_CASSANDRA" != "no"; then
127150
;;
128151
esac
129152

130-
PHP_NEW_EXTENSION(cassandra, php_cassandra.c $CASSANDRA_CLASSES \
131-
$CASSANDRA_TYPES $CASSANDRA_UTIL, $ext_shared, , $CASSANDRA_CFLAGS)
153+
PHP_NEW_EXTENSION(cassandra,
154+
php_cassandra.c \
155+
$CASSANDRA_CLASSES \
156+
$CASSANDRA_EXCEPTIONS \
157+
$CASSANDRA_RETRY_POLICIES \
158+
$CASSANDRA_TYPES \
159+
$CASSANDRA_UTIL,
160+
$ext_shared, , $CASSANDRA_CFLAGS)
132161
PHP_ADD_BUILD_DIR($ext_builddir/src)
133162
PHP_ADD_BUILD_DIR($ext_builddir/src/Cassandra)
134163
PHP_ADD_BUILD_DIR($ext_builddir/src/Cassandra/Cluster)
@@ -233,6 +262,15 @@ if test "$PHP_CASSANDRA" != "no"; then
233262
done
234263
fi
235264

265+
AC_MSG_CHECKING([for supported DataStax C/C++ driver version])
266+
PHP_CASSANDRA_FOUND_CASSANDRA_VERSION=`$AWK '/CASS_VERSION_MAJOR/ {printf $3"."} /CASS_VERSION_MINOR/ {printf $3"."} /CASS_VERSION_PATCH/ {printf $3}' $CPP_DRIVER_DIR/include/cassandra.h`
267+
PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER=`echo "${PHP_CASSANDRA_FOUND_CASSANDRA_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 100 + [$]2) * 100 + [$]3;}'`
268+
if test "$PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER" -lt "20402"; then
269+
AC_MSG_ERROR([not supported. Driver version 2.4.2+ required (found $PHP_CASSANDRA_FOUND_CASSANDRA_VERSION)])
270+
else
271+
AC_MSG_RESULT([supported ($PHP_CASSANDRA_FOUND_CASSANDRA_VERSION)])
272+
fi
273+
236274
if test -z "$CPP_DRIVER_DIR"; then
237275
ac_extra=
238276
else

ext/config.w32

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ ARG_ENABLE("cassandra", "Enable DataStax PHP Cassandra extension", "no");
44

55
// Establish the minimum Cassandra C/C++ driver version
66
var minimum_major = 2;
7-
var minimum_minor = 3;
8-
var minimum_patch = 0;
7+
var minimum_minor = 4;
8+
var minimum_patch = 2;
99
var minimum_version = minimum_major + "." + minimum_minor + "." + minimum_patch;
1010

1111
function compare_minimum_version(major, minor, patch) {
@@ -84,31 +84,39 @@ if (PHP_CASSANDRA != "no") {
8484
ADD_SOURCES(configure_module_dirname + "/src",
8585
"Cassandra.c", "cassandra");
8686
ADD_SOURCES(configure_module_dirname + "/src/Cassandra",
87+
"Aggregate.c " +
8788
"BatchStatement.c " +
8889
"Bigint.c " +
8990
"Blob.c " +
9091
"Cluster.c " +
9192
"Collection.c " +
9293
"Column.c " +
9394
"Decimal.c " +
95+
"DefaultAggregate.c " +
9496
"DefaultCluster.c " +
9597
"DefaultColumn.c " +
98+
"DefaultFunction.c " +
99+
"DefaultIndex.c " +
96100
"DefaultKeyspace.c " +
101+
"DefaultMaterializedView.c " +
97102
"DefaultSchema.c " +
98103
"DefaultSession.c " +
99104
"DefaultTable.c " +
100105
"Exception.c " +
101106
"ExecutionOptions.c " +
102107
"Float.c " +
108+
"Function.c " +
103109
"Future.c " +
104110
"FutureClose.c " +
105111
"FuturePreparedStatement.c " +
106112
"FutureRows.c " +
107113
"FutureSession.c " +
108114
"FutureValue.c " +
115+
"Index.c " +
109116
"Inet.c " +
110117
"Keyspace.c " +
111118
"Map.c " +
119+
"MaterializedView.c " +
112120
"Numeric.c " +
113121
"PreparedStatement.c " +
114122
"RetryPolicy.c " +

0 commit comments

Comments
 (0)