| /* |
| * 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. |
| * |
| */ |
| |
| /* $Id: BulkCopyTask.java 416058 2006-06-21 18:24:05Z andreas $ */ |
| |
| package org.apache.lenya.cms.ant; |
| |
| import java.io.File; |
| import java.util.List; |
| import java.util.StringTokenizer; |
| |
| import org.apache.tools.ant.BuildException; |
| import org.apache.tools.ant.taskdefs.Copy; |
| import org.apache.tools.ant.types.FileSet; |
| import org.apache.tools.ant.types.Path; |
| |
| /** |
| * Copies all files matching filename or a all specififed filesets from each source directory. |
| * <br/><br/> |
| * Usage: |
| * <bulkCopy |
| * sourcedirs="dirOne:dirTwo" |
| * todir="WEB-INF/" |
| * flatten="true"> |
| * <fileset includes="java/lib/*"/> |
| * </bulkCopy> |
| * <br/><br/> |
| * The above sample copies <em>dirOne/java/lib/*</em> and <em>dirTwo/java/lib/*</em> |
| * to <em>WEB-INF/lib</em>. |
| */ |
| public class BulkCopyTask extends Copy { |
| |
| private Path sourceDirs; |
| |
| /** |
| * @see org.apache.tools.ant.taskdefs.Copy#execute() |
| */ |
| public void execute() throws BuildException { |
| |
| final StringTokenizer sourceDirTokens = new StringTokenizer(this.sourceDirs.toString(), File.pathSeparator); |
| |
| while (sourceDirTokens.hasMoreTokens()) { |
| final String sourceDir = sourceDirTokens.nextToken(); |
| |
| for(int i=0; i<getFileSets().size(); i++) |
| ((FileSet) getFileSets().get(i)).setDir(new File(sourceDir)); |
| |
| super.execute(); |
| } |
| } |
| |
| /** |
| * @param _sourceDirs Colon separated list of source directories |
| */ |
| public void setSourceDirs(Path _sourceDirs) { |
| this.sourceDirs = _sourceDirs; |
| } |
| |
| /** |
| * @return Returns the fileSet. |
| */ |
| private List getFileSets() { |
| return super.filesets; |
| } |
| } |