Update FileServices with new operation "replace in file"
git-svn-id: https://brutex.net/svn/xservices/trunk@63 e7e49efb-446e-492e-b9ec-fcafc1997a86tag-20130205r
parent
2e99ff8f80
commit
10a2ca711d
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* Copyright 2010 Brian Rosenberger (Brutex Network)
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package net.brutex.xservices.types;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
/**
|
||||
* Generic key/ value pairs.
|
||||
*
|
||||
* @author Brian Rosenberger
|
||||
*/
|
||||
@XmlRootElement
|
||||
public class ReplacePattern {
|
||||
|
||||
/**
|
||||
* Search string.
|
||||
*/
|
||||
@XmlElement(required=true)
|
||||
public String search ="";
|
||||
|
||||
/**
|
||||
* Replace string.
|
||||
*/
|
||||
@XmlElement(required=true)
|
||||
public String replace="";
|
||||
|
||||
/**
|
||||
* Converts a Map<String, String> into a list of
|
||||
* ReplacePattern.
|
||||
* @param map The map to convert
|
||||
* @return A list of key/value pairs
|
||||
*/
|
||||
public static List<ReplacePattern> createAntPropertyList(Map<String, String> map) {
|
||||
List<ReplacePattern> list = new ArrayList<ReplacePattern>();
|
||||
for(Map.Entry<String, String> e : map.entrySet()) {
|
||||
list.add(new ReplacePattern(e.getKey(), e.getValue()));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new ReplacePattern.
|
||||
* @param name
|
||||
* @param value
|
||||
*/
|
||||
public ReplacePattern(String search, String replace) {
|
||||
this.search = search;
|
||||
this.replace = replace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new ReplacePattern.
|
||||
*/
|
||||
public ReplacePattern() {
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package net.brutex.xservices.ws;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.activation.DataHandler;
|
||||
import javax.jws.WebMethod;
|
||||
import javax.jws.WebParam;
|
||||
|
@ -9,6 +11,7 @@ import net.brutex.xservices.types.ArchiveResource;
|
|||
import net.brutex.xservices.types.AttachmentType;
|
||||
import net.brutex.xservices.types.FileResource;
|
||||
import net.brutex.xservices.types.FileSetResource;
|
||||
import net.brutex.xservices.types.ReplacePattern;
|
||||
import net.brutex.xservices.types.ReturnCode;
|
||||
import net.brutex.xservices.util.BrutexNamespaces;
|
||||
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES)
|
||||
|
@ -67,4 +70,21 @@ public interface FileService {
|
|||
@WebParam(name = "fileset") FileSetResource res,
|
||||
@WebParam(name = "permissions") String perm);
|
||||
|
||||
@WebMethod(operationName = "replaceInFile")
|
||||
public abstract ReturnCode replaceInFile(
|
||||
@WebParam(name = "file") FileResource res,
|
||||
@WebParam(name = "search") String search,
|
||||
@WebParam(name = "replace") String replace);
|
||||
|
||||
@WebMethod(operationName = "replaceInFile2")
|
||||
public abstract ReturnCode replaceInFile2(
|
||||
@WebParam(name = "file") FileResource res,
|
||||
@WebParam(name = "patternList") List<ReplacePattern> patternList);
|
||||
|
||||
@WebMethod(operationName = "replaceInFileRegEx")
|
||||
public abstract ReturnCode replaceInFileRegEx(
|
||||
@WebParam(name = "file") FileResource res,
|
||||
@WebParam(name = "search") String search,
|
||||
@WebParam(name = "replace") String replace,
|
||||
@WebParam(name = "flags") String flags);
|
||||
}
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package net.brutex.xservices.ws.impl;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
|
@ -34,6 +35,7 @@ import net.brutex.xservices.types.ArchiveResource;
|
|||
import net.brutex.xservices.types.AttachmentType;
|
||||
import net.brutex.xservices.types.FileResource;
|
||||
import net.brutex.xservices.types.FileSetResource;
|
||||
import net.brutex.xservices.types.ReplacePattern;
|
||||
import net.brutex.xservices.types.ResourceInterface;
|
||||
import net.brutex.xservices.types.ReturnCode;
|
||||
import net.brutex.xservices.util.BrutexNamespaces;
|
||||
|
@ -50,6 +52,8 @@ import org.apache.tools.ant.taskdefs.Chmod;
|
|||
import org.apache.tools.ant.taskdefs.Copy;
|
||||
import org.apache.tools.ant.taskdefs.Echo;
|
||||
import org.apache.tools.ant.taskdefs.LoadResource;
|
||||
import org.apache.tools.ant.taskdefs.Replace;
|
||||
import org.apache.tools.ant.taskdefs.optional.ReplaceRegExp;
|
||||
import org.apache.tools.ant.taskdefs.optional.unix.Chgrp;
|
||||
import org.apache.tools.ant.taskdefs.optional.unix.Chown;
|
||||
import org.apache.tools.ant.types.FileSet;
|
||||
|
@ -74,6 +78,58 @@ public class FileServiceImpl implements FileService {
|
|||
return basename(new File(filename), suffix);
|
||||
}
|
||||
|
||||
@WebMethod(operationName = "replaceInFile")
|
||||
public ReturnCode replaceInFile(
|
||||
@WebParam(name = "file") FileResource res,
|
||||
@WebParam(name = "search") String search,
|
||||
@WebParam(name = "replace") String replace) {
|
||||
ReturnCode r = null;
|
||||
Replace rep = new Replace();
|
||||
rep.setTaskName("Replace");
|
||||
RunTask runner = new RunTask(rep);
|
||||
rep.addConfigured(res.getAntResource(rep.getProject()));
|
||||
rep.setToken(search);
|
||||
rep.setValue(replace);
|
||||
r = runner.postTask();
|
||||
return r;
|
||||
}
|
||||
|
||||
@WebMethod(operationName = "replaceInFile2")
|
||||
public ReturnCode replaceInFile2(
|
||||
@WebParam(name = "file") FileResource res,
|
||||
@WebParam(name = "patternList") List<ReplacePattern> patternList) {
|
||||
ReturnCode r = null;
|
||||
for (ReplacePattern pat : patternList) {
|
||||
Replace rep = new Replace();
|
||||
rep.setTaskName("Replace");
|
||||
RunTask runner = new RunTask(rep);
|
||||
rep.addConfigured(res.getAntResource(rep.getProject()));
|
||||
rep.setToken(pat.search);
|
||||
rep.setValue(pat.replace);
|
||||
r = runner.postTask();
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
@WebMethod(operationName = "replaceInFileRegEx")
|
||||
public ReturnCode replaceInFileRegEx(
|
||||
@WebParam(name = "file") FileResource res,
|
||||
@WebParam(name = "search") String search,
|
||||
@WebParam(name = "replace") String replace,
|
||||
@WebParam(name = "flags") String flags) {
|
||||
ReplaceRegExp rep = new ReplaceRegExp();
|
||||
rep.setTaskName("ReplaceRegExp");
|
||||
RunTask runner = new RunTask(rep);
|
||||
File infile = new File(res.uri);
|
||||
rep.setFile(infile);
|
||||
rep.setMatch(search);
|
||||
rep.setReplace(replace);
|
||||
rep.setFlags(flags);
|
||||
ReturnCode r = runner.postTask();
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue