Add features into our build process that can make use of the SVNKit library to
interact with the Subversion workspace. This includes three components:
- A new Ant task that stores the current workspace revision number in an Ant
property which gets built into DynamicConstants.java and exposed in the
--fullversion and "cn=version,cn=monitor" information.
- A new Ant task that checks all files that have been locally modified in the
current workspace for potential cases in which a copyright date needs to be
updated to include the current year.
- A change to the coveragediff tool so that it uses the SVNKit library to
obtain the diff rather than trying to execute the external svn/svn.exe
command.
19 files added
5 files modified
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.build.tools; |
| | | |
| | | |
| | | |
| | | import java.io.BufferedReader; |
| | | import java.io.File; |
| | | import java.io.FileReader; |
| | | import java.io.IOException; |
| | | import java.util.GregorianCalendar; |
| | | import java.util.LinkedList; |
| | | |
| | | import org.apache.tools.ant.BuildException; |
| | | import org.apache.tools.ant.DirectoryScanner; |
| | | import org.apache.tools.ant.Task; |
| | | import org.apache.tools.ant.types.FileSet; |
| | | |
| | | import org.tmatesoft.svn.core.SVNException; |
| | | import org.tmatesoft.svn.core.wc.SVNStatus; |
| | | import org.tmatesoft.svn.core.wc.SVNStatusClient; |
| | | import org.tmatesoft.svn.core.wc.SVNStatusType; |
| | | |
| | | |
| | | |
| | | /** |
| | | * This class provides an implementation of an Ant task that may be used to |
| | | * verify that the copyright dates of all modified files in the workspace have |
| | | * been updated to include the current year. In particular, for all files in |
| | | * one of the specified filesets that have been created or modified in the |
| | | * local workspace, it will parse the file for any line which appears to be |
| | | * a comment and contains the word "copyright". If the line does not also |
| | | * contain the current year, then it will be flagged as a potential violation to |
| | | * be addressed. |
| | | */ |
| | | public class CheckCopyrightDates |
| | | extends Task |
| | | { |
| | | /** |
| | | * The name of the system property that may be used to prevent copyright date |
| | | * problems from failing the build. |
| | | */ |
| | | public static final String IGNORE_ERRORS_PROPERTY = |
| | | "org.opends.server.IgnoreCopyrightDateErrors"; |
| | | |
| | | |
| | | |
| | | // A list of all the filesets to be checked. |
| | | private LinkedList<FileSet> filesetList = new LinkedList<FileSet>(); |
| | | |
| | | // The path to the root of the Subversion workspace for which to retrieve the |
| | | // revision number. |
| | | private String workspace = null; |
| | | |
| | | |
| | | |
| | | /** |
| | | * Adds the provided fileset to the list of filesets that should be checked. |
| | | * |
| | | * @param fileset A fileset containing a list of files that should be |
| | | * checked. |
| | | */ |
| | | public void addFileset(FileSet fileset) |
| | | { |
| | | filesetList.add(fileset); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Specifies the path to the root of the Subversion workspace for which to |
| | | * retrieve the revision number. |
| | | * |
| | | * @param workspace The path to the root of the Subversion workspace for |
| | | * which to retrieve the revision number. |
| | | */ |
| | | public void setWorkspace(String workspace) |
| | | { |
| | | this.workspace = workspace; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Performs the appropriate processing needed for this task. In this case, |
| | | * it uses SVNKit to identify all modified files in the current workspace. |
| | | * For all source files |
| | | * |
| | | * the current revision number for the local |
| | | * workspace and store it in a specified property. |
| | | */ |
| | | @Override() |
| | | public void execute() |
| | | { |
| | | // Make sure that at least one fileset was provided. |
| | | if (filesetList.isEmpty()) |
| | | { |
| | | throw new BuildException("ERROR: No filesets were specified to " + |
| | | "indicate which files should be checked."); |
| | | } |
| | | |
| | | |
| | | File workspacePath; |
| | | if ((workspace == null) || (workspace.length() == 0)) |
| | | { |
| | | workspacePath = getProject().getBaseDir(); |
| | | } |
| | | else |
| | | { |
| | | workspacePath = new File(workspace); |
| | | } |
| | | String workspacePathString = workspacePath.getAbsolutePath() + |
| | | File.separator; |
| | | |
| | | |
| | | // Get the year to use in the determination. |
| | | GregorianCalendar calendar = new GregorianCalendar(); |
| | | int year = calendar.get(GregorianCalendar.YEAR); |
| | | String yearString = String.valueOf(year); |
| | | |
| | | |
| | | // Get the current status for all files in the fileset. For any files with |
| | | // local changes, see if there are any files that potentially have the wrong |
| | | // copyright year. |
| | | SVNStatusClient svnClient = new SVNStatusClient(null, null); |
| | | |
| | | LinkedList<String> problemFiles = new LinkedList<String>(); |
| | | for (FileSet fileSet : filesetList) |
| | | { |
| | | DirectoryScanner scanner = fileSet.getDirectoryScanner(getProject()); |
| | | for (String relativePath : scanner.getIncludedFiles()) |
| | | { |
| | | String filePath = scanner.getBasedir() + File.separator + relativePath; |
| | | |
| | | try |
| | | { |
| | | SVNStatus svnStatus = svnClient.doStatus(new File(filePath), false); |
| | | if (svnStatus == null) |
| | | { |
| | | System.err.println("WARNING: Could not determine Subversion " + |
| | | "status for file " + filePath); |
| | | System.err.println("No further copyright date checking will be " + |
| | | "performed."); |
| | | return; |
| | | } |
| | | |
| | | SVNStatusType statusType = svnStatus.getContentsStatus(); |
| | | if ((statusType == SVNStatusType.STATUS_ADDED) || |
| | | (statusType == SVNStatusType.STATUS_MODIFIED) || |
| | | (statusType == SVNStatusType.STATUS_UNVERSIONED)) |
| | | { |
| | | BufferedReader reader = null; |
| | | try |
| | | { |
| | | boolean copyrightFound = false; |
| | | boolean correctYearFound = false; |
| | | reader = new BufferedReader(new FileReader(filePath)); |
| | | String line = reader.readLine(); |
| | | while (line != null) |
| | | { |
| | | String lowerLine = line.toLowerCase().trim(); |
| | | if (isCommentLine(lowerLine)) |
| | | { |
| | | int copyrightPos = lowerLine.indexOf("copyright"); |
| | | if (copyrightPos > 0) |
| | | { |
| | | copyrightFound = true; |
| | | if (lowerLine.indexOf(yearString) > 0) |
| | | { |
| | | correctYearFound = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | line = reader.readLine(); |
| | | } |
| | | |
| | | if (copyrightFound && (! correctYearFound)) |
| | | { |
| | | if (filePath.startsWith(workspacePathString)) |
| | | { |
| | | problemFiles.add(filePath.substring( |
| | | workspacePathString.length())); |
| | | } |
| | | else |
| | | { |
| | | problemFiles.add(filePath); |
| | | } |
| | | } |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | System.err.println("ERROR: Could not read file " + filePath + |
| | | " to check copyright date."); |
| | | System.err.println("No further copyright date checking will be " + |
| | | "performed."); |
| | | return; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | if (reader != null) |
| | | { |
| | | reader.close(); |
| | | } |
| | | } catch (Exception e) {} |
| | | } |
| | | } |
| | | } |
| | | catch (SVNException svnException) |
| | | { |
| | | System.err.println("WARNING: Could not determine Subversion " + |
| | | "status for file " + filePath + ": " + |
| | | svnException); |
| | | System.err.println("No further copyright date checking will be " + |
| | | "performed."); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | if (! problemFiles.isEmpty()) |
| | | { |
| | | System.err.println("WARNING: Potential copyright year updates needed " + |
| | | "for the following files:"); |
| | | for (String filename : problemFiles) |
| | | { |
| | | System.err.println(" " + filename); |
| | | } |
| | | |
| | | String ignoreStr = getProject().getProperty(IGNORE_ERRORS_PROPERTY); |
| | | if ((ignoreStr == null) || (! ignoreStr.equalsIgnoreCase("true"))) |
| | | { |
| | | throw new BuildException("Fix copyright date problems before " + |
| | | "proceeding, or use '-D" + |
| | | IGNORE_ERRORS_PROPERTY + "=true' to " + |
| | | "ignore copyright warnings."); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Indicates whether the provided line appears to be a comment line. It will |
| | | * check for a number of common comment indicators in Java source files, |
| | | * shell scripts, XML files, and LDIF files. |
| | | * |
| | | * @param lowerLine The line to be checked. It should have been coverted to |
| | | * all lowercase characters and any leading spaces |
| | | * removed. |
| | | * |
| | | * @return {@code true} if it appears that the line is a comment line, or |
| | | * {@code false} if not. |
| | | */ |
| | | private static boolean isCommentLine(String lowerLine) |
| | | { |
| | | if (lowerLine.startsWith("/*") || |
| | | lowerLine.startsWith("*") || |
| | | lowerLine.startsWith("//") || |
| | | lowerLine.startsWith("#") || |
| | | lowerLine.startsWith("<!--") || |
| | | lowerLine.startsWith("!")) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.build.tools; |
| | | |
| | | import com.vladium.emma.report.*; |
| | |
| | | import org.apache.tools.ant.Task; |
| | | import org.apache.tools.ant.BuildException; |
| | | |
| | | import org.tmatesoft.svn.core.SVNException; |
| | | import org.tmatesoft.svn.core.wc.SVNDiffClient; |
| | | import org.tmatesoft.svn.core.wc.SVNRevision; |
| | | |
| | | public class CoverageDiff extends Task { |
| | | |
| | | |
| | |
| | | private File emmaDataPath; |
| | | private File outputPath; |
| | | private String diffPath; |
| | | private File svnPath; |
| | | |
| | | public void setEmmaDataPath(String file) |
| | | { |
| | |
| | | diffPath = diffArgs; |
| | | } |
| | | |
| | | public void setSvnPath(String file) |
| | | { |
| | | svnPath = new File(file); |
| | | } |
| | | |
| | | public void setVerbose(String bol) |
| | | { |
| | | verbose = bol.toLowerCase().equals("true"); |
| | |
| | | } |
| | | } |
| | | |
| | | private void innerExecute() throws BuildException |
| | | private void innerExecute() throws BuildException, SVNException |
| | | { |
| | | long start = System.currentTimeMillis(); |
| | | verboseOut("Starting to execute coveragediff."); |
| | |
| | | return m_view; |
| | | } |
| | | |
| | | private BufferedReader getDiffOutputReader() throws IOException { |
| | | private BufferedReader getDiffOutputReader() |
| | | throws IOException, SVNException { |
| | | File workspaceRoot = getProject().getBaseDir(); |
| | | |
| | | StringBuilder svnExecCommand = new StringBuilder(); |
| | | SVNDiffClient svnClient = new SVNDiffClient(null, null); |
| | | |
| | | verboseOut("svnPath = " + svnPath); |
| | | if(svnPath != null && svnPath.isAbsolute() && svnPath.isFile()) |
| | | { |
| | | svnExecCommand.append(svnPath.getAbsolutePath()); |
| | | } |
| | | else |
| | | { |
| | | //Just hope its in the path. On Windows, we need to look for svn.exe instead of just svn. |
| | | if (System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0) { |
| | | svnExecCommand.append("svn.exe"); |
| | | } else { |
| | | svnExecCommand.append("svn"); |
| | | } |
| | | } |
| | | File diffFile = File.createTempFile("coverage", "diff"); |
| | | diffFile.deleteOnExit(); |
| | | |
| | | //First verify svn is in path |
| | | final Process checkChild = Runtime.getRuntime().exec(new String[]{svnExecCommand.toString(), "--version"}); |
| | | svnClient.doDiff(workspaceRoot, SVNRevision.BASE, workspaceRoot, |
| | | SVNRevision.WORKING, true, false, |
| | | new FileOutputStream(diffFile)); |
| | | |
| | | verboseOut("Waiting for '" + svnExecCommand + " --version' to complete."); |
| | | |
| | | try |
| | | { |
| | | // We have to consume the output of the process (at least on Windows). |
| | | BufferedReader reader = |
| | | new BufferedReader(new InputStreamReader(checkChild.getInputStream())); |
| | | while (reader.readLine() != null) { |
| | | // Skip over the output of the process |
| | | } |
| | | |
| | | checkChild.waitFor(); |
| | | } |
| | | catch(InterruptedException ie) |
| | | { |
| | | throw new IOException("svn --version process interrupted"); |
| | | } |
| | | |
| | | verboseOut("'" + svnExecCommand + " --version' has completed."); |
| | | |
| | | if(checkChild.exitValue() != 0) |
| | | { |
| | | throw new IOException("Error returned from SVN call"); |
| | | } |
| | | checkChild.destroy(); |
| | | |
| | | List<String> cmdArray = new ArrayList<String>(); |
| | | // TODO: ideally, this should build up a command arg array instead of a single string |
| | | // to guard against svn having spaces in the path. But that isn't too likely |
| | | svnExecCommand.append(" diff "); |
| | | |
| | | if(diffPath != null) |
| | | { |
| | | svnExecCommand.append(diffPath); |
| | | } |
| | | |
| | | verboseOut("About to execute " + svnExecCommand.toString()); |
| | | final Process child = Runtime.getRuntime().exec(svnExecCommand.toString()); |
| | | InputStream diffOutputStream = child.getInputStream(); |
| | | return new BufferedReader(new InputStreamReader(diffOutputStream)); |
| | | return new BufferedReader(new InputStreamReader(new FileInputStream( |
| | | diffFile))); |
| | | } |
| | | |
| | | private void processDiffOutput(BufferedReader diffOutput, |
| | |
| | | int workingCopyRange; |
| | | int otherCopyBegin; |
| | | int otherCopyRange; |
| | | |
| | | |
| | | Double[] modCoverage = new Double[4]; |
| | | modCoverage[COVERED_MOD_EXE_LINES] = 0.0; |
| | | modCoverage[MOD_EXE_LINES] = 0.0; |
| | |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | for(Iterator packages = rootItem.getChildren(); packages.hasNext();) |
| | | { |
| | | IItem packageItem = (IItem)packages.next(); |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.build.tools; |
| | | |
| | | |
| | | |
| | | import java.io.File; |
| | | |
| | | import org.apache.tools.ant.BuildException; |
| | | import org.apache.tools.ant.Task; |
| | | |
| | | import org.tmatesoft.svn.core.SVNException; |
| | | import org.tmatesoft.svn.core.wc.SVNInfo; |
| | | import org.tmatesoft.svn.core.wc.SVNRevision; |
| | | import org.tmatesoft.svn.core.wc.SVNWCClient; |
| | | |
| | | |
| | | |
| | | /** |
| | | * This class provides an implementation of an Ant task that may be used to |
| | | * determine the current Subversion revision number of the current working |
| | | * copy. The value of the revision number will be stored in an Ant property. |
| | | */ |
| | | public class GetSubversionRevision |
| | | extends Task |
| | | { |
| | | // The name of the property in which the revision number should be set. |
| | | private String propertyName = null; |
| | | |
| | | // The path to the root of the Subversion workspace for which to retrieve the |
| | | // revision number. |
| | | private String workspace = null; |
| | | |
| | | |
| | | |
| | | /** |
| | | * Specifies the name of the Ant property into which the Subversion revision |
| | | * number will be stored. |
| | | * |
| | | * @param propertyName The name of the Ant property into which the |
| | | * Subversion revision number will be stored. |
| | | */ |
| | | public void setProperty(String propertyName) |
| | | { |
| | | this.propertyName = propertyName; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Specifies the path to the root of the Subversion workspace for which to |
| | | * retrieve the revision number. |
| | | * |
| | | * @param workspace The path to the root of the Subversion workspace for |
| | | * which to retrieve the revision number. |
| | | */ |
| | | public void setWorkspace(String workspace) |
| | | { |
| | | this.workspace = workspace; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Performs the appropriate processing needed for this task. In this case, |
| | | * it uses SVNKit to identify the current revision number for the local |
| | | * workspace and store it in a specified property. |
| | | */ |
| | | @Override() |
| | | public void execute() |
| | | { |
| | | if ((propertyName == null) || (propertyName.length() == 0)) |
| | | { |
| | | throw new BuildException("ERROR: No property was specified for " + |
| | | "storing the revision number value."); |
| | | } |
| | | |
| | | File workspacePath; |
| | | if ((workspace == null) || (workspace.length() == 0)) |
| | | { |
| | | workspacePath = getProject().getBaseDir(); |
| | | } |
| | | else |
| | | { |
| | | workspacePath = new File(workspace); |
| | | } |
| | | |
| | | |
| | | SVNWCClient svnClient = new SVNWCClient(null, null); |
| | | |
| | | try |
| | | { |
| | | SVNInfo svnInfo = svnClient.doInfo(workspacePath, SVNRevision.WORKING); |
| | | SVNRevision revision = svnInfo.getRevision(); |
| | | if (revision == null) |
| | | { |
| | | System.err.println("WARNING: Could not determine Subversion " + |
| | | "revision number for current workspace."); |
| | | getProject().setNewProperty(propertyName, "-1"); |
| | | } |
| | | else |
| | | { |
| | | getProject().setNewProperty(propertyName, |
| | | String.valueOf(revision.getNumber())); |
| | | } |
| | | } |
| | | catch (SVNException svnException) |
| | | { |
| | | System.err.println("WARNING: Could not determine Subversion " + |
| | | "revision number for current workspace: " + |
| | | svnException); |
| | | getProject().setNewProperty(propertyName, "-1"); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | ! CDDL HEADER END |
| | | ! |
| | | ! |
| | | ! Portions Copyright 2006 Sun Microsystems, Inc. |
| | | ! Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | ! --> |
| | | |
| | | <project name="Directory Server" basedir="." default="package"> |
| | |
| | | <!-- Properties for the checkstyle tool. --> |
| | | <property name="checkstyle.dir" location="${ext.dir}/checkstyle" /> |
| | | |
| | | <!-- Properties for the SVNKit tool. --> |
| | | <property name="svnkit.dir" location="${ext.dir}/svnkit" /> |
| | | |
| | | <!-- Properties for Directory Server version information. --> |
| | | <property name="dynconstants.file" |
| | | location="${src.dir}/org/opends/server/util/DynamicConstants.java" /> |
| | |
| | | |
| | | |
| | | <!-- The build target that should be used before committing code. --> |
| | | <target name="precommit" depends="checkstyle,clean,dsml,javadoc,testwithcoverage" |
| | | <target name="precommit" depends="checkstyle,clean,copyrightdates,dsml,javadoc,testwithcoverage" |
| | | description="Perform all processing needed before committing code." /> |
| | | |
| | | |
| | |
| | | |
| | | <!-- The build target that should be used to build everything. --> |
| | | <target name="all" |
| | | depends="checkstyle,dsml,javadoc,testallwithcoverage" |
| | | depends="checkstyle,clean,copyrightdates,dsml,javadoc,testallwithcoverage" |
| | | description="Build using all defined targets." /> |
| | | |
| | | |
| | |
| | | <isset property="JVM_VENDOR" /> |
| | | </not> |
| | | </condition> |
| | | </target> |
| | | |
| | | |
| | | |
| | | |
| | | <!-- Build the DynamicConstants.java file and any of its dependencies. --> |
| | | <target name="dynamicconstants" depends="init,buildtools"> |
| | | <!-- Get the revision number of the current Subversion workspace --> |
| | | <taskdef name="getsvnrevision" |
| | | classname="org.opends.build.tools.GetSubversionRevision"> |
| | | <classpath> |
| | | <fileset dir="${build.dir}/build-tools"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | <fileset dir="${svnkit.dir}"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | </classpath> |
| | | </taskdef> |
| | | |
| | | <getsvnrevision property="REVISION_NUMBER" /> |
| | | |
| | | |
| | | <!-- Generate the DynamicConstants.java file. |
| | | Be warned that the .stubs file references the following properties |
| | | PRODUCT_NAME, SHORT_NAME, MAJOR_VERSION, MINOR_VERSION, POINT_VERSION, |
| | | VERSION_QUALIFIER, FIX_IDS, timestamp, user.name, java.version, |
| | | java.vendor, java.vm.version, JVM_VENDOR, DEBUG_BUILD |
| | | java.vendor, java.vm.version, JVM_VENDOR, DEBUG_BUILD, REVISION_NUMBER |
| | | If you change the name of any of those properties in this build.xml |
| | | you'll need to relfect the same change in the .stubs file |
| | | --> |
| | |
| | | |
| | | |
| | | |
| | | <!-- Check modified files to see any copyright updates are needed. --> |
| | | <target name="copyrightdates" depends="buildtools" |
| | | description="Ensure updated files have the correct copyright year" > |
| | | <taskdef name="checkcopyrightdates" |
| | | classname="org.opends.build.tools.CheckCopyrightDates"> |
| | | <classpath> |
| | | <fileset dir="${build.dir}/build-tools"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | <fileset dir="${svnkit.dir}"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | </classpath> |
| | | </taskdef> |
| | | |
| | | <checkcopyrightdates> |
| | | <fileset dir="${src.dir}" includes="**/*.java" /> |
| | | <fileset dir="${quicksetup.src.dir}" includes="**/*.java" /> |
| | | <fileset dir="${statuspanel.src.dir}" includes="**/*.java" /> |
| | | <fileset dir="${unittest.testng.src.dir}" includes="**/*.java" /> |
| | | <fileset dir="${functest.testng.src.dir}" includes="**/*.java" /> |
| | | <fileset dir="${basedir}" includes="**/*.xml" excludes="build/**/*" /> |
| | | <fileset dir="${basedir}" includes="**/*.sh" excludes="build/**/*" /> |
| | | <fileset dir="${basedir}" includes="**/*.bat" excludes="build/**/* " /> |
| | | <fileset dir="${basedir}" includes="**/*.ldif" excludes="build/**/*" /> |
| | | </checkcopyrightdates> |
| | | </target> |
| | | |
| | | |
| | | |
| | | |
| | | <!-- Ensure that the source code meets basic style requirements. --> |
| | | <target name="checkstyle" description="Perform basic source style checks"> |
| | | |
| | |
| | | |
| | | |
| | | <!-- Compile the Directory Server source files. --> |
| | | <target name="cleancompile" depends="cleaninit,compile,compilequicksetup,compilestatuspanel" |
| | | <target name="cleancompile" |
| | | depends="cleaninit,compile,compilequicksetup,compilestatuspanel" |
| | | description="Recompile the Directory Server source files."> |
| | | </target> |
| | | |
| | | <!-- Compile the Directory Server source files. --> |
| | | <target name="compile" |
| | | depends="init" |
| | | depends="init,dynamicconstants" |
| | | description="Compile the Directory Server source files."> |
| | | |
| | | <mkdir dir="${classes.dir}" /> |
| | |
| | | </not> |
| | | </condition> |
| | | |
| | | <condition property="test.diff.svnpath" value=""> |
| | | <not> |
| | | <isset property="test.diff.svnpath" /> |
| | | </not> |
| | | </condition> |
| | | |
| | | <condition property="test.diff.enabled" value="true"> |
| | | <not> |
| | | <isset property="test.diff.disable" /> |
| | |
| | | <fileset dir="${emma.dir}"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | <fileset dir="${svnkit.dir}"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | </classpath> |
| | | </taskdef> |
| | | |
| | | <coveragediff emmadatapath="${coverage.data.dir}" |
| | | outputpath="${cvgdiff.report.dir}" |
| | | diffpath="${test.diff.srcpath}" |
| | | svnpath="${test.diff.svnpath}" |
| | | enabled="${test.diff.enabled}" |
| | | verbose="${test.diff.verbose}" /> |
| | | |
| | |
| | | <fileset dir="${emma.dir}"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | |
| | | <fileset dir="${svnkit.dir}"> |
| | | <include name="*.jar" /> |
| | | </fileset> |
| | | |
| | | <path refid="run.classpath" /> |
| | | </classpath> |
| | | </javac> |
| New file |
| | |
| | | The TMate License |
| | | |
| | | This license applies to all portions of TMate SVNKit library, which |
| | | are not externally-maintained libraries (e.g. Ganymed SSH library). |
| | | |
| | | All the source code and compiled classes in package org.trigris.subversion.javahl |
| | | except SvnClient class are covered by the license in JAVAHL-LICENSE file |
| | | |
| | | Copyright (c) 2004-2006 TMate Software. All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without modification, |
| | | are permitted provided that the following conditions are met: |
| | | |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | this list of conditions and the following disclaimer. |
| | | |
| | | * Redistributions in binary form must reproduce the above copyright notice, |
| | | this list of conditions and the following disclaimer in the documentation |
| | | and/or other materials provided with the distribution. |
| | | |
| | | * Redistributions in any form must be accompanied by information on how to |
| | | obtain complete source code for the software that uses SVNKit and any |
| | | accompanying software that uses the software that uses SVNKit. The source |
| | | code must either be included in the distribution or be available for no |
| | | more than the cost of distribution plus a nominal fee, and must be freely |
| | | redistributable under reasonable conditions. For an executable file, complete |
| | | source code means the source code for all modules it contains. It does not |
| | | include source code for modules or files that typically accompany the major |
| | | components of the operating system on which the executable file runs. |
| | | |
| | | * Redistribution in any form without redistributing source code for software |
| | | that uses SVNKit is possible only when such redistribution is explictly permitted |
| | | by TMate Software. Please, contact TMate Software at support@svnkit.com to |
| | | get such permission. |
| | | |
| | | THIS SOFTWARE IS PROVIDED BY TMATE SOFTWARE ``AS IS'' AND ANY EXPRESS OR IMPLIED |
| | | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| | | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE |
| | | DISCLAIMED. |
| | | |
| | | IN NO EVENT SHALL TMATE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, |
| | | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| | | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| | | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
| | | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
| | | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| | | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| New file |
| | |
| | | Copyright (c) 2005 - 2006 Swiss Federal Institute of Technology (ETH Zurich),
|
| | | Department of Computer Science (http://www.inf.ethz.ch),
|
| | | Christian Plattner. All rights reserved.
|
| | |
|
| | | Redistribution and use in source and binary forms, with or without
|
| | | modification, are permitted provided that the following conditions
|
| | | are met:
|
| | |
|
| | | a.) Redistributions of source code must retain the above copyright
|
| | | notice, this list of conditions and the following disclaimer.
|
| | | b.) Redistributions in binary form must reproduce the above copyright
|
| | | notice, this list of conditions and the following disclaimer in the
|
| | | documentation and/or other materials provided with the distribution.
|
| | | c.) Neither the name of ETH Zurich nor the names of its contributors may
|
| | | be used to endorse or promote products derived from this software
|
| | | without specific prior written permission.
|
| | |
|
| | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| | | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
| | | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| | | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| | | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| | | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| | | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| | | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| | | POSSIBILITY OF SUCH DAMAGE.
|
| | |
|
| | |
|
| | | The Java implementations of the AES, Blowfish and 3DES ciphers have been
|
| | | taken (and slightly modified) from the cryptography package released by
|
| | | "The Legion Of The Bouncy Castle".
|
| | |
|
| | | Their license states the following:
|
| | |
|
| | | Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle
|
| | | (http://www.bouncycastle.org)
|
| | |
|
| | | Permission is hereby granted, free of charge, to any person obtaining a copy
|
| | | of this software and associated documentation files (the "Software"), to deal
|
| | | in the Software without restriction, including without limitation the rights
|
| | | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| | | copies of the Software, and to permit persons to whom the Software is
|
| | | furnished to do so, subject to the following conditions:
|
| | |
|
| | | The above copyright notice and this permission notice shall be included in
|
| | | all copies or substantial portions of the Software.
|
| | |
|
| | | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| | | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| | | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| | | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| | | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| | | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
| | | THE SOFTWARE. |
| | |
|
| New file |
| | |
| | | This license applies to all portions of Subversion which are not |
| | | externally-maintained libraries (e.g. apr/, apr-util/, and neon/). |
| | | Such libraries have their own licenses; we recommend you read them, as |
| | | their terms may differ from the terms below. |
| | | |
| | | This is version 1 of this license. It is also available online at |
| | | http://subversion.tigris.org/license-1.html. If newer versions of |
| | | this license are posted there (the same URL, but with the version |
| | | number incremented: .../license-2.html, .../license-3.html, and so |
| | | on), you may use a newer version instead, at your option. |
| | | |
| | | ==================================================================== |
| | | Copyright (c) 2000-2005 CollabNet. All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without |
| | | modification, are permitted provided that the following conditions are |
| | | met: |
| | | |
| | | 1. Redistributions of source code must retain the above copyright |
| | | notice, this list of conditions and the following disclaimer. |
| | | |
| | | 2. Redistributions in binary form must reproduce the above copyright |
| | | notice, this list of conditions and the following disclaimer in the |
| | | documentation and/or other materials provided with the distribution. |
| | | |
| | | 3. The end-user documentation included with the redistribution, if |
| | | any, must include the following acknowledgment: "This product includes |
| | | software developed by CollabNet (http://www.Collab.Net/)." |
| | | Alternately, this acknowledgment may appear in the software itself, if |
| | | and wherever such third-party acknowledgments normally appear. |
| | | |
| | | 4. The hosted project names must not be used to endorse or promote |
| | | products derived from this software without prior written |
| | | permission. For written permission, please contact info@collab.net. |
| | | |
| | | 5. Products derived from this software may not use the "Tigris" name |
| | | nor may "Tigris" appear in their names without prior written |
| | | permission of CollabNet. |
| | | |
| | | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
| | | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| | | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| | | IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| | | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| | | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| | | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER |
| | | IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| | | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| | | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | ==================================================================== |
| | | |
| | | This software consists of voluntary contributions made by many |
| | | individuals on behalf of CollabNet. |
| | | |
| New file |
| | |
| | | This is a README.txt file for SVNKit - pure Java Subversion client library. |
| | | |
| | | 1. DESCRIPTION |
| | | |
| | | SVNKit is a pure Java Subversion client library. |
| | | |
| | | 2. LICENSING |
| | | |
| | | SVNKit is open source product. The complete source code, documentation, and files required |
| | | to build the library are available for download from our Web site at http://svnkit.com/ |
| | | |
| | | The TMate open source license permits you to use SVNKit at no charge under the condition |
| | | that if you use the software in an application you redistribute, the complete source code for |
| | | your application must be available and freely redistributable under reasonable conditions. |
| | | If you do not want to release the source code for your application, you may purchase a license |
| | | from TMate Software. For pricing information, or if you have further questions on licensing, |
| | | please contact us at support@svnkit.com. |
| | | |
| | | You may find the TMate open source license in COPYING file that is located within the same |
| | | directory as this file or at http://svnkit.com/license.html |
| | | |
| | | 3. FEATURES |
| | | |
| | | SVNKit allows to work with Subversion repositories and Subversion working copies. SVNKit features |
| | | direct repository access as well as support for all high level Subversion operation that are |
| | | available with the command line Subversion client. |
| | | |
| | | This version of SVNKit supports all Subversion 1.2 features and supports older Subversion repositories. |
| | | |
| | | 4. RESOURCES |
| | | |
| | | SVNKit Web Site: http://svnkit.com/ |
| | | SVNKit Documentation: http://svnkit.com/kb/index.html |
| | | |
| | | SVNKit Mailing List: http://svnkit.com/kb/mailinglist.html |
| | | SVNKit Issues Tracker: http://svnkit.com/tracker/ |
| | | |
| | | 5. CONTACTS |
| | | |
| | | On all questions related to SVNKit please contact us at support@svnkit.com |
| New file |
| | |
| | | Sequence Library License |
| | | |
| | | This license applies to all portions of the Sequence library, which |
| | | are not externally-maintained libraries (e.g. junit or jsch). |
| | | ==================================================================== |
| | | Copyright (c) 2000-2005 SyntEvo GmbH, Bayerisch Gmain, GERMANY. |
| | | All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without |
| | | modification, are permitted provided that the following conditions are |
| | | met: |
| | | |
| | | 1. Redistributions of source code must retain the above copyright |
| | | notice, this list of conditions and the following disclaimer. |
| | | |
| | | 2. Redistributions in binary form must reproduce the above copyright |
| | | notice, this list of conditions and the following disclaimer in the |
| | | documentation and/or other materials provided with the distribution. |
| | | |
| | | 3. The end-user documentation included with the redistribution, if |
| | | any, must include the following acknowledgment: "This product includes |
| | | software developed by SyntEvo GmbH, Bayerisch Gmain, GERMANY." |
| | | Alternately, this acknowledgment may appear in the software itself, if |
| | | and wherever such third-party acknowledgments normally appear. |
| | | |
| | | 4. The hosted project names must not be used to endorse or promote |
| | | products derived from this software without prior written |
| | | permission. For written permission, please contact |
| | | sequence-library@syntevo.com. |
| | | |
| | | 5. Neither the name of SyntEvo GmbH nor the names of its contributors |
| | | may be used to endorse or promote products derived from this |
| | | software without specific prior written permission. |
| | | |
| | | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
| | | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| | | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| | | IN NO EVENT SHALL SyntEvo GmbH OR HIS CONTRIBUTORS BE LIABLE FOR ANY |
| | | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| | | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| | | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER |
| | | IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| | | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| | | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | ==================================================================== |
| | | |
| | | |
| New file |
| | |
| | | = version 1.1.0 |
| | | |
| | | + command line application and API to perform svnsync. |
| | | + bugfixes. |
| | | |
| | | = version 1.1.0.beta5 |
| | | |
| | | + support for Subversion 1.4 working copy and new fsfs repository format. |
| | | + support for new features introduced by Subversion 1.4. |
| | | + bugfixes. |
| | | |
| | | = version 1.1.0.beta4 |
| | | |
| | | + bug introduced in beta3 version fixed: |
| | | Eclipse keyring credentials storage support was broken. |
| | | |
| | | = version 1.1.0.beta3 |
| | | |
| | | + Minor API improvements. |
| | | + Minor bugfixes. |
| | | |
| | | = version 1.1.0.beta2 |
| | | |
| | | + NTLM authentication method support. |
| | | + Javadoc updated to match new SVNKit features. |
| | | + Minor bugfixes. |
| | | |
| | | = version 1.1.0.beta |
| | | |
| | | + 'file' protocol support (for 'fsfs' repositories). |
| | | |
| | | = version 1.0.3 |
| | | |
| | | + improved cancellation support |
| | | + improved versioned symlinks handling |
| | | + improved HTTP proxies support |
| | | + bugfixes |
| | | |
| | | = version 1.0.2 |
| | | |
| | | + full support of the new Subversion 1.3.0 features. |
| | | + ssh 'keyboard-interactive' authentication support. |
| | | + ssl client certificate prompt support. |
| | | + error codes and error messages hierarchy support in the API. |
| | | + utility classes to genereta operatios output in XML format. |
| | | + faster delta generation and delta processing code. |
| | | + utility API classes to process and generate deltas. |
| | | + documentations improved, Commit and Export examples simplified. |
| | | + bugfixes |
| | | |
| | | ! Note: |
| | | This version includes minor API changes and is not binary compatible |
| | | with the previous versions. API changes are: |
| | | * String error messages replaced with SVNErrorMessage objects |
| | | * ISVNFileRevisionHanlder callback interface changed |
| | | * all callback interfaces methods now declared as throwing SVNException |
| | | |
| | | = version 1.0.1 |
| | | |
| | | + bugfixes |
| | | |
| | | = version 1.0.0 |
| | | |
| | | + documentation related improvements |
| | | + bugfixes |
| | | |
| | | = version 0.9.3 |
| | | |
| | | + licensing conditions changed |
| | | + support for atomic commit from different working copies |
| | | + persistent connections support |
| | | + improvements in performance and memory consumption |
| | | + bugfixes |
| | | |
| | | = version 0.9.2 |
| | | |
| | | + RC2: bugfixes related to configuration handling and svn+ssh authentication |
| | | |
| | | = version 0.9.1 |
| | | |
| | | + RC1: All features planned for 1.0 version are completed. |
| | | |
| | | = version 0.8.8.1 |
| | | |
| | | + critical bug in SVNKit Eclipse plugin fixed. |
| | | |
| | | = version 0.8.8 |
| | | |
| | | + http digest auth support (requires apache version > 2.0.48) |
| | | + wc->url and url->wc copy operations |
| | | + use-commit-times option support |
| | | + bugfixes |
| | | |
| | | = version 0.8.7.2 |
| | | |
| | | + Subclipse v0.9.30 compatible |
| | | |
| | | = version 0.8.7.1 |
| | | |
| | | + Subclipse v0.9.29 compatible |
| | | |
| | | = version 0.8.7 |
| | | |
| | | + http proxy support |
| | | + svn "keywords" are expanded properly |
| | | + different eol's in a file are handled correctly |
| | | + other minor bugfixes |
| | | |
| | | = version 0.8.6 |
| | | |
| | | + annotate (blame) operation is implemented. |
| | | + http: server socket close detected properly and doesn't result in operation failure. |
| | | + SVNClient: absolute paths are used in notifications. |
| | | + SVNClient: fileContent method traces file renames. |
| | | + SVNClient: list and logMessages methods return paths sorted alphabetically. |
| | | + SVNClient: auth info is stored in Eclipse key ring when used within Eclipse. |
| | | |
| | | = version 0.8.5 |
| | | |
| | | + SVNClient: WC copy and move operations work properly on Linux and OS X. |
| | | + SVNClient: "conflicted" status is reported correctly during update |
| | | ("merged" was reported instead). |
| | | |
| | | = version 0.8.4 |
| | | |
| | | + Subclipse Extension supports Subclipse 0.9.28 |
| | | + tabulations in externals definitions processed correctly. |
| | | |
| | | = version 0.8.3 |
| | | |
| | | + children of copied or moved directories were not committed properly when |
| | | their wc revision was different from the parent's one. |
| | | + http: all DAV requests (including commit comments) are sent in UTF-8 encoding. |
| | | + SvnClient: add and remove methods didn't work for directories, fixed. |
| | | + SvnClient: commit of single file deletion didn't work, fixed. |
| | | + Eclipse: SVNKit features installed from update site supports automatic update |
| | | |
| | | = version 0.8.2 |
| | | |
| | | + svn+ssh: persistent ssh connection is used to improve svn+ssh performance. |
| | | + http: problems with accessing repository location that needs different credentials then |
| | | repository root is fixed. |
| | | + http: all paths in requests are canonicalized, some svn server versions failed to |
| | | process non-canonicalized paths. |
| | | + wc: changes in externals were not committed correctly over http when using ISVNWorkspace.commit(...), fixed. |
| | | + SvnClient: diff method implemented (so that Eclipse "generate patch" action works). |
| | | + SvnClient: copy and move methods fixed to work properly in Subclipse repository view. |
| | | + SvnClient: setPrompt support, better notifications, "windows" paths are handled correctly. |
| | | + logging: Pluggable loggers support and detailed http logging added (thanks to Marc Strapez). |
| | | + logging: Eclipse SVNKit version uses Eclipse logging facilities. |
| | | |
| | | = version 0.8.1 |
| | | |
| | | + bugs with committing files within moved directories fixed |
| | | + bugfixes related to operations over http connection |
| | | + for subclipse users: more detailed console notifications on svn operations |
| | | |
| | | = version 0.8.0 |
| | | |
| | | + new builds versioning schema introduced |
| | | + update site with eclipse plugin and subclipse extension added |
| | | |
| | | = build 20050131 |
| | | |
| | | + import works properly with single file and when importing to |
| | | non-yet-existing directories |
| | | + switch works properly when switching single file |
| | | + more minor bugfixes |
| | | |
| | | = build 20050120 |
| | | |
| | | + bugs with commiting locally copied files fixed |
| | | + DAV '/' repository location handled correctly |
| | | |
| | | = build 20050112 |
| | | |
| | | + lot of incompatibilities with native svn fixed |
| | | + SVNClient supports remote deletion, copy and move operations |
| | | |
| | | = build 20050106 |
| | | |
| | | + number of bugs in remote status implementation fixed |
| | | + ISVNWorkspace.getFileContent method restored to keep binary compatibility |
| | | + Diff generators framework added, now SVNKit provides API for |
| | | generating diff in different formats ('unified' and 'normal') for arbitrary |
| | | input sources |
| | | |
| | | = build 20050105 |
| | | |
| | | + svn+ssh authentication failed to work in some cases - fixed |
| | | + revisions in working copy now updated correctly after update |
| | | + got rid of number of minor inconsistences between SVNKit and native SVN |
| | | + http and https protocols supports compressed data (gzip) |
| | | |
| | | = build 20041223 |
| | | |
| | | + ISVNWorkspace.delete now accepts 'force' parameter |
| | | + bug fixed that prevented Subclipse committing single |
| | | file in non-windows systems |
| | | + complete svn and svn+ssh protocol logging may be enabled |
| | | with -Dsvnkit.log.svn=true command line switch |
| | | |
| | | = build 20041221 |
| | | |
| | | + when using svn+ssh SVNKit takes private key path from the java property, |
| | | if it is not defined explicitly |
| | | + svn+ssh bugfixes |
| | | + bugfixes |
| | | |
| | | = build 20041219 |
| | | |
| | | + infinite loop on commits that includes workspace root fixed |
| | | + JavaHL: SVNClient accepts all revision kinds (DATE, HEAD, etc.) |
| | | |
| | | = build 20041217 |
| | | |
| | | + bugfixes |
| | | |
| | | = build 20041216 |
| | | |
| | | + bugfixes |
| | | |
| | | = build 20041211 |
| | | |
| | | + command line svn client (status, import, checkout are implemented) |
| | | + python tests launcher to reuse original svn python tests suite |
| | | + bugfixes |
| | | |
| | | = build 20041209 |
| | | |
| | | + bugfixes |
| | | |
| | | = build 20041204 |
| | | |
| | | + bugfixes |
| | | + SVNKit works with Subclipse 0.9.24 |
| | | |
| | | = build 20041130 |
| | | |
| | | + bugfixes |
| | | |
| | | = build 20041126 |
| | | |
| | | + svn+shh protocol support (with the jsch library) |
| | | + bugfixes |
| | | |
| | | = build 20041124 |
| | | |
| | | + javahl copy, move and mkdir methods implementation |
| | | + methods to manage global ignore added to ISVNWorkspace |
| | | + bugfixes |
| | | |
| | | = build 20041123 |
| | | |
| | | + recursive property set operation |
| | | + ISVNWorkspace accepts credentials provider |
| | | + SSLContext made pluggable |
| | | + javahl replacement works with Subclipse |
| | | + bugfixes |
| | | |
| | | = build 20041118 |
| | | |
| | | + javahl implementation (SvnClient) is included into the library |
| | | + workspace accepts credentials provider |
| | | |
| | | = build 20041116 |
| | | |
| | | + bugfixes |
| | | |
| | | = build 20041110 |
| | | |
| | | + svn:externals support |
| | | + bugfixes |
| | | |
| | | = build 20041109 |
| | | |
| | | + bug that prevents checkout sometimes fixed |
| | | |
| | | = build 20041108 |
| | | |
| | | + authentication API simplified |
| | | + performance improvements |
| | | + bugfixes |
| | | |
| | | = build 20041105 |
| | | |
| | | + switch and relocate operations |
| | | + bugfixes |
| New file |
| | |
| | | svnkit.level=FINE |
| | | handlers = java.util.logging.FileHandler |
| | | |
| | | java.util.logging.FileHandler.pattern = %h/.svnkit/svnkit.%u.log |
| | | java.util.logging.FileHandler.limit = 0 |
| | | java.util.logging.FileHandler.count = 1 |
| | | java.util.logging.FileHandler.append = true |
| | | java.util.logging.FileHandler.formatter = org.tmatesoft.svn.core.internal.util.DefaultSVNDebugFormatter |
| | | |
| New file |
| | |
| | | #!/bin/sh |
| | | |
| | | cygwin=false; |
| | | case "`uname`" in |
| | | CYGWIN*) cygwin=true ;; |
| | | esac |
| | | |
| | | SVNKIT_HOME=`dirname $0` |
| | | SVNKIT_HOME=`cd "$SVNKIT_HOME" ; pwd` |
| | | |
| | | SVNKIT_CP=$SVNKIT_HOME/svnkit.jar:$SVNKIT_HOME/svnkit-cli.jar:$SVNKIT_HOME/ganymed.jar |
| | | |
| | | if $cygwin ; then |
| | | SVNKIT_CP=`cygpath --windows --path "$SVNKIT_CP"` |
| | | [ -n "$SVNKIT_LOGDIR" ] && |
| | | SVNKIT_LOGDIR=`cygpath --unix "$SVNKIT_LOGDIR"` |
| | | fi |
| | | |
| | | if [ ! -d $SVNKIT_LOGDIR ]; then |
| | | mkdir $SVNKIT_LOGDIR |
| | | fi |
| | | |
| | | SVNKIT_VM_OPTIONS="-Dsun.io.useCanonCaches=false -Djava.util.logging.config.file=$SVNKIT_HOME/logging.properties" |
| | | |
| | | SVNKIT_MAINCLASS=org.tmatesoft.svn.cli.SVN |
| | | $JAVA_HOME/bin/java $SVNKIT_VM_OPTIONS -cp $SVNKIT_CP $SVNKIT_MAINCLASS "$@" |
| New file |
| | |
| | | @echo off |
| | | |
| | | set DEFAULT_SVNKIT_HOME=%~dp0 |
| | | |
| | | if "%SVNKIT_HOME%"=="" set SVNKIT_HOME=%DEFAULT_SVNKIT_HOME% |
| | | |
| | | set SVNKIT_CLASSPATH= "%SVNKIT_HOME%svnkit.jar";"%SVNKIT_HOME%svnkit-cli.jar";"%SVNKIT_HOME%ganymed.jar" |
| | | set SVNKIT_MAINCLASS=org.tmatesoft.svn.cli.SVN |
| | | set SVNKIT_OPTIONS=-Djava.util.logging.config.file="%SVNKIT_HOME%/logging.properties" |
| | | |
| | | "%JAVA_HOME%\bin\java" %SVNKIT_OPTIONS% -cp %SVNKIT_CLASSPATH% %SVNKIT_MAINCLASS% %* |
| New file |
| | |
| | | #!/bin/sh |
| | | |
| | | cygwin=false; |
| | | case "`uname`" in |
| | | CYGWIN*) cygwin=true ;; |
| | | esac |
| | | |
| | | SVNKIT_HOME=`dirname $0` |
| | | SVNKIT_HOME=`cd "$SVNKIT_HOME" ; pwd` |
| | | |
| | | SVNKIT_CP=$SVNKIT_HOME/svnkit.jar:$SVNKIT_HOME/svnkit-cli.jar:$SVNKIT_HOME/ganymed.jar |
| | | |
| | | if $cygwin ; then |
| | | SVNKIT_CP=`cygpath --windows --path "$SVNKIT_CP"` |
| | | [ -n "$SVNKIT_LOGDIR" ] && |
| | | SVNKIT_LOGDIR=`cygpath --unix "$SVNKIT_LOGDIR"` |
| | | fi |
| | | |
| | | if [ ! -d $SVNKIT_LOGDIR ]; then |
| | | mkdir $SVNKIT_LOGDIR |
| | | fi |
| | | |
| | | SVNKIT_VM_OPTIONS="-Dsun.io.useCanonCaches=false -Djava.util.logging.config.file=$SVNKIT_HOME/logging.properties" |
| | | |
| | | SVNKIT_MAINCLASS=org.tmatesoft.svn.cli.SVNSync |
| | | $JAVA_HOME/bin/java $SVNKIT_VM_OPTIONS -cp $SVNKIT_CP $SVNKIT_MAINCLASS "$@" |
| New file |
| | |
| | | @echo off |
| | | |
| | | set DEFAULT_SVNKIT_HOME=%~dp0 |
| | | |
| | | if "%SVNKIT_HOME%"=="" set SVNKIT_HOME=%DEFAULT_SVNKIT_HOME% |
| | | |
| | | set SVNKIT_CLASSPATH= "%SVNKIT_HOME%svnkit.jar";"%SVNKIT_HOME%svnkit-cli.jar";"%SVNKIT_HOME%ganymed.jar" |
| | | set SVNKIT_MAINCLASS=org.tmatesoft.svn.cli.SVNSync |
| | | set SVNKIT_OPTIONS=-Djava.util.logging.config.file="%SVNKIT_HOME%/logging.properties" |
| | | |
| | | "%JAVA_HOME%\bin\java" %SVNKIT_OPTIONS% -cp %SVNKIT_CLASSPATH% %SVNKIT_MAINCLASS% %* |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.util; |
| | | |
| | |
| | | public static final boolean DEBUG_BUILD = ${DEBUG_BUILD}; |
| | | |
| | | /** |
| | | * The Subversion revision number on which this build is based. |
| | | */ |
| | | public static final long REVISION_NUMBER = ${REVISION_NUMBER}; |
| | | |
| | | /** |
| | | * A compact version string for this product, suitable for use in path |
| | | * names and similar cases. |
| | | */ |
| | |
| | | System.out.println("Minor Version: " + MINOR_VERSION); |
| | | System.out.println("Point Version: " + POINT_VERSION); |
| | | System.out.println("Version Qualifier: " + VERSION_QUALIFIER); |
| | | System.out.println("Revision Number: " + REVISION_NUMBER); |
| | | System.out.println("Fix IDs: " + FIX_IDS); |
| | | System.out.println("Debug Build: " + DEBUG_BUILD); |
| | | System.out.println("Build OS: " + BUILD_OS); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2007-2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.monitors; |
| | | |
| | |
| | | String.valueOf(DynamicConstants.POINT_VERSION))); |
| | | attrs.add(createAttribute("versionQualifier", |
| | | DynamicConstants.VERSION_QUALIFIER)); |
| | | attrs.add(createAttribute("revisionNumber", |
| | | String.valueOf(DynamicConstants.REVISION_NUMBER))); |
| | | attrs.add(createAttribute("debugBuild", |
| | | String.valueOf(DynamicConstants.DEBUG_BUILD))); |
| | | attrs.add(createAttribute("fixIDs", DynamicConstants.FIX_IDS)); |