/xservices/trunk/src/java/net/brutex/xservices/types/FileSetResource.java |
---|
32,7 → 32,7 |
*/ |
@XmlType(name = "FileSetType", namespace = "http://ws.xservices.brutex.net", |
propOrder = {"type", "source", "filter", "excludes", "casesensitive"}) |
public class FileSetResource { |
public class FileSetResource implements ResourceSetInterface { |
/** |
* Type of FileSet |
71,7 → 71,7 |
* @param p Ant project |
* @return Ant FileSet for this file set. |
*/ |
public FileSet getAntFileSet(Project p) { |
public FileSet getAntResource(Project p) { |
FileSet set = null; |
switch (type) { |
case ZIP: |
106,7 → 106,8 |
/** |
* File set types. |
*/ |
@XmlEnum |
@XmlEnum() |
@XmlType(name="resourcetype") |
public enum FileSetType { |
/** |
/xservices/trunk/src/java/net/brutex/xservices/types/SelectorTypeInterface.java |
---|
1,6 → 1,17 |
/* |
* To change this template, choose Tools | Templates |
* and open the template in the editor. |
* Copyright 2011 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; |
9,7 → 20,7 |
/** |
* |
* @author brian |
* @author Brian Rosenberger |
*/ |
public interface SelectorTypeInterface { |
public FileSelector getSelector(); |
/xservices/trunk/src/java/net/brutex/xservices/types/ResourceInterface.java |
---|
20,7 → 20,7 |
import org.apache.tools.ant.types.Resource; |
/** |
* Wrapper for Ant Resources. |
* Wrapper for a single file like Ant Resources. |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
/xservices/trunk/src/java/net/brutex/xservices/types/ReturnCode.java |
---|
79,4 → 79,11 |
this.stdErr = stdErr; |
this.property = props; |
} |
public String getProperty(String key) { |
for(AntProperty prop : this.property) { |
if(prop.equals(key)) return prop.value; |
} |
return null; |
} |
} |
/xservices/trunk/src/java/net/brutex/xservices/types/ResourceSetInterface.java |
---|
0,0 → 1,35 |
/* |
* Copyright 2011 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. |
*/ |
/** |
* Wrapper for Ant Resource Sets. A resource set |
* is simply a collection of resources. |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
package net.brutex.xservices.types; |
import org.apache.tools.ant.Project; |
import org.apache.tools.ant.types.ResourceCollection; |
/** |
* Wrapper for Ant Resource Collection. |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
public interface ResourceSetInterface { |
public ResourceCollection getAntResource(Project p); |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/FileResource.java |
---|
19,7 → 19,8 |
import java.io.File; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlEnum; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
import net.brutex.xservices.util.BrutexNamespaces; |
import org.apache.tools.ant.Project; |
import org.apache.tools.ant.types.Resource; |
30,9 → 31,10 |
/** |
* File based resource declaration. |
* |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@XmlRootElement(namespace=BrutexNamespaces.WS_XSERVICES, name="FileResourceType") |
@XmlType(name="FileResourceType", namespace=BrutexNamespaces.WS_XSERVICES) |
public class FileResource |
implements ResourceInterface { |
/xservices/trunk/src/java/net/brutex/xservices/types/AttachmentType.java |
---|
0,0 → 1,57 |
/* |
* Copyright 2011 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.io.File; |
import java.io.IOException; |
import javax.activation.DataHandler; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlMimeType; |
public class AttachmentType { |
private DataHandler content; |
private String filename = null; |
public void setContent(DataHandler content) { |
this.content = content; |
} |
@XmlMimeType("application/octet-stream") |
@XmlElement(required=true) |
public DataHandler getContent() { |
return content; |
} |
public String getFilename() { |
if(filename==null || filename.equals("")) { |
try { |
filename = File.createTempFile("XServices_", ".tmp").getPath(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
return filename; |
} |
public void setFilename(String filename) { |
this.filename = filename; |
} |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/HostConnection.java |
---|
29,7 → 29,7 |
public HostConnection() { |
} |
@XmlElement(name="hostname", required=false, nillable=false) |
@XmlElement(name="hostname", required=true, nillable=false) |
public String hostname; |
@XmlElement(name="port", required=false, nillable=false) |
/xservices/trunk/src/java/net/brutex/xservices/ws/FileService.java |
---|
1,10 → 1,12 |
package net.brutex.xservices.ws; |
import javax.activation.DataHandler; |
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
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.ReturnCode; |
17,6 → 19,14 |
@WebParam(name = "file") String filename, |
@WebParam(name = "suffix") String suffix); |
@WebMethod(operationName = "downloadFile") |
public abstract AttachmentType downloadFile( |
@WebParam(name = "file") FileResource res); |
@WebMethod(operationName = "uploadFile") |
public abstract String uploadFile( |
@WebParam(name = "file") AttachmentType file); |
@WebMethod(operationName = "copy") |
public abstract ReturnCode copy( |
@WebParam(name = "fileset") FileSetResource src, |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/FileServiceImpl.java |
---|
16,10 → 16,22 |
package net.brutex.xservices.ws.impl; |
import java.io.File; |
import java.io.FileInputStream; |
import java.io.FileNotFoundException; |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.io.InputStream; |
import java.io.UnsupportedEncodingException; |
import java.util.List; |
import javax.activation.DataHandler; |
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import net.brutex.xservices.types.AntProperty; |
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.ResourceInterface; |
29,6 → 41,10 |
import net.brutex.xservices.ws.FileService; |
import net.brutex.xservices.ws.XServicesFault; |
import org.apache.commons.codec.binary.Base64; |
import org.apache.commons.codec.binary.Base64InputStream; |
import org.apache.cxf.aegis.type.mtom.StreamDataSource; |
import org.apache.tools.ant.BuildException; |
import org.apache.tools.ant.taskdefs.Basename; |
import org.apache.tools.ant.taskdefs.Chmod; |
import org.apache.tools.ant.taskdefs.Copy; |
42,15 → 58,14 |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@WebService( |
targetNamespace = BrutexNamespaces.WS_XSERVICES, |
endpointInterface ="net.brutex.xservices.ws.FileService", |
serviceName = "FileService" |
) |
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES, endpointInterface = "net.brutex.xservices.ws.FileService", serviceName = "FileService") |
public class FileServiceImpl implements FileService { |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#basename(java.lang.String, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see net.brutex.xservices.ws.impl.FileService#basename(java.lang.String, |
* java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "basename") |
59,22 → 74,87 |
return basename(new File(filename), suffix); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#copy(net.brutex.xservices.types.FileSetResource, java.lang.String, boolean, boolean, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#base64Encode(net.brutex.xservices |
* .types.FileSetResource) |
*/ |
@Override |
@WebMethod(operationName = "downloadFile") |
public AttachmentType downloadFile(@WebParam(name = "file") FileResource res) { |
InputStream is = null; |
try { |
is = res.getAntResource(null).getInputStream(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
DataHandler h = new DataHandler(new StreamDataSource( |
"application/binary", is)); |
AttachmentType t = new AttachmentType(); |
t.setContent(h); |
return t; |
} |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#base64Decode(net.brutex.xservices |
* .types.AttachmentType) |
*/ |
@Override |
@WebMethod(operationName = "uploadFile") |
public String uploadFile(@WebParam(name = "file") AttachmentType file) { |
DataHandler h = file.getContent(); |
File f = new File(file.getFilename()); |
FileOutputStream fout; |
try { |
fout = new FileOutputStream(f); |
/* |
* InputStream in = h.getInputStream(); |
int b; |
while( (b=in.read())!= -1 ) { |
fout.write(b); |
} |
*/ |
h.writeTo(fout); |
fout.flush(); |
fout.close(); |
//in.close(); |
} catch (FileNotFoundException e) { |
throw new BuildException(e); |
} catch (IOException e) { |
throw new BuildException(e); |
} |
return file.getFilename(); |
} |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#copy(net.brutex.xservices.types |
* .FileSetResource, java.lang.String, boolean, boolean, java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "copy") |
public 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 { |
@WebParam(name = "encoding") String encoding) throws XServicesFault { |
return copy(src, new File(todir), plm, overwrite, encoding); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#loadRes(net.brutex.xservices.types.FileResource, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#loadRes(net.brutex.xservices |
* .types.FileResource, java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "loadResource") |
86,12 → 166,17 |
return loadResource(res, encoding); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#loadResFromArchive(net.brutex.xservices.types.ArchiveResource, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#loadResFromArchive(net.brutex |
* .xservices.types.ArchiveResource, java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "loadResourceFromArchive") |
public ReturnCode loadResFromArchive(@WebParam(name = "archiveresource") ArchiveResource res, |
public ReturnCode loadResFromArchive( |
@WebParam(name = "archiveresource") ArchiveResource res, |
@WebParam(name = "encoding") String encoding) { |
if (encoding == null || encoding.equals("")) { |
encoding = System.getProperty("file.encoding"); |
99,50 → 184,68 |
return loadResource(res, encoding); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#echo2file(java.lang.String, java.lang.String, java.lang.String, boolean) |
/* |
* (non-Javadoc) |
* |
* @see net.brutex.xservices.ws.impl.FileService#echo2file(java.lang.String, |
* java.lang.String, java.lang.String, boolean) |
*/ |
@Override |
@WebMethod(operationName = "echoToFile") |
public ReturnCode echo2file(@WebParam(name = "message") String message, |
@WebParam(name = "file") String file, @WebParam(name = "encoding") String encoding, |
@WebParam(name = "file") String file, |
@WebParam(name = "encoding") String encoding, |
@WebParam(name = "append") boolean append) { |
return echo(message, new File(file), encoding, append); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#changeOwner(net.brutex.xservices.types.FileSetResource, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#changeOwner(net.brutex.xservices |
* .types.FileSetResource, java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "changeOwner") |
public ReturnCode changeOwner(@WebParam(name = "fileset") FileSetResource res, |
public ReturnCode changeOwner( |
@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "owner") String owner) { |
return chown(res, owner); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#changeGroup(net.brutex.xservices.types.FileSetResource, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#changeGroup(net.brutex.xservices |
* .types.FileSetResource, java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "changeGroup") |
public ReturnCode changeGroup(@WebParam(name = "fileset") FileSetResource res, |
public ReturnCode changeGroup( |
@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name = "group") String group) { |
return chgrp(res, group); |
} |
/* (non-Javadoc) |
* @see net.brutex.xservices.ws.impl.FileService#changeMode(net.brutex.xservices.types.FileSetResource, java.lang.String) |
/* |
* (non-Javadoc) |
* |
* @see |
* net.brutex.xservices.ws.impl.FileService#changeMode(net.brutex.xservices |
* .types.FileSetResource, java.lang.String) |
*/ |
@Override |
@WebMethod(operationName = "changeMode") |
public ReturnCode changeMode(@WebParam(name="fileset") FileSetResource res, |
public ReturnCode changeMode( |
@WebParam(name = "fileset") FileSetResource res, |
@WebParam(name="permissions") String perm) { |
return chmod(res, perm); |
} |
@WebMethod(exclude = true) |
private ReturnCode basename(File file, |
String suffix) { |
private ReturnCode basename(File file, String suffix) { |
Basename basename = new Basename(); |
RunTask runner = new RunTask(basename); |
basename.setFile(file); |
166,7 → 269,8 |
} |
@WebMethod(exclude = true) |
private ReturnCode echo(String msg, File file, String encoding, boolean append) { |
private ReturnCode echo(String msg, File file, String encoding, |
boolean append) { |
Echo echo = new Echo(); |
echo.setTaskName("toFile"); |
RunTask runTask = new RunTask(echo); |
178,12 → 282,12 |
} |
@WebMethod(exclude = true) |
private ReturnCode copy(FileSetResource src, File dst, boolean preservelastmodified, |
boolean overwrite, String encoding) { |
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()); |
FileSet set = src.getAntResource(copy.getProject()); |
copy.add(set); |
if (dst.isDirectory()) { |
209,7 → 313,7 |
chown.setTaskName("Chown"); |
RunTask runner = new RunTask(chown); |
chown.setOwner(owner); |
FileSet set = src.getAntFileSet(chown.getProject()); |
FileSet set = src.getAntResource(chown.getProject()); |
chown.add(set); |
chown.setMaxParallel(300); |
return runner.postTask(); |
221,7 → 325,7 |
chgrp.setTaskName("Chgrp"); |
RunTask runner = new RunTask(chgrp); |
chgrp.setGroup(group); |
FileSet set = src.getAntFileSet(chgrp.getProject()); |
FileSet set = src.getAntResource(chgrp.getProject()); |
chgrp.add(set); |
chgrp.setMaxParallel(300); |
return runner.postTask(); |
232,7 → 336,7 |
Chmod chmod = new Chmod(); |
chmod.setTaskName("Chmod"); |
RunTask runner = new RunTask(chmod); |
FileSet set = src.getAntFileSet(chmod.getProject()); |
FileSet set = src.getAntResource(chmod.getProject()); |
chmod.add(set); |
chmod.setMaxParallel(300); |
chmod.setPerm(perm); |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/ArchiveServiceImpl.java |
---|
22,7 → 22,9 |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.CompressionType; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.ResourceInterface; |
import net.brutex.xservices.types.ResourceSetInterface; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.util.RunTask; |
64,7 → 66,7 |
@WebMethod(operationName = WS_OPERATION_BZIP2_ARCHIVE, action = WS_OPERATION_BZIP2_ARCHIVE) |
public ReturnCode bzip2FromArchive(@WebParam(name = WS_PARAM_SOURCEARCHIVE) ArchiveResource src, |
@WebParam(name = WS_PARAM_DESTFILE) String file) { |
return bzip(src, new File(file)); |
return null;// return bzip(src, new File(file)); |
} |
/* (non-Javadoc) |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java |
---|
16,6 → 16,9 |
package net.brutex.xservices.ws.impl; |
import java.util.Enumeration; |
import java.util.Properties; |
import javax.jws.WebService; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.HostConnection; |
51,6 → 54,28 |
return antGetHostinfo(hostname, null); |
} |
@WSDLDocumentation(value = "Get XService information.") |
public ReturnCode getInfo() { |
ReturnCode r = new ReturnCode(); |
r.returnCode = 0; |
// Get all system properties |
Properties props = System.getProperties(); |
// Enumerate all system properties |
Enumeration<String> e = (Enumeration<String>) props.propertyNames(); |
for (; e.hasMoreElements(); ) { |
// Get property name |
String propName = (String)e.nextElement(); |
// Get property value |
String propValue = (String)props.get(propName); |
r.stdOut = r.stdOut + propName + ": " + propValue + "\n"; |
} |
return r; |
} |
public ReturnCode sendMailSimple(HostConnection mailhost, String from, |
String tolist, String subject, String message) { |
return sendMail(from, from, tolist, "", "", subject, message, |
105,7 → 130,7 |
mail.setMessage(message); |
mail.setMessageMimeType(messagemimetype); |
if (attachments != null) { |
mail.addFileset(attachments.getAntFileSet(mail.getProject())); |
mail.addFileset(attachments.getAntResource(mail.getProject())); |
} |
mail.setMailhost(mailhost); |
mail.setMailport(mailport); |
128,5 → 153,4 |
sleep.setMilliseconds(milliseconds); |
return runner.postTask(); |
} |
} |
/xservices/trunk/src/java/net/brutex/xservices/ws/ArchiveService.java |
---|
21,6 → 21,7 |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.CompressionType; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.util.BrutexNamespaces; |
/xservices/trunk/src/java/net/brutex/xservices/ws/MiscService.java |
---|
114,4 → 114,9 |
@WebMethod(operationName = "sleep") |
public ReturnCode sleep(@WebParam(name = "minutes") int minutes, |
@WebParam(name = "seconds") int seconds); |
@WebMethod(operationName = "getInfo") |
public ReturnCode getInfo(); |
} |
/xservices/trunk/src/java/net/brutex/xservices/util/RunTask.java |
---|
85,6 → 85,7 |
returnCode = 1; |
} |
newMap = antproject.getProperties(); |
newMap.putAll(antproject.getUserProperties()); |
for (Map.Entry<String, String> e : origMap.entrySet()) { |
newMap.remove(e.getKey()); |