Project

General

Profile

Feature #1869

Allow alternative SVN client implementations for SVNCR

Added by Udo Offermann over 7 years ago. Updated almost 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
z2-core
Target version:
Start date:
30.12.2014
Due date:
% Done:

100%

Estimated time:
origin:

Description

Today com.zfabrik.boot.svnaccess uses SVNKit as SVN-client implementation. SVNKit's free of charge open-source license is not allowed for commercial use. Therefore we need an alternative SVN client implementation for business scenarios.

The idea is to use SvnClientAdapter as high-level SVN-client API (Apache Licenece Version 2) which can be used with different implementations such as SVNKit, JavaHL and SVN command line client. The different implementations will be covered by variations of com.zfabrik.boot.svnaccess like com.zfabrik.boot.svnaccess.svnkit, com.zfabrik.boot.svnaccess.javahl and com.zfabrik.boot.svnaccess.cmdline.

This issue contains the following steps:

  1. com.zfabrik.boot.svncr uses SvnClientAdapter as SVN client API
  2. All com.zfabrik.boot.svnaccess.xyz gets a private reference to com.zfabrik.boot.svncr and provide their specific implementation including all necessary libraries
  3. Furthermore all com.zfabrik.boot.svnaccess.xyz modules provide an any-component which establishes the access to the implementation. The component can be found by a specific property com.zfabrik.extension=com.zfabrik.svnaccess. The corresponding Resource-class returns the SvnClientAdapter interface when calling its as() method.
  4. com.zfabrik.boot.svncr queries for com.zfabrik.extension=com.zfabrik.svnaccess in order to retrive the SvnClientAdapter interface.

Related issues

Related to z2-Environment - Bug #1903: com.zfabrik.boot.svnaccess computes wrong base-line revision for branchesResolved17.06.2015Udo Offermann

Actions

Also available in: Atom PDF