Skip to content
Browse files

create couch_replicator application.

First step, move files in couch_replicator application & add them
build.
  • Loading branch information...
1 parent 0c6f529 commit ad5267908ba034f25ef816408f555d7a5ac6cbb2 benoitc committed Dec 4, 2011
Showing with 266 additions and 180 deletions.
  1. +2 −0 .gitignore
  2. +1 −0 configure.ac
  3. +1 −0 src/Makefile.am
  4. +73 −0 src/couch_replicator/Makefile.am
  5. 0 src/{couchdb → couch_replicator/src}/couch_api_wrap.erl
  6. 0 src/{couchdb → couch_replicator/src}/couch_api_wrap.hrl
  7. 0 src/{couchdb → couch_replicator/src}/couch_api_wrap_httpc.erl
  8. 0 src/{couchdb → couch_replicator/src}/couch_httpc_pool.erl
  9. 0 src/{couchdb → couch_replicator/src}/couch_httpd_replicator.erl
  10. 0 src/{couchdb → couch_replicator/src}/couch_rep_sup.erl
  11. +1 −1 src/{couchdb → couch_replicator/src}/couch_replication_manager.erl
  12. 0 src/{couchdb → couch_replicator/src}/couch_replication_notifier.erl
  13. +33 −0 src/couch_replicator/src/couch_replicator.app.src
  14. 0 src/{couchdb → couch_replicator/src}/couch_replicator.erl
  15. 0 src/{couchdb → couch_replicator/src}/couch_replicator.hrl
  16. +151 −0 src/couch_replicator/src/couch_replicator_js_functions.hrl
  17. 0 src/{couchdb → couch_replicator/src}/couch_replicator_utils.erl
  18. 0 src/{couchdb → couch_replicator/src}/couch_replicator_worker.erl
  19. 0 test/etap/230-httpc-pool.t → src/couch_replicator/test/001-httpc-pool.t
  20. 0 test/etap/240-replication-compact.t → src/couch_replicator/test/002-replication-compact.t
  21. 0 test/etap/241-replication-large-atts.t → src/couch_replicator/test/003-replication-large-atts.t
  22. 0 test/etap/242-replication-many-leaves.t → src/couch_replicator/test/004-replication-many-leaves.t
  23. +3 −23 src/couchdb/Makefile.am
  24. +0 −1 src/couchdb/couch.app.tpl.in
  25. +0 −141 src/couchdb/couch_js_functions.hrl
  26. +0 −9 test/etap/001-load.t
  27. +1 −5 test/etap/Makefile.am
