1,203 → 1,60 |
/* |
* 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 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.types.ReturnCode; |
import net.brutex.xservices.util.RunTask; |
import org.apache.tools.ant.taskdefs.Basename; |
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.optional.unix.Chgrp; |
import org.apache.tools.ant.taskdefs.optional.unix.Chown; |
import org.apache.tools.ant.types.FileSet; |
import net.brutex.xservices.util.BrutexNamespaces; |
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES) |
public interface FileService { |
|
/** |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@WebService(targetNamespace = "http://ws.xservices.brutex.net", name = "FileService") |
public class FileService { |
|
@WebMethod(operationName = "basename") |
public ReturnCode basename(@WebParam(name = "file") String filename, |
@WebParam(name = "suffix") String suffix) { |
return basename(new File(filename), suffix); |
} |
public abstract ReturnCode basename( |
@WebParam(name = "file") String filename, |
@WebParam(name = "suffix") String suffix); |
|
@WebMethod(operationName = "copy") |
public ReturnCode copy(@WebParam(name = "fileset") FileSetResource src, |
public abstract ReturnCode 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 { |
return copy(src, new File(todir), plm, overwrite, encoding); |
} |
@WebParam(name = "encoding") String encoding) throws XServicesFault; |
|
@WebMethod(operationName = "loadResource") |
public ReturnCode 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); |
} |
public abstract ReturnCode loadRes( |
@WebParam(name = "resource") FileResource res, |
@WebParam(name = "encoding") String encoding); |
|
@WebMethod(operationName = "loadResourceFromArchive") |
public ReturnCode 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); |
} |
public abstract ReturnCode loadResFromArchive( |
@WebParam(name = "archiveresource") ArchiveResource res, |
@WebParam(name = "encoding") String encoding); |
|
@WebMethod(operationName = "echoToFile") |
public ReturnCode 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); |
} |
public abstract ReturnCode echo2file( |
@WebParam(name = "message") String message, |
@WebParam(name = "file") String file, |
@WebParam(name = "encoding") String encoding, |
@WebParam(name = "append") boolean append); |
|
@WebMethod(operationName = "changeOwner") |
public ReturnCode changeOwner(@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "owner") String owner) { |
return chown(res, owner); |
} |
public abstract ReturnCode changeOwner( |
@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "owner") String owner); |
|
@WebMethod(operationName = "changeGroup") |
public ReturnCode changeGroup(@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "group") String group) { |
return chgrp(res, group); |
} |
public abstract ReturnCode changeGroup( |
@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "group") String group); |
|
@WebMethod(operationName = "changeMode") |
public ReturnCode changeMode(@WebParam(name="fileset") FileSetResource res, |
@WebParam(name="permissions") String perm) { |
return chmod(res, perm); |
} |
public abstract ReturnCode changeMode( |
@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "permissions") String perm); |
|
@WebMethod(exclude = true) |
private ReturnCode 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"); |
return runner.postTask(); |
} |
|
@WebMethod(exclude = true) |
private ReturnCode 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"); |
return runner.postTask(); |
} |
|
@WebMethod(exclude = true) |
private ReturnCode 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); |
return runTask.postTask(); |
} |
|
@WebMethod(exclude = true) |
private ReturnCode 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")); |
} |
|
return runner.postTask(); |
} |
|
@WebMethod(exclude = true) |
private ReturnCode chown(FileSetResource src, String owner) { |
Chown chown = new Chown(); |
chown.setTaskName("Chown"); |
RunTask runner = new RunTask(chown); |
chown.setOwner(owner); |
FileSet set = src.getAntFileSet(chown.getProject()); |
chown.add(set); |
chown.setMaxParallel(300); |
return runner.postTask(); |
} |
|
@WebMethod(exclude = true) |
private ReturnCode chgrp(FileSetResource src, String group) { |
Chgrp chgrp = new Chgrp(); |
chgrp.setTaskName("Chgrp"); |
RunTask runner = new RunTask(chgrp); |
chgrp.setGroup(group); |
FileSet set = src.getAntFileSet(chgrp.getProject()); |
chgrp.add(set); |
chgrp.setMaxParallel(300); |
return runner.postTask(); |
} |
|
@WebMethod(exclude = true) |
private ReturnCode chmod(FileSetResource src, String perm) { |
Chmod chmod = new Chmod(); |
chmod.setTaskName("Chmod"); |
RunTask runner = new RunTask(chmod); |
FileSet set = src.getAntFileSet(chmod.getProject()); |
chmod.add(set); |
chmod.setMaxParallel(300); |
chmod.setPerm(perm); |
chmod.setVerbose(true); |
return runner.postTask(); |
} |
|
} |
} |