Subversion Repositories XServices

Compare Revisions

No changes between revisions

Ignore whitespace Rev 166 → Rev 167

/SVN-ALFEventEmitter/trunk/WebContent/META-INF/MANIFEST.MF
File deleted
Property changes:
Deleted: svn:mime-type
-text/plain
\ No newline at end of property
/SVN-ALFEventEmitter/trunk/.settings/org.apache.ivyde.eclipse.prefs
0,0 → 1,2
eclipse.preferences.version=1
org.apache.ivyde.eclipse.standaloneretrieve=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><setuplist/>
Property changes:
Added: svn:mime-type
+text/plain
\ No newline at end of property
/SVN-ALFEventEmitter/trunk/.settings/org.eclipse.wst.common.project.facet.core.xml
1,8 → 1,6
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="cxf.core" version="1.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.6"/>
<installed facet="jpt.jaxb" version="2.1"/>
/SVN-ALFEventEmitter/trunk/.settings/org.eclipse.wst.common.component
1,7 → 1,5
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="SVN-ALFEventEmitter">
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="SVN-ALFEventEmitter"/>
<property name="java-output-path" value="/SVN-ALFEventEmitter/bin"/>
</wb-module>
/SVN-ALFEventEmitter/trunk/.classpath
1,8 → 1,6
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
/SVN-ALFEventEmitter/trunk/src/net/brutex/svn/SVNAdminCommand.java
0,0 → 1,40
/*
* Copyright 2014 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.svn;
 
/**
* The Enum SVNAdminCommand. Lists supported svnladmin commands
*
* @author Brian Rosenberger, bru(at)brutex.de
* @since 0.1
*/
public enum SVNAdminCommand {
 
SETLOG("setlog");
private final String value;
private SVNAdminCommand(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
 
}
Property changes:
Added: svn:mime-type
+text/plain
\ No newline at end of property
/SVN-ALFEventEmitter/trunk/src/net/brutex/svn/SVNAdminExecutor.java
0,0 → 1,181
/*
* Copyright 2014 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.svn;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
import org.apache.log4j.Logger;
 
/* Executes the svnadmin utility
*
* @author Brian Rosenberger bru(at)brutex.de
* @since 0.1
 
*/
public class SVNAdminExecutor {
private Logger logger = Logger.getLogger(SVNAdminExecutor.class);
private final File svnadmin;
private final String repos;
private String rev = null;
private String message = null;
private String locale = "de_DE.UTF-8";
private String encoding = "UTF-8";
private boolean useBypassHooks = true;
/**
* Instantiates a new SVN admin executor.
*
* @param svnadmin the svnadmin
* @param repos the repos
*/
public SVNAdminExecutor(File svnadmin, String repos) {
if(! svnadmin.exists() ) throw new IllegalArgumentException( String.format("The svnadmin executable at '%s' does not exist.", svnadmin.toString()));
if(! svnadmin.isFile() ) throw new IllegalArgumentException( String.format("The svnadmin utility at'%s' is not a file.", svnadmin.toString()));
logger.debug(String.format("Instantiating '%s' with svnadmin at '%s'.", this.getClass().getCanonicalName(), svnadmin.toString()));
this.svnadmin = svnadmin;
logger.debug(String.format("Working against svn repository at '%s'.", repos));
this.repos = repos;
}
 
/**
* Execute svn admin.
*
* @param command the command
* @return the string
*/
public String executeSVNAdmin(SVNAdminCommand command) {
StringBuilder sb = new StringBuilder();
StringBuilder sberr = new StringBuilder();
if(rev==null) {
logger.error("The revision can not be 'null' for the svnadmin command.");
return null;
}
if(message==null) {
logger.error("The new log message can not be 'null' for the svnadmin command.");
return null;
}
File logfile = null;
try {
logfile = File.createTempFile("~msg"+rev+"_", ".tmp");
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logfile), encoding));
out.write(message);
out.flush();
out.close();
} catch (IOException e) {
logger.error("Failed to write new log message to temporary file '"+logfile.getAbsolutePath()+"'.", e);
return null;
}
 
try {
List<String> cmdline = new ArrayList<String>(5);
cmdline.add(svnadmin.toString());
cmdline.add(command.getValue());
cmdline.add(repos);
if(useBypassHooks) {
cmdline.add("--bypass-hooks");
}
cmdline.add("-r");
cmdline.add(rev);
cmdline.add(logfile.getAbsolutePath());
 
ProcessBuilder pf = new ProcessBuilder(cmdline);
logger.debug(String.format("Executing svnadmin with commandline '%s'.", pf.command()));
Map<String, String> env = pf.environment();
env.put("LANG", locale);
Process svnprocess = pf.start();
BufferedReader stdin = new BufferedReader(new InputStreamReader(svnprocess.getInputStream(), encoding));
BufferedReader stderr = new BufferedReader(new InputStreamReader(svnprocess.getErrorStream(), encoding));
String s;
while( (s = stdin.readLine()) != null ) {
sb.append(s + '\n');
}
while( (s = stderr.readLine()) != null ) {
sberr.append(s + '\n');
}
stdin.close(); stderr.close();
} catch (IOException e) {
logger.error( String.format( "Error calling the svnadmin utility: '%s'", e.getMessage()));
e.printStackTrace();
} finally {
logfile.deleteOnExit();
}
String error = sberr.toString();
if( error.length()>0 ) {
error = "Failed to call svnadmin. The STDERR was '"+error+"'";
logger.error(error);
throw new IllegalArgumentException(error);
}
String output = sb.toString().trim();
logger.debug(String.format("Svnadmin output was '%s'", output));
return output;
}
public void setRev(String rev) {
if(rev==null || rev.length()<=0) throw new IllegalArgumentException("Revision cannot be null or empty.");
this.rev = rev;
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
/**
* Set the locale that will be pushed into
* 'LANG' environment variable.
*
* @param locale i.e. de_DE.UTF-8
*/
public void setLocale(String locale) {
this.locale = locale;
}
/**
* Set the new log message.
*
* @param message new message
*/
public void setMessage(String message) {
this.message = message;
}
/**
* Set this to true to bypass the pre-revprop-change and post-revprop-change
* hooks.
*
* @param useBypassHooks defaults to true
*/
public void setUseBypassHooks(boolean useBypassHooks) {
this.useBypassHooks = useBypassHooks;
}
 
}
Property changes:
Added: svn:mime-type
+text/plain
\ No newline at end of property
/SVN-ALFEventEmitter/trunk/src/net/brutex/emitter/ALFEmitter.java
21,10 → 21,14
import java.io.IOException;
import java.io.StringWriter;
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
 
import javax.xml.bind.JAXBContext;
56,6 → 60,8
import net.brutex.sbm.sbmappservices72.api.SectionsOption;
import net.brutex.sbm.sbmappservices72.api.TTItemList;
import net.brutex.sbm.sbmappservices72.api.TableIdentifier;
import net.brutex.svn.SVNAdminCommand;
import net.brutex.svn.SVNAdminExecutor;
import net.brutex.svn.SVNCommitInfo;
import net.brutex.svn.SVNLookExecutor;
 
88,7 → 94,9
import org.apache.log4j.Logger;
import org.jaxen.JaxenException;
 