View
2 .gitignore
@@ -9,6 +9,7 @@
*~
*.orig
*.rej
+*.sw*
erl_crash.dump
configure
autom4te.cache
@@ -52,6 +53,7 @@ etc/couchdb/default.ini
etc/launchd/org.apache.couchdb.plist
etc/logrotate.d/couchdb
src/couch_mrview/ebin/
+src/couch_replicator/ebin/
src/couchdb/.libs/*
src/couchdb/couch.app
src/couchdb/couchjs
View
1 configure.ac
@@ -549,6 +549,7 @@ AC_CONFIG_FILES([share/Makefile])
AC_CONFIG_FILES([src/Makefile])
AC_CONFIG_FILES([src/couch_index/Makefile])
AC_CONFIG_FILES([src/couch_mrview/Makefile])
+AC_CONFIG_FILES([src/couch_replicator/Makefile])
AC_CONFIG_FILES([src/couchdb/couch.app.tpl])
AC_CONFIG_FILES([src/couchdb/Makefile])
AC_CONFIG_FILES([src/couchdb/priv/Makefile])
View
1 src/Makefile.am
@@ -13,6 +13,7 @@
SUBDIRS = \
couch_index \
couch_mrview \
+ couch_replicator \
couchdb \
ejson \
erlang-oauth \
View
73 src/couch_replicator/Makefile.am
@@ -0,0 +1,73 @@
+## Licensed under the Apache License, Version 2.0 (the "License"); you may not
+## use this file except in compliance with the License. You may obtain a copy of
+## the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+## License for the specific language governing permissions and limitations under
+## the License.
+
+couch_replicatorlibdir = $(localerlanglibdir)/couch_replicator-0.1
+couch_replicatorincludedir = $(couch_replicatorlibdir)/include
+couch_replicatorebindir = $(couch_replicatorlibdir)/ebin
+
+couch_replicatorinclude_DATA = $(include_files)
+couch_replicatorebin_DATA = $(compiled_files)
+
+include_files = \
+ src/couch_api_wrap.hrl \
+ src/couch_replicator.hrl \
+ src/couch_replicator_js_functions.hrl
+
+source_files = \
+ src/couch_api_wrap_httpc.erl \
+ src/couch_api_wrap.erl \
+ src/couch_httpc_pool.erl \
+ src/couch_httpd_replicator.erl \
+ src/couch_rep_sup.erl \
+ src/couch_replication_manager.erl \
+ src/couch_replication_notifier.erl \
+ src/couch_replicator_utils.erl \
+ src/couch_replicator_worker.erl \
+ src/couch_replicator.app.src \
+ src/couch_replicator.erl
+
+test_files = \
+ test/001-httpc-pool.t \
+ test/002-replication-compact.t \
+ test/003-replication-large-atts.t \
+ test/004-replication-many-leaves.t
+
+compiled_files = \
+ ebin/couch_api_wrap_httpc.beam \
+ ebin/couch_api_wrap.beam \
+ ebin/couch_httpc_pool.beam \
+ ebin/couch_httpd_replicator.beam \
+ ebin/couch_rep_sup.beam \
+ ebin/couch_replication_manager.beam \
+ ebin/couch_replication_notifier.beam \
+ ebin/couch_replicator_utils.beam \
+ ebin/couch_replicator_worker.beam \
+ ebin/couch_replicator.app \
+ ebin/couch_replicator.beam
+
+EXTRA_DIST = $(include_files) $(source_files) $(test_files)
+CLEANFILES = $(compiled_files)
+
+check:
+ $(abs_top_builddir)/test/etap/run $(abs_top_srcdir)/src/couch_replicator/test
+
+ebin/%.app: src/%.app.src
+ @mkdir -p ebin/
+ sed -e "s|%version%|@version@|g" \
+ < $< > $@
+
+ebin/%.beam: src/%.erl $(include_files)
+ @mkdir -p ebin/
+ $(ERLC) -Wall -I$(top_srcdir)/src -I$(top_srcdir)/src/couchdb \
+ -o ebin/ $(ERLC_FLAGS) ${TEST} $<;
+
+
View
0 src/couchdb/couch_api_wrap.erl → src/couch_replicator/src/couch_api_wrap.erl
File renamed without changes.
View
0 src/couchdb/couch_api_wrap.hrl → src/couch_replicator/src/couch_api_wrap.hrl
File renamed without changes.
View
0 src/couchdb/couch_api_wrap_httpc.erl → ...h_replicator/src/couch_api_wrap_httpc.erl
File renamed without changes.
View
0 src/couchdb/couch_httpc_pool.erl → ...couch_replicator/src/couch_httpc_pool.erl
File renamed without changes.
View
0 src/couchdb/couch_httpd_replicator.erl → ...replicator/src/couch_httpd_replicator.erl
File renamed without changes.
View
0 src/couchdb/couch_rep_sup.erl → src/couch_replicator/src/couch_rep_sup.erl
File renamed without changes.
View
2 src/couchdb/couch_replication_manager.erl → ...licator/src/couch_replication_manager.erl
@@ -22,7 +22,7 @@
-include("couch_db.hrl").
-include("couch_replicator.hrl").
--include("couch_js_functions.hrl").
+-include("couch_replicator_js_functions.hrl").
-define(DOC_TO_REP, couch_rep_doc_id_to_rep_id).
-define(REP_TO_STATE, couch_rep_id_to_rep_state).
View
0 src/couchdb/couch_replication_notifier.erl → ...icator/src/couch_replication_notifier.erl
File renamed without changes.
View
33 src/couch_replicator/src/couch_replicator.app.src
@@ -0,0 +1,33 @@
+% Licensed under the Apache License, Version 2.0 (the "License"); you may not
+% use this file except in compliance with the License. You may obtain a copy of
+% the License at
+%
+% http://www.apache.org/licenses/LICENSE-2.0
+%
+% Unless required by applicable law or agreed to in writing, software
+% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+% License for the specific language governing permissions and limitations under
+% the License.
+
+{application, couch_replicator, [
+ {description, "CouchDB replicator"},
+ {vsn, "@version@"},
+ {modules, [
+ couch_api_wrap_httpc,
+ couch_api_wrap,
+ couch_api_httpc_pool,
+ couch_httpd_replicator,
+ couch_rep_sup,
+ couch_replication_manager,
+ couch_replication_notifier,
+ couch_replicator_utils,
+ couch_replicator_worker,
+ couch_replicator
+ ]},
+ {registered, [
+ couch_rep_sup
+ ]},
+ {applications, [kernel, stdlib]}
+]}.
+
View
0 src/couchdb/couch_replicator.erl → ...couch_replicator/src/couch_replicator.erl
File renamed without changes.
View
0 src/couchdb/couch_replicator.hrl → ...couch_replicator/src/couch_replicator.hrl
File renamed without changes.
View
151 src/couch_replicator/src/couch_replicator_js_functions.hrl
@@ -0,0 +1,151 @@
+% Licensed under the Apache License, Version 2.0 (the "License"); you may not
+% use this file except in compliance with the License. You may obtain a copy of
+% the License at
+%
+% http://www.apache.org/licenses/LICENSE-2.0
+%
+% Unless required by applicable law or agreed to in writing, software
+% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+% License for the specific language governing permissions and limitations under
+% the License.
+
+-define(REP_DB_DOC_VALIDATE_FUN, <<"
+ function(newDoc, oldDoc, userCtx) {
+ function reportError(error_msg) {
+ log('Error writing document `' + newDoc._id +
+ '\\' to the replicator database: ' + error_msg);
+ throw({forbidden: error_msg});
+ }
+
+ function validateEndpoint(endpoint, fieldName) {
+ if ((typeof endpoint !== 'string') &&
+ ((typeof endpoint !== 'object') || (endpoint === null))) {
+
+ reportError('The `' + fieldName + '\\' property must exist' +
+ ' and be either a string or an object.');
+ }
+
+ if (typeof endpoint === 'object') {
+ if ((typeof endpoint.url !== 'string') || !endpoint.url) {
+ reportError('The url property must exist in the `' +
+ fieldName + '\\' field and must be a non-empty string.');
+ }
+
+ if ((typeof endpoint.auth !== 'undefined') &&
+ ((typeof endpoint.auth !== 'object') ||
+ endpoint.auth === null)) {
+
+ reportError('`' + fieldName +
+ '.auth\\' must be a non-null object.');
+ }
+
+ if ((typeof endpoint.headers !== 'undefined') &&
+ ((typeof endpoint.headers !== 'object') ||
+ endpoint.headers === null)) {
+
+ reportError('`' + fieldName +
+ '.headers\\' must be a non-null object.');
+ }
+ }
+ }
+
+ var isReplicator = (userCtx.roles.indexOf('_replicator') >= 0);
+ var isAdmin = (userCtx.roles.indexOf('_admin') >= 0);
+
+ if (oldDoc && !newDoc._deleted && !isReplicator &&
+ (oldDoc._replication_state === 'triggered')) {
+ reportError('Only the replicator can edit replication documents ' +
+ 'that are in the triggered state.');
+ }
+
+ if (!newDoc._deleted) {
+ validateEndpoint(newDoc.source, 'source');
+ validateEndpoint(newDoc.target, 'target');
+
+ if ((typeof newDoc.create_target !== 'undefined') &&
+ (typeof newDoc.create_target !== 'boolean')) {
+
+ reportError('The `create_target\\' field must be a boolean.');
+ }
+
+ if ((typeof newDoc.continuous !== 'undefined') &&
+ (typeof newDoc.continuous !== 'boolean')) {
+
+ reportError('The `continuous\\' field must be a boolean.');
+ }
+
+ if ((typeof newDoc.doc_ids !== 'undefined') &&
+ !isArray(newDoc.doc_ids)) {
+
+ reportError('The `doc_ids\\' field must be an array of strings.');
+ }
+
+ if ((typeof newDoc.filter !== 'undefined') &&
+ ((typeof newDoc.filter !== 'string') || !newDoc.filter)) {
+
+ reportError('The `filter\\' field must be a non-empty string.');
+ }
+
+ if ((typeof newDoc.query_params !== 'undefined') &&
+ ((typeof newDoc.query_params !== 'object') ||
+ newDoc.query_params === null)) {
+
+ reportError('The `query_params\\' field must be an object.');
+ }
+
+ if (newDoc.user_ctx) {
+ var user_ctx = newDoc.user_ctx;
+
+ if ((typeof user_ctx !== 'object') || (user_ctx === null)) {
+ reportError('The `user_ctx\\' property must be a ' +
+ 'non-null object.');
+ }
+
+ if (!(user_ctx.name === null ||
+ (typeof user_ctx.name === 'undefined') ||
+ ((typeof user_ctx.name === 'string') &&
+ user_ctx.name.length > 0))) {
+
+ reportError('The `user_ctx.name\\' property must be a ' +
+ 'non-empty string or null.');
+ }
+
+ if (!isAdmin && (user_ctx.name !== userCtx.name)) {
+ reportError('The given `user_ctx.name\\' is not valid');
+ }
+
+ if (user_ctx.roles && !isArray(user_ctx.roles)) {
+ reportError('The `user_ctx.roles\\' property must be ' +
+ 'an array of strings.');
+ }
+
+ if (!isAdmin && user_ctx.roles) {
+ for (var i = 0; i < user_ctx.roles.length; i++) {
+ var role = user_ctx.roles[i];
+
+ if (typeof role !== 'string' || role.length === 0) {
+ reportError('Roles must be non-empty strings.');
+ }
+ if (userCtx.roles.indexOf(role) === -1) {
+ reportError('Invalid role (`' + role +
+ '\\') in the `user_ctx\\'');
+ }
+ }
+ }
+ } else {
+ if (!isAdmin) {
+ reportError('The `user_ctx\\' property is missing (it is ' +
+ 'optional for admins only).');
+ }
+ }
+ } else {
+ if (!isAdmin) {
+ if (!oldDoc.user_ctx || (oldDoc.user_ctx.name !== userCtx.name)) {
+ reportError('Replication documents can only be deleted by ' +
+ 'admins or by the users who created them.');
+ }
+ }
+ }
+ }
+">>).
View
0 src/couchdb/couch_replicator_utils.erl → ...replicator/src/couch_replicator_utils.erl
File renamed without changes.
View
0 src/couchdb/couch_replicator_worker.erl → ...eplicator/src/couch_replicator_worker.erl
File renamed without changes.
View
0 test/etap/230-httpc-pool.t → src/couch_replicator/test/001-httpc-pool.t
File renamed without changes.
View
0 test/etap/240-replication-compact.t → ...replicator/test/002-replication-compact.t
File renamed without changes.
View
0 test/etap/241-replication-large-atts.t → ...licator/test/003-replication-large-atts.t
File renamed without changes.
View
0 test/etap/242-replication-many-leaves.t → ...icator/test/004-replication-many-leaves.t
File renamed without changes.
View
26 src/couchdb/Makefile.am
@@ -17,7 +17,7 @@ couchlibdir = $(localerlanglibdir)/couch-$(version)
couchincludedir = $(couchlibdir)/include
couchebindir = $(couchlibdir)/ebin
-couchinclude_DATA = couch_api_wrap.hrl couch_db.hrl couch_js_functions.hrl couch_replicator.hrl
+couchinclude_DATA = couch_db.hrl couch_js_functions.hrl
couchebin_DATA = $(compiled_files)
# dist_devdoc_DATA = $(doc_base) $(doc_modules)
@@ -28,8 +28,6 @@ CLEANFILES = $(compiled_files) $(doc_base)
source_files = \
couch.erl \
- couch_api_wrap.erl \
- couch_api_wrap_httpc.erl \
couch_app.erl \
couch_auth_cache.erl \
couch_btree.erl \
@@ -48,15 +46,13 @@ source_files = \
couch_external_manager.erl \
couch_external_server.erl \
couch_file.erl \
- couch_httpc_pool.erl \
couch_httpd.erl \
couch_httpd_db.erl \
couch_httpd_auth.erl \
couch_httpd_oauth.erl \
couch_httpd_external.erl \
couch_httpd_misc_handlers.erl \
couch_httpd_proxy.erl \
- couch_httpd_replicator.erl \
couch_httpd_rewrite.erl \
couch_httpd_stats_handlers.erl \
couch_httpd_vhost.erl \
@@ -68,12 +64,6 @@ source_files = \
couch_primary_sup.erl \
couch_query_servers.erl \
couch_ref_counter.erl \
- couch_rep_sup.erl \
- couch_replication_manager.erl \
- couch_replication_notifier.erl \
- couch_replicator.erl \
- couch_replicator_worker.erl \
- couch_replicator_utils.erl \
couch_secondary_sup.erl \
couch_server.erl \
couch_server_sup.erl \
@@ -87,13 +77,11 @@ source_files = \
couch_work_queue.erl \
json_stream_parse.erl
-EXTRA_DIST = $(source_files) couch_api_wrap.hrl couch_db.hrl couch_js_functions.hrl couch_replicator.hrl
+EXTRA_DIST = $(source_files) couch_db.hrl couch_js_functions.hrl
compiled_files = \
couch.app \
couch.beam \
- couch_api_wrap.beam \
- couch_api_wrap_httpc.beam \
couch_app.beam \
couch_auth_cache.beam \
couch_btree.beam \
@@ -112,15 +100,13 @@ compiled_files = \
couch_external_manager.beam \
couch_external_server.beam \
couch_file.beam \
- couch_httpc_pool.beam \
couch_httpd.beam \
couch_httpd_db.beam \
couch_httpd_auth.beam \
couch_httpd_oauth.beam \
couch_httpd_proxy.beam \
couch_httpd_external.beam \
couch_httpd_misc_handlers.beam \
- couch_httpd_replicator.beam \
couch_httpd_rewrite.beam \
couch_httpd_stats_handlers.beam \
couch_httpd_vhost.beam \
@@ -132,12 +118,6 @@ compiled_files = \
couch_primary_sup.beam \
couch_query_servers.beam \
couch_ref_counter.beam \
- couch_rep_sup.beam \
- couch_replication_manager.beam \
- couch_replication_notifier.beam \
- couch_replicator.beam \
- couch_replicator_worker.beam \
- couch_replicator_utils.beam \
couch_secondary_sup.beam \
couch_server.beam \
couch_server_sup.beam \
@@ -207,6 +187,6 @@ endif
# $(ERL) -noshell -run edoc_run files [\"$<\"]
-%.beam: %.erl couch_api_wrap.hrl couch_db.hrl couch_js_functions.hrl couch_replicator.hrl
+%.beam: %.erl couch_db.hrl couch_js_functions.hrl
$(ERLC) $(ERLC_FLAGS) ${TEST} $<;
View
1 src/couchdb/couch.app.tpl.in
@@ -11,7 +11,6 @@
couch_log,
couch_primary_services,
couch_query_servers,
- couch_rep_sup,
couch_secondary_services,
couch_server,
couch_server_sup,
View
141 src/couchdb/couch_js_functions.hrl
@@ -104,144 +104,3 @@
}
}
">>).
-
-
--define(REP_DB_DOC_VALIDATE_FUN, <<"
- function(newDoc, oldDoc, userCtx) {
- function reportError(error_msg) {
- log('Error writing document `' + newDoc._id +
- '\\' to the replicator database: ' + error_msg);
- throw({forbidden: error_msg});
- }
-
- function validateEndpoint(endpoint, fieldName) {
- if ((typeof endpoint !== 'string') &&
- ((typeof endpoint !== 'object') || (endpoint === null))) {
-
- reportError('The `' + fieldName + '\\' property must exist' +
- ' and be either a string or an object.');
- }
-
- if (typeof endpoint === 'object') {
- if ((typeof endpoint.url !== 'string') || !endpoint.url) {
- reportError('The url property must exist in the `' +
- fieldName + '\\' field and must be a non-empty string.');
- }
-
- if ((typeof endpoint.auth !== 'undefined') &&
- ((typeof endpoint.auth !== 'object') ||
- endpoint.auth === null)) {
-
- reportError('`' + fieldName +
- '.auth\\' must be a non-null object.');
- }
-
- if ((typeof endpoint.headers !== 'undefined') &&
- ((typeof endpoint.headers !== 'object') ||
- endpoint.headers === null)) {
-
- reportError('`' + fieldName +
- '.headers\\' must be a non-null object.');
- }
- }
- }
-
- var isReplicator = (userCtx.roles.indexOf('_replicator') >= 0);
- var isAdmin = (userCtx.roles.indexOf('_admin') >= 0);
-
- if (oldDoc && !newDoc._deleted && !isReplicator &&
- (oldDoc._replication_state === 'triggered')) {
- reportError('Only the replicator can edit replication documents ' +
- 'that are in the triggered state.');
- }
-
- if (!newDoc._deleted) {
- validateEndpoint(newDoc.source, 'source');
- validateEndpoint(newDoc.target, 'target');
-
- if ((typeof newDoc.create_target !== 'undefined') &&
- (typeof newDoc.create_target !== 'boolean')) {
-
- reportError('The `create_target\\' field must be a boolean.');
- }
-
- if ((typeof newDoc.continuous !== 'undefined') &&
- (typeof newDoc.continuous !== 'boolean')) {
-
- reportError('The `continuous\\' field must be a boolean.');
- }
-
- if ((typeof newDoc.doc_ids !== 'undefined') &&
- !isArray(newDoc.doc_ids)) {
-
- reportError('The `doc_ids\\' field must be an array of strings.');
- }
-
- if ((typeof newDoc.filter !== 'undefined') &&
- ((typeof newDoc.filter !== 'string') || !newDoc.filter)) {
-
- reportError('The `filter\\' field must be a non-empty string.');
- }
-
- if ((typeof newDoc.query_params !== 'undefined') &&
- ((typeof newDoc.query_params !== 'object') ||
- newDoc.query_params === null)) {
-
- reportError('The `query_params\\' field must be an object.');
- }
-
- if (newDoc.user_ctx) {
- var user_ctx = newDoc.user_ctx;
-
- if ((typeof user_ctx !== 'object') || (user_ctx === null)) {
- reportError('The `user_ctx\\' property must be a ' +
- 'non-null object.');
- }
-
- if (!(user_ctx.name === null ||
- (typeof user_ctx.name === 'undefined') ||
- ((typeof user_ctx.name === 'string') &&
- user_ctx.name.length > 0))) {
-
- reportError('The `user_ctx.name\\' property must be a ' +
- 'non-empty string or null.');
- }
-
- if (!isAdmin && (user_ctx.name !== userCtx.name)) {
- reportError('The given `user_ctx.name\\' is not valid');
- }
-
- if (user_ctx.roles && !isArray(user_ctx.roles)) {
- reportError('The `user_ctx.roles\\' property must be ' +
- 'an array of strings.');
- }
-
- if (!isAdmin && user_ctx.roles) {
- for (var i = 0; i < user_ctx.roles.length; i++) {
- var role = user_ctx.roles[i];
-
- if (typeof role !== 'string' || role.length === 0) {
- reportError('Roles must be non-empty strings.');
- }
- if (userCtx.roles.indexOf(role) === -1) {
- reportError('Invalid role (`' + role +
- '\\') in the `user_ctx\\'');
- }
- }
- }
- } else {
- if (!isAdmin) {
- reportError('The `user_ctx\\' property is missing (it is ' +
- 'optional for admins only).');
- }
- }
- } else {
- if (!isAdmin) {
- if (!oldDoc.user_ctx || (oldDoc.user_ctx.name !== userCtx.name)) {
- reportError('Replication documents can only be deleted by ' +
- 'admins or by the users who created them.');
- }
- }
- }
- }
-">>).
View
9 test/etap/001-load.t
@@ -19,8 +19,6 @@ main(_) ->
test_util:init_code_path(),
Modules = [
couch_auth_cache,
- couch_api_wrap,
- couch_api_wrap_httpc,
couch_btree,
couch_changes,
couch_compress,
@@ -41,20 +39,13 @@ main(_) ->
couch_httpd_db,
couch_httpd_external,
couch_httpd_misc_handlers,
- couch_httpd_replicator,
couch_httpd_rewrite,
couch_httpd_stats_handlers,
couch_key_tree,
couch_log,
couch_os_process,
couch_query_servers,
couch_ref_counter,
- couch_replication_manager,
- couch_replication_notifier,
- couch_replicator,
- couch_replicator_worker,
- couch_replicator_utils,
- couch_rep_sup,
couch_server,
couch_server_sup,
couch_stats_aggregator,
View
6 test/etap/Makefile.am
@@ -89,8 +89,4 @@ EXTRA_DIST = \
200-view-group-no-db-leaks.t \
201-view-group-shutdown.t \
210-os-proc-pool.t \
- 220-compaction-daemon.t \
- 230-httpc-pool.t \
- 240-replication-compact.t \
- 241-replication-large-atts.t \
- 242-replication-many-leaves.t
+ 220-compaction-daemon.t

0 comments on commit ad52679

Please sign in to comment.
Something went wrong with that request. Please try again.