|
Ant example source code file (CvsVersion.java)
The CvsVersion.java source code/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. * */ package org.apache.tools.ant.taskdefs.cvslib; import org.apache.tools.ant.taskdefs.AbstractCvsTask; import java.io.ByteArrayOutputStream; import java.util.StringTokenizer; /** * this task allows to find out the client and the server version of a * CVS installation * * example usage : * <cvsversion * cvsRoot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic" * passfile="c:/programme/cygwin/home/antoine/.cvspass" * clientversionproperty="apacheclient" * serverversionproperty="apacheserver" /> * * the task can be used also in the API by calling its execute method, * then calling getServerVersion and/or getClientVersion * * @ant.task category="scm" * @since ant 1.6.1 */ public class CvsVersion extends AbstractCvsTask { static final long VERSION_1_11_2 = 11102; static final long MULTIPLY = 100; private String clientVersion; private String serverVersion; private String clientVersionProperty; private String serverVersionProperty; /** * Get the CVS client version * @return CVS client version */ public String getClientVersion() { return clientVersion; } /** * Get the CVS server version * @return CVS server version */ public String getServerVersion() { return serverVersion; } /** * Set a property where to store the CVS client version * @param clientVersionProperty property for CVS client version */ public void setClientVersionProperty(String clientVersionProperty) { this.clientVersionProperty = clientVersionProperty; } /** * Set a property where to store the CVS server version * @param serverVersionProperty property for CVS server version */ public void setServerVersionProperty(String serverVersionProperty) { this.serverVersionProperty = serverVersionProperty; } /** * Find out if the server version supports log with S option * @return boolean indicating if the server version supports log with S option */ public boolean supportsCvsLogWithSOption() { if (serverVersion == null) { return false; } StringTokenizer tokenizer = new StringTokenizer(serverVersion, "."); long counter = MULTIPLY * MULTIPLY; long version = 0; while (tokenizer.hasMoreTokens()) { String s = tokenizer.nextToken(); int i = 0; for (i = 0; i < s.length(); i++) { if (!Character.isDigit(s.charAt(i))) { break; } } String s2 = s.substring(0, i); version = version + counter * Long.parseLong(s2); if (counter == 1) { break; } counter = counter / MULTIPLY; } return (version >= VERSION_1_11_2); } /** * the execute method running CvsVersion */ public void execute() { ByteArrayOutputStream bos = new ByteArrayOutputStream(); this.setOutputStream(bos); ByteArrayOutputStream berr = new ByteArrayOutputStream(); this.setErrorStream(berr); setCommand("version"); super.execute(); String output = bos.toString(); StringTokenizer st = new StringTokenizer(output); boolean client = false; boolean server = false; boolean cvs = false; while (st.hasMoreTokens()) { String currentToken = st.nextToken(); if (currentToken.equals("Client:")) { client = true; } else if (currentToken.equals("Server:")) { server = true; } else if (currentToken.equals("(CVS)")) { cvs = true; } if (client && cvs) { if (st.hasMoreTokens()) { clientVersion = st.nextToken(); } client = false; cvs = false; } else if (server && cvs) { if (st.hasMoreTokens()) { serverVersion = st.nextToken(); } server = false; cvs = false; } } if (clientVersionProperty != null) { getProject().setNewProperty(clientVersionProperty, clientVersion); } if (serverVersionProperty != null) { getProject().setNewProperty(serverVersionProperty, serverVersion); } } } Other Ant examples (source code examples)Here is a short list of links related to this Ant CvsVersion.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.