import com.sun.xml.bind.v2.runtime.JAXBContextImpl;
 
 
/**
* The Class ALFEmitter.
*
104,6 → 112,7
// Keys to read from the configuration file.
//
private static final String OPTION_SVNLOOK = "svnlook";
private static final String OPTION_SVNADMIN = "svnadmin";
private static final String OPTION_LOCALE = "env.LANG";
private static final String OPTION_ENCODING = "env.encoding";
private static final String OPTION_ISSUEPATTERN = "issuepattern";
134,6 → 143,7
private static final String OPTION_IS_DROPENABLED = "isDropResponse";
private static final String OPTION_IS_FORCEFAILENABLED = "forcefail";
private static final String OPTION_IS_VERIFICATIONENABLED = "isWithVerification";
private static final String OPTION_IS_UPDATECOMMITMESSAGE = "isWithMessageUpdate";
private static final String OPTION_IS_WSTRACE = "trace";
private static final String OPTION_IS_XMLPROCESSINGENABLED = "isXmlProcessingEnabled";
 
166,6 → 176,8
 
private final List<String> internalissues = new ArrayList<String>();
//SBM IssueTypePrefix+IssueId, Title
private final Map<String, String> issues_titles = new HashMap<String, String>();
/**
* The main method.
187,6 → 199,9
ALFEmitter emitter = new ALFEmitter(cmd, startTime);
} catch (ConfigurationException e) {
System.exit(1);
} catch (MalformedURLException e) {
logger.error("Could not find/ load wsdl url.", e);
System.exit(1);
}
long endTime = System.currentTimeMillis();
logger.debug("Total execution took '"+(endTime-startTime)+"' milliseconds.");
262,7 → 277,7
return b.booleanValue();
}
private ALFEmitter(CommandLine cmd, long startTime) throws ConfigurationException {
private ALFEmitter(CommandLine cmd, long startTime) throws ConfigurationException, MalformedURLException {
this.startTime = startTime;
repos = cmd.getOptionValue(PARAM_REPOS);
txn = cmd.getOptionValue(PARAM_TXN);
277,7 → 292,7
config = new PropertiesConfiguration(config_file);
} catch (ConfigurationException e) {
logger.error("Could not find/ load '"+config_file+"' file.", e);
System.exit(1);
this.exit(1);
}
/*
300,6 → 315,7
final boolean isXmlProcessingEnabled = readConfPropertyAsBoolean(OPTION_IS_XMLPROCESSINGENABLED, true, true, null);
final boolean isWithVerification= readConfPropertyAsBoolean(OPTION_IS_VERIFICATIONENABLED, false, true, null);
final boolean isRemoveIssues = readConfPropertyAsBoolean(OPTION_REMOVE_ISSUES_FROM_COMMIT, false, true, "");
final boolean isWithCommitUpdate= readConfPropertyAsBoolean(OPTION_IS_UPDATECOMMITMESSAGE, false, true, "");
/*
* SVNLook phase
338,7 → 354,7
boolean isOK = verify(info.getIssues(), isTrace);
if(! isOK ) {
logger.error("Verification of issue failed. No matching issue was found.");
System.exit(1);
this.exit(1);
}
} else {
sbm_user = null; sbm_pass=null; endpoint=null; querytable=null; query=null;
345,6 → 361,31
}
 
/*
* Modify original commit message
* using svnadmin command
*/
if(isWithCommitUpdate) {
String svnadmin = readConfPropertyAsString(OPTION_SVNADMIN, null, true, null);
EmitterUtil.verifyFile(svnadmin, false, true);
/* If verification was turned on, we do already have the titles
* so only try to load the items when verification was off
*/
if(! isWithVerification) {
verify(info.getIssues(), isTrace);
}
/* Append associated items information and change log message */
StringBuffer newmessage = new StringBuffer();
newmessage.append(info.getLogmessage());
newmessage.append("\n\n Associated SBM items:\n");
for(String s : issues_titles.keySet()) {
newmessage.append(s+": ");
newmessage.append(issues_titles.get(s));
newmessage.append("\n");
}
postCommitUpdate(new File(svnadmin), repos, locale, encoding, rev, newmessage.toString());
}
/*
* XML processing phase
*/
if(isXmlProcessingEnabled) {
352,8 → 393,7
}
/*
* ALF Event Send phase
*/
400,25 → 440,24
} catch (FileNotFoundException e) {
logger.error(e.getMessage(), e);
System.exit(1);
this.exit(1);
} catch (ClientProtocolException e) {
logger.error(e.getMessage(), e);
System.exit(1);
this.exit(1);
} catch (IOException e) {
logger.error(e.getMessage(), e);
System.exit(1);
this.exit(1);
} catch (XMLStreamException e) {
logger.error(e.getMessage(), e);
System.exit(1);
this.exit(1);
} catch (JaxenException e) {
logger.error(e.getMessage(), e);
System.exit(1);
this.exit(1);
} finally {
logger.debug("Total execution took '"+(System.currentTimeMillis()-startTime)+"' milliseconds.");
String forcefail = config.getString(OPTION_IS_FORCEFAILENABLED, "");
if(forcefail.length()>0) {
logger.warn("Force fail is active. All commits will be blocked.");
System.exit(1);
this.exit(1);
}
}
490,7 → 529,7
.getDocument().getOMDocumentElement();
} catch (FileNotFoundException e1) {
logger.error(String.format("Could not load XML event template from file '%s'.", eventtemplate), e1);
System.exit(1);
this.exit(1);
}
nss = readConfPropertyAsString(OPTION_EVENTNAMESPACE, "http://www.eclipse.org/alf/schema/EventBase/1", true, null);
final String marker_logmessage = readConfPropertyAsString(OPTION_MARKER_LOGMESSAGE, "@@logmessage@@", true, null);
522,9 → 561,25
}
private boolean verify(List<String> issues, boolean isTrace) {
private boolean verify(List<String> issues, boolean isTrace) throws MalformedURLException {
for(String issueid : issues) {
TTItemList items = getTTItems(issueid, isTrace);
if(items == null) {
return false;
}
}
return true;
}
private TTItemList getTTItems(String issueid, boolean isTrace) throws MalformedURLException {
long startTime = System.currentTimeMillis();
/* -- */
Sbmappservices72 ss = new Sbmappservices72(ClassLoader.getSystemResource("sbmappservices72.wsdl") );
logger.debug("Total execution of sbmappservices72 wsdl read took '"+(System.currentTimeMillis()-startTime)+"' milliseconds.");
Sbmappservices72PortType port = ss.getSbmappservices72();
Client client = ClientProxy.getClient(port);
535,7 → 590,9
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpoint);
/* -- */
logger.debug("Total execution of sbmappservices72 initialisation took '"+(System.currentTimeMillis()-startTime)+"' milliseconds.");
ObjectFactory fac = new ObjectFactory();
Auth auth = fac.createAuth();
auth.setUserId(fac.createAuthUserId(sbm_user));
545,15 → 602,18
table.setDbName(fac.createTableIdentifierDbName(querytable));
MultipleResponseItemOptions options = fac.createMultipleResponseItemOptions();
options.setSections(SectionsOption.SECTIONS_NONE);
options.setSpecifiedSections(fac.createResponseItemOptionsSpecifiedSections("SECTION:FIXED"));
options.setSections(SectionsOption.SECTIONS_SPECIFIED);
for(String issue : issues) {
issue = issue.replaceAll("[^0-9]", "");
String queryWhereClause = "TS_ISSUEID = '"+issue+"'";
if(query!=null && query.length()>0) queryWhereClause = queryWhereClause + " And " + query;
logger.debug(String.format("Using query against table '%s'. Query where clause: '%s'", querytable, queryWhereClause ));
try {
TTItemList items = port.getItemsByQuery(auth, table, queryWhereClause, "", null, BigInteger.valueOf(1), options);
issueid = issueid.replaceAll("[^0-9]", "");
String queryWhereClause = "TS_ISSUEID = '"+issueid+"'";
if(query!=null && query.length()>0) queryWhereClause = queryWhereClause + " And " + query;
TTItemList items = null;
logger.debug(String.format("Using query against table '%s'. Query where clause: '%s'", querytable, queryWhereClause ));
try {
startTime = System.currentTimeMillis();
items = port.getItemsByQuery(auth, table, queryWhereClause, "", null, BigInteger.valueOf(1), options);
logger.debug("Total execution of sbmappservices72 GetItems took '"+(System.currentTimeMillis()-startTime)+"' milliseconds.");
//Marshaller m = JAXBContext.newInstance(TTItemList.class).createMarshaller();
//m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
561,23 → 621,35
logger.debug(String.format("Got Response from getItemsByQuery"));
if(items!=null) {
logger.debug(String.format("Verification query matched '%s' item(s) for issue '%s.'",items.getTotalCount(), issue));
logger.debug(String.format("Verification query matched '%s' item(s) for issue '%s.'",items.getTotalCount(), issueid));
}
if(items.getTotalCount().intValue()<=0) {
return false;
return null;
} else {
/* store internal ids (tableid:itemid) */
internalissues.add(items.getItem().get(0).getId().getValue().getTableIdItemId().getValue());
/* Store a map entry with internal id and title */
issues_titles.put(items.getItem().get(0).getId().getValue().getDisplayName().getValue(),
items.getItem().get(0).getTitle().getValue());
}
} catch (AEWebservicesFaultFault e) {
} catch (AEWebservicesFaultFault e) {
logger.debug("Web service fault: " + e.getFaultInfo());
} catch (Exception e) {
} catch (Exception e) {
logger.debug("Unknown Exception", e);
}
}
return true;
return items;
}
}
private void postCommitUpdate(File svnadmin, String repos, String locale, String encoding, String revision, String newmessage) {
SVNAdminExecutor exec = new SVNAdminExecutor(svnadmin, repos);
exec.setRev(revision);
exec.setMessage(newmessage);
exec.setEncoding(encoding);
exec.setLocale(locale);
exec.executeSVNAdmin(SVNAdminCommand.SETLOG);
}
 
