http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-usagerecord/src/main/java/org/ogf/usage/JobUsageRecord.java ---------------------------------------------------------------------- diff --git a/server-usagerecord/src/main/java/org/ogf/usage/JobUsageRecord.java b/server-usagerecord/src/main/java/org/ogf/usage/JobUsageRecord.java deleted file mode 100644 index d12d3d8..0000000 --- a/server-usagerecord/src/main/java/org/ogf/usage/JobUsageRecord.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.ogf.usage; - -import static java.util.UUID.randomUUID; - -import java.io.StringReader; -import java.io.StringWriter; -import java.math.BigInteger; -import java.util.Date; -import java.util.GregorianCalendar; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlTransient; -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.transform.dom.DOMSource; - -import org.ogf.usage.v1_0.Charge; -import org.ogf.usage.v1_0.ConsumableResourceType; -import org.ogf.usage.v1_0.CpuDuration; -import org.ogf.usage.v1_0.Disk; -import org.ogf.usage.v1_0.EndTime; -import org.ogf.usage.v1_0.Host; -import org.ogf.usage.v1_0.JobName; -import org.ogf.usage.v1_0.MachineName; -import org.ogf.usage.v1_0.Memory; -import org.ogf.usage.v1_0.Network; -import org.ogf.usage.v1_0.NodeCount; -import org.ogf.usage.v1_0.Processors; -import org.ogf.usage.v1_0.ProjectName; -import org.ogf.usage.v1_0.Queue; -import org.ogf.usage.v1_0.RecordIdentity; -import org.ogf.usage.v1_0.ResourceType; -import org.ogf.usage.v1_0.ServiceLevel; -import org.ogf.usage.v1_0.StartTime; -import org.ogf.usage.v1_0.Status; -import org.ogf.usage.v1_0.SubmitHost; -import org.ogf.usage.v1_0.Swap; -import org.ogf.usage.v1_0.TimeDuration; -import org.ogf.usage.v1_0.TimeInstant; -import org.ogf.usage.v1_0.UserIdentity; -import org.ogf.usage.v1_0.WallDuration; -import org.w3c.dom.Element; - -@XmlRootElement(name = "UsageRecord", namespace = "http://schema.ogf.org/urf/2003/09/urf") -public class JobUsageRecord extends org.ogf.usage.v1_0.UsageRecordType { - /** - * Create a new usage record with a random UUID as its identity. - * - * @throws DatatypeConfigurationException - * If the factory for XML-relevant datatypes fails to build; not - * expected. - */ - public JobUsageRecord() throws DatatypeConfigurationException { - datatypeFactory = DatatypeFactory.newInstance(); - RecordIdentity recid = new RecordIdentity(); - recid.setRecordId(randomUUID().toString()); - recid.setCreateTime(datatypeFactory - .newXMLGregorianCalendar(new GregorianCalendar())); - setRecordIdentity(recid); - } - - /** - * Create a new usage record with a random UUID as its identity. - * - * @param name - * The name of the job to which this record pertains. - * @throws DatatypeConfigurationException - * If the factory for XML-relevant datatypes fails to build; not - * expected. - */ - public JobUsageRecord(String name) throws DatatypeConfigurationException { - this(); - setJobName(name); - } - - @XmlTransient - private DatatypeFactory datatypeFactory; - - public Status setStatus(String status) { - Status s = new Status(); - s.setValue(status); - setStatus(s); - return s; - } - - public WallDuration addWallDuration(long millis) { - WallDuration wall = new WallDuration(); - wall.setValue(datatypeFactory.newDuration(millis)); - getWallDurationOrCpuDurationOrNodeCount().add(wall); - return wall; - } - - public CpuDuration addCpuDuration(long millis) { - CpuDuration cpu = new CpuDuration(); - cpu.setValue(datatypeFactory.newDuration(millis)); - getWallDurationOrCpuDurationOrNodeCount().add(cpu); - return cpu; - } - - public NodeCount addNodeCount(int nodes) { - NodeCount nc = new NodeCount(); - nc.setValue(BigInteger.valueOf(nodes)); - getWallDurationOrCpuDurationOrNodeCount().add(nc); - return nc; - } - - public Processors addProcessors(int processors) { - Processors pc = new Processors(); - pc.setValue(BigInteger.valueOf(processors)); - getWallDurationOrCpuDurationOrNodeCount().add(pc); - return pc; - } - - public SubmitHost addSubmitHost(String host) { - SubmitHost sh = new SubmitHost(); - sh.setValue(host); - getWallDurationOrCpuDurationOrNodeCount().add(sh); - return sh; - } - - public Host addHost(String host) { - Host h = new Host(); - h.setValue(host); - getWallDurationOrCpuDurationOrNodeCount().add(h); - return h; - } - - public MachineName addMachine(String host) { - MachineName machine = new MachineName(); - machine.setValue(host); - getWallDurationOrCpuDurationOrNodeCount().add(machine); - return machine; - } - - public ProjectName addProject(String project) { - ProjectName p = new ProjectName(); - p.setValue(project); - getWallDurationOrCpuDurationOrNodeCount().add(p); - return p; - } - - public void addStartAndEnd(Date start, Date end) { - GregorianCalendar gc; - - gc = new GregorianCalendar(); - gc.setTime(start); - StartTime st = new StartTime(); - st.setValue(datatypeFactory.newXMLGregorianCalendar(gc)); - getWallDurationOrCpuDurationOrNodeCount().add(st); - - gc = new GregorianCalendar(); - gc.setTime(end); - EndTime et = new EndTime(); - et.setValue(datatypeFactory.newXMLGregorianCalendar(gc)); - getWallDurationOrCpuDurationOrNodeCount().add(et); - } - - public Queue addQueue(String queue) { - Queue q = new Queue(); - q.setValue(queue); - getWallDurationOrCpuDurationOrNodeCount().add(q); - return q; - } - - public void addResource(ConsumableResourceType consumable) { - getWallDurationOrCpuDurationOrNodeCount().add(consumable); - } - - public ResourceType addResource(ResourceType resource) { - getWallDurationOrCpuDurationOrNodeCount().add(resource); - return resource; - } - - public ResourceType addResource(String description, String value) { - ResourceType resource = new ResourceType(); - resource.setDescription(description); - resource.setValue(value); - getWallDurationOrCpuDurationOrNodeCount().add(resource); - return resource; - } - - public ServiceLevel addServiceLevel(String service) { - ServiceLevel sl = new ServiceLevel(); - sl.setValue(service); - getDiskOrMemoryOrSwap().add(sl); - return sl; - } - - public Memory addMemory(long memory) { - Memory mem = new Memory(); - mem.setValue(BigInteger.valueOf(memory)); - getDiskOrMemoryOrSwap().add(mem); - return mem; - } - - public TimeInstant addTimestamp(Date timestamp, String type) { - TimeInstant instant = new TimeInstant(); - GregorianCalendar gc = new GregorianCalendar(); - gc.setTime(timestamp); - instant.setValue(datatypeFactory.newXMLGregorianCalendar(gc)); - instant.setType(type); - getDiskOrMemoryOrSwap().add(instant); - return instant; - } - - public TimeDuration addDuration(long millis, String type) { - TimeDuration duration = new TimeDuration(); - duration.setValue(datatypeFactory.newDuration(millis)); - duration.setType(type); - getDiskOrMemoryOrSwap().add(duration); - return duration; - } - - public Network addNetwork(long value) { - Network net = new Network(); - net.setValue(BigInteger.valueOf(value)); - getDiskOrMemoryOrSwap().add(net); - return net; - } - - public Disk addDisk(long value) { - Disk disk = new Disk(); - disk.setValue(BigInteger.valueOf(value)); - getDiskOrMemoryOrSwap().add(disk); - return disk; - } - - public Swap addSwap(long value) { - Swap net = new Swap(); - net.setValue(BigInteger.valueOf(value)); - getDiskOrMemoryOrSwap().add(net); - return net; - } - - public UserIdentity addUser(String localUID, String globalName) { - UserIdentity user = new UserIdentity(); - user.setLocalUserId(localUID); - user.setGlobalUserName(globalName); - getUserIdentity().add(user); - return user; - } - - public JobName setJobName(String name) { - JobName jn = new JobName(); - jn.setValue(name); - this.setJobName(jn); - return jn; - } - - public Charge addCharge(float value) { - Charge c = new Charge(); - c.setValue(value); - this.setCharge(c); - return c; - } - - @SuppressWarnings("unchecked") - public <T> T getOfType(Class<T> clazz) { - for (Object o : getWallDurationOrCpuDurationOrNodeCount()) - if (clazz.isInstance(o)) - return (T) o; - for (Object o : getDiskOrMemoryOrSwap()) - if (clazz.isInstance(o)) - return (T) o; - return null; - } - - public String marshal() throws JAXBException { - StringWriter writer = new StringWriter(); - JAXBContext.newInstance(getClass()).createMarshaller() - .marshal(this, writer); - return writer.toString(); - } - - private static JAXBContext context; - static { - try { - context = JAXBContext.newInstance(JobUsageRecord.class); - } catch (JAXBException e) { - throw new RuntimeException("failed to handle JAXB annotated class", - e); - } - } - - public static JobUsageRecord unmarshal(String s) throws JAXBException { - return (JobUsageRecord) context.createUnmarshaller().unmarshal( - new StringReader(s)); - } - - public static JobUsageRecord unmarshal(Element elem) throws JAXBException { - return context.createUnmarshaller() - .unmarshal(new DOMSource(elem), JobUsageRecord.class) - .getValue(); - } - - // TODO: Add signing support -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-usagerecord/src/main/xsd/ur.xsd ---------------------------------------------------------------------- diff --git a/server-usagerecord/src/main/xsd/ur.xsd b/server-usagerecord/src/main/xsd/ur.xsd deleted file mode 100644 index 16344a7..0000000 --- a/server-usagerecord/src/main/xsd/ur.xsd +++ /dev/null @@ -1,425 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsd:schema attributeFormDefault="qualified" jaxb:version="2.1" - elementFormDefault="qualified" targetNamespace="http://schema.ogf.org/urf/2003/09/urf" - xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:urf="http://schema.ogf.org/urf/2003/09/urf" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" - xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd"> - <xsd:annotation> - <!-- Copyright (c) 2003-2008 Open Grid Forum --> - <xsd:documentation xml:lang="en">Usage Record Working Group XML Schema definition</xsd:documentation> - <xsd:appinfo> - <jaxb:schemaBindings> - <jaxb:package name="org.ogf.usage.v1_0" /> - </jaxb:schemaBindings> - </xsd:appinfo> - </xsd:annotation> - <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" - schemaLocation="xmlds.xsd" /> <!-- http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd --> - <xsd:complexType name="UsageRecordType"> - <xsd:sequence> - <xsd:element ref="urf:RecordIdentity" /> - <xsd:element minOccurs="0" ref="urf:JobIdentity" /> - <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:UserIdentity" /> - <xsd:element minOccurs="0" ref="urf:JobName" /> - <xsd:element minOccurs="0" ref="urf:Charge" /> - <xsd:element ref="urf:Status" /> - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:annotation> - <xsd:documentation> - The elements grouped together in this choice may be represented - within a usage record multiple times. Each of these appearances - must be differentiated by the metric and/or type associated with - the element. - </xsd:documentation> - </xsd:annotation> - <xsd:element ref="urf:Disk" /> - <xsd:element ref="urf:Memory" /> - <xsd:element ref="urf:Swap" /> - <xsd:element ref="urf:Network" /> - <xsd:element ref="urf:TimeDuration" /> - <xsd:element ref="urf:TimeInstant" /> - <xsd:element ref="urf:ServiceLevel" /> - </xsd:choice> - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element minOccurs="0" ref="urf:WallDuration" /> - <xsd:sequence minOccurs="0"> - <xsd:element maxOccurs="2" minOccurs="0" ref="urf:CpuDuration" /> - </xsd:sequence> - <xsd:element minOccurs="0" ref="urf:NodeCount" /> - <xsd:element minOccurs="0" ref="urf:Processors" /> - <xsd:element minOccurs="0" ref="urf:EndTime" /> - <xsd:element minOccurs="0" ref="urf:StartTime" /> - <xsd:element minOccurs="0" ref="urf:MachineName" /> - <xsd:element minOccurs="0" ref="urf:SubmitHost" /> - <xsd:element minOccurs="0" ref="urf:Queue" /> - <xsd:sequence minOccurs="0"> - <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:ProjectName" /> - </xsd:sequence> - <xsd:sequence minOccurs="0"> - <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Host" /> - </xsd:sequence> - <xsd:sequence minOccurs="0"> - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element ref="urf:PhaseResource" /> - <xsd:element ref="urf:VolumeResource" /> - <xsd:element ref="urf:Resource" /> - <xsd:element ref="urf:ConsumableResource" /> - </xsd:choice> - </xsd:sequence> - </xsd:choice> - </xsd:sequence> - </xsd:complexType> - <xsd:element abstract="true" name="Usage" type="urf:UsageRecordType" /> - <xsd:element name="UsageRecord" substitutionGroup="urf:Usage" - type="urf:UsageRecordType" /> - <xsd:element name="JobUsageRecord" substitutionGroup="urf:Usage"> - <xsd:complexType> - <xsd:complexContent> - <xsd:extension base="urf:UsageRecordType" /> - </xsd:complexContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="UsageRecords"> - <xsd:complexType> - <xsd:sequence> - <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Usage" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <!-- Common properties that may be measured with several different metrics - within the same usage record --> - <xsd:element name="Network"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:positiveInteger"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attributeGroup ref="urf:intervallicVolume" /> - <xsd:attribute default="total" ref="urf:metric" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Disk"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:positiveInteger"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attributeGroup ref="urf:intervallicVolume" /> - <xsd:attribute default="total" ref="urf:metric" use="optional" /> - <xsd:attribute ref="urf:type" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Memory"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:positiveInteger"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attributeGroup ref="urf:intervallicVolume" /> - <xsd:attribute default="total" ref="urf:metric" use="optional" /> - <xsd:attribute ref="urf:type" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Swap"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:positiveInteger"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attributeGroup ref="urf:intervallicVolume" /> - <xsd:attribute default="total" ref="urf:metric" use="optional" /> - <xsd:attribute ref="urf:type" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="NodeCount"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:positiveInteger"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attribute default="total" ref="urf:metric" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Processors"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:positiveInteger"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attribute ref="urf:metric" use="optional" /> - <xsd:attribute name="consumptionRate" type="xsd:float" - use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="TimeDuration"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:duration"> - <xsd:attribute ref="urf:type" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="TimeInstant"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:dateTime"> - <xsd:attribute ref="urf:type" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="ServiceLevel"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:token"> - <xsd:attribute ref="urf:type" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <!-- This element should appear at most twice within a usage record, with - differing values for usageType for each appearance --> - <xsd:element name="CpuDuration"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:duration"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attribute name="usageType"> - <xsd:simpleType> - <xsd:restriction base="xsd:token"> - <xsd:enumeration value="user" /> - <xsd:enumeration value="system" /> - </xsd:restriction> - </xsd:simpleType> - </xsd:attribute> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <!-- These common properties should appear at most once within a usage record, - rather that at most once per metric per usage record --> - <xsd:element name="WallDuration"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:duration"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="EndTime"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:dateTime"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="StartTime"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:dateTime"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="MachineName"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="urf:domainNameType"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="SubmitHost"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="urf:domainNameType"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Host"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="urf:domainNameType"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attribute default="false" name="primary" type="xsd:boolean" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Queue"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:string"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="JobName"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:string"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="ProjectName"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:string"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Status"> - <xsd:annotation> - <xsd:documentation> - Minimum required set = {Aborted, Completed, Failed, - Held, Queued, Started, Suspended} - </xsd:documentation> - </xsd:annotation> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:token"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="Charge"> - <xsd:complexType> - <xsd:simpleContent> - <xsd:extension base="xsd:float"> - <xsd:attribute ref="urf:description" use="optional" /> - <xsd:attribute ref="urf:unit" use="optional" /> - <xsd:attribute name="formula" type="xsd:string" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - </xsd:element> - <!-- identity elements --> - <xsd:element name="JobIdentity"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" name="GlobalJobId" type="xsd:string" /> - <xsd:element minOccurs="0" name="LocalJobId" type="xsd:string" /> - <xsd:sequence> - <xsd:element maxOccurs="unbounded" minOccurs="0" - name="ProcessId" type="xsd:string" /> - </xsd:sequence> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="UserIdentity"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" name="LocalUserId" type="xsd:string" /> - <xsd:element minOccurs="0" name="GlobalUserName" type="xsd:string" /> - <xsd:element minOccurs="0" ref="ds:KeyInfo" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="RecordIdentity"> - <xsd:complexType> - <xsd:sequence minOccurs="0"> - <xsd:element ref="ds:KeyInfo" /> - </xsd:sequence> - <xsd:attribute name="recordId" type="xsd:token" use="required" /> - <xsd:attribute name="createTime" type="xsd:dateTime" use="optional" /> - </xsd:complexType> - </xsd:element> - <!-- Extensibility Framework --> - <xsd:element name="Resource" type="urf:ResourceType" /> - <xsd:element name="ConsumableResource" type="urf:ConsumableResourceType" /> - <xsd:element name="PhaseResource"> - <xsd:complexType> - <xsd:complexContent> - <xsd:extension base="urf:ConsumableResourceType"> - <xsd:attribute ref="urf:phaseUnit" use="optional" /> - </xsd:extension> - </xsd:complexContent> - </xsd:complexType> - </xsd:element> - <xsd:element name="VolumeResource"> - <xsd:complexType> - <xsd:complexContent> - <xsd:extension base="urf:ConsumableResourceType"> - <xsd:attribute ref="urf:storageUnit" use="optional" /> - </xsd:extension> - </xsd:complexContent> - </xsd:complexType> - </xsd:element> - <!-- Create a generic consumable resource. Carries the units attribute --> - <xsd:complexType name="ConsumableResourceType"> - <xsd:simpleContent> - <xsd:extension base="xsd:float"> - <xsd:attribute name="units" type="xsd:string" use="optional" /> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - <!-- Create a generic resource type --> - <xsd:complexType name="ResourceType"> - <xsd:simpleContent> - <xsd:extension base="xsd:string"> - <xsd:attribute ref="urf:description" use="optional" /> - </xsd:extension> - </xsd:simpleContent> - </xsd:complexType> - <!-- Global Attribute Definitions --> - <xsd:attribute name="description" type="xsd:string" /> - <!-- Units of measure attribute definitions --> - <xsd:attribute name="unit" type="xsd:token" /> - <xsd:attribute name="storageUnit"> - <xsd:simpleType> - <xsd:restriction base="xsd:token"> - <xsd:enumeration value="b" /> - <xsd:enumeration value="B" /> - <xsd:enumeration value="KB" /> - <xsd:enumeration value="MB" /> - <xsd:enumeration value="GB" /> - <xsd:enumeration value="PB" /> - <xsd:enumeration value="EB" /> - <xsd:enumeration value="Kb" /> - <xsd:enumeration value="Mb" /> - <xsd:enumeration value="Gb" /> - <xsd:enumeration value="Pb" /> - <xsd:enumeration value="Eb" /> - </xsd:restriction> - </xsd:simpleType> - </xsd:attribute> - <xsd:attribute name="phaseUnit" type="xsd:duration" /> - <xsd:attributeGroup name="intervallicVolume"> - <xsd:attribute ref="urf:storageUnit" use="optional" /> - <xsd:attribute ref="urf:phaseUnit" use="optional" /> - </xsd:attributeGroup> - <!-- End units attributes --> - <xsd:attribute name="metric" type="xsd:token" /> - <xsd:attribute name="type" type="xsd:token" /> - <!-- Simple type definitions used to constrain values of attributes --> - <xsd:simpleType name="domainNameType"> - <xsd:restriction base="xsd:string"> - <xsd:pattern - value="([a-zA-Z0-9][a-zA-Z0-9'\-']*[a-zA-Z0-9]\.)*([a-zA-Z0-9][a-zA-Z0-9'\-']*[a-zA-Z0-9])?" /> - <xsd:maxLength value="255" /> - </xsd:restriction> - </xsd:simpleType> -</xsd:schema> - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-usagerecord/src/main/xsd/xmlds.xsd ---------------------------------------------------------------------- diff --git a/server-usagerecord/src/main/xsd/xmlds.xsd b/server-usagerecord/src/main/xsd/xmlds.xsd deleted file mode 100644 index c3421c4..0000000 --- a/server-usagerecord/src/main/xsd/xmlds.xsd +++ /dev/null @@ -1,318 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE schema - PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd" - [ - <!ATTLIST schema - xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#"> - <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'> - <!ENTITY % p ''> - <!ENTITY % s ''> - ]> - -<!-- Schema for XML Signatures - http://www.w3.org/2000/09/xmldsig# - $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $ - - Copyright 2001 The Internet Society and W3C (Massachusetts Institute - of Technology, Institut National de Recherche en Informatique et en - Automatique, Keio University). All Rights Reserved. - http://www.w3.org/Consortium/Legal/ - - This document is governed by the W3C Software License [1] as described - in the FAQ [2]. - - [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 - [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD ---> - - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - xmlns:ds="http://www.w3.org/2000/09/xmldsig#" - targetNamespace="http://www.w3.org/2000/09/xmldsig#" - version="0.1" elementFormDefault="qualified"> - -<!-- Basic Types Defined for Signatures --> - -<simpleType name="CryptoBinary"> - <restriction base="base64Binary"> - </restriction> -</simpleType> - -<!-- Start Signature --> - -<element name="Signature" type="ds:SignatureType"/> -<complexType name="SignatureType"> - <sequence> - <element ref="ds:SignedInfo"/> - <element ref="ds:SignatureValue"/> - <element ref="ds:KeyInfo" minOccurs="0"/> - <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - <attribute name="Id" type="ID" use="optional"/> -</complexType> - - <element name="SignatureValue" type="ds:SignatureValueType"/> - <complexType name="SignatureValueType"> - <simpleContent> - <extension base="base64Binary"> - <attribute name="Id" type="ID" use="optional"/> - </extension> - </simpleContent> - </complexType> - -<!-- Start SignedInfo --> - -<element name="SignedInfo" type="ds:SignedInfoType"/> -<complexType name="SignedInfoType"> - <sequence> - <element ref="ds:CanonicalizationMethod"/> - <element ref="ds:SignatureMethod"/> - <element ref="ds:Reference" maxOccurs="unbounded"/> - </sequence> - <attribute name="Id" type="ID" use="optional"/> -</complexType> - - <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> - <complexType name="CanonicalizationMethodType" mixed="true"> - <sequence> - <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/> - <!-- (0,unbounded) elements from (1,1) namespace --> - </sequence> - <attribute name="Algorithm" type="anyURI" use="required"/> - </complexType> - - <element name="SignatureMethod" type="ds:SignatureMethodType"/> - <complexType name="SignatureMethodType" mixed="true"> - <sequence> - <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/> - <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> - <!-- (0,unbounded) elements from (1,1) external namespace --> - </sequence> - <attribute name="Algorithm" type="anyURI" use="required"/> - </complexType> - -<!-- Start Reference --> - -<element name="Reference" type="ds:ReferenceType"/> -<complexType name="ReferenceType"> - <sequence> - <element ref="ds:Transforms" minOccurs="0"/> - <element ref="ds:DigestMethod"/> - <element ref="ds:DigestValue"/> - </sequence> - <attribute name="Id" type="ID" use="optional"/> - <attribute name="URI" type="anyURI" use="optional"/> - <attribute name="Type" type="anyURI" use="optional"/> -</complexType> - - <element name="Transforms" type="ds:TransformsType"/> - <complexType name="TransformsType"> - <sequence> - <element ref="ds:Transform" maxOccurs="unbounded"/> - </sequence> - </complexType> - - <element name="Transform" type="ds:TransformType"/> - <complexType name="TransformType" mixed="true"> - <choice minOccurs="0" maxOccurs="unbounded"> - <any namespace="##other" processContents="lax"/> - <!-- (1,1) elements from (0,unbounded) namespaces --> - <element name="XPath" type="string"/> - </choice> - <attribute name="Algorithm" type="anyURI" use="required"/> - </complexType> - -<!-- End Reference --> - -<element name="DigestMethod" type="ds:DigestMethodType"/> -<complexType name="DigestMethodType" mixed="true"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - <attribute name="Algorithm" type="anyURI" use="required"/> -</complexType> - -<element name="DigestValue" type="ds:DigestValueType"/> -<simpleType name="DigestValueType"> - <restriction base="base64Binary"/> -</simpleType> - -<!-- End SignedInfo --> - -<!-- Start KeyInfo --> - -<element name="KeyInfo" type="ds:KeyInfoType"/> -<complexType name="KeyInfoType" mixed="true"> - <choice maxOccurs="unbounded"> - <element ref="ds:KeyName"/> - <element ref="ds:KeyValue"/> - <element ref="ds:RetrievalMethod"/> - <element ref="ds:X509Data"/> - <element ref="ds:PGPData"/> - <element ref="ds:SPKIData"/> - <element ref="ds:MgmtData"/> - <any processContents="lax" namespace="##other"/> - <!-- (1,1) elements from (0,unbounded) namespaces --> - </choice> - <attribute name="Id" type="ID" use="optional"/> -</complexType> - - <element name="KeyName" type="string"/> - <element name="MgmtData" type="string"/> - - <element name="KeyValue" type="ds:KeyValueType"/> - <complexType name="KeyValueType" mixed="true"> - <choice> - <element ref="ds:DSAKeyValue"/> - <element ref="ds:RSAKeyValue"/> - <any namespace="##other" processContents="lax"/> - </choice> - </complexType> - - <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> - <complexType name="RetrievalMethodType"> - <sequence> - <element ref="ds:Transforms" minOccurs="0"/> - </sequence> - <attribute name="URI" type="anyURI"/> - <attribute name="Type" type="anyURI" use="optional"/> - </complexType> - -<!-- Start X509Data --> - -<element name="X509Data" type="ds:X509DataType"/> -<complexType name="X509DataType"> - <sequence maxOccurs="unbounded"> - <choice> - <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/> - <element name="X509SKI" type="base64Binary"/> - <element name="X509SubjectName" type="string"/> - <element name="X509Certificate" type="base64Binary"/> - <element name="X509CRL" type="base64Binary"/> - <any namespace="##other" processContents="lax"/> - </choice> - </sequence> -</complexType> - -<complexType name="X509IssuerSerialType"> - <sequence> - <element name="X509IssuerName" type="string"/> - <element name="X509SerialNumber" type="integer"/> - </sequence> -</complexType> - -<!-- End X509Data --> - -<!-- Begin PGPData --> - -<element name="PGPData" type="ds:PGPDataType"/> -<complexType name="PGPDataType"> - <choice> - <sequence> - <element name="PGPKeyID" type="base64Binary"/> - <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> - <any namespace="##other" processContents="lax" minOccurs="0" - maxOccurs="unbounded"/> - </sequence> - <sequence> - <element name="PGPKeyPacket" type="base64Binary"/> - <any namespace="##other" processContents="lax" minOccurs="0" - maxOccurs="unbounded"/> - </sequence> - </choice> -</complexType> - -<!-- End PGPData --> - -<!-- Begin SPKIData --> - -<element name="SPKIData" type="ds:SPKIDataType"/> -<complexType name="SPKIDataType"> - <sequence maxOccurs="unbounded"> - <element name="SPKISexp" type="base64Binary"/> - <any namespace="##other" processContents="lax" minOccurs="0"/> - </sequence> -</complexType> - -<!-- End SPKIData --> - -<!-- End KeyInfo --> - -<!-- Start Object (Manifest, SignatureProperty) --> - -<element name="Object" type="ds:ObjectType"/> -<complexType name="ObjectType" mixed="true"> - <sequence minOccurs="0" maxOccurs="unbounded"> - <any namespace="##any" processContents="lax"/> - </sequence> - <attribute name="Id" type="ID" use="optional"/> - <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet --> - <attribute name="Encoding" type="anyURI" use="optional"/> -</complexType> - -<element name="Manifest" type="ds:ManifestType"/> -<complexType name="ManifestType"> - <sequence> - <element ref="ds:Reference" maxOccurs="unbounded"/> - </sequence> - <attribute name="Id" type="ID" use="optional"/> -</complexType> - -<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> -<complexType name="SignaturePropertiesType"> - <sequence> - <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> - </sequence> - <attribute name="Id" type="ID" use="optional"/> -</complexType> - - <element name="SignatureProperty" type="ds:SignaturePropertyType"/> - <complexType name="SignaturePropertyType" mixed="true"> - <choice maxOccurs="unbounded"> - <any namespace="##other" processContents="lax"/> - <!-- (1,1) elements from (1,unbounded) namespaces --> - </choice> - <attribute name="Target" type="anyURI" use="required"/> - <attribute name="Id" type="ID" use="optional"/> - </complexType> - -<!-- End Object (Manifest, SignatureProperty) --> - -<!-- Start Algorithm Parameters --> - -<simpleType name="HMACOutputLengthType"> - <restriction base="integer"/> -</simpleType> - -<!-- Start KeyValue Element-types --> - -<element name="DSAKeyValue" type="ds:DSAKeyValueType"/> -<complexType name="DSAKeyValueType"> - <sequence> - <sequence minOccurs="0"> - <element name="P" type="ds:CryptoBinary"/> - <element name="Q" type="ds:CryptoBinary"/> - </sequence> - <element name="G" type="ds:CryptoBinary" minOccurs="0"/> - <element name="Y" type="ds:CryptoBinary"/> - <element name="J" type="ds:CryptoBinary" minOccurs="0"/> - <sequence minOccurs="0"> - <element name="Seed" type="ds:CryptoBinary"/> - <element name="PgenCounter" type="ds:CryptoBinary"/> - </sequence> - </sequence> -</complexType> - -<element name="RSAKeyValue" type="ds:RSAKeyValueType"/> -<complexType name="RSAKeyValueType"> - <sequence> - <element name="Modulus" type="ds:CryptoBinary"/> - <element name="Exponent" type="ds:CryptoBinary"/> - </sequence> -</complexType> - -<!-- End KeyValue Element-types --> - -<!-- End Signature --> - -</schema> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-usagerecord/src/test/java/TestUR.java ---------------------------------------------------------------------- diff --git a/server-usagerecord/src/test/java/TestUR.java b/server-usagerecord/src/test/java/TestUR.java deleted file mode 100644 index 42e9000..0000000 --- a/server-usagerecord/src/test/java/TestUR.java +++ /dev/null @@ -1,120 +0,0 @@ -import static java.lang.Runtime.getRuntime; - -import java.io.IOException; -import java.io.StringWriter; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.JAXBIntrospector; -import javax.xml.bind.SchemaOutputResolver; -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.transform.Result; -import javax.xml.transform.stream.StreamResult; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.ogf.usage.JobUsageRecord; -import org.ogf.usage.v1_0.Charge; -import org.ogf.usage.v1_0.CpuDuration; -import org.ogf.usage.v1_0.Disk; -import org.ogf.usage.v1_0.EndTime; -import org.ogf.usage.v1_0.Host; -import org.ogf.usage.v1_0.JobIdentity; -import org.ogf.usage.v1_0.JobName; -import org.ogf.usage.v1_0.MachineName; -import org.ogf.usage.v1_0.Memory; -import org.ogf.usage.v1_0.Network; -import org.ogf.usage.v1_0.NodeCount; -import org.ogf.usage.v1_0.PhaseResource; -import org.ogf.usage.v1_0.Processors; -import org.ogf.usage.v1_0.ProjectName; -import org.ogf.usage.v1_0.Queue; -import org.ogf.usage.v1_0.RecordIdentity; -import org.ogf.usage.v1_0.ServiceLevel; -import org.ogf.usage.v1_0.StartTime; -import org.ogf.usage.v1_0.Status; -import org.ogf.usage.v1_0.SubmitHost; -import org.ogf.usage.v1_0.Swap; -import org.ogf.usage.v1_0.TimeDuration; -import org.ogf.usage.v1_0.TimeInstant; -import org.ogf.usage.v1_0.UserIdentity; -import org.ogf.usage.v1_0.VolumeResource; -import org.ogf.usage.v1_0.WallDuration; - -public class TestUR { - SchemaOutputResolver sink; - StringWriter writer; - - String result() { - return writer.toString(); - } - - @Before - public void setUp() throws Exception { - writer = new StringWriter(); - sink = new SchemaOutputResolver() { - @Override - public Result createOutput(String namespaceUri, - String suggestedFileName) throws IOException { - StreamResult sr = new StreamResult(writer); - sr.setSystemId("/dev/null"); - return sr; - } - }; - Assert.assertNull(null);// Shut up, Eclipse! - Assert.assertEquals("", result()); - } - - @Test - public void testSchema() throws JAXBException, IOException { - JAXBContext.newInstance(JobUsageRecord.class).generateSchema(sink); - Assert.assertNotSame("", result()); - } - - @Test - public void testSchemaCompleteness() throws JAXBException, DatatypeConfigurationException { - JAXBIntrospector info = JAXBContext.newInstance(JobUsageRecord.class).createJAXBIntrospector(); - Assert.assertTrue(info.isElement(new Charge())); - Assert.assertTrue(info.isElement(new CpuDuration())); - Assert.assertTrue(info.isElement(new Disk())); - Assert.assertTrue(info.isElement(new EndTime())); - Assert.assertTrue(info.isElement(new Host())); - Assert.assertTrue(info.isElement(new JobIdentity())); - Assert.assertTrue(info.isElement(new JobName())); - Assert.assertTrue(info.isElement(new JobUsageRecord())); - Assert.assertTrue(info.isElement(new MachineName())); - Assert.assertTrue(info.isElement(new Memory())); - Assert.assertTrue(info.isElement(new Network())); - Assert.assertTrue(info.isElement(new NodeCount())); - Assert.assertTrue(info.isElement(new PhaseResource())); - Assert.assertTrue(info.isElement(new Processors())); - Assert.assertTrue(info.isElement(new ProjectName())); - Assert.assertTrue(info.isElement(new Queue())); - Assert.assertTrue(info.isElement(new RecordIdentity())); - Assert.assertTrue(info.isElement(new ServiceLevel())); - Assert.assertTrue(info.isElement(new StartTime())); - Assert.assertTrue(info.isElement(new Status())); - Assert.assertTrue(info.isElement(new SubmitHost())); - Assert.assertTrue(info.isElement(new Swap())); - Assert.assertTrue(info.isElement(new TimeDuration())); - Assert.assertTrue(info.isElement(new TimeInstant())); - Assert.assertTrue(info.isElement(new UserIdentity())); - Assert.assertTrue(info.isElement(new VolumeResource())); - Assert.assertTrue(info.isElement(new WallDuration())); - } - - @Test - public void testGenerate() throws DatatypeConfigurationException, - JAXBException { - JobUsageRecord ur = new JobUsageRecord(); - ur.setStatus("Completed"); - ur.addWallDuration(1000 * 65); - ur.addHost("localhost"); - ur.addMemory(getRuntime().totalMemory() - getRuntime().freeMemory()).setType("vm"); - - String record = ur.marshal(); - Assert.assertNotSame("", record); - //System.out.println(record); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/.gitignore ---------------------------------------------------------------------- diff --git a/server-webapp/.gitignore b/server-webapp/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/server-webapp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/.springBeans ---------------------------------------------------------------------- diff --git a/server-webapp/.springBeans b/server-webapp/.springBeans deleted file mode 100644 index 0b2cbbc..0000000 --- a/server-webapp/.springBeans +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beansProjectDescription> - <version>1</version> - <pluginVersion><![CDATA[3.3.0.201307091516-RELEASE]]></pluginVersion> - <configSuffixes> - <configSuffix><![CDATA[xml]]></configSuffix> - </configSuffixes> - <enableImports><![CDATA[true]]></enableImports> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/test/resources/example.xml</config> - <config>src/main/webapp/WEB-INF/insecure.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/secure.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - <config>src/main/webapp/WEB-INF/partsecure.xml</config> - </configs> - <configSets> - <configSet> - <name><![CDATA[Secure Configuration]]></name> - <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding> - <incomplete>false</incomplete> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/secure.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - </configs> - <profiles> - </profiles> - </configSet> - <configSet> - <name><![CDATA[Insecure Configuration]]></name> - <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding> - <incomplete>false</incomplete> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/insecure.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - </configs> - <profiles> - </profiles> - </configSet> - <configSet> - <name><![CDATA[Semi-Secure Configuration]]></name> - <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding> - <incomplete>false</incomplete> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - <config>src/main/webapp/WEB-INF/partsecure.xml</config> - </configs> - <profiles> - </profiles> - </configSet> - </configSets> -</beansProjectDescription> http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/pom.xml ---------------------------------------------------------------------- diff --git a/server-webapp/pom.xml b/server-webapp/pom.xml deleted file mode 100644 index f4cf0ef..0000000 --- a/server-webapp/pom.xml +++ /dev/null @@ -1,889 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.taverna.server</groupId> - <artifactId>taverna-server</artifactId> - <version>3.1.0-incubating-SNAPSHOT</version> - </parent> - <artifactId>taverna-server-webapp</artifactId> - <packaging>war</packaging> - <name>Apache Taverna Server Web Application Core</name> - <description>This is the implementation of the web-app that provides the Taverna Server with its SOAP and REST faces. It relies on the worker process to handle the actual launching of workflow runs.</description> - - <properties> - <version.cxf>2.7.7</version.cxf> - <version.spring>3.2.5.RELEASE</version.spring> - <version.spring-security>3.1.4.RELEASE</version.spring-security> - <version.asm>3.3.1</version.asm> - <version.smack>3.2.1</version.smack> - <version.jdoapi>3.0.1</version.jdoapi> - <forker.module>taverna-server-unix-forker</forker.module> - <util.dir>${project.build.directory}/${project.build.finalName}/WEB-INF/classes/util</util.dir> - <cmdline.dir>${util.dir}/taverna-commandline-${edition.commandline}-${version.commandline}</cmdline.dir> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-frontend-jaxws</artifactId> - <version>${version.cxf}</version> - <exclusions> - <exclusion> - <artifactId>jaxb-impl</artifactId> - <groupId>com.sun.xml.bind</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-frontend-jaxrs</artifactId> - <version>${version.cxf}</version> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-transports-http</artifactId> - <version>${version.cxf}</version> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </dependency> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-core</artifactId> - <version>${version.spring-security}</version> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-web</artifactId> - <version>${version.spring-security}</version> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-config</artifactId> - <version>${version.spring-security}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <version>${version.spring}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId><!--$NO-MVN-MAN-VER$--> - <scope>test</scope> - </dependency> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-port-description</artifactId> - <version>${project.parent.version}</version> - </dependency> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-runinterface</artifactId> - <version>${project.parent.version}</version> - </dependency> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-usagerecord</artifactId> - <version>${project.parent.version}</version> - </dependency> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-worker</artifactId> - <version>${project.parent.version}</version> - <classifier>jar-with-dependencies</classifier> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>${forker.module}</artifactId> - <version>${project.parent.version}</version> - <classifier>jar-with-dependencies</classifier> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-rmidaemon</artifactId> - <version>${project.parent.version}</version> - <classifier>jar-with-dependencies</classifier> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>2.5</version> - <scope>provided</scope> - </dependency> - <!-- - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> - <version>3.4.0.GA</version> - <scope>compile</scope> - </dependency> - --> - <!-- - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <version>4.0.2.GA</version> - <scope>compile</scope> - </dependency> - --> - <dependency> - <groupId>org.apache.derby</groupId> - <artifactId>derby</artifactId> - <version>10.10.1.1</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> - </dependency> - <dependency> - <groupId>javax.jdo</groupId> - <artifactId>jdo-api</artifactId> - <version>3.0.1</version> - </dependency> - <dependency> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-api-jdo</artifactId> - <version>[3.2.0, 3.2.99)</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-core</artifactId> - <version>3.2.10</version> - </dependency> - <dependency> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-rdbms</artifactId> - <version>[3.2.0, 3.2.99)</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>org.apache.jdo</groupId> - <artifactId>jdo2-core</artifactId> - <version>2.0</version> - </dependency> - <dependency> - <groupId>joda-time</groupId> - <artifactId>joda-time</artifactId> - </dependency> - <dependency> - <groupId>net.sf.mime-util</groupId> - <artifactId>mime-util</artifactId> - </dependency> - <dependency> - <groupId>org.twitter4j</groupId> - <artifactId>twitter4j-core</artifactId> - <version>[3.0,)</version> - </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - <version>3.0</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjrt</artifactId> - <version>1.7.4</version> - </dependency> - <dependency> - <groupId>org.igniterealtime.smack</groupId> - <artifactId>smack</artifactId> - <version>${version.smack}</version> - </dependency> - <dependency> - <groupId>org.igniterealtime.smack</groupId> - <artifactId>smackx</artifactId> - <version>${version.smack}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - </dependency> - <dependency> - <groupId>javax.annotation</groupId> - <artifactId>jsr250-api</artifactId> - <version>1.0</version> - </dependency> - <dependency> - <groupId>org.apache.abdera</groupId> - <artifactId>abdera-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.abdera</groupId> - <artifactId>abdera-parser</artifactId> - <version>1.1.3</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <artifactId>xercesImpl</artifactId> - <groupId>xerces</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.bouncycastle</groupId> - <artifactId>bcprov-jdk15on</artifactId> - <version>1.49</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context-support</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - <version>1.7.4</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - <version>1.4.4</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.velocity</groupId> - <artifactId>velocity</artifactId> - <version>1.7</version> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-rs-extension-providers</artifactId> - <version>${version.cxf}</version> - </dependency> - <dependency> - <groupId>org.codehaus.jettison</groupId> - <artifactId>jettison</artifactId> - <version>1.3.4</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.apache.taverna.language</groupId> - <artifactId>taverna-scufl2-api</artifactId> - <version>${taverna.language.version}</version> - </dependency> - <dependency> - <groupId>org.apache.taverna.language</groupId> - <artifactId>taverna-scufl2-t2flow</artifactId> - <version>${taverna.language.version}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.apache.taverna.language</groupId> - <artifactId>taverna-scufl2-wfbundle</artifactId> - <version>${taverna.language.version}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-compress</artifactId> - <version>1.4.1</version> - </dependency> - </dependencies> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-runinterface</artifactId> - <version>${project.parent.version}</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>${version.asm}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>com.sun.xml.bind</groupId> - <artifactId>jaxb-impl</artifactId> - <version>2.2.7</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-jdbc</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-tx</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-expression</artifactId> - <version>${version.spring}</version> - </dependency> - <dependency> - <groupId>org.apache.abdera</groupId> - <artifactId>abdera-core</artifactId> - <version>1.1.3</version> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>wstx-asl</artifactId> - <version>4.0.6</version> - </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-javamail_1.4_spec</artifactId> - <version>1.7.1</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>woodstox-core-asl</artifactId> - <version>4.2.0</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>jaxen</groupId> - <artifactId>jaxen</artifactId> - <version>1.1.4</version> - </dependency> - </dependencies> - </dependencyManagement> - - <build> - <finalName>TavernaServer.${project.parent.version}</finalName> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>tomcat-maven-plugin</artifactId> - <version>1.1</version> - <configuration> - <server>deployhost</server> - <path>/taverna-server</path> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <encoding>US-ASCII</encoding> - <source>1.7</source> - <target>1.7</target> - </configuration> - </plugin> - <plugin> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-maven-plugin</artifactId> - <version>3.3.0-release</version> - <configuration> - <jdkLogConfiguration>${project.basedir}/src/build/resources/datanucleus-log.properties</jdkLogConfiguration> - <log4jConfiguration>${project.basedir}/src/build/resources/datanucleus_log4j.properties</log4jConfiguration> - <verbose>true</verbose> - </configuration> - <dependencies> - <!-- Sucks that I have to say these explicitly --> - <dependency> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-core</artifactId> - <version>3.2.10</version> - </dependency> - <dependency> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-enhancer</artifactId> - <version>3.1.1</version> - </dependency> - <dependency> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-api-jdo</artifactId> - <version>3.2.5</version> - </dependency> - <dependency> - <groupId>javax.jdo</groupId> - <artifactId>jdo-api</artifactId> - <version>${version.jdoapi}</version> - </dependency> - </dependencies> - </plugin> - <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <versionRange>[2.0,)</versionRange> - <goals> - <goal>copy-dependencies</goal> - <goal>unpack</goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore /> - </action> - </pluginExecution> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-maven-plugin</artifactId> - <versionRange>3.3.0-release</versionRange> - <goals> - <goal>enhance</goal> - </goals> - </pluginExecutionFilter> - <action> - <execute /> - </action> - </pluginExecution> - <pluginExecution> - <pluginExecutionFilter> - <groupId>pl.project13.maven</groupId> - <artifactId>git-commit-id-plugin</artifactId> - <versionRange>[2.1.4,)</versionRange> - <goals> - <goal>revision</goal> - </goals> - </pluginExecutionFilter> - <action> - <execute /> - </action> - </pluginExecution> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-maven-plugin</artifactId> - <versionRange>3.3.0-release</versionRange> - <goals> - <goal>schema-create</goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore /> - </action> - </pluginExecution> - <pluginExecution> - <pluginExecutionFilter> - <groupId>net.alchim31.maven</groupId> - <artifactId>yuicompressor-maven-plugin</artifactId> - <versionRange>[1.0.0,)</versionRange> - <goals> - <goal>compress</goal> - </goals> - </pluginExecutionFilter> - <action> - <execute/> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - </plugins> - </pluginManagement> - - <defaultGoal>package</defaultGoal> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>copy-executable-library-jars</id> - <phase>prepare-package</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-worker</artifactId> - <version>${project.parent.version}</version> - <classifier>jar-with-dependencies</classifier> - <overWrite>false</overWrite> - <destFileName>server.worker.jar</destFileName> - </artifactItem> - <artifactItem> - <groupId>${project.parent.groupId}</groupId> - <artifactId>${forker.module}</artifactId> - <version>${project.parent.version}</version> - <classifier>jar-with-dependencies</classifier> - <overWrite>false</overWrite> - <destFileName>secure.fork.jar</destFileName> - </artifactItem> - <artifactItem> - <groupId>${project.parent.groupId}</groupId> - <artifactId>taverna-server-rmidaemon</artifactId> - <version>${project.parent.version}</version> - <classifier>jar-with-dependencies</classifier> - <overWrite>false</overWrite> - <destFileName>rmi.daemon.jar</destFileName> - </artifactItem> - </artifactItems> - <outputDirectory>${util.dir}</outputDirectory> - <overWriteReleases>false</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - <excludeTransitive>true</excludeTransitive> - </configuration> - </execution> - <execution> - <id>unpack-taverna-commandline</id> - <phase>prepare-package</phase> - <goals> - <goal>unpack</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>org.apache.taverna.commandline</groupId> - <artifactId>taverna-commandline</artifactId> - <version>${taverna.commandline.version}</version> - <classifier>bin</classifier> - <type>zip</type> - <classifier>bin</classifier> - <outputDirectory>${util.dir}</outputDirectory> - </artifactItem> - </artifactItems> - <overWriteReleases>false</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - <excludeTransitive>true</excludeTransitive> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.datanucleus</groupId> - <artifactId>datanucleus-maven-plugin</artifactId> - <configuration> - <fork>false</fork> - <metadataIncludes> - org/taverna/server/master/*.class, - org/taverna/server/master/identity/*.class, - org/taverna/server/master/localworker/*.class, - org/taverna/server/master/notification/atom/*.class, - org/taverna/server/master/usage/*.class, - org/taverna/server/master/worker/*.class - </metadataIncludes> - </configuration> - <executions> - <execution> - <id>enhance</id> - <phase>process-classes</phase> - <goals> - <goal>enhance</goal> - </goals> - </execution> - <!-- - <execution> - <id>gen-db-schema</id> - <phase>process-classes</phase> - <goals> - <goal>schema-create</goal> - </goals> - <configuration> - <completeDdl>true</completeDdl> - <ddlFile>${util.dir}/schema.sql</ddlFile> - </configuration> - </execution> - --> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <encoding>US-ASCII</encoding> - <source>1.7</source> - <target>1.7</target> - </configuration> - </plugin> - <plugin> - <groupId>pl.project13.maven</groupId> - <artifactId>git-commit-id-plugin</artifactId> - <version>2.1.4</version> - <executions> - <execution> - <id>buildinfo</id> - <phase>generate-resources</phase> - <goals> - <goal>revision</goal> - </goals> - </execution> - </executions> - <configuration> - <dotGitDirectory>${project.basedir}/../.git</dotGitDirectory> - <prefix>git</prefix> - <verbose>true</verbose> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <version>2.4</version> - <configuration> - <webXml>src/main/webapp/WEB-INF/web-sec.xml</webXml> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-eclipse-plugin</artifactId> - <configuration> - <additionalProjectnatures> - <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> - </additionalProjectnatures> - <additionalConfig> - <file> - <name>.springBeans</name> - <content><![CDATA[<?xml version="1.0" encoding="UTF-8"?> -<beansProjectDescription> - <version>1</version> - <pluginVersion>3.3.0.201307091516-RELEASE</pluginVersion> - <configSuffixes> - <configSuffix>xml</configSuffix> - </configSuffixes> - <enableImports>true</enableImports> - <configs> - <config>src/main/webapp/WEB-INF/partsecure.xml</config> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/insecure.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/secure.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - </configs> - <configSets> - <configSet> - <name>Secure Configuration</name> - <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding> - <incomplete>false</incomplete> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/secure.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - </configs> - <profiles> - </profiles> - </configSet> - <configSet> - <name>Insecure Configuration</name> - <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding> - <incomplete>false</incomplete> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/insecure.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - </configs> - <profiles> - </profiles> - </configSet> - <configSet> - <name>Semi-Secure Configuration</name> - <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding> - <incomplete>false</incomplete> - <configs> - <config>src/main/webapp/WEB-INF/beans.xml</config> - <config>src/main/webapp/WEB-INF/providers.xml</config> - <config>src/main/webapp/WEB-INF/webappBeans.xml</config> - <config>src/main/webapp/WEB-INF/partsecure.xml</config> - </configs> - <profiles> - </profiles> - </configSet> - </configSets> -</beansProjectDescription>]]></content> - </file> - </additionalConfig> - </configuration> - </plugin> - <plugin> - <groupId>net.alchim31.maven</groupId> - <artifactId>yuicompressor-maven-plugin</artifactId> - <version>1.4.0</version> - <executions> - <execution> - <goals> - <goal>compress</goal> - </goals> - </execution> - </executions> - <configuration> - <excludes> - <exclude>**/*.min.js</exclude> - </excludes> - <nosuffix>true</nosuffix> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <executions> - <execution> - <id>override-executeworkflow-scripts</id> - <phase>prepare-package</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>${cmdline.dir}</outputDirectory> - <resources> - <resource> - <directory>src/main/replacementscripts</directory> - <filtering>false</filtering> - </resource> - </resources> - <overwrite>true</overwrite> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>1.2.1</version> - <executions> - <execution> - <id>improve-registry-coverage</id> - <phase>prepare-package</phase> - <goals> - <goal>exec</goal> - </goals> - <configuration> - <executable>/bin/sh</executable> - <workingDirectory>${cmdline.dir}</workingDirectory> - <environmentVariables> - <RAVEN_APPHOME>${cmdline.dir}</RAVEN_APPHOME> - </environmentVariables> - <arguments> - <argument>./executeworkflow.sh</argument> - <argument>-help</argument> - </arguments> - <outputFile>/dev/null</outputFile> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/webapp</directory> - <filtering>false</filtering> - </resource> - </resources> - </build> - - <profiles> - <profile> - <id>unix</id> - <properties> - <forker.module>taverna-server-unix-forker</forker.module> - </properties> - </profile> - <profile> - <id>win</id> - <properties> - <!-- This doesn't exist yet. --> - <forker.module>taverna-server-win-forker</forker.module> - </properties> - </profile> - <profile> - <id>nosec</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <configuration> - <webXml>src/main/webapp/WEB-INF/web-nosec.xml</webXml> - </configuration> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>partsec</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <configuration> - <webXml>src/main/webapp/WEB-INF/web-partsec.xml</webXml> - </configuration> - </plugin> - </plugins> - </build> - </profile> - </profiles> -</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/build/resources/datanucleus_log4j.properties ---------------------------------------------------------------------- diff --git a/server-webapp/src/build/resources/datanucleus_log4j.properties b/server-webapp/src/build/resources/datanucleus_log4j.properties deleted file mode 100644 index 6707f55..0000000 --- a/server-webapp/src/build/resources/datanucleus_log4j.properties +++ /dev/null @@ -1,4 +0,0 @@ -log4j.rootLogger=info, R -log4j.appender.R=org.apache.log4j.ConsoleAppender -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern=%d{yyyyMMdd'T'HHmmss.SSS} %-5p %c{1} %C{1} - %m%n \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/ContentsDescriptorBuilder.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/ContentsDescriptorBuilder.java b/server-webapp/src/main/java/org/taverna/server/master/ContentsDescriptorBuilder.java deleted file mode 100644 index f5259bd..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/ContentsDescriptorBuilder.java +++ /dev/null @@ -1,292 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master; - -import static eu.medsea.util.MimeUtil.getMimeType; -import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM_TYPE; -import static javax.ws.rs.core.UriBuilder.fromUri; -import static org.apache.commons.logging.LogFactory.getLog; -import static org.taverna.server.master.common.Uri.secure; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; - -import org.apache.commons.logging.Log; -import org.springframework.beans.factory.annotation.Required; -import org.taverna.server.master.exceptions.FilesystemAccessException; -import org.taverna.server.master.exceptions.NoDirectoryEntryException; -import org.taverna.server.master.interfaces.Directory; -import org.taverna.server.master.interfaces.DirectoryEntry; -import org.taverna.server.master.interfaces.File; -import org.taverna.server.master.interfaces.TavernaRun; -import org.taverna.server.master.interfaces.UriBuilderFactory; -import org.taverna.server.master.utils.FilenameUtils; -import org.taverna.server.port_description.AbsentValue; -import org.taverna.server.port_description.AbstractPortDescription; -import org.taverna.server.port_description.AbstractValue; -import org.taverna.server.port_description.ErrorValue; -import org.taverna.server.port_description.InputDescription; -import org.taverna.server.port_description.InputDescription.InputPort; -import org.taverna.server.port_description.LeafValue; -import org.taverna.server.port_description.ListValue; -import org.taverna.server.port_description.OutputDescription; -import org.taverna.server.port_description.OutputDescription.OutputPort; - -import uk.org.taverna.scufl2.api.container.WorkflowBundle; -import uk.org.taverna.scufl2.api.core.Workflow; -import uk.org.taverna.scufl2.api.port.InputWorkflowPort; -import uk.org.taverna.scufl2.api.port.OutputWorkflowPort; - -/** - * A class that is used to build descriptions of the contents of a workflow - * run's filesystem. - * - * @author Donal Fellows - */ -public class ContentsDescriptorBuilder { - private Log log = getLog("Taverna.Server.Webapp"); - private FilenameUtils fileUtils; - private UriBuilderFactory uriBuilderFactory; - - @Required - public void setUriBuilderFactory(UriBuilderFactory uriBuilderFactory) { - this.uriBuilderFactory = uriBuilderFactory; - } - - @Required - public void setFileUtils(FilenameUtils fileUtils) { - this.fileUtils = fileUtils; - } - - // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - private Workflow fillInFromWorkflow(TavernaRun run, UriBuilder ub, - AbstractPortDescription portDesc) throws IOException { - WorkflowBundle bundle = run.getWorkflow().getScufl2Workflow(); - bundle.getMainWorkflow().getInputPorts(); - portDesc.fillInBaseData(bundle.getMainWorkflow() - .getWorkflowIdentifier().toString(), run.getId(), ub.build()); - return bundle.getMainWorkflow(); - } - - /** - * Computes the depth of value in a descriptor. - * - * @param value - * The value description to characterise. - * @return Its depth (i.e., the depth of the port outputting the value) or - * <tt>null</tt> if that is impossible to determine. - */ - private Integer computeDepth(AbstractValue value) { - if (value instanceof ListValue) { - int mv = 1; - for (AbstractValue v : ((ListValue) value).contents) { - Integer d = computeDepth(v); - if (d != null && mv <= d) - mv = d + 1; - } - return mv; - } else if (value instanceof LeafValue || value instanceof ErrorValue) - return 0; - else - return null; - } - - /** - * Build a description of a leaf value. - * - * @param file - * The file representing the value. - * @return A value descriptor. - * @throws FilesystemAccessException - * If anything goes wrong. - */ - private LeafValue constructLeafValue(File file) - throws FilesystemAccessException { - LeafValue v = new LeafValue(); - v.fileName = file.getFullName(); - v.byteLength = file.getSize(); - try { - byte[] head = file.getContents(0, 1024); - v.contentType = getMimeType(new ByteArrayInputStream(head)); - } catch (Exception e) { - v.contentType = APPLICATION_OCTET_STREAM_TYPE.toString(); - } - return v; - } - - /** - * Build a description of an error value. - * - * @param file - * The file representing the error. - * @return A value descriptor. - * @throws FilesystemAccessException - * If anything goes wrong. - */ - private ErrorValue constructErrorValue(File file) - throws FilesystemAccessException { - ErrorValue v = new ErrorValue(); - v.fileName = file.getFullName(); - v.byteLength = file.getSize(); - return v; - } - - /** - * Build a description of a list value. - * - * @param dir - * The directory representing the list. - * @param ub - * The factory for URIs. - * @return A value descriptor. - * @throws FilesystemAccessException - * If anything goes wrong. - */ - private ListValue constructListValue(Directory dir, UriBuilder ub) - throws FilesystemAccessException { - ListValue v = new ListValue(); - v.length = 0; - Set<DirectoryEntry> contents = new HashSet<>(dir.getContents()); - Iterator<DirectoryEntry> it = contents.iterator(); - while (it.hasNext()) - if (!it.next().getName().matches("^[0-9]+([.].*)?$")) - it.remove(); - for (int i = 1; !contents.isEmpty(); i++) { - String exact = Integer.toString(i); - AbstractValue subval = constructValue(contents, ub, exact); - v.contents.add(subval); - if (!(subval instanceof AbsentValue)) { - v.length = i; - String pfx = i + "."; - for (DirectoryEntry de : contents) - if (de.getName().equals(exact) - || de.getName().startsWith(pfx)) { - contents.remove(de); - break; - } - } - } - return v; - } - - /** - * Build a value description. - * - * @param parentContents - * The contents of the parent directory. - * @param ub - * The factory for URIs. - * @param name - * The name of the value's file/directory representative. - * @return A value descriptor. - * @throws FilesystemAccessException - * If anything goes wrong. - */ - private AbstractValue constructValue( - Collection<DirectoryEntry> parentContents, UriBuilder ub, - String name) throws FilesystemAccessException { - String error = name + ".error"; - String prefix = name + "."; - for (DirectoryEntry entry : parentContents) { - AbstractValue av; - if (entry.getName().equals(error) && entry instanceof File) { - av = constructErrorValue((File) entry); - } else if (!entry.getName().equals(name) - && !entry.getName().startsWith(prefix)) - continue; - else if (entry instanceof File) - av = constructLeafValue((File) entry); - else - av = constructListValue((Directory) entry, ub); - String fullPath = entry.getFullName().replaceFirst("^/", ""); - av.href = ub.clone().path(fullPath).build(); - return av; - } - return new AbsentValue(); - } - - /** - * Construct a description of the outputs of a workflow run. - * - * @param run - * The workflow run whose outputs are to be described. - * @param ui - * The origin for URIs. - * @return The description, which can be serialized to XML. - * @throws FilesystemAccessException - * If something goes wrong reading the directories. - * @throws NoDirectoryEntryException - * If something goes wrong reading the directories. - */ - public OutputDescription makeOutputDescriptor(TavernaRun run, UriInfo ui) - throws FilesystemAccessException, NoDirectoryEntryException { - OutputDescription descriptor = new OutputDescription(); - try { - UriBuilder ub = getRunUriBuilder(run, ui); - Workflow dataflow = fillInFromWorkflow(run, ub, descriptor); - Collection<DirectoryEntry> outs = null; - ub = ub.path("wd/{path}"); - for (OutputWorkflowPort output : dataflow.getOutputPorts()) { - OutputPort p = descriptor.addPort(output.getName()); - if (run.getOutputBaclavaFile() == null) { - if (outs == null) - outs = fileUtils.getDirectory(run, "out").getContents(); - p.output = constructValue(outs, ub, p.name); - p.depth = computeDepth(p.output); - } - } - } catch (IOException e) { - log.info("failure in conversion to .scufl2", e); - } - return descriptor; - } - - private UriBuilder getRunUriBuilder(TavernaRun run, UriInfo ui) { - if (ui == null) - return secure(uriBuilderFactory.getRunUriBuilder(run)); - else - return secure(fromUri(ui.getAbsolutePath().toString() - .replaceAll("/(out|in)put/?$", ""))); - } - - /** - * Constructs input descriptions. - * - * @param run - * The run to build for. - * @param ui - * The mechanism for building URIs. - * @return The description of the <i>expected</i> inputs of the run. - */ - public InputDescription makeInputDescriptor(TavernaRun run, UriInfo ui) { - InputDescription desc = new InputDescription(); - try { - UriBuilder ub = getRunUriBuilder(run, ui); - Workflow workflow = fillInFromWorkflow(run, ub, desc); - ub = ub.path("input/{name}"); - for (InputWorkflowPort port : workflow.getInputPorts()) { - InputPort in = desc.addPort(port.getName()); - in.href = ub.build(in.name); - try { - in.depth = port.getDepth(); - } catch (NumberFormatException ex) { - in.depth = null; - } - } - } catch (IOException e) { - log.info("failure in conversion to .scufl2", e); - } - return desc; - } -}
