0,0 → 1,147 |
/* |
* 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.ws; |
|
import java.io.File; |
import java.util.Map; |
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.ResourceInterface; |
import net.brutex.xservices.util.RunTask; |
import org.apache.tools.ant.taskdefs.Basename; |
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.types.FileSet; |
|
/** |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@WebService(targetNamespace="http://ws.xservices.brutex.net", name="FileService") |
public class FileService { |
|
@WebMethod(operationName = "basename") |
public String basename(@WebParam(name = "file") String filename, |
@WebParam(name = "suffix") String suffix) { |
return basename(new File(filename), suffix); |
} |
|
@WebMethod(operationName = "copy") |
public void copy(@WebParam(name="fileset") FileSetResource src, |
@WebParam(name="todir") String todir, |
@WebParam(name="preservelastmodified") boolean plm, |
@WebParam(name="overwrite") boolean overwrite, |
@WebParam(name="encoding") String encoding) |
throws XServicesFault { |
try { |
copy(src, new File(todir), plm, overwrite, encoding); |
} catch (Exception ex) { |
throw new XServicesFault(ex.getMessage(), ex); |
} |
} |
|
@WebMethod(operationName = "loadResource") |
public String loadRes(@WebParam(name = "resource") FileResource res, |
@WebParam(name = "encoding") String encoding) { |
if (encoding == null || encoding.equals("")) { |
encoding = System.getProperty("file.encoding"); |
} |
return loadResource(res, encoding); |
} |
|
@WebMethod(operationName = "loadResourceFromArchive") |
public String loadResFromArchive(@WebParam(name = "archiveresource") ArchiveResource res, |
@WebParam(name = "encoding") String encoding) { |
if (encoding == null || encoding.equals("")) { |
encoding = System.getProperty("file.encoding"); |
} |
return loadResource(res, encoding); |
} |
|
@WebMethod(operationName = "echoToFile") |
public String echo2file(@WebParam(name="message") String message, |
@WebParam(name="file")String file, @WebParam(name="encoding") String encoding, |
@WebParam(name="append")boolean append) { |
return echo(message, new File(file), encoding, append); |
} |
|
@WebMethod(exclude = true) |
private String basename(File file, |
String suffix) { |
Basename basename = new Basename(); |
RunTask runner = new RunTask(basename); |
basename.setFile(file); |
if (suffix != null && !suffix.equals("")) { |
basename.setSuffix(suffix); |
} |
basename.setProperty("basename.value"); |
Map<String, String> result = runner.postTask(); |
return result.get("basename.value"); |
} |
@WebMethod(exclude = true) |
private String loadResource(ResourceInterface src, String encoding) { |
LoadResource lr = new LoadResource(); |
lr.setTaskName("LoadResource"); |
RunTask runner = new RunTask(lr); |
lr.addConfigured(src.getAntResource(lr.getProject())); |
lr.setEncoding(encoding); |
System.out.println("Using encoding: " + encoding); |
lr.setProperty("LoadResource.out"); |
Map<String, String> result = runner.postTask(); |
return result.get("LoadResource.out"); |
} |
|
@WebMethod(exclude = true) |
private String echo(String msg, File file, String encoding, boolean append) { |
Echo echo = new Echo(); |
echo.setTaskName("toFile"); |
RunTask runTask = new RunTask(echo); |
echo.addText(msg); |
echo.setEncoding(encoding); |
echo.setFile(file); |
echo.setAppend(append); |
Map<String, String> result = runTask.postTask(); |
return "complete"; |
} |
|
@WebMethod(exclude=true) |
private void copy(FileSetResource src, File dst, boolean preservelastmodified, |
boolean overwrite, String encoding) { |
Copy copy = new Copy(); |
copy.setTaskName("Copy"); |
RunTask runner = new RunTask(copy); |
FileSet set = src.getAntFileSet(copy.getProject()); |
copy.add(set); |
|
if(dst.isDirectory()) copy.setTodir(dst); |
if(dst.isFile()) copy.setTofile(dst); |
copy.setOverwrite(overwrite); |
copy.setPreserveLastModified(preservelastmodified); |
if(encoding!=null && !encoding.equals("") ) { |
copy.setOutputEncoding(encoding); |
} else { |
copy.setOutputEncoding(System.getProperty("file.encoding")); |
} |
|
Map<String, String> result = runner.postTask(); |
} |
} |