private void addElement(String pattern, String newCdata, boolean wrapCDATA) throws JaxenException {
OMComment comment = findComment(pattern);
618,6 → 690,12
logger.warn("Comment '"+pattern+"' was not found in the XML template.");
return null;
}
private void exit(int errorCode) {
long endTime = System.currentTimeMillis();
logger.debug("Total execution took '"+(endTime-startTime)+"' milliseconds.");
System.exit(errorCode);
}
@SuppressWarnings("static-access")
private static Options getOptions() {
656,7 → 734,7
// automatically generate the help statement
HelpFormatter formatter = new HelpFormatter();
String header = "\nSVN-ALFEventEmitter " + VERSION +", a SVN hook implemented in Java to emit Eclipse ALFEvents on commit.\n\n";
String footer = "Please send bug reports to bru@brutex.de.\n(c)2013 Brian Rosenberger";
String footer = "Please send bug reports to bru@brutex.de.\n(c)2014 Brian Rosenberger";
formatter.printHelp("java -jar SVN-ALFEventEmitter", header, getOptions(), footer, true);
}
/SVN-ALFEventEmitter/trunk/src/sbmappservices72.wsdl
2,8 → 2,8
<WSDL:definitions xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diag="urn:SerenaDiagnostics" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://localhost:80/gsoap/sbmappservices72.wsdl" xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ae="urn:sbmappservices72" xmlns="http://schemas.xmlsoap.org/wsdl/" name="sbmappservices72" targetNamespace="http://localhost:80/gsoap/sbmappservices72.wsdl" xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/">
<WSDL:types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="urn:SerenaDiagnostics">
<xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" />
<xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" />
<!-- <xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" /> -->
<!-- <xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" /> -->
<xsd:import namespace="urn:sbmappservices72" />
<xsd:complexType name="SerenaDiagnostics">
<xsd:sequence>
14,8 → 14,10
<xsd:element name="SerenaDiagnostics" type="diag:SerenaDiagnostics" />
</xsd:schema>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="urn:sbmappservices72">
<!--
<xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" />
<xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" />
-->
<xsd:import namespace="urn:SerenaDiagnostics" />
<xsd:element name="AEWebservicesFault" type="xsd:string" />
<xsd:simpleType name="PrivilegeKind">
1557,78 → 1559,19
<WSDL:message name="AEWebservicesFaultFault">
<WSDL:part name="fault" element="ae:AEWebservicesFault" />
</WSDL:message>
<WSDL:portType name="sbmappservices72PortType">
<WSDL:operation name="Logout">
<documentation>Logs out the current active session, releasing license.</documentation>
<WSDL:input message="tns:Logout" />
<WSDL:output message="tns:LogoutResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="GetVersion">
<documentation>Gets the server version.</documentation>
<WSDL:input message="tns:GetVersion" />
<WSDL:output message="tns:GetVersionResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="GetApplications">
<documentation>Gets the list of available applications.</documentation>
<WSDL:input message="tns:GetApplications" />
<WSDL:output message="tns:GetApplicationsResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="GetSolutions">
<documentation>Gets the list of available solutions.</documentation>
<WSDL:input message="tns:GetSolutions" />
<WSDL:output message="tns:GetSolutionsResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="GetTables">
<documentation>Gets the list of available tables, optionally filtered by solution and/or table type.</documentation>
<WSDL:input message="tns:GetTables" />
<WSDL:output message="tns:GetTablesResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="GetReports">
<documentation>Gets a filtered list of reports.</documentation>
<WSDL:input message="tns:GetReports" />
<WSDL:output message="tns:GetReportsResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="RunReport">
<documentation>Runs a specified report.</documentation>
<WSDL:input message="tns:RunReport" />
<WSDL:output message="tns:RunReportResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="RunReportXml">
<documentation>Service definition of function ae__RunReportXml</documentation>
<WSDL:input message="tns:RunReportXml" />
<WSDL:output message="tns:RunReportXmlResponse" />
</WSDL:operation>
<WSDL:operation name="GetSubmitProjects">
<documentation>Gets the list of available projects available for submitting new items, optionally filtered by table id.</documentation>
<WSDL:input message="tns:GetSubmitProjects" />
<WSDL:output message="tns:GetSubmitProjectsResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="CreatePrimaryItem">
<documentation>Creates a new item, given a project and item data. Creates the item as a sub-item if a parent item is specified.</documentation>
<WSDL:input message="tns:CreatePrimaryItem" />
<WSDL:output message="tns:CreatePrimaryItemResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="CreatePrimaryItems">
<documentation>Creates new item(s), given a project and item data. Creates the item(s) as sub-items if a parent item is specified.</documentation>
<WSDL:input message="tns:CreatePrimaryItems" />
<WSDL:output message="tns:CreatePrimaryItemsResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
<WSDL:operation name="LinkSubtask">
<documentation>Links one item to another as a sub-task.</documentation>
<WSDL:input message="tns:LinkSubtask" />
<WSDL:output message="tns:LinkSubtaskResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
</WSDL:operation>
+
<WSDL:operation name="CreateAuxItem">
<documentation>Creates a new aux item, given a table id and item data.</documentation>
<WSDL:input message="tns:CreateAuxItem" />
@@ -1646,13 +1589,8 @@
<WSDL:input message="tns:CreateFileAttachment" />
<WSDL:output message="tns:CreateFileAttachmentResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="CreateNoteAttachment">
- <documentation>attaches note.</documentation>
- <WSDL:input message="tns:CreateNoteAttachment" />
- <WSDL:output message="tns:CreateNoteAttachmentResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
+
<WSDL:operation name="GetItem">
<documentation>Gets item, given an item id.</documentation>
<WSDL:input message="tns:GetItem" />
@@ -1670,13 +1608,8 @@
<WSDL:input message="tns:GetItemsByQuery" />
<WSDL:output message="tns:GetItemsByQueryResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="GetFileAttachment">
- <documentation>Gets an existing file attachment, given an item id and attachment id.</documentation>
- <WSDL:input message="tns:GetFileAttachment" />
- <WSDL:output message="tns:GetFileAttachmentResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
+
<WSDL:operation name="TransitionItem">
<documentation>Transitions existing item, given the the item id, plus any data to update, and transition id to use a non-default transition.</documentation>
<WSDL:input message="tns:TransitionItem" />
@@ -1688,210 +1621,20 @@
<WSDL:input message="tns:TransitionItems" />
<WSDL:output message="tns:TransitionItemsResponse" />
<WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="GetAvailableTransitions">
- <documentation>Return available transitions, given an item id and attribute name (may be null or empty).</documentation>
- <WSDL:input message="tns:GetAvailableTransitions" />
- <WSDL:output message="tns:GetAvailableTransitionsResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="GetAvailableSubmitTransitions">
- <documentation>Return available Submit transitions, given an item id and attribute name (may be null or empty).</documentation>
- <WSDL:input message="tns:GetAvailableSubmitTransitions" />
- <WSDL:output message="tns:GetAvailableSubmitTransitionsResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="UpdateFileAttachment">
- <documentation>Updates an existing attachment, given item id, and the file attachment contents.</documentation>
- <WSDL:input message="tns:UpdateFileAttachment" />
- <WSDL:output message="tns:UpdateFileAttachmentResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="DeleteItems">
- <documentation>Service definition of function ae__DeleteItems</documentation>
- <WSDL:input message="tns:DeleteItems" />
- <WSDL:output message="tns:DeleteItemsResponse" />
- </WSDL:operation>
- <WSDL:operation name="DeleteItemsByQuery">
- <documentation>Deletes one or more items, given a table id and a query where clause.</documentation>
- <WSDL:input message="tns:DeleteItemsByQuery" />
- <WSDL:output message="tns:DeleteItemsByQueryResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="DeleteAttachment">
- <documentation>Deletes an existing attachment, which may be a note, item link, URL attachment or file attachment, given an attachment id.</documentation>
- <WSDL:input message="tns:DeleteAttachment" />
- <WSDL:output message="tns:DeleteAttachmentResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="GetNoteLoggerInfo">
- <documentation>Returns note logger information.</documentation>
- <WSDL:input message="tns:GetNoteLoggerInfo" />
- <WSDL:output message="tns:GetNoteLoggerInfoResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="GetStateChangeHistory">
- <documentation>Gets the state change history of an existing item, given a table id and internal item id.</documentation>
- <WSDL:input message="tns:GetStateChangeHistory" />
- <WSDL:output message="tns:GetStateChangeHistoryResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="GetUsers">
- <documentation>Returns user information one or more users. If getCurrentUser is true, then information about the current user is returned.</documentation>
- <WSDL:input message="tns:GetUsers" />
- <WSDL:output message="tns:GetUsersResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
- <WSDL:operation name="IsUserValid">
- <documentation>Determine if the specified user is valid.</documentation>
- <WSDL:input message="tns:IsUserValid" />
- <WSDL:output message="tns:IsUserValidResponse" />
- <WSDL:fault name="AEWebservicesFault" message="tns:AEWebservicesFaultFault" />
- </WSDL:operation>
+
</WSDL:portType>
<WSDL:binding name="sbmappservices72" type="tns:sbmappservices72PortType">
<SOAP:binding transport="http://schemas.xmlsoap.org/soap/http" />
- <WSDL:operation name="Logout">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetVersion">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetApplications">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetSolutions">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetTables">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetReports">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="RunReport">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="RunReportXml">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- </WSDL:operation>
- <WSDL:operation name="GetSubmitProjects">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="CreatePrimaryItem">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="CreatePrimaryItems">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="LinkSubtask">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
<WSDL:operation name="CreateAuxItem">
<SOAP:operation soapAction="" />
<WSDL:input>
@@ -1928,18 +1671,6 @@
<SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
</WSDL:fault>
</WSDL:operation>
- <WSDL:operation name="CreateNoteAttachment">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
<WSDL:operation name="GetItem">
<SOAP:operation soapAction="" />
<WSDL:input>
@@ -1976,18 +1707,6 @@
<SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
</WSDL:fault>
</WSDL:operation>
- <WSDL:operation name="GetFileAttachment">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
<WSDL:operation name="TransitionItem">
<SOAP:operation soapAction="" />
<WSDL:input>
@@ -2012,123 +1731,6 @@
<SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
</WSDL:fault>
</WSDL:operation>
- <WSDL:operation name="GetAvailableTransitions">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetAvailableSubmitTransitions">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="UpdateFileAttachment">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="DeleteItems">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- </WSDL:operation>
- <WSDL:operation name="DeleteItemsByQuery">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="DeleteAttachment">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetNoteLoggerInfo">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetStateChangeHistory">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="GetUsers">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
- <WSDL:operation name="IsUserValid">
- <SOAP:operation soapAction="" />
- <WSDL:input>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:input>
- <WSDL:output>
- <SOAP:body use="literal" parts="parameters" />
- </WSDL:output>
- <WSDL:fault name="AEWebservicesFault">
- <SOAP:fault use="literal" name="AEWebservicesFault" namespace="" />
- </WSDL:fault>
- </WSDL:operation>
</WSDL:binding>
<WSDL:service name="sbmappservices72">
<documentation>SBM Application Web Services Version 7.2</documentation>