+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>javaee-addressbook-client</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Thu Feb 26 16:32:51 PST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.source=1.5
+++ /dev/null
-#Thu Feb 26 16:30:28 PST 2009
-activeProfiles=
-eclipse.preferences.version=1
-fullBuildGoals=process-test-resources
-includeModules=false
-resolveWorkspaceProjects=true
-resourceFilterGoals=process-resources resources\:testResources
-version=1
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<actions>
- <action>
- <actionName>rebuild</actionName>
- <packagings>
- <packaging>*</packaging>
- </packagings>
- <goals>
- <goal>clean</goal>
- <goal>install</goal>
- </goals>
- <properties>
- <maven.test.skip>true</maven.test.skip>
- </properties>
- </action>
- </actions>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project>
- <parent>
- <artifactId>helloworld</artifactId>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>helloworld-client</artifactId>
- <packaging>jar</packaging>
- <version>0.1</version>
- <name>Helloworld Client</name>
- <dependencies>
- <dependency>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>helloworld-jaxb</artifactId>
- <version>0.1</version>
- </dependency>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>5.6</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.0.2.GA</version>
- <!-- filter out unwanted jars -->
- <exclusions>
- <exclusion>
- <groupId>tjws</groupId>
- <artifactId>webserver</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxb-provider</artifactId>
- <version>1.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A CollectionObjectClient.
-
- * @version $Revision:$
- */
-public class CollectionObjectClient {
-
- /**
- *
- */
- private static final CollectionObjectClient instance = new CollectionObjectClient();
- /**
- *
- */
- private CollectionObjectProxy CollectionObjectProxy;
-
- /**
- *
- * Create a new CollectionObjectClient.
- *
- */
- private CollectionObjectClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- CollectionObjectProxy =
- ProxyFactory.create(CollectionObjectProxy.class, "http://localhost:8080/helloworld/cspace");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static CollectionObjectClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#getCollectionObject()
- */
- public ClientResponse<CollectionObjectList> getCollectionObjectList() {
- return CollectionObjectProxy.getCollectionObjectList();
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#getCollectionObject(java.lang.String)
- */
- public ClientResponse<CollectionObject> getCollectionObject(String id) {
- return CollectionObjectProxy.getCollectionObject(id);
- }
-
- /**
- * @param CollectionObject
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#createCollectionObject(org.collectionspace.hello.client.entity.CollectionObject)
- */
- public ClientResponse<Response> createCollectionObject(CollectionObject CollectionObject) {
- return CollectionObjectProxy.createCollectionObject(CollectionObject);
- }
-
- /**
- * @param id
- * @param CollectionObject
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#updateCollectionObject(java.lang.String, org.collectionspace.hello.client.entity.CollectionObject)
- */
- public ClientResponse<CollectionObject> updateCollectionObject(String id, CollectionObject CollectionObject) {
- return CollectionObjectProxy.updateCollectionObject(id, CollectionObject);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#deleteCollectionObject(java.lang.String)
- */
- public ClientResponse<Response> deleteCollectionObject(String id) {
- return CollectionObjectProxy.deleteCollectionObject(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/collectionobjects/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface CollectionObjectProxy {
-
- @GET
- @Path("/{id}")
- ClientResponse<CollectionObject> getCollectionObject(@PathParam("id") String id);
-
- // List
- @GET
- ClientResponse<CollectionObjectList> getCollectionObjectList();
-
- @POST
- ClientResponse<Response> createCollectionObject(CollectionObject co);
-
- @PUT
- @Path("/{id}")
- ClientResponse<CollectionObject>
- updateCollectionObject(@PathParam("id") String id, CollectionObject co);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deleteCollectionObject(@PathParam("id") String id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A IdentifierClient.
-
- * @version $Revision:$
- */
-public class IdentifierClient {
-
- /**
- *
- */
- private static final IdentifierClient instance = new IdentifierClient();
- /**
- *
- */
- private IdentifierProxy identifierProxy;
-
- /**
- *
- * Create a new IdentifierClient.
- *
- */
- private IdentifierClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- identifierProxy = ProxyFactory.create(IdentifierProxy.class, "http://localhost:8080/helloworld/cspace");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static IdentifierClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.IdentifierProxy#getIdentifier(java.lang.Long)
- */
- public ClientResponse<Identifier> getIdentifier(Long id) {
- return identifierProxy.getIdentifier(id);
- }
-
- /**
- * @param identifier
- * @return
- * @see org.collectionspace.hello.client.IdentifierProxy#createIdentifier(org.collectionspace.hello.client.entity.Identifier)
- */
- public ClientResponse<Response> createIdentifier(Identifier identifier) {
- return identifierProxy.createIdentifier(identifier);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/identifiers/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface IdentifierProxy {
-
- /**
- * @param id
- * @return
- */
- @GET
- @Path("/{id}")
- ClientResponse<Identifier> getIdentifier(@PathParam("id") Long id);
-
- @POST
- ClientResponse<Response> createIdentifier(Identifier so);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonClient.
-
- * @version $Revision:$
- */
-public class PersonClient {
-
- /**
- *
- */
- private static final PersonClient instance = new PersonClient();
- /**
- *
- */
- private PersonProxy personProxy;
-
- /**
- *
- * Create a new PersonClient.
- *
- */
- private PersonClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- personProxy = ProxyFactory.create(PersonProxy.class, "http://localhost:8080/helloworld/cspace");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static PersonClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#getPerson()
- */
- public ClientResponse<Persons> getPersons() {
- return personProxy.getPersons();
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#getPerson(java.lang.Long)
- */
- public ClientResponse<Person> getPerson(Long id) {
- return personProxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#createPerson(org.collectionspace.hello.client.entity.Person)
- */
- public ClientResponse<Response> createPerson(Person person) {
- return personProxy.createPerson(person);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#updatePerson(java.lang.Long, org.collectionspace.hello.client.entity.Person)
- */
- public ClientResponse<Person> updatePerson(Long id, Person person) {
- return personProxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(Long id) {
- return personProxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/persons/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface PersonProxy {
-
- @GET
- ClientResponse<Persons> getPersons();
-
- @GET
- @Path("/{id}")
- ClientResponse<Person> getPerson(@PathParam("id") Long id);
-
- @POST
- ClientResponse<Response> createPerson(Person so);
-
- @PUT
- @Path("/{id}")
- ClientResponse<Person> updatePerson(@PathParam("id") Long id, Person so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") Long id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-import org.collectionspace.hello.CollectionObjectListItem;
-import org.collectionspace.hello.DefaultCollectionObject;
-import org.collectionspace.hello.client.CollectionObjectClient;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A CollectionObjectTest.
- *
- * @version $Revision:$
- */
-public class CollectionObjectTest {
-
- private CollectionObjectClient client = CollectionObjectClient.getInstance();
-
- private String updateId = "1";
- private String nonexistentId = "foo";
-
-
- @Test
- public void createCollectionObject() {
- CollectionObject co =
- createCollectionObject("1984.021.0049", "Radio News, vol. 10, no. 2, August 1928");
- ClientResponse<Response> res = client.createCollectionObject(co);
- verbose("created status=" + Response.Status.CREATED.getStatusCode());
- verbose("response status=" + Response.Status.CREATED.getStatusCode());
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createCollectionObjectList() {
- CollectionObject co =
- createCollectionObject("1997.005.0437", "Toy, Gotham City Police Helicopter, 1992");
- ClientResponse<Response> res = client.createCollectionObject(co);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- co = createCollectionObject(
- "1984.052.0001", " Pathescope Model 9061 28mm motion picture projector, 1914");
- res = client.createCollectionObject(co);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- }
-
- @Test(dependsOnMethods = {"createCollectionObject"})
- public void updateCollectionObject() {
- CollectionObject touCollectionObject =
- client.getCollectionObject(updateId).getEntity();
- verbose("got CollectionObject to update", touCollectionObject, CollectionObject.class);
- if ( touCollectionObject.getDefaultCollectionObject() == null ) {
- touCollectionObject.setDefaultCollectionObject( new DefaultCollectionObject() );
- }
- String updatedObjNum = "1981.297.0049";
- touCollectionObject.getDefaultCollectionObject().setObjectNumber(updatedObjNum);
- touCollectionObject.getDefaultCollectionObject().setObjectName(
- "Preview slide, It's the Old Army Game, 1926");
- // int initialVersion = touCollectionObject.getVersion();
- CollectionObject uCollectionObject =
- client.updateCollectionObject(updateId, touCollectionObject).getEntity();
- verbose("updated CollectionObject", uCollectionObject, CollectionObject.class);
- // Assert.assertNotSame(uCollectionObject.getVersion(), initialVersion);
- Assert.assertEquals(
- uCollectionObject.getDefaultCollectionObject().getObjectNumber(), updatedObjNum);
- }
-
- @Test(dependsOnMethods = {"createCollectionObject"})
- public void getCollectionObjectList() {
- //the resource method is expected to return at least an empty list
- CollectionObjectList coList = client.getCollectionObjectList().getEntity();
- List<CollectionObjectListItem> list = coList.getCollectionObjectListItem();
- int i = 0;
- for (CollectionObjectListItem pli : list) {
- verbose("getCollectionObjectList: list-item[" + i + "] objectNumber=" + pli.getObjectNumber());
- verbose("getCollectionObjectList: list-item[" + i + "] objectName=" + pli.getObjectName());
- verbose("getCollectionObjectList: list-item[" + i + "] uri=" + pli.getUri());
- i++;
- }
- }
-
-
- @Test
- public void getNonExistingCollectionObject() {
- ClientResponse<CollectionObject> res = client.getCollectionObject(nonexistentId);
-
- Response.Status status = res.getResponseStatus();
- verbose(this.getClass().getName() + ": " +
- "getNonExistingCollectionObject: Status: code=" + status.getStatusCode() +
- " message=" + status.toString());
- verbose("getNonExistingCollectionObject: Metadata:");
- verboseMap(res.getMetadata());
- verbose("getNonExistingCollectionObject: Headers:");
- verboseMap(res.getHeaders());
- if (status.equals(Response.Status.NOT_FOUND)) {
- String msg = res.getEntity(String.class, String.class);
- verbose("getNonExistingCollectionObject: error message=" + msg);
- }
- }
-
- @Test(dependsOnMethods = {"updateCollectionObject"})
- public void updateWrongCollectionObject() {
- CollectionObject touCollectionObject =
- client.getCollectionObject(updateId).getEntity();
- verbose("updateWrongCollectionObject: got CollectionObject to update", touCollectionObject, CollectionObject.class);
- if ( touCollectionObject.getDefaultCollectionObject() == null ) {
- touCollectionObject.setDefaultCollectionObject( new DefaultCollectionObject() );
- }
- String updatedObjNum = "1981.297.0049";
- touCollectionObject.getDefaultCollectionObject().setObjectNumber(updatedObjNum);
- touCollectionObject.getDefaultCollectionObject().setObjectName(
- "Preview slide, It's the Old Army Game, 1926");
- //use non existing CollectionObject to update
- ClientResponse<CollectionObject> res =
- client.updateCollectionObject(nonexistentId, touCollectionObject);
- if (res.getResponseStatus().equals(Response.Status.NOT_FOUND)) {
- verbose("updateWrongCollectionObject: Status=" + res.getResponseStatus().toString());
- String msg = res.getEntity(String.class, String.class);
- verbose("updateWrongCollectionObject: application error message=" + msg);
- }
- }
-
-
- @Test(dependsOnMethods = {"updateWrongCollectionObject"})
- public void deleteCollectionObject() {
- ClientResponse<Response> res = client.deleteCollectionObject(updateId);
- verbose("deleteCollectionObject: id=" + updateId);
- verbose("deleteCollectionObject: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- // ###################################################################################
- // Utility methods used by tests above
- // ###################################################################################
-
- private CollectionObject createCollectionObject(String objectNumber, String objectName) {
- verbose("objectNumber=" + objectNumber);
- verbose("objectName=" + objectName);
- verbose("Before new CollectionObject() ...");
- CollectionObject co = new CollectionObject();
- verbose("Before co.getDefaultCollectionObject().setObjectNumber ...");
- co.setDefaultCollectionObject( new DefaultCollectionObject() );
- co.getDefaultCollectionObject().setObjectNumber(objectNumber);
- co.getDefaultCollectionObject().setObjectName(objectName);
- return co;
- }
-
- private String extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- String id = segments[segments.length - 1];
- verbose("id=" + id);
- return id;
- }
-
-
- private void verbose(String msg) {
- System.out.println("CollectionObjectServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), CollectionObject.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for (Object entry : map.entrySet()) {
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-
-
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import org.collectionspace.hello.client.*;
-import java.util.ArrayList;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A IdentifierServiceTest.
- *
- * @version $Revision:$
- */
-public class IdentifierServiceTest {
-
- private IdentifierClient identifierClient = IdentifierClient.getInstance();
- private Long id = 0L;
-
- @Test
- public void createIdentifier() {
- Identifier identifier = new Identifier();
- identifier.setNamespace("org.bnhm");
- ClientResponse<Response> res = identifierClient.createIdentifier(identifier);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- id = extractId(res);
- }
-
- @Test(dependsOnMethods = {"createIdentifier"})
- public void getIdentifier() {
- Identifier i = identifierClient.getIdentifier(id).getEntity();
- verbose("got Identifier", i);
- }
-
- private Long extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- verbose("id=" + segments[segments.length - 1]);
- return Long.valueOf(segments[segments.length - 1]);
- }
-
- private void verbose(String msg) {
- System.out.println("IdentifierServiceTest : " + msg);
- }
-
- private void verbose(String msg, Identifier p) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), Identifier.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.collectionspace.hello.client.PersonClient;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A PersonServiceTest.
- *
- * @version $Revision:$
- */
-public class PersonServiceTest {
-
- private PersonClient personClient = PersonClient.getInstance();
- private Long updateId = 0L;
-
- @Test
- public void createPerson() {
- Person person = createPerson("Chris", "Hoffman");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createPersons() {
- Person person = createPerson("Aron", "Roberts");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- person = createPerson("Dan", "Sheppard");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() {
- Person touPerson = personClient.getPerson(updateId).getEntity();
- verbose("got person to update", touPerson, Person.class);
- touPerson.setFirstName("Richard");
- touPerson.setLastName("Millet");
- int initialVersion = touPerson.getVersion();
- Person uPerson = personClient.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, Person.class);
- Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Richard");
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void getPersons() {
- //the resource method is expected to return at least an empty list
- Persons persons = personClient.getPersons().getEntity();
- List<Persons.PersonListItem> list = persons.getPersonListItem();
- int i = 0;
- for (Persons.PersonListItem pli : list) {
- verbose("getPersons: list-item[" + i + "] firstName=" + pli.getFirstName());
- verbose("getPersons: list-item[" + i + "] lastName=" + pli.getLastName());
- verbose("getPersons: list-item[" + i + "] uri=" + pli.getUri());
- i++;
- }
- }
-
-
- @Test
- public void getNonExistingPerson() {
- ClientResponse<Person> res = personClient.getPerson(999L);
-
- Response.Status status = res.getResponseStatus();
- verbose(this.getClass().getName() + ": " +
- "getNonExistingPerson: Status: code=" + status.getStatusCode() +
- " message=" + status.toString());
- verbose("getNonExistingPerson: Metadata:");
- verboseMap(res.getMetadata());
- verbose("getNonExistingPerson: Headers:");
- verboseMap(res.getHeaders());
- if (status.equals(Response.Status.NOT_FOUND)) {
- String msg = res.getEntity(String.class, String.class);
- verbose("getNonExistingPerson: error message=" + msg);
- }
- }
-
- @Test(dependsOnMethods = {"updatePerson"})
- public void updateWrongPerson() {
- Person touPerson = personClient.getPerson(updateId).getEntity();
- verbose("updateWrongPerson: got person to update", touPerson, Person.class);
- touPerson.setFirstName("Richard");
- touPerson.setLastName("Millet");
- //use non existing person to update
- ClientResponse<Person> res = personClient.updatePerson(9999L, touPerson);
- if (res.getResponseStatus().equals(Response.Status.NOT_FOUND)) {
- verbose("updateWrongPerson: Status=" + res.getResponseStatus().toString());
- String msg = res.getEntity(String.class, String.class);
- verbose("updateWrongPerson: application error message=" + msg);
- }
- }
-
-
- @Test(dependsOnMethods = {"updateWrongPerson"})
- public void deletePerson() {
- ClientResponse<Response> res = personClient.deletePerson(updateId);
- verbose("deletePerson: id=" + updateId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private Person createPerson(String firstName, String lastName) {
- Person person = new Person();
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- return person;
- }
-
- private Long extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- verbose("id=" + segments[segments.length - 1]);
- return Long.valueOf(segments[segments.length - 1]);
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), Person.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for (Object entry : map.entrySet()) {
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
-
- <appender name="unit-tests"
- class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="./target/unit-tests.log" />
- <param name="MaxFileSize" value="10240KB" />
- <param name="MaxBackupIndex" value="6" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
- <logger name="org.apache.commons.httpclient" additivity="false">
- <level value="warn" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <logger name="httpclient.wire" additivity="false">
- <level value="info" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <root>
- <priority value="debug" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </root>
-
-</log4j:configuration>
-
-
-
-
+++ /dev/null
-<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="javaee-addressbook-client">
- <test verbose="2" name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest" annotations="JDK">
- <classes>
- <class name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest"/>
- </classes>
- </test>
-</suite>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>javaee-addressbook-jaxb</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Thu Feb 26 16:32:52 PST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.source=1.5
+++ /dev/null
-#Thu Feb 26 16:30:28 PST 2009
-activeProfiles=
-eclipse.preferences.version=1
-fullBuildGoals=process-test-resources
-includeModules=false
-resolveWorkspaceProjects=true
-resourceFilterGoals=process-resources resources\:testResources
-version=1
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project>
- <parent>
- <artifactId>helloworld</artifactId>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>helloworld-jaxb</artifactId>
- <version>0.1</version>
- <name>Helloworld Client JAXB</name>
- <dependencies>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.0.2</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2-commons</groupId>
- <artifactId>property-listener-injector</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2_commons</groupId>
- <artifactId>runtime</artifactId>
- <version>0.4.1.4</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jvnet.jaxb2.maven2</groupId>
- <artifactId>maven-jaxb2-plugin</artifactId>
- <dependencies>
- <!-- javax.activation.DataSource provider is required by spec -->
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.2</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello"
- xmlns="http://collectionspace.org/hello"
- targetNamespace="http://collectionspace.org/hello"
- version="0.1"
->
-
-<!--
- Avoid XmlRootElement nightmare, see
- http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html
--->
-
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="serviceMetadata"/>
- <xs:element ref="defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element minOccurs="0" ref="created"/>
- <xs:element minOccurs="0" ref="createdBy"/>
- <xs:element minOccurs="0" ref="lastModified"/>
- <xs:element minOccurs="0" ref="lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="objectNumber"/>
- <xs:element ref="otherNumber"/>
- <xs:element ref="briefDescription"/>
- <xs:element ref="comments"/>
- <xs:element ref="distinguishingFeatures"/>
- <xs:element ref="objectName"/>
- <xs:element ref="responsibleDepartment"/>
- <xs:element ref="title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-
-
- <xs:element name="collectionObjectList">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="collectionObjectListItem"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- Note CamelCase here; Sanjay uses the style "collection-object-list-item", and
- we can and should revert to that if needed.
- -->
- <xs:element name="collectionObjectListItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element ref="objectNumber"/>
- <xs:element ref="objectName"/>
- <xs:element ref="uri"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="uri" type="xs:anyURI"/>
-
-
- <xs:element name="person">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="firstName" type="xs:string" minOccurs="1" />
- <xs:element name="lastName" type="xs:string" minOccurs="1" />
- <xs:element name="street" type="xs:string" minOccurs="1" />
- <xs:element name="city" type="xs:string" minOccurs="1" />
- <xs:element name="state" type="xs:string" minOccurs="1" />
- <xs:element name="zip" type="xs:string" minOccurs="1" />
- <xs:element name="country" type="xs:string" minOccurs="1" />
- </xs:sequence>
- <xs:attribute name="id" type="xs:long" />
- <xs:attribute name="version" type="xs:int" />
- </xs:complexType>
- </xs:element>
-
-
- <!-- person short is returned by getPersons method -->
- <xs:element name="persons">
- <xs:complexType>
- <xs:sequence>
- <!-- person list item is returned by getPersons method -->
- <xs:element name="person-list-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="firstName" type="xs:string" minOccurs="1" />
- <xs:element name="lastName" type="xs:string" minOccurs="1" />
- <!-- uri to retrive person details -->
- <xs:element name="uri" type="xs:anyURI" minOccurs="1" />
- <xs:element name="id" type="xs:long" minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
-
- <xs:element name="identifier">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="namespace" type="xs:string" minOccurs="1" />
- <xs:element name="value" type="xs:string" minOccurs="0" />
- </xs:sequence>
- <xs:attribute name="id" type="xs:long" />
- <xs:attribute name="version" type="xs:int" />
- </xs:complexType>
- </xs:element>
-
-
-</xs:schema>
-
+++ /dev/null
-
-This project is a simple example showing usage of @Path, @GET, PUT, POST, and @PathParam. It uses pure streaming
-output as well.
-
-System Requirements:
-====================
-- Maven 2.0.9 or higher
-
-Building the project:
-====================
-1. In root directoy
-
-mvn clean install
-
-This will build a WAR and run it with embedded Jetty
\ No newline at end of file
+++ /dev/null
-jboss.dir=/usr/local/jboss
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0"?>
-<project name="helloworld" default="deploy" basedir=".">
-
- <property file="build.properties" />
-
- <target name="deploy" description="Deploy" depends="-set-jboss-dir">
- <echo>Copying WAR file ...</echo>
- <copy todir="${jboss.dir}/server/default/deploy">
- <fileset file="${basedir}/target/helloworld.war" />
- </copy>
- </target>
-
- <!--
- If the 'jboss.dir' property does not exist - if it has not already
- been set within a local properties file, as per above - attempt to
- obtain the value of this property from an environment variable.
- -->
- <target name="-set-jboss-dir" description="Set JBoss home directory" unless="${jboss.dir}">
- <!-- Set the prefix through which to access environment variables -->
- <property environment="env"/>
- <property name="jboss.dir" value="${env.JBOSS_HOME}"/>
- </target>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- <netbeans.hint.useExternalMaven>false</netbeans.hint.useExternalMaven>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<actions>
- <action>
- <actionName>test</actionName>
- <packagings>
- <packaging>*</packaging>
- </packagings>
- <goals>
- <goal>test</goal>
- </goals>
- </action>
- <action>
- <actionName>build</actionName>
- <packagings>
- <packaging>*</packaging>
- </packagings>
- <goals>
- <goal>install</goal>
- </goals>
- </action>
- <action>
- <actionName>clean</actionName>
- <packagings>
- <packaging>*</packaging>
- </packagings>
- <goals>
- <goal>clean</goal>
- </goals>
- </action>
- <action>
- <actionName>rebuild</actionName>
- <packagings>
- <packaging>*</packaging>
- </packagings>
- <goals>
- <goal>clean</goal>
- <goal>install</goal>
- </goals>
- <properties>
- <maven.test.skip>true</maven.test.skip>
- </properties>
- </action>
- <action>
- <actionName>run</actionName>
- <packagings>
- <packaging>war</packaging>
- <packaging>ear</packaging>
- <packaging>ejb</packaging>
- </packagings>
- <goals>
- <goal>package</goal>
- </goals>
- <properties>
-
- <netbeans.deploy>true</netbeans.deploy>
- </properties>
- </action>
- <action>
- <actionName>debug</actionName>
- <packagings>
- <packaging>war</packaging>
- <packaging>ear</packaging>
- <packaging>ejb</packaging>
- </packagings>
- <goals>
- <goal>package</goal>
- </goals>
- <properties>
-
- <netbeans.deploy>true</netbeans.deploy>
- <netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>
- </properties>
- </action>
- </actions>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
- <parent>
- <artifactId>helloworld</artifactId>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>helloworld-service</artifactId>
- <packaging>war</packaging>
- <version>0.1</version>
- <name>Helloworld Service</name>
-
- <repositories>
- <repository>
- <id>java.net</id>
- <url>http://download.java.net/maven/1</url>
- <layout>legacy</layout>
- </repository>
- <repository>
- <id>maven repo</id>
- <name>maven repo</name>
- <url>http://repo1.maven.org/maven2/</url>
- </repository>
- <!-- For resteasy -->
- <repository>
- <id>jboss</id>
- <name>jboss repo</name>
- <url>http://repository.jboss.org/maven2</url>
- </repository>
- <repository>
- <id>mojo</id>
- <name>mojo repo</name>
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>
- </repository>
- </repositories>
-
- <dependencies>
- <dependency>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>helloworld-jaxb</artifactId>
- <version>0.1</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.0.2.GA</version>
- <!-- filter out unwanted jars -->
- <exclusions>
- <exclusion>
- <groupId>tjws</groupId>
- <artifactId>webserver</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxb-provider</artifactId>
- <version>1.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <finalName>helloworld</finalName>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>jboss-maven-plugin</artifactId>
- <configuration>
- <jbossHome>${jboss.dir}</jbossHome>
- </configuration>
- <executions>
- <execution>
- <id>jboss-undeploy</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>undeploy</goal>
- </goals>
- <configuration>
- <fileName>${basedir}/target/helloworld.war</fileName>
- </configuration>
- </execution>
- <execution>
- <id>jboss-deploy</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>deploy</goal>
- </goals>
- <configuration>
- <fileName>${basedir}/target/helloworld.war</fileName>
- </configuration>
- </execution>
-
- </executions>
- </plugin>
- <!--
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
- <version>6.1.10</version>
- <configuration>
-
- <contextPath>/</contextPath>
- <scanIntervalSeconds>2</scanIntervalSeconds>
- <stopKey>foo</stopKey>
- <stopPort>9999</stopPort>
- <connectors>
- <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
- <port>9095</port>
- <maxIdleTime>60000</maxIdleTime>
- </connector>
- </connectors>
- </configuration>
- <executions>
- <execution>
- <id>start-jetty</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <scanIntervalSeconds>0</scanIntervalSeconds>
- <daemon>true</daemon>
- </configuration>
- </execution>
- <execution>
- <id>stop-jetty</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- -->
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- </configuration>
- <executions>
- <execution>
- <id>surefire-it</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>false</skip>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.0</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.net.URI;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-import org.collectionspace.hello.CollectionObjectListItem;
-import org.collectionspace.hello.DefaultCollectionObject;
-import org.collectionspace.hello.ServiceMetadata;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/collectionobjects")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class CollectionObjectResource {
-
- final Logger logger = LoggerFactory.getLogger(CollectionObjectResource.class);
- private Map<String, CollectionObject> CollectionObjectDB =
- new ConcurrentHashMap<String, CollectionObject>();
- private AtomicLong idCounter = new AtomicLong();
-
- public CollectionObjectResource() {
- }
-
- @POST
- public Response createCollectionObject(CollectionObject c) {
- if (c == null) {
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "Add failed, the CollectionObject provided was empty.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- Long id = idCounter.incrementAndGet();
- // c.getServiceMetadata().setCollectionSpaceId(id.toString());
- c.setServiceMetadata( new ServiceMetadata() );
- c.getServiceMetadata().setCollectionSpaceId("100");
- // c.setVersion(1);
- CollectionObjectDB.put(c.getServiceMetadata().getCollectionSpaceId(), c);
- verbose("created CollectionObject", c);
- UriBuilder path = UriBuilder.fromResource(CollectionObjectResource.class);
- path.path("" + c.getServiceMetadata().getCollectionSpaceId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public CollectionObject getCollectionObject(@PathParam("id") String id) {
- CollectionObject c = CollectionObjectDB.get(id);
- if (c == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested CollectionObject ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get CollectionObject", c);
- return c;
- }
-
- @PUT
- @Path("{id}")
- public CollectionObject updateCollectionObject(@PathParam("id") String id, CollectionObject update) {
- CollectionObject current = CollectionObjectDB.get(id);
- if (current == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed, the CollectionObject ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("update CollectionObject input", update);
- //todo: intelligent merge needed
- // current.getServiceMetadata().setLastUpdated( [current date/time here] );
- current.getDefaultCollectionObject().setObjectNumber(
- update.getDefaultCollectionObject().getObjectNumber());
- current.getDefaultCollectionObject().setOtherNumber(
- update.getDefaultCollectionObject().getOtherNumber());
- current.getDefaultCollectionObject().setBriefDescription(
- update.getDefaultCollectionObject().getBriefDescription());
- current.getDefaultCollectionObject().setComments(
- update.getDefaultCollectionObject().getComments());
- current.getDefaultCollectionObject().setDistinguishingFeatures(
- update.getDefaultCollectionObject().getDistinguishingFeatures());
- current.getDefaultCollectionObject().setObjectName(
- update.getDefaultCollectionObject().getObjectName());
- current.getDefaultCollectionObject().setResponsibleDepartment(
- update.getDefaultCollectionObject().getResponsibleDepartment());
- verbose("update CollectionObject output", current);
- return current;
- }
-
- // Get a list
- @GET
- public CollectionObjectList getCollectionObjectList(@Context UriInfo ui) {
- CollectionObjectList CollectionObjectList = new CollectionObjectList();
- // The auto-generated method called here has a potentially misleading name; it returns a List.
- List<CollectionObjectListItem> list =
- CollectionObjectList.getCollectionObjectListItem();
- // builder starts with current URI and has appended path of getCollectionObject method
- UriBuilder ub = ui.getAbsolutePathBuilder().path(this.getClass(), "getCollectionObject");
- for (CollectionObject c : CollectionObjectDB.values()) {
- CollectionObjectListItem cli = new CollectionObjectListItem();
- cli.setCollectionSpaceId(c.getServiceMetadata().getCollectionSpaceId());
- cli.setObjectNumber(c.getDefaultCollectionObject().getObjectNumber());
- cli.setObjectName(c.getDefaultCollectionObject().getObjectName());
- // builder has {id} variable that must be filled in for each customer
- URI uri = ub.build(c.getServiceMetadata().getCollectionSpaceId());
- cli.setUri(uri.toString());
- list.add(cli);
- }
- return CollectionObjectList;
- }
-
- @DELETE
- @Path("{id}")
- public void deleteCollectionObject(@PathParam("id") String id) {
- CollectionObject removed = CollectionObjectDB.remove(id);
- if (removed == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed, the CollectionObject ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("deleted CollectionObject", removed);
- }
-
- private void verbose(String msg, CollectionObject c) {
- try {
- System.out.println("CollectionObjectResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(CollectionObject.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
- m.marshal(c, System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-// @POST
-// @Consumes("application/xml")
-// public Response createCollectionObject(InputStream is) {
-// CollectionObject c = readCollectionObject(is);
-// c.setId(idCounter.incrementAndGet());
-// c.setVersion(1);
-// CollectionObjectDB.put(c.getId(), c);
-// try {
-// System.out.println("Created CollectionObject " + c.getId());
-// outputCollectionObject(System.out, c);
-// } catch (IOException ioe) {
-// throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
-// }
-// return Response.created(URI.create("/CollectionObjects/" + c.getId())).build();
-//
-// }
-//
-// @GET
-// @Path("{id}")
-// @Produces("application/xml")
-// public StreamingOutput getCollectionObject(@PathParam("id") int id) {
-// final CollectionObject c = CollectionObjectDB.get(id);
-// if (c == null) {
-// throw new WebApplicationException(Response.Status.NOT_FOUND);
-// }
-// return new StreamingOutput() {
-//
-// public void write(OutputStream outputStream) throws IOException, WebApplicationException {
-// outputCollectionObject(outputStream, c);
-// }
-// };
-// }
-//
-// @PUT
-// @Path("{id}")
-// @Consumes("application/xml")
-// @Produces("application/xml")
-// public StreamingOutput updateCollectionObject(@PathParam("id") int id, InputStream is) {
-// CollectionObject update = readCollectionObject(is);
-// CollectionObject current = CollectionObjectDB.get(id);
-// if (current == null) {
-// throw new WebApplicationException(Response.Status.NOT_FOUND);
-// }
-//
-// current.setFirstName(update.getFirstName());
-// current.setLastName(update.getLastName());
-// current.setStreet(update.getStreet());
-// current.setState(update.getState());
-// current.setZip(update.getZip());
-// current.setCountry(update.getCountry());
-// current.setVersion(current.getVersion() + 1);
-// final CollectionObject scurrent = current;
-// return new StreamingOutput() {
-//
-// public void write(OutputStream outputStream) throws IOException, WebApplicationException {
-// outputCollectionObject(outputStream, scurrent);
-// }
-// };
-// }
-//
-// protected void outputCollectionObject(OutputStream os, CollectionObject c) throws IOException {
-// PrintStream writer = new PrintStream(os);
-// writer.println("<CollectionObject id=\"" + c.getId() + "\" version=\"" + c.getVersion() + "\">");
-// writer.println(" <first-name>" + c.getFirstName() + "</first-name>");
-// writer.println(" <last-name>" + c.getLastName() + "</last-name>");
-// writer.println(" <street>" + c.getStreet() + "</street>");
-// writer.println(" <city>" + c.getCity() + "</city>");
-// writer.println(" <state>" + c.getState() + "</state>");
-// writer.println(" <zip>" + c.getZip() + "</zip>");
-// writer.println(" <country>" + c.getCountry() + "</country>");
-// writer.println("</CollectionObject>");
-// }
-//
-// protected CollectionObject readCollectionObject(InputStream is) {
-// try {
-// DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-// Document doc = builder.parse(is);
-// Element root = doc.getDocumentElement();
-// CollectionObject c = new CollectionObject();
-// if (root.getAttribute("id") != null && !root.getAttribute("id").trim().equals("")) {
-// c.setId(Integer.valueOf(root.getAttribute("id")));
-// }
-// if (root.getAttribute("version") != null && !root.getAttribute("version").trim().equals("")) {
-// c.setVersion(Integer.valueOf(root.getAttribute("version")));
-// }
-// NodeList nodes = root.getChildNodes();
-// for (int i = 0; i < nodes.getLength(); i++) {
-// Element element = (Element) nodes.item(i);
-// if (element.getTagName().equals("first-name")) {
-// c.setFirstName(element.getTextContent());
-// } else if (element.getTagName().equals("last-name")) {
-// c.setLastName(element.getTextContent());
-// } else if (element.getTagName().equals("street")) {
-// c.setStreet(element.getTextContent());
-// } else if (element.getTagName().equals("city")) {
-// c.setCity(element.getTextContent());
-// } else if (element.getTagName().equals("state")) {
-// c.setState(element.getTextContent());
-// } else if (element.getTagName().equals("zip")) {
-// c.setZip(element.getTextContent());
-// } else if (element.getTagName().equals("country")) {
-// c.setCountry(element.getTextContent());
-// }
-// }
-// return c;
-// } catch (Exception e) {
-// throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
-// }
-// }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
-
-public class HelloworldApplication extends Application {
-
- private Set<Object> singletons = new HashSet<Object>();
- private Set<Class<?>> empty = new HashSet<Class<?>>();
-
- public HelloworldApplication() {
- singletons.add(new CollectionObjectResource());
- singletons.add(new PersonResource());
- singletons.add(new IdentifierResource());
- }
-
- @Override
- public Set<Class<?>> getClasses() {
- return empty;
- }
-
- @Override
- public Set<Object> getSingletons() {
- return singletons;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/identifiers")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class IdentifierResource {
-
- final Logger logger = LoggerFactory.getLogger(IdentifierResource.class);
- private Map<Long, Identifier> idDB = new ConcurrentHashMap<Long, Identifier>();
- private AtomicLong idCounter = new AtomicLong();
-
- public IdentifierResource() {
- }
-
- @POST
- public Response createIdentifier(Identifier id) {
- if (id.getNamespace() == null) {
- id.setNamespace("edu.berkeley");
- }
- id.setId(idCounter.incrementAndGet());
- id.setVersion(1);
- UUID uuid = UUID.nameUUIDFromBytes(id.getNamespace().getBytes());
- id.setValue(uuid.toString());
- idDB.put(id.getId(), id);
- verbose("created Id", id);
- UriBuilder path = UriBuilder.fromResource(IdentifierResource.class);
- path.path("" + id.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public Identifier getIdentifier(@PathParam("id") Long id) {
- Identifier i = idDB.get(id);
- if (i == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "The requested ID was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get Id", i);
- return i;
- }
-
- private void verbose(String msg, Identifier id) {
- try {
- System.out.println("IdentifierResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(id, System.out);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.net.URI;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons.PersonListItem;
-import org.collectionspace.hello.Persons;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/persons")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class PersonResource {
-
- final Logger logger = LoggerFactory.getLogger(PersonResource.class);
- private Map<Long, Person> personDB = new ConcurrentHashMap<Long, Person>();
- private AtomicLong idCounter = new AtomicLong();
-
- public PersonResource() {
- }
-
- @POST
- public Response createPerson(Person p) {
- p.setId(idCounter.incrementAndGet());
- p.setVersion(1);
- personDB.put(p.getId(), p);
- verbose("created person", p);
- UriBuilder path = UriBuilder.fromResource(PersonResource.class);
- path.path("" + p.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public Person getPerson(@PathParam("id") Long id) {
- Person p = personDB.get(id);
- if (p == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get person", p);
- return p;
- }
-
- @PUT
- @Path("{id}")
- public Person updatePerson(@PathParam("id") Long id, Person update) {
- Person current = personDB.get(id);
- if (current == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed, the person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("update person input", update);
- //todo: intelligent merge needed
- current.setFirstName(update.getFirstName());
- current.setLastName(update.getLastName());
- current.setStreet(update.getStreet());
- current.setState(update.getState());
- current.setZip(update.getZip());
- current.setCountry(update.getCountry());
- current.setVersion(current.getVersion() + 1);
- verbose("update person output", current);
- return current;
- }
-
- @GET
- public Persons getPersons(@Context UriInfo ui) {
- Persons persons = new Persons();
- List<Persons.PersonListItem> list = persons.getPersonListItem();
- // builder starts with current URI and has appended path of getPerson method
- UriBuilder ub = ui.getAbsolutePathBuilder().path(this.getClass(), "getPerson");
- for (Person p : personDB.values()) {
- PersonListItem pli = new PersonListItem();
- pli.setFirstName(p.getFirstName());
- pli.setLastName(p.getLastName());
- pli.setId(p.getId());
- // builder has {id} variable that must be filled in for each customer
- URI uri = ub.build(p.getId());
- pli.setUri(uri.toString());
- list.add(pli);
- }
- return persons;
- }
-
- @DELETE
- @Path("{id}")
- public void deletePerson(@PathParam("id") Long id) {
- Person removed = personDB.remove(id);
- if (removed == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed, the person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("deleted person", removed);
- }
-
- private void verbose(String msg, Person p) {
- try {
- System.out.println("PersonResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(Person.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-// @POST
-// @Consumes("application/xml")
-// public Response createPerson(InputStream is) {
-// Person p = readPerson(is);
-// p.setId(idCounter.incrementAndGet());
-// p.setVersion(1);
-// personDB.put(p.getId(), p);
-// try {
-// System.out.println("Created Person " + p.getId());
-// outputPerson(System.out, p);
-// } catch (IOException ioe) {
-// throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
-// }
-// return Response.created(URI.create("/persons/" + p.getId())).build();
-//
-// }
-//
-// @GET
-// @Path("{id}")
-// @Produces("application/xml")
-// public StreamingOutput getPerson(@PathParam("id") int id) {
-// final Person p = personDB.get(id);
-// if (p == null) {
-// throw new WebApplicationException(Response.Status.NOT_FOUND);
-// }
-// return new StreamingOutput() {
-//
-// public void write(OutputStream outputStream) throws IOException, WebApplicationException {
-// outputPerson(outputStream, p);
-// }
-// };
-// }
-//
-// @PUT
-// @Path("{id}")
-// @Consumes("application/xml")
-// @Produces("application/xml")
-// public StreamingOutput updatePerson(@PathParam("id") int id, InputStream is) {
-// Person update = readPerson(is);
-// Person current = personDB.get(id);
-// if (current == null) {
-// throw new WebApplicationException(Response.Status.NOT_FOUND);
-// }
-//
-// current.setFirstName(update.getFirstName());
-// current.setLastName(update.getLastName());
-// current.setStreet(update.getStreet());
-// current.setState(update.getState());
-// current.setZip(update.getZip());
-// current.setCountry(update.getCountry());
-// current.setVersion(current.getVersion() + 1);
-// final Person scurrent = current;
-// return new StreamingOutput() {
-//
-// public void write(OutputStream outputStream) throws IOException, WebApplicationException {
-// outputPerson(outputStream, scurrent);
-// }
-// };
-// }
-//
-// protected void outputPerson(OutputStream os, Person p) throws IOException {
-// PrintStream writer = new PrintStream(os);
-// writer.println("<Person id=\"" + p.getId() + "\" version=\"" + p.getVersion() + "\">");
-// writer.println(" <first-name>" + p.getFirstName() + "</first-name>");
-// writer.println(" <last-name>" + p.getLastName() + "</last-name>");
-// writer.println(" <street>" + p.getStreet() + "</street>");
-// writer.println(" <city>" + p.getCity() + "</city>");
-// writer.println(" <state>" + p.getState() + "</state>");
-// writer.println(" <zip>" + p.getZip() + "</zip>");
-// writer.println(" <country>" + p.getCountry() + "</country>");
-// writer.println("</Person>");
-// }
-//
-// protected Person readPerson(InputStream is) {
-// try {
-// DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-// Document doc = builder.parse(is);
-// Element root = doc.getDocumentElement();
-// Person p = new Person();
-// if (root.getAttribute("id") != null && !root.getAttribute("id").trim().equals("")) {
-// p.setId(Integer.valueOf(root.getAttribute("id")));
-// }
-// if (root.getAttribute("version") != null && !root.getAttribute("version").trim().equals("")) {
-// p.setVersion(Integer.valueOf(root.getAttribute("version")));
-// }
-// NodeList nodes = root.getChildNodes();
-// for (int i = 0; i < nodes.getLength(); i++) {
-// Element element = (Element) nodes.item(i);
-// if (element.getTagName().equals("first-name")) {
-// p.setFirstName(element.getTextContent());
-// } else if (element.getTagName().equals("last-name")) {
-// p.setLastName(element.getTextContent());
-// } else if (element.getTagName().equals("street")) {
-// p.setStreet(element.getTextContent());
-// } else if (element.getTagName().equals("city")) {
-// p.setCity(element.getTextContent());
-// } else if (element.getTagName().equals("state")) {
-// p.setState(element.getTextContent());
-// } else if (element.getTagName().equals("zip")) {
-// p.setZip(element.getTextContent());
-// } else if (element.getTagName().equals("country")) {
-// p.setCountry(element.getTextContent());
-// }
-// }
-// return p;
-// } catch (Exception e) {
-// throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
-// }
-// }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app>
- <display-name>Helloworld</display-name>
-
- <context-param>
- <param-name>javax.ws.rs.Application</param-name>
- <param-value>org.collectionspace.hello.services.HelloworldApplication</param-value>
- </context-param>
-
- <context-param>
- <param-name>resteasy.servlet.mapping.prefix</param-name>
- <param-value>/cspace</param-value>
- </context-param>
-
- <listener>
- <listener-class>
- org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
- </listener-class>
- </listener>
-
- <servlet>
- <servlet-name>Resteasy</servlet-name>
- <servlet-class>
- org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
- </servlet-class>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>Resteasy</servlet-name>
- <url-pattern>/cspace/*</url-pattern>
- </servlet-mapping>
-
-</web-app>
+++ /dev/null
-package org.collectionspace.hello.test;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-/**
- * @version $Revision: 1 $
- */
-public class CollectionObjectServiceRawXmlTest {
-
- @Test
- public void testCollectionObjectResource() throws Exception {
- verbose("create a new CollectionObject");
- // Create a new object
- String newCollectionObject =
- "<collectionObject xmlns=\"http://collectionspace.org/hello\">" +
- "<serviceMetadata />" +
- "<defaultCollectionObject>" +
- "<objectNumber>1984.021.0049</objectNumber>" +
- "<objectName>Radio News, vol. 10, no. 2, August 1928</objectName>" +
- "</defaultCollectionObject>" +
- "</collectionObject>";
- verbose("new object: " + newCollectionObject);
- URL postUrl = new URL("http://localhost:8080/helloworld/cspace/collectionobjects");
- HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
- connection.setDoOutput(true);
- connection.setInstanceFollowRedirects(false);
- connection.setRequestMethod("POST");
- connection.setRequestProperty("Content-Type", "application/xml");
- OutputStream os = connection.getOutputStream();
- os.write(newCollectionObject.getBytes());
- os.flush();
- verbose("response: " + connection.getResponseMessage());
- Assert.assertEquals(HttpURLConnection.HTTP_CREATED, connection.getResponseCode());
- String createdUrl = connection.getHeaderField("Location");
- verbose("Location: " + createdUrl);
- connection.disconnect();
-
-
- // Get the new object
- verbose("get created CollectionObject");
- URL getUrl = new URL(createdUrl);
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
- verbose("Content-Type: " + connection.getContentType());
-
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- String line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- String updateCollectionObject =
- "<collectionObject xmlns=\"http://collectionspace.org/hello\">" +
- "<serviceMetadata />" +
- "<defaultCollectionObject>" +
- "<objectNumber>1997.005.0437</objectNumber>" +
- "<objectName>Toy, Gotham City Police Helicopter, 1992</objectName>" +
- "</defaultCollectionObject>" +
- "</collectionObject>";
-
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setDoOutput(true);
- connection.setRequestMethod("PUT");
- connection.setRequestProperty("Content-Type", "application/xml");
- os = connection.getOutputStream();
- os.write(updateCollectionObject.getBytes());
- os.flush();
- verbose("response: " + connection.getResponseMessage());
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- // Show the update
- verbose("updated CollectionObject");
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
-
- verbose("Content-Type: " + connection.getContentType());
- reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- }
-
- private void verbose(String msg) {
- System.out.println("CollectionObjectServiceRawXmlTest : " + msg);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.test;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-/**
- * @version $Revision: 1 $
- */
-public class IdentifierServiceRawXmlTest {
-
- @Test
- public void testIdentifierResource() throws Exception {
- verbose("create a new Identifier");
- // Create a new object
- String newIdentifier = "<ns2:identifier xmlns:ns2=\"http://collectionspace.org/hello\">" +
- "<namespace>edu.stanford</namespace>" +
- "</ns2:identifier>";
-
- URL postUrl = new URL("http://localhost:8080/helloworld/cspace/identifiers");
- HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
- connection.setDoOutput(true);
- connection.setInstanceFollowRedirects(false);
- connection.setRequestMethod("POST");
- connection.setRequestProperty("Content-Type", "application/xml");
- OutputStream os = connection.getOutputStream();
- os.write(newIdentifier.getBytes());
- os.flush();
- Assert.assertEquals(HttpURLConnection.HTTP_CREATED, connection.getResponseCode());
- String createdUrl = connection.getHeaderField("Location");
- verbose("Location: " + createdUrl);
- connection.disconnect();
-
-
- // Get the new object
- verbose("get created Identifier");
- URL getUrl = new URL(createdUrl);
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
- verbose("Content-Type: " + connection.getContentType());
-
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- String line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- }
-
- private void verbose(String msg) {
- System.out.println("IdentifierServiceRawXmlTest : " + msg);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.test;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-/**
- * @version $Revision: 1 $
- */
-public class PersonServiceRawXmlTest {
-
- @Test
- public void testPersonResource() throws Exception {
- verbose("create a new Person");
- // Create a new object
- String newPerson = "<ns2:person xmlns:ns2=\"http://collectionspace.org/hello\">" + "<firstName>John</firstName>" + "<lastName>Doe</lastName>" + "<street>2195 Hearst Ave</street>" + "<city>Berkeley</city>" + "<state>CA</state>" + "<zip>94504</zip>" + "<country>USA</country>" + "</ns2:person>";
-
- URL postUrl = new URL("http://localhost:8080/helloworld/cspace/persons");
- HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
- connection.setDoOutput(true);
- connection.setInstanceFollowRedirects(false);
- connection.setRequestMethod("POST");
- connection.setRequestProperty("Content-Type", "application/xml");
- OutputStream os = connection.getOutputStream();
- os.write(newPerson.getBytes());
- os.flush();
- Assert.assertEquals(HttpURLConnection.HTTP_CREATED, connection.getResponseCode());
- String createdUrl = connection.getHeaderField("Location");
- verbose("Location: " + createdUrl);
- connection.disconnect();
-
-
- // Get the new object
- verbose("get created Person");
- URL getUrl = new URL(createdUrl);
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
- verbose("Content-Type: " + connection.getContentType());
-
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- String line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- String updatePerson = "<ns2:person xmlns:ns2=\"http://collectionspace.org/hello\">" + "<firstName>Jane</firstName>" + "<lastName>Doe</lastName>" + "<street>1 University Ave</street>" + "<city>Berkeley</city>" + "<state>CA</state>" + "<zip>94504</zip>" + "<country>USA</country>" + "</ns2:person>";
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setDoOutput(true);
- connection.setRequestMethod("PUT");
- connection.setRequestProperty("Content-Type", "application/xml");
- os = connection.getOutputStream();
- os.write(updatePerson.getBytes());
- os.flush();
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- // Show the update
- verbose("updated Person");
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
-
- verbose("Content-Type: " + connection.getContentType());
- reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceRawXmlTest : " + msg);
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<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>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- <artifactId>helloworld</artifactId>
- <packaging>pom</packaging>
- <name>HelloWorld</name>
- <modules>
- <module>HelloWorldJaxb</module>
- <module>HelloWorldService</module>
- <module>HelloWorldClient</module>
- </modules>
- <repositories>
- <repository>
- <id>jboss</id>
- <url>http://repository.jboss.org/maven2</url>
- </repository>
- <repository>
- <id>sun</id>
- <url>http://download.java.net/maven/2</url>
- </repository>
- <repository>
- <id>java.net</id>
- <name>java.net Maven Repository</name>
- <url>
- https://maven-repository.dev.java.net/nonav/repository
- </url>
- <layout>legacy</layout>
- </repository>
- <repository>
- <id>maven2-repository.dev.java.net</id>
- <name>Java.net Maven 2 Repository</name>
- <url>http://download.java.net/maven/2</url>
- </repository>
- </repositories>
- <pluginRepositories>
-
- <pluginRepository>
- <id>java.net</id>
- <name>java.net Maven Repository</name>
- <url>
- https://maven-repository.dev.java.net/nonav/repository
- </url>
- <layout>legacy</layout>
- </pluginRepository>
- <pluginRepository>
- <id>maven2-repository.dev.java.net</id>
- <name>Java.net Maven 2 Repository</name>
- <url>http://download.java.net/maven/2</url>
- </pluginRepository>
- </pluginRepositories>
-
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <unzipCommand>
- /usr/bin/unzip -o > err.txt
- </unzipCommand>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.0.1</version>
- <configuration>
-
- <warSourceExcludes>
- WEB-INF/lib/*.jar
- </warSourceExcludes>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
-
- </manifest>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.jvnet.jaxb2.maven2</groupId>
- <artifactId>maven-jaxb2-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <args>
- <arg>-XtoString</arg>
- <arg>-Xinject-listener-code</arg>
-
- <!-- <arg>-Xcollection-setter-injector</arg>
- <arg>-Xfluent-api</arg> -->
- </args>
- <plugins>
- <plugin>
- <groupId>
- org.jvnet.jaxb2_commons
- </groupId>
- <artifactId>basic</artifactId>
- <version>0.4.1</version>
- </plugin>
- <plugin>
- <groupId>
- org.jvnet.jaxb2-commons
- </groupId>
- <artifactId>
- property-listener-injector
- </artifactId>
- <version>1.0</version>
- </plugin>
- <!--
- <plugin>
- <groupId>
- net.java.dev.jaxb2-commons
- </groupId>
- <artifactId>jaxb-fluent-api</artifactId>
- <version>2.0.1</version>
- </plugin>
- -->
- </plugins>
- <generatePackage>
- org.collectionspace.hello
- </generatePackage>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>net.java.dev.jaxb2-commons</groupId>
- <artifactId>jaxb-fluent-api</artifactId>
- <version>2.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>5.6</version>
- <scope>test</scope>
- <classifier>jdk15</classifier>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>jaxrs-api</artifactId>
- <version>1.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>net.java.dev.jaxb2-commons</groupId>
- <artifactId>jaxb-fluent-api</artifactId>
- <version>2.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2-commons</groupId>
- <artifactId>property-listener-injector</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2_commons</groupId>
- <artifactId>runtime</artifactId>
- <version>0.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.7</version>
- </dependency>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>5.6</version>
- <scope>test</scope>
- <classifier>jdk15</classifier>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.5.2</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.2</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.5</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.jgoodies</groupId>
- <artifactId>binding</artifactId>
- <version>2.0.2</version>
- </dependency>
- <dependency>
- <groupId>com.jgoodies</groupId>
- <artifactId>forms</artifactId>
- <version>1.2.0</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-</project>
+++ /dev/null
-<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>
- <groupId>org.collectionspace.services</groupId>
- <artifactId>id</artifactId>
- <packaging>jar</packaging>
- <version>0.1-SNAPSHOT</version>
- <name>id</name>
- <url>http://maven.apache.org</url>
- <properties>
- <!-- See http://docs.codehaus.org/display/MAVENUSER/POM+Element+for+Source+File+Encoding -->
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
+++ /dev/null
-/*
- * AlphabeticIDGenerator
- *
- * <p>An identifier generator that generates an incrementing alphabetic ID
- * from any sequence of characters, as a String object.</p>
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-// @TODO: When auto expanding, we'll need to set a maximum length to which the
-// generated IDs can grow, likely as an additional parameter to be
-// passed to a constructor, with a default value hard-coded in the class.
-
-// @TODO: Consider handling escaped characters or sequences which represent Unicode
-// code points, both in the start and end characters of the sequence, and in the initial value.
-// (Example: '\u0072' for the USASCII 'r' character; see
-// http://www.fileformat.info/info/unicode/char/0072/index.htm)
-//
-// Ideally, we should read these in free-text patterns, alongside unescaped characters,
-// but in practice we may wish to require some structured form for arguments
-// containing such characters.
-//
-// Some initial research on this:
-// http://www.velocityreviews.com/forums/t367758-unescaping-unicode-code-points-in-a-java-string.html
-// We might also look into the (protected) source code for java.util.Properties.load()
-// which reads escaped Unicode values.
-//
-// Note also that, if the goal is to cycle through a sequence of alphabetic identifiers,
-// such as the sequence of characters used in a particular human language, it may or may not
-// be the case that any contiguous Unicode code point sequence reflects such a character sequence.
-
-// NOTE: This class currently hard-codes the assumption that the values in
-// alphabetic identifiers are ordered in significance from left-to-right;
-// that is, the most significant value appears in the left-most position.
-
-package org.collectionspace.services.id;
-
-import java.util.Collections;
-import java.util.Vector;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class AlphabeticIDGenerator implements IDGenerator {
-
- private static final char NULL_CHAR = '\u0000';
-
- private static final String DEFAULT_START_CHAR = "a";
- private static final String DEFAULT_END_CHAR = "z";
- private static final String DEFAULT_INITIAL_VALUE = "a";
-
- private char startChar = NULL_CHAR;
- private char endChar = NULL_CHAR;
-
- private Vector<Character> initialValue = new Vector<Character>();
- private Vector<Character> currentValue = new Vector<Character>();
-
- // Constructor using defaults for character sequence and initial value.
- //
- // If no start and end characters are provided for the alphabetic character
- // sequence, default to an 'a-z' sequence, representing the lowercase alphabetic
- // characters in the USASCII character set (within Java's internal
- // Unicode UTF-16 representation).
- //
- // Additionally defaults to an initial value of "a".
- public AlphabeticIDGenerator() throws IllegalArgumentException {
-
- this(DEFAULT_START_CHAR, DEFAULT_END_CHAR, DEFAULT_INITIAL_VALUE);
-
- }
-
- // Constructor using defaults for character sequence.
- //
- // If no start and end characters are provided for the alphabetic character
- // sequence, default to an 'a-z' sequence, representing the lowercase alphabetic
- // characters in the USASCII character set (within Java's internal
- // Unicode UTF-16 representation).
- public AlphabeticIDGenerator(String initial) throws IllegalArgumentException {
-
- this(DEFAULT_START_CHAR, DEFAULT_END_CHAR, initial);
-
- }
-
- // Constructor.
- public AlphabeticIDGenerator(String sequenceStart, String sequenceEnd, String initial)
- throws IllegalArgumentException {
-
- // Validate and store the start character in the character sequence.
-
- if (sequenceStart == null || sequenceStart.equals("")) {
- throw new IllegalArgumentException(
- "Start character in the character sequence must not be null or empty");
- }
-
- if (sequenceStart.length() == 1) {
- this.startChar = sequenceStart.charAt(0);
- } else if (false) {
- // Handle representations of Unicode code points here
- } else {
- throw new IllegalArgumentException(
- "Start character must be one character in length");
- // "Start character must be one character in length or a Unicode value such as '\u0000'");
- }
-
- // Validate and store the end character in the character sequence.
-
- if (sequenceEnd == null || sequenceEnd.equals("")) {
- throw new IllegalArgumentException(
- "End character in the character sequence must not be null or empty");
- }
-
- if (sequenceEnd.length() == 1) {
- this.endChar = sequenceEnd.charAt(0);
- } else if (false) {
- // Handle representations of Unicode code points here
- } else {
- throw new IllegalArgumentException(
- "End character must be one character in length");
- // "End character must be one character in length or a Unicode value such as '\u0000'");
- }
-
- if (this.endChar <= this.startChar) {
- throw new IllegalArgumentException(
- "End (last) character in the character sequence must be greater than the start character");
- }
-
- // Validate and store the initial value of this identifier.
-
- if (initial == null || initial.equals("")) {
- throw new IllegalArgumentException("Initial value must not be null or empty");
- }
-
- // @TODO: Add a check for maximum length of the initial value here.
-
- // Store the chars in the initial value as Characters in a Vector,
- // validating each character to identify whether it falls within
- // the provided sequence.
- //
- // (Since we're performing casts from char to Character, we can't just
- // use Arrays.asList() to copy the initial array to a Vector.)
- char[] chars = initial.toCharArray();
- char ch;
- for (int i = 0; i < chars.length; i++) {
-
- // If the character falls within the provided sequence, copy it to the Vector.
- ch = chars[i];
- if (ch >= this.startChar && ch <= this.endChar) {
- this.initialValue.add(new Character(ch));
- // Otherwise, we've detected a character not in the sequence.
- } else {
- throw new IllegalArgumentException("character " + "\'" + ch + "\'" + " is not valid");
- }
-
- }
-
- // Initialize the current value from the initial value.
- this.currentValue = new Vector<Character>(this.initialValue);
-
- }
-
- // Returns the initial value.
- public synchronized String getInitialID() {
- return getIDString(this.initialValue);
- }
-
- // Returns the current value.
- public synchronized String getCurrentID() {
- return getIDString(this.currentValue);
- }
-
- // Sets the current value.
- public synchronized void setCurrentID(String value) throws IllegalArgumentException {
-
- // @TODO Much of this code is copied from the main constructor,
- // and may be ripe for refactoring.
-
- if (value == null || value.equals("")) {
- throw new IllegalArgumentException("Initial value must not be null or empty");
- }
-
- // @TODO: Add a check for maximum length of the value here.
-
- // Store the chars in the value as Characters in a Vector,
- // validating each character to identify whether it falls within
- // the provided sequence.
- //
- // (Since we're performing casts from char to Character, we can't just
- // use Arrays.asList() to copy the initial array to a Vector.)
- char[] chars = value.toCharArray();
- char ch;
- Vector v = new Vector<Character>();
- for (int i = 0; i < chars.length; i++) {
-
- // If the character falls within the range bounded by the start and end
- // characters, copy it to the Vector.
- ch = chars[i];
- if (ch >= this.startChar && ch <= this.endChar) {
- v.add(new Character(ch));
- // Otherwise, we've detected a character not in the sequence.
- } else {
- throw new IllegalArgumentException("character " + "\'" + ch + "\'" + " is not valid");
- }
-
- }
-
- // Set the current value.
- this.currentValue = new Vector<Character>(v);
-
- }
-
- // Reset the current value to the initial value.
- public synchronized void resetID() {
- Collections.copy(this.currentValue, this.initialValue);
- }
-
-
- // Returns the next alphabetic ID in the sequence.
- //
- // Currently, the number of characters auto-expands as the
- // value of the most significant character rolls over.
- // E.g. a call to getNextID(), where the current ID is "z",
- // auto-expands to "aa", and "ZZ" auto-expands to "AAA".
- //
- // See the TODOs at the top of this class for additional
- // functionality that needs to be implemented.
- public synchronized String nextID() {
-
- // Get next values for each character, from right to left
- // (least significant to most significant).
- boolean expandIdentifier = false;
- int size = this.currentValue.size();
- char ch;
- for (int i = (size - 1); i >= 0; i--) {
-
- ch = this.currentValue.get(i).charValue();
-
- // When we reach the maximum value for any character,
- // 'roll over' to the minimum value in our character range.
- if (ch == this.endChar) {
- this.currentValue.set(i, Character.valueOf(this.startChar));
- // If this rollover occurs in the most significant value,
- // set a flag to later expand the size of the identifier.
- //
- // @TODO: Set another flag to enable or disable this behavior,
- // as well as a mechanism for setting the maximum expansion permitted.
- if (i == 0) {
- expandIdentifier = true;
- }
- // When we reach the most significant character whose value
- // doesn't roll over, increment that character and exit the loop.
- } else {
- ch++;
- this.currentValue.set(i, Character.valueOf(ch));
- i = -1;
- break;
- }
-
- }
-
- // If we are expanding the size of the identifier, insert a new
- // value at the most significant (leftmost) character position,
- // sliding other values to the right.
- if (expandIdentifier) {
- this.currentValue.add(0, Character.valueOf(this.startChar));
- }
-
- return getIDString(this.currentValue);
-
- }
-
- // Returns a String representation of the ID, by appending
- // the String values of each character.
- public synchronized String getIDString(Vector<Character> v) {
- StringBuffer sb = new StringBuffer();
- for ( Character ch : v ) {
- sb.append(ch.toString());
- }
- return sb.toString();
- }
-
- public synchronized boolean isValidID(String value) throws IllegalArgumentException {
-
- if ( value == null || value == "") {
- throw new IllegalArgumentException("ID to validate must not be null or empty");
- }
-
- Pattern pattern = Pattern.compile(getRegex());
- Matcher matcher = pattern.matcher(value);
- if (matcher.matches()) {
- return true;
- } else {
- return false;
- }
-
- }
-
- public synchronized String getRegex() {
- // @TODO: May need to constrain the number of alphabetic characters based
- // on a maximum value, TBA. Currently, this regex simply matches sequences
- // of one or more characters.
- String regex =
- "(" + "[" +
- String.valueOf(this.startChar) + "-" + String.valueOf(this.endChar) +
- "]+" + ")";
- return regex;
- }
-}
+++ /dev/null
- /*
- * AlphabeticIDPart
- *
- * Models a part of an identifier (ID) whose values are an alphabetic series.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-package org.collectionspace.services.id;
-
-public class AlphabeticIDPart extends IDPart {
-
- public AlphabeticIDPart() {
- super(new AlphabeticIDGenerator());
- };
-
- public AlphabeticIDPart(String baseVal) {
- super(new AlphabeticIDGenerator(baseVal));
- };
-
- public AlphabeticIDPart(String startVal, String endVal, String baseVal) {
- super(new AlphabeticIDGenerator(startVal, endVal, baseVal));
- };
-
-}
+++ /dev/null
- /*
- * IDGenerator
- *
- * Interface for a generator class that returns IDs.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Consider making this class, or a class that implements
-// this interface, abstract, in part because we're duplicating code
-// in isValidID() in multiple Generator subclasses.
-
-package org.collectionspace.services.id;
-
-public interface IDGenerator {
-
- // Returns the initial value of the ID.
- public String getInitialID();
-
- // Gets the current value of an ID.
- public String getCurrentID();
-
- // Sets the current value of an ID.
- public void setCurrentID(String value);
-
- // Resets an ID to its initial value.
- public void resetID();
-
- // Returns the next ID in the sequence, and sets
- // the current value to that ID.
- public String nextID();
-
- // Validates an ID against a pattern of generated IDs.
- public boolean isValidID(String value);
-
- // Returns a String representation of the regular expression ("regex")
- // pattern used to validate instance values of generated IDs.
- public String getRegex();
-
-}
+++ /dev/null
- /*
- * IDPart
- *
- * <p>Models a part of an identifier (ID).</p>
- *
- * <p>Some representative examples of data that can be
- * managed within IDParts include:</p>
- *
- * <ul>
- * <li>Incrementing numeric or alphabetic values</li>
- * <li>Date values</li>
- * <li>Static separators</li>
- * </ul>
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author$
- * @version $Revision$
- * $Date$
- */
-
-// @TODO: Add Javadoc comments
-
-package org.collectionspace.services.id;
-
-public abstract class IDPart {
-
- // A generator for the types of IDs that are generated by this part.
- // This generator is passed in at construction time.
- protected IDGenerator generator;
-
- // Constructor
- public IDPart(IDGenerator idGenerator) throws IllegalArgumentException {
- this.generator = idGenerator;
- }
-
- // Returns the initial value of the ID associated with this IDPart.
- public synchronized String getInitialID() {
- return generator.getInitialID();
- }
-
- // Returns the current value of the ID associated with this IDPart.
- public synchronized String getCurrentID() {
- return generator.getCurrentID();
- }
-
- // Sets the current value of the ID associated with this IDPart.
- public synchronized void setCurrentID(String value) {
- generator.setCurrentID(value);
- }
-
- // Resets the ID associated with this IDPart to its initial value.
- public synchronized void resetID() {
- generator.resetID();
- }
-
- // Returns the next ID in the sequence, and sets the current value
- // of the ID associated with this IDPart to that next ID.
- public synchronized String nextID() throws IllegalStateException {
- return generator.nextID();
- }
-
- // Validates a supplied ID against the pattern of this IDPart.
- //
- // Some IDParts may offer generic validation,
- // while others may offer per-instance valiadation
- // based on the values, series, etc. that are
- // stored within those parts.
- public synchronized boolean isValidID(String value) throws IllegalArgumentException {
- return generator.isValidID(value);
- }
-
- // Returns a String representation of the regular expression ("regex")
- // pattern used to validate instance values of this IDPart.
- public synchronized String getRegex() {
- return generator.getRegex();
- }
-
-}
+++ /dev/null
- /*
- * IDPattern
- *
- * <p>Models an identifier (ID), which consists of multiple IDParts.</p>
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-// @TODO: Catch Exceptions thrown by IDPart, then
-// reflect this in the corresponding IDPatternTest class.
-
-package org.collectionspace.services.id;
-
-import java.util.Vector;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class IDPattern {
-
- final static int MAX_ID_LENGTH = 50;
-
- private Vector<IDPart> parts = new Vector<IDPart>();
-
- // Constructor
- public IDPattern() {
- }
-
- // Constructor
- public IDPattern(Vector<IDPart> partsList) {
- if (partsList != null) {
- this.parts = partsList;
- }
- }
-
- public void add(IDPart part) {
- if (part != null) {
- this.parts.add(part);
- }
- }
-
- // Returns the current value of this ID.
- public synchronized String getCurrentID() {
- StringBuffer sb = new StringBuffer(MAX_ID_LENGTH);
- for (IDPart part : this.parts) {
- sb.append(part.getCurrentID());
- }
- return sb.toString();
- }
-
- // Returns the current value of this ID, given a
- // supplied ID that partly matches the pattern.
- //
- // If the supplied ID fully matches the pattern,
- // will return the supplied ID.
- //
- // However, if the supplied ID is a partial ID, which
- // partly "stem-matches" the pattern but does not
- // ully match the pattern, will return the partial ID with
- // its next ID component appended. The next ID component
- // will be set to its initial value.
- //
- // Examples:
- // * 2009.5." becomes "2009.5.1", in a case where the
- // next ID component is an incrementing numeric IDPart.
- // * "E55-" becomes "E55-a", where the next ID component
- // is an incrementing alphabetic IDPart.
- public synchronized String getCurrentID(String value)
- throws IllegalArgumentException {
-
- if (value == null) return value;
-
- // Try ever-larger stem matches against the supplied value,
- // by incrementally appending each part's regex, until no
- // (more) matches are found.
- //
- // In so doing, build a subset of this IDPattern's regex
- // that fully matches the supplied value.
- Pattern pattern = null;
- Matcher matcher = null;
- int matchedParts = 0;
- StringBuffer regexToTry = new StringBuffer();
- StringBuffer regex = new StringBuffer();
- for (IDPart partToTryMatching : this.parts) {
- regexToTry.append(partToTryMatching.getRegex());
- pattern = Pattern.compile(regexToTry.toString());
- matcher = pattern.matcher(value);
- // If a stem match was found on the current regex,
- // store a count of matched IDParts and the regex pattern
- // that has matched to this point.
- if (matcher.lookingAt()) {
- matchedParts++;
- regex.append(partToTryMatching.getRegex());
- // Otherwise, exit the loop.
- } else {
- break;
- }
- }
-
- // If the supplied ID doesn't partly match the pattern,
- // throw an Exception.
- if (matchedParts == 0) {
- throw new IllegalArgumentException("Supplied ID does not match this ID pattern.");
- }
-
- pattern = Pattern.compile(regex.toString());
- matcher = pattern.matcher(value);
-
- // If the supplied ID doesn't match the pattern built above,
- // throw an Exception. (This error condition should likely
- // never be reached, but it's here as a guard.)
- if (! matcher.matches()) {
- throw new IllegalArgumentException("Supplied ID does not match this ID pattern.");
- }
-
- // Otherwise, if the supplied ID matches the pattern,
- // split the ID into its components and store those
- // values in each of the pattern's IDParts.
- IDPart currentPart;
- for (int i = 1; i <= matchedParts; i++) {
- currentPart = this.parts.get(i - 1);
- currentPart.setCurrentID(matcher.group(i));
- }
-
- // Obtain the initial value of the next IDPart, and
- // set the current value of that part to its initial value.
- //
- // If the supplied ID fully matches the pattern, there will
- // be no 'next' IDPart, and we must catch that Exception below.
- int nextPartNum = matchedParts;
- try {
- String initial = this.parts.get(nextPartNum).getInitialID();
- this.parts.get(nextPartNum).setCurrentID(initial);
- // Increment the number of matched parts to reflect the
- // addition of this next IDPart.
- matchedParts++;
- } catch (ArrayIndexOutOfBoundsException e ) {
- // Do nothing here; we simply won't increment
- // the number of matched parts, used in the loop below.
- }
-
- // Call the getCurrentID() method on each of the
- // supplied IDParts, as well as on the added IDPart
- // whose initial value was just obtained, if any.
- StringBuffer sb = new StringBuffer();
- for (int i = 1; i <= matchedParts; i++) {
- sb.append(this.parts.get(i - 1).getCurrentID());
- }
-
- return sb.toString();
-
- }
-
- // Returns the next value of this ID, and sets the current value to that ID.
- public synchronized String nextID() throws IllegalStateException {
-
- // Obtain the last (least significant) IDPart,
- // and call its nextID() method, which will
- // concurrently set the current value of that ID
- // to the next ID.
- int lastPartNum = this.parts.size() - 1;
- this.parts.get(lastPartNum).nextID();
-
- // Then call the getCurrentID() method on all of the IDParts
- StringBuffer sb = new StringBuffer(MAX_ID_LENGTH);
- for (IDPart part : this.parts) {
- sb.append(part.getCurrentID());
- }
-
- return sb.toString();
-
- }
-
- // Returns the next value of this ID, given a
- // supplied ID that entirely matches the pattern,
- // and sets the current value to that ID.
- public synchronized String nextID(String value)
- throws IllegalStateException, IllegalArgumentException {
-
- if (value == null) {
- throw new IllegalArgumentException("Supplied ID cannot be null.");
- }
-
- Pattern pattern = Pattern.compile(getRegex());
- Matcher matcher = pattern.matcher(value);
-
- // If the supplied ID doesn't entirely match the pattern,
- // throw an Exception.
- if (! matcher.matches()) {
- throw new IllegalArgumentException("Supplied ID does not match this ID pattern.");
- }
-
- // Otherwise, if the supplied ID entirely matches the pattern,
- // split the ID into its components and store those values in
- // each of the pattern's IDParts.
- IDPart currentPart;
- for (int i = 1; i <= (matcher.groupCount() - 1); i++) {
- currentPart = this.parts.get(i - 1);
- currentPart.setCurrentID(matcher.group(i));
- }
-
- // Obtain the last (least significant) IDPart,
- // and call its nextID() method, which will
- // concurrently set the current value of that ID
- // to the next ID.
- //
- // @TODO: This code is duplicated in nextID(), above,
- // and thus we may want to refactor this.
- int lastPartNum = this.parts.size() - 1;
- this.parts.get(lastPartNum).nextID();
-
- // Then call the getCurrentID() method on all of the IDParts
- StringBuffer sb = new StringBuffer();
- for (IDPart part : this.parts) {
- sb.append(part.getCurrentID());
- }
-
- return sb.toString();
-
- }
-
- // Validates a provided ID against the pattern.
- //
- // @TODO May potentially throw at least one pattern-related exception;
- // we'll need to catch and handle this.
- public synchronized boolean isValidID(String value) {
-
- if (value == null) return false;
-
- Pattern pattern = Pattern.compile(getRegex());
- Matcher matcher = pattern.matcher(value);
- if (matcher.matches()) {
- return true;
- } else {
- return false;
- }
-
- }
-
- // Returns a regular expression to validate this ID.
- public synchronized String getRegex() {
- StringBuffer sb = new StringBuffer();
- for (IDPart part : this.parts) {
- sb.append(part.getRegex());
- }
- return sb.toString();
- }
-
-}
+++ /dev/null
-/*
- * NumericIDGenerator
- *
- * <p>An identifier generator that generates an incrementing ID as a
- * series of numeric values, beginning from an initial value.</p>
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-// @TODO: Need to set and enforce maximum value.
-
-package org.collectionspace.services.id;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class NumericIDGenerator implements IDGenerator {
-
- final static private int DEFAULT_MAX_LENGTH = 6;
- private int maxLength = DEFAULT_MAX_LENGTH;
-
- final static private int DEFAULT_INITIAL_VALUE = 1;
- private long initialValue = DEFAULT_INITIAL_VALUE;
- private long currentValue = DEFAULT_INITIAL_VALUE;
-
- // Constructor using defaults for initial value and maximum length.
- public NumericIDGenerator() throws IllegalArgumentException {
- this(Integer.toString(DEFAULT_INITIAL_VALUE), Integer.toString(DEFAULT_MAX_LENGTH));
- }
-
- // Constructor using default maximum length.
- public NumericIDGenerator(String initialValue) throws IllegalArgumentException {
- this(initialValue, Integer.toString(DEFAULT_MAX_LENGTH));
- }
-
- // Constructor.
- public NumericIDGenerator(String initialValue, String maxLength)
- throws IllegalArgumentException {
-
- try {
- long l = Long.parseLong(initialValue.trim());
- if ( l < 0 ) {
- throw new IllegalArgumentException("Initial ID value should be zero (0) or greater");
- }
- this.currentValue = l;
- this.initialValue = l;
- } catch (NullPointerException e) {
- throw new IllegalArgumentException("Initial ID value should not be null");
- } catch (NumberFormatException e) {
- throw new IllegalArgumentException("Initial ID value must be parseable as a number");
- }
-
- try {
- this.maxLength = Integer.parseInt(maxLength);
- } catch (NumberFormatException e) {
- throw new IllegalArgumentException("Maximum ID length must be parseable as a number");
- }
-
- }
-
- public synchronized String getInitialID() {
- return Long.toString(this.initialValue);
- }
-
- public synchronized String getCurrentID() {
- return Long.toString(this.currentValue);
- }
-
- // Sets the current value of the ID.
- public synchronized void setCurrentID(String value) throws IllegalArgumentException {
-
- // @TODO Much of this code is copied from the main constructor,
- // and may be ripe for refactoring.
- try {
- long l = Long.parseLong(value.trim());
- if ( l < 0 ) {
- throw new IllegalArgumentException("Initial ID value should be zero (0) or greater");
- }
- this.currentValue = l;
- this.initialValue = l;
- } catch (NullPointerException e) {
- throw new IllegalArgumentException("ID value should not be null");
- } catch (NumberFormatException e) {
- throw new IllegalArgumentException("ID value must be parseable as a number");
- }
-
- // @TODO An expedient; we may need to check the String length of the
- // provided ID and calculate a maximum length here.
- this.maxLength = DEFAULT_MAX_LENGTH;
- }
-
- public synchronized void resetID() {
- this.currentValue = this.initialValue;
- }
-
- // Returns the next ID in the sequence, and sets the current value to that ID.
- public synchronized String nextID() throws IllegalStateException {
- this.currentValue++;
- String nextID = Long.toString(this.currentValue);
- if (nextID.length() > this.maxLength) {
- throw new IllegalStateException("Next ID cannot exceed maximum length");
- }
- return nextID;
- }
-
- public synchronized boolean isValidID(String value) {
-
- if ( value == null || value == "") {
- return false;
- }
-
- Pattern pattern = Pattern.compile(getRegex());
- Matcher matcher = pattern.matcher(value);
- if (matcher.matches()) {
- return true;
- } else {
- return false;
- }
-
- }
-
- public synchronized String getRegex() {
- String regex = "(" + "\\d" + "{1," + Integer.toString(this.maxLength) + "}" + ")";
- return regex;
- }
-
-}
+++ /dev/null
- /*
- * NumericIDPart
- *
- * Models a part of an identifier (ID) whose values come from an
- * incrementing numeric series, with those values represented as
- * String objects.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-package org.collectionspace.services.id;
-
-public class NumericIDPart extends IDPart {
-
- public NumericIDPart() throws IllegalArgumentException {
- super(new NumericIDGenerator());
- };
-
- // Store the appropriate Numeric ID generator and the base value for this part.
- public NumericIDPart(String baseVal) throws IllegalArgumentException {
- super(new NumericIDGenerator(baseVal));
- };
-
- // Store the appropriate Numeric ID generator, and the base value
- // and maximum length for this part.
- public NumericIDPart(String baseVal, String maxLength) throws IllegalArgumentException {
- super(new NumericIDGenerator(baseVal, maxLength));
- };
-
-}
+++ /dev/null
-/*
- * StringIDGenerator
- *
- * <p>An identifier generator that stores and returns a static String.</p>
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-// @TODO: Need to set and enforce maximum String length.
-
-package org.collectionspace.services.id;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.regex.PatternSyntaxException;
-
-public class StringIDGenerator implements IDGenerator {
-
- private String initialValue = null;
- private String currentValue = null;
-
- public StringIDGenerator(String initialValue) throws IllegalArgumentException {
-
- if ( initialValue == null || initialValue == "") {
- throw new IllegalArgumentException("Initial ID value must not be null or empty");
- }
-
- this.initialValue = initialValue;
- this.currentValue = initialValue;
-
- }
-
- public synchronized String getInitialID() {
- return this.initialValue;
- }
-
- public synchronized String getCurrentID() {
- return this.currentValue;
- }
-
- public synchronized void setCurrentID(String value) throws IllegalArgumentException {
- if ( initialValue == null || initialValue == "") {
- throw new IllegalArgumentException("ID value must not be null or empty");
- }
- this.currentValue = value;
- }
-
- public synchronized void resetID() {
- // Do nothing
- }
-
- public synchronized String nextID() {
- return this.currentValue;
- }
-
- public synchronized boolean isValidID(String value) throws IllegalArgumentException {
-
- if ( value == null || value == "") {
- throw new IllegalArgumentException("ID to validate must not be null or empty");
- }
-
- Pattern pattern = Pattern.compile(getRegex());
- Matcher matcher = pattern.matcher(value);
- if (matcher.matches()) {
- return true;
- } else {
- return false;
- }
-
- }
-
- public synchronized String getRegex() {
-
- String initial = this.initialValue;
-
- // Escape or otherwise modify various characters that have
- // significance in regular expressions.
- //
- // @TODO Test these thoroughly, add processing of more
- // special characters as needed.
-
- // Escape un-escaped period/full stop characters.
- Pattern pattern = Pattern.compile("([^\\\\]{0,1})\\.");
- Matcher matcher = pattern.matcher(initial);
- String escapedInitial = matcher.replaceAll("$1\\\\.");
-
- String regex = "(" + escapedInitial + ")";
- return regex;
- }
-
-}
+++ /dev/null
- /*
- * StringIDGenerator
- *
- * Models a part of an identifier (ID) whose values are an alphabetic series.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-package org.collectionspace.services.id;
-
-public class StringIDPart extends IDPart {
-
- public StringIDPart(String baseVal) {
- super(new StringIDGenerator(baseVal));
- };
-
-}
+++ /dev/null
-/*
- * YearIDGenerator
- *
- * <p>An identifier generator that stores and returns the current year
- * as a String object.</p>
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-// @TODO: Need to understand and reflect time zone issues;
-// what happens when a year rollover occurs:
-// - In the time zone of the end user.
-// - In the time zone of the museum or other institution.
-// - In the time zone of the physical server where the code is hosted.
-
-// NOTE: This class currently hard-codes the assumption that the
-// Gregorian Calendar system is in use.
-//
-// We may wish to use the Joda-Time framework if handling of
-// additional calendar systems is needed, or additional treatment
-// of time zones is warranted:
-// http://joda-time.sourceforge.net/
-//
-// There may also be a need to have a structured set of date-time
-// classes related to identifier generation.
-
-package org.collectionspace.services.id;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class YearIDGenerator implements IDGenerator {
-
- private String initialValue = null;
- private String currentValue = null;
-
- public YearIDGenerator() throws IllegalArgumentException {
-
- String currentYear = getCurrentYear();
- this.initialValue = currentYear;
- this.currentValue = currentYear;
-
- }
-
- public YearIDGenerator(String initialValue) throws IllegalArgumentException {
-
- if ( initialValue == null || initialValue == "") {
- throw new IllegalArgumentException("Initial ID value must not be null or empty");
- }
-
- // @TODO: Add regex-based validation here, by calling isValidID().
- // Consider implications for Internationalization when doing so.
-
- this.initialValue = initialValue;
- this.currentValue = initialValue;
-
- }
-
- public synchronized String getInitialID() {
- return this.initialValue;
- }
-
- public synchronized String getCurrentID() {
- return this.currentValue;
- }
-
- // Sets the current value.
- public synchronized void setCurrentID(String value) throws IllegalArgumentException {
-
- // @TODO This code is copied from the main constructor,
- // and thus there may be an opportunity for refactoring.
-
- if ( value == null || value == "") {
- throw new IllegalArgumentException("ID value must not be null or empty");
- }
-
- // @TODO: Add regex-based validation here, by calling isValidID().
- // Consider implications for Internationalization when doing so.
-
- this.currentValue = value;
-
- }
-
- public synchronized void resetID() {
- this.currentValue = this.initialValue;
- }
-
- // @TODO: We'll need to decide what a "next" ID means in the context of:
- // - An initially supplied value.
- // - A year value that has not changed from its previous value.
- // - A year value that has changed, as a result of a rollover
- // to a new instant in time.
- public synchronized String nextID() {
- return this.currentValue;
- }
-
- public String getCurrentYear() {
- Calendar cal = GregorianCalendar.getInstance();
- int y = cal.get(Calendar.YEAR);
- return Integer.toString(y);
- }
-
- public synchronized boolean isValidID(String value) throws IllegalArgumentException {
-
- if ( value == null || value == "") {
- throw new IllegalArgumentException("ID to validate must not be null or empty");
- }
-
- Pattern pattern = Pattern.compile(getRegex());
- Matcher matcher = pattern.matcher(value);
- if (matcher.matches()) {
- return true;
- } else {
- return false;
- }
-
- }
-
- public synchronized String getRegex() {
- // NOTE: Currently hard-coded to accept only a range of
- // four-digit Gregorian Calendar year dates.
- String regex = "(\\d{4})";
- return regex;
- }
-
-}
+++ /dev/null
- /*
- * YearIDGenerator
- *
- * Models a part of an identifier (ID) whose value is the current year
- * or a supplied year.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-// @TODO: Add Javadoc comments
-
-package org.collectionspace.services.id;
-
-public class YearIDPart extends IDPart {
-
- public YearIDPart() {
- super(new YearIDGenerator());
- };
-
- public YearIDPart(String baseVal) {
- super(new YearIDGenerator(baseVal));
- };
-
-}
+++ /dev/null
-/*
- * AlphabeticIDPartTest
- *
- * Test class for AlphabeticIDPart.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-package org.collectionspace.services.id;
-
-import static org.junit.Assert.fail;
-import junit.framework.TestCase;
-
-public class AlphabeticIDPartTest extends TestCase {
-
- IDPart part;
-
- public void testnextIDLowercase() {
-
- part = new AlphabeticIDPart("a");
- assertEquals("b", part.nextID());
- assertEquals("c", part.nextID());
-
- part = new AlphabeticIDPart("x");
- assertEquals("y", part.nextID());
- assertEquals("z", part.nextID());
-
-}
-
- public void testnextIDLowercase2Chars() {
-
- part = new AlphabeticIDPart("aa");
- assertEquals("ab", part.nextID());
- assertEquals("ac", part.nextID());
-
- part = new AlphabeticIDPart("zx");
- assertEquals("zy", part.nextID());
- assertEquals("zz", part.nextID());
-
- }
-
- public void testnextIDLowercase2CharsRolloverFirst() {
-
- part = new AlphabeticIDPart("ay");
- assertEquals("az", part.nextID());
- assertEquals("ba", part.nextID());
- assertEquals("bb", part.nextID());
-
- }
-
- public void testnextIDUppercase() {
-
- part = new AlphabeticIDPart("A", "Z", "A");
- assertEquals("B", part.nextID());
- assertEquals("C", part.nextID());
-
- part = new AlphabeticIDPart("A", "Z", "X");
- assertEquals("Y", part.nextID());
- assertEquals("Z", part.nextID());
-
-}
-
- public void testnextIDUppercase2Chars() {
-
- part = new AlphabeticIDPart("A", "Z", "AA");
- assertEquals("AB", part.nextID());
- assertEquals("AC", part.nextID());
-
- part = new AlphabeticIDPart("A", "Z", "ZX");
- assertEquals("ZY", part.nextID());
- assertEquals("ZZ", part.nextID());
-
- }
-
- public void testnextIDUppercase2CharsRolloverFirst() {
-
- part = new AlphabeticIDPart("A", "Z", "AY");
- assertEquals("AZ", part.nextID());
- assertEquals("BA", part.nextID());
- assertEquals("BB", part.nextID());
-
- }
-
- public void testresetIDLowercase() {
-
- part = new AlphabeticIDPart("zx");
- assertEquals("zy", part.nextID());
- assertEquals("zz", part.nextID());
- part.resetID();
- assertEquals("zx", part.getCurrentID());
-
- }
-
- public void testresetIDUppercase() {
-
- part = new AlphabeticIDPart("A", "Z", "RA");
- assertEquals("RB", part.nextID());
- assertEquals("RC", part.nextID());
- part.resetID();
- assertEquals("RB", part.nextID());
-
- }
-
- public void testInitialLowercase() {
-
- part = new AlphabeticIDPart("aaa");
- assertEquals("aaa", part.getInitialID());
-
- }
-
- public void testInitialUppercase() {
-
- part = new AlphabeticIDPart("A", "Z", "AZ");
- assertEquals("AZ", part.getInitialID());
-
- }
-
- public void testCurrentLowercase() {
-
- part = new AlphabeticIDPart("aaa");
- assertEquals("aaa", part.getCurrentID());
- assertEquals("aab", part.nextID());
- assertEquals("aac", part.nextID());
- assertEquals("aac", part.getCurrentID());
- assertEquals("aad", part.nextID());
-
- }
-
- public void testCurrentUppercase() {
-
- part = new AlphabeticIDPart("A", "Z", "A");
- assertEquals("A", part.getCurrentID());
- assertEquals("B", part.nextID());
- assertEquals("C", part.nextID());
- assertEquals("C", part.getCurrentID());
- assertEquals("D", part.nextID());
-
- }
-
- public void testOverflowLowercase() {
-
- part = new AlphabeticIDPart("zx");
- assertEquals("zy", part.nextID());
- assertEquals("zz", part.nextID());
- assertEquals("aaa", part.nextID());
-
- }
-
- public void testOverflowUppercase() {
-
- part = new AlphabeticIDPart("A", "Z", "X");
- assertEquals("Y", part.nextID());
- assertEquals("Z", part.nextID());
- assertEquals("AA", part.nextID());
-
- }
-
- public void testNonAlphabeticInitialValue() {
- try {
- part = new AlphabeticIDPart("&*432");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
- }
-
- public void testNullInitialValue() {
- try {
- part = new AlphabeticIDPart(null);
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
- }
-
- public void testEmptyStringInitialValue() {
- try {
- part = new AlphabeticIDPart("");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
- }
-
- public void testAllSpaceCharsInitialValue() {
- try {
- part = new AlphabeticIDPart(" ");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
- }
-
- public void testIsValidIDDefaultSeries() {
-
- part = new AlphabeticIDPart();
-
- assertTrue(part.isValidID("a"));
- assertTrue(part.isValidID("z"));
-
- assertFalse(part.isValidID("A"));
- assertFalse(part.isValidID("123"));
-
- }
-
- public void testIsValidIDConstrainedLowerCaseSeries() {
-
- part = new AlphabeticIDPart("a", "f", "a");
-
- assertTrue(part.isValidID("a"));
- assertTrue(part.isValidID("b"));
- assertTrue(part.isValidID("f"));
-
- assertFalse(part.isValidID("g"));
- assertFalse(part.isValidID("z"));
- assertFalse(part.isValidID("A"));
- assertFalse(part.isValidID("123"));
-
- }
-
- public void testIsValidIDConstrainedUppercaseSeries() {
-
- part = new AlphabeticIDPart("A", "F", "A");
-
- assertTrue(part.isValidID("A"));
- assertTrue(part.isValidID("B"));
- assertTrue(part.isValidID("F"));
-
- assertFalse(part.isValidID("G"));
- assertFalse(part.isValidID("Z"));
- assertFalse(part.isValidID("a"));
- assertFalse(part.isValidID("123"));
-
- }
-
- // @TODO: Add more tests of boundary conditions, exceptions ...
-
-}
+++ /dev/null
-/*
- * IDPatternTest
- *
- * Test class for IDPattern.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-package org.collectionspace.services.id;
-
-import static org.junit.Assert.fail;
-import java.util.Vector;
-import junit.framework.TestCase;
-
-public class IDPatternTest extends TestCase {
-
- IDPattern pattern;
- IDPart part;
-
- // Note: tests may fail with IllegalArgumentException
- // if any initialization of new IDParts fails
- // due to invalid arguments passed to their constructors.
-
- public void testCurrentIDViaVector() {
-
- Vector parts = new Vector();
- parts.add(new YearIDPart("2009"));
- parts.add(new StringIDPart("."));
- parts.add(new NumericIDPart("1"));
- parts.add(new StringIDPart("-"));
- parts.add(new AlphabeticIDPart("a"));
- pattern = new IDPattern(parts);
- assertEquals("2009.1-a", pattern.getCurrentID());
-
- }
-
- public void testCurrentIDViaAdd() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- pattern.add(new StringIDPart("-"));
- pattern.add(new AlphabeticIDPart("a"));
- assertEquals("2009.1-a", pattern.getCurrentID());
-
- }
-
- public void testCurrentIDWithPartialSuppliedID() {
-
- // @TODO: Temporary for testing: ascertain regex patterns
-
- pattern = new IDPattern();
- pattern.add(new StringIDPart("E"));
- pattern.add(new NumericIDPart("1"));
- assertEquals("E1", pattern.getCurrentID("E"));
- assertEquals("E2", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart());
- pattern.add(new StringIDPart("."));
- assertEquals("2009.", pattern.getCurrentID("2009"));
- assertEquals("2009.", pattern.nextID());
- assertEquals("2010.", pattern.getCurrentID("2010"));
- assertEquals("2010.", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart());
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- assertEquals("2009.1", pattern.getCurrentID("2009."));
- assertEquals("2009.2", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart());
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("55"));
- assertEquals("2010.55", pattern.getCurrentID("2010."));
- assertEquals("2010.56", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart());
- assertEquals("2009.1", pattern.getCurrentID("2009."));
- assertEquals("2009.2", pattern.nextID());
- // Test a repeat of the last two operations.
- assertEquals("2009.1", pattern.getCurrentID("2009."));
- assertEquals("2009.2", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- pattern.add(new StringIDPart("-"));
- pattern.add(new AlphabeticIDPart("a"));
- assertEquals("2009.1-a", pattern.getCurrentID("2009.1-"));
- assertEquals("2009.1-b", pattern.nextID());
- assertEquals("2009.3-a", pattern.getCurrentID("2009.3-"));
-
- }
-
- public void testCurrentIDWithFullSuppliedID() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("55"));
- assertEquals("2009.55", pattern.getCurrentID("2009.55"));
- assertEquals("2009.56", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- pattern.add(new StringIDPart("-"));
- pattern.add(new AlphabeticIDPart("a"));
- assertEquals("2009.1-a", pattern.getCurrentID("2009.1-a"));
- assertEquals("2009.1-b", pattern.nextID());
-
- }
-
- public void testNextID() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- assertEquals("2009.2", pattern.nextID());
- assertEquals("2009.3", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- pattern.add(new StringIDPart("-"));
- pattern.add(new AlphabeticIDPart("a"));
- assertEquals("2009.1-b", pattern.nextID());
- assertEquals("2009.1-c", pattern.nextID());
-
- pattern = new IDPattern();
- pattern.add(new StringIDPart("T"));
- pattern.add(new NumericIDPart("1005"));
- assertEquals("T1006", pattern.nextID());
- assertEquals("T1007", pattern.nextID());
-
- }
-
- public void testNextIDWithConstantStringID() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- pattern.add(new StringIDPart("-"));
- assertEquals("2009.1-", pattern.nextID());
- assertEquals("2009.1-", pattern.nextID());
-
- }
-
- public void testNextIDWithSuppliedID() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- assertEquals("2009.2", pattern.nextID("2009.1"));
- assertEquals("2009.3", pattern.nextID("2009.2"));
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- pattern.add(new StringIDPart("-"));
- pattern.add(new AlphabeticIDPart("a"));
- assertEquals("2009.1-b", pattern.nextID("2009.1-a"));
- assertEquals("2009.3-c", pattern.nextID("2009.3-b"));
-
- }
-
- public void testEmptyPartsListCurrentID() {
-
- pattern = new IDPattern();
- assertEquals("", pattern.getCurrentID());
-
- }
-
- public void testIsValidIDYearPattern() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
-
- assertTrue(pattern.isValidID("2009"));
- assertTrue(pattern.isValidID("5555"));
-
- assertFalse(pattern.isValidID("456"));
- assertFalse(pattern.isValidID("10000"));
-
- }
-
-
- public void testGetRegex() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
- assertEquals("(\\d{4})(\\.)(\\d{1,6})", pattern.getRegex());
-
- }
-
- public void testIsValidIDYearSeparatorItemPattern() {
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("."));
- pattern.add(new NumericIDPart("1"));
-
- assertTrue(pattern.isValidID("2009.1"));
- assertTrue(pattern.isValidID("5555.55"));
-
- assertFalse(pattern.isValidID("456.1"));
- assertFalse(pattern.isValidID("2009-1"));
- assertFalse(pattern.isValidID("2009.a"));
- assertFalse(pattern.isValidID("2009-a"));
- assertFalse(pattern.isValidID("non-pattern conforming text"));
-
- pattern = new IDPattern();
- pattern.add(new YearIDPart("2009"));
- pattern.add(new StringIDPart("ZZ.AND."));
- pattern.add(new NumericIDPart("1"));
-
- assertTrue(pattern.isValidID("2009ZZ.AND.1"));
- assertFalse(pattern.isValidID("2009ZZ-AND-1"));
-
- }
-
- // @TODO: Add more tests of boundary conditions, exceptions ...
-
-}
+++ /dev/null
-/*
- * NumericIDPartTest
- *
- * Test class for NumericIDPart.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-package org.collectionspace.services.id;
-
-import static org.junit.Assert.fail;
-import junit.framework.TestCase;
-
-public class NumericIDPartTest extends TestCase {
-
- IDPart part;
-
- public void testNextID() {
-
- part = new NumericIDPart("0");
- assertEquals("1", part.nextID());
- assertEquals("2", part.nextID());
- assertEquals("3", part.nextID());
-
- part = new NumericIDPart("25");
- assertEquals("26", part.nextID());
- assertEquals("27", part.nextID());
- assertEquals("28", part.nextID());
-
- }
-
- public void testNextIDOverflow() {
-
- try {
- part = new NumericIDPart("997", "3");
- assertEquals("998", part.nextID());
- assertEquals("999", part.nextID());
- assertEquals("1000", part.nextID());
- fail("Should have thrown IllegalStateException here");
- } catch (IllegalStateException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- // Tests default MAX_LENGTH value of 6 decimal places
- try {
- part = new NumericIDPart("999997");
- assertEquals("999998", part.nextID());
- assertEquals("999999", part.nextID());
- assertEquals("1000000", part.nextID());
- fail("Should have thrown IllegalStateException here");
- } catch (IllegalStateException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testresetID() {
-
- part = new NumericIDPart("25");
- assertEquals("26", part.nextID());
- assertEquals("27", part.nextID());
- assertEquals("28", part.nextID());
- part.resetID();
- assertEquals("26", part.nextID());
-
- }
-
- public void testInitialID() {
-
- part = new NumericIDPart("0");
- assertEquals("0", part.getInitialID());
-
- part = new NumericIDPart("25");
- assertEquals("25", part.getInitialID());
-
- }
-
- public void testCurrentID() {
-
- part = new NumericIDPart("0");
- assertEquals("0", part.getCurrentID());
- assertEquals("1", part.nextID());
- assertEquals("2", part.nextID());
- assertEquals("2", part.getCurrentID());
- assertEquals("3", part.nextID());
-
- part = new NumericIDPart("25");
- assertEquals("25", part.getCurrentID());
-
- }
-
- public void testNullInitialValue() {
-
- try {
- part = new NumericIDPart(null);
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testNonLongParseableInitialValue() {
-
- try {
- part = new NumericIDPart("not a long parseable value");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testNonLongParseableMaxLength() {
-
- try {
- part = new NumericIDPart("1", "not an int parseable value");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testIsValidID() {
-
- part = new NumericIDPart("1");
- assertTrue(part.isValidID("1"));
-
- part = new NumericIDPart("1");
- assertTrue(part.isValidID("123"));
-
- part = new NumericIDPart("1");
- assertTrue(part.isValidID("123456"));
-
- part = new NumericIDPart("1");
- assertFalse(part.isValidID("1234567"));
-
- part = new NumericIDPart("1", "3");
- assertTrue(part.isValidID("123"));
-
- part = new NumericIDPart("1", "3");
- assertFalse(part.isValidID("1234"));
-
- part = new NumericIDPart("1");
- assertFalse(part.isValidID("not a parseable long"));
-
- part = new NumericIDPart("1", "3");
- assertFalse(part.isValidID("not a parseable long"));
-
- }
-
- // @TODO: Add more tests of boundary conditions, exceptions ...
-
-}
+++ /dev/null
-/*
- * StringIDPartTest
- *
- * Test class for StringIDPart.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-package org.collectionspace.services.id;
-
-import static org.junit.Assert.fail;
-import junit.framework.TestCase;
-
-public class StringIDPartTest extends TestCase {
-
- IDPart part;
-
- public void testNextID() {
- part = new StringIDPart("XYZ");
- assertEquals("XYZ", part.nextID());
- }
-
- public void testresetID() {
-
- part = new StringIDPart(".");
- assertEquals(".", part.nextID());
- part.resetID();
- assertEquals(".", part.nextID());
-
- }
-
- public void testInitialID() {
- part = new StringIDPart("-");
- assertEquals("-", part.getInitialID());
- }
-
- public void testCurrentID() {
- part = new StringIDPart("- -");
- assertEquals("- -", part.getCurrentID());
- }
-
- public void testNullInitialValue() {
-
- try {
- part = new StringIDPart(null);
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testEmptyInitialValue() {
-
- try {
- part = new StringIDPart("");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testIsValidID() {
-
- part = new StringIDPart("-");
- assertTrue(part.isValidID("-"));
-
- part = new StringIDPart("-");
- assertFalse(part.isValidID("--"));
-
- // Test chars with special meaning in regexes.
- part = new StringIDPart(".");
- assertTrue(part.isValidID("."));
-
- part = new StringIDPart("TE");
- assertTrue(part.isValidID("TE"));
-
- part = new StringIDPart("TE");
- assertFalse(part.isValidID("T"));
-
- part = new StringIDPart("T");
- assertFalse(part.isValidID("TE"));
-
- }
-
- public void testNullValidationValue() {
-
- try {
- part = new StringIDPart("-");
- assertFalse(part.isValidID(null));
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
- // @TODO: Add more tests of boundary conditions, exceptions ...
-
-}
+++ /dev/null
-/*
- * YearIDPartTest
- *
- * Test class for YearIDPart.
- *
- * Copyright 2009 Regents of the University of California
- *
- * Licensed under the Educational Community License (ECL), Version 2.0.
- * You may not use this file except in compliance with this License.
- *
- * You may obtain a copy of the ECL 2.0 License at
- * https://source.collectionspace.org/collection-space/LICENSE.txt
- *
- * @author $Author: aron $
- * @version $Revision: 267 $
- * $Date: 2009-06-19 19:03:38 -0700 (Fri, 19 Jun 2009) $
- */
-
-package org.collectionspace.services.id;
-
-import static org.junit.Assert.fail;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import junit.framework.TestCase;
-
-public class YearIDPartTest extends TestCase {
-
- IDPart part;
- String year = "1999";
-
- public String getCurrentYear() {
- Calendar cal = GregorianCalendar.getInstance();
- int y = cal.get(Calendar.YEAR);
- return Integer.toString(y);
- }
-
- public void testCurrentID() {
-
- part = new YearIDPart();
- assertEquals(getCurrentYear(), part.getCurrentID());
-
- part = new YearIDPart(year);
- assertEquals(year, part.getCurrentID());
-
- }
-
-
-/*
- public void testNextID() {
- part = new YearIDPart("XYZ");
- assertEquals("XYZ", part.nextID());
- }
-
- public void testresetID() {
-
- part = new YearIDPart(".");
- assertEquals(".", part.nextID());
- part.resetID();
- assertEquals(".", part.nextID());
-
- }
-
- public void testInitialID() {
- part = new YearIDPart("-");
- assertEquals("-", part.getInitialID());
- }
-
-*/
-
- public void testNullInitialValue() {
-
- try {
- part = new YearIDPart(null);
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testEmptyInitialValue() {
-
- try {
- part = new YearIDPart("");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
-
- public void testIsValidID() {
-
- part = new YearIDPart();
- assertTrue(part.isValidID("2009"));
-
- part = new YearIDPart();
- assertFalse(part.isValidID("839"));
-
- part = new YearIDPart();
- assertFalse(part.isValidID("10100"));
-
- part = new YearIDPart();
- assertFalse(part.isValidID("non-numeric value"));
-
- }
-
- public void testNullValidationValue() {
-
- try {
- part = new YearIDPart();
- assertFalse(part.isValidID(null));
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
- }
- // @TODO: Add more tests of boundary conditions, exceptions ...
-
-}
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject.xml
-
- A hypothetical, somewhat skeletal instance of an CollectionObject payload,
- represented as an XML document.
-
- This is created for the CollectionSpace system, http://www.collectionspace.org/
-
--->
-
-<collectionObject>
-
- <entity>
-
- <usageNotes>
- <!-- Optional notes about the usage and meaning of this entity go here. -->
- </usageNotes>
-
- <!-- Inspired by http://pahma.berkeley.edu/delphi/object/170594 -->
-
- <coreFields>
- <id>170594</id>
- <created></created>
- <createdBy></createdBy>
- <lastModified></lastModified>
- <lastModifiedBy></lastModifiedBy>
- </coreFields>
-
- <fields>
- <field
- systemName="objectNumber"
- displayName="object Number"
- usageNotes="In-depth notes about usage go here"
- usageHint="Tooltip-type hints go here, such as 'Primary museum ID for this item'"
- displayed="true"
- lengthHint="20em">
- <!-- Field contents go here -->
- 2-68479
- </field>
- <field
- systemName="otherNumber"
- displayName="Other number"
- usageNotes=""
- usageHint=""
- displayed="false">
- <!-- Field contents go here -->
- </field>
- <field
- systemName="briefDescription"
- displayName="Brief description"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- Conical shape, made of willow warp and weft.
- </field>
- <field
- systemName="comments"
- displayName="Comments"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- In very poor condition, flattened and broken.
- </field>
- <field
- systemName="distinguishingFeatures"
- displayName="Distinguishing features"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- Diagonal twining.
- </field>
- <field
- systemName="objectName"
- displayName="Object name"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- Basket
- </field>
- <field
- systemName="responsibleDepartment"
- displayName="Responsible department"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- </field>
- <field
- systemName="title"
- displayName="Title"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- </field>
- </fields>
-
- </entity>
-
-</collectionObject>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- CollectionObject2.xml
-
- A hypothetical, somewhat skeletal instance of an CollectionObject payload,
- represented as an XML document.
-
- (This instance uses InfoBlocks, that help group related fields into sub-sections
- of the object schema.)
-
- This document was created for the CollectionSpace system, http://www.collectionspace.org/
-
--->
-
-<collectionObject>
-
- <entity>
-
- <usageNotes>
- <!-- Optional notes about the usage and meaning of this entity go here. -->
- </usageNotes>
-
- <!-- Inspired by http://pahma.berkeley.edu/delphi/object/170594 -->
-
- <coreFields>
- <id>170594</id>
- <created></created>
- <createdBy></createdBy>
- <lastModified></lastModified>
- <lastModifiedBy></lastModifiedBy>
- </coreFields>
-
- <infoBlocks>
-
- <infoBlock blockName="basic">
-
- <fields>
- <field
- systemName="objectNumber"
- displayName="object Number"
- usageNotes="In-depth notes about usage go here"
- usageHint="Tooltip-type hints go here, such as 'Primary museum ID for this item'"
- displayed="true"
- lengthHint="20em">
- <!-- Field contents go here -->
- 2-68479
- </field>
- <field
- systemName="otherNumber"
- displayName="Other number"
- usageNotes=""
- usageHint=""
- displayed="false">
- <!-- Field contents go here -->
- </field>
- <field
- systemName="briefDescription"
- displayName="Brief description"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- Conical shape, made of willow warp and weft.
- </field>
- <field
- systemName="comments"
- displayName="Comments"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- In very poor condition, flattened and broken.
- </field>
- <field
- systemName="distinguishingFeatures"
- displayName="Distinguishing features"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- Diagonal twining.
- </field>
- <field
- systemName="objectName"
- displayName="Object name"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- Basket
- </field>
- <field
- systemName="responsibleDepartment"
- displayName="Responsible department"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- </field>
- <field
- systemName="title"
- displayName="Title"
- usageNotes=""
- usageHint=""
- displayed="true">
- <!-- Field contents go here -->
- </field>
- </fields>
- </infoBlock>
-
- <!--
- Note: This infoBlock is here to test instances with multiple blocks;
- it is *not* part of the Release 0.1 schema.
- -->
- <infoBlock blockName="locationAndMoveMentControl">
- <fields>
- <field
- systemName="currentLocation"
- displayName=""
- usageNotes="In-depth notes about usage go here"
- usageHint="Tooltip-type hints go here, such as 'Primary museum ID for this item'"
- displayed="true"
- lengthHint="20">
- <!-- Field contents go here -->
- Room 231, Shelf 5, Box 18
- </field>
- </fields>
- </infoBlock>
- </infoBlocks>
-
- </entity>
-
-</collectionObject>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject.rng
-
- A schema defining the structure of an CollectionObject entity,
- based on the generic entity schema.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
--->
-
-<element
- name="collectionObject"
- xmlns="http://relaxng.org/ns/structure/1.0">
-
- <!-- Include the generic schema for all entities. -->
- <externalRef href="entity.rng"/>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- entity.rng
-
- A generic schema defining the structure of an entity. An "entity" is a
- business object; a "noun" within the system.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
--->
-
-<element
- name="entity"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- (Optional) Informational text describing the purpose and usage
- of this entity. This field may be present or absent, and if
- present, its value may be empty or contain text.
- -->
- <optional>
- <element name="usageNotes">
- <choice>
- <empty/>
- <text/>
- </choice>
- </element>
- </optional>
-
- <!-- Include the schema for the core fields common to all entities -->
- <externalRef href="entityCoreFields.rng"/>
-
- <choice>
-
- <!--
- An entity may either contain one or more infoBlocks,
- each containing one or more fields ...
- -->
- <group>
- <element name="infoBlocks">
- <oneOrMore>
- <element name="infoBlock">
- <attribute name="blockName">
- <data type="normalizedString" />
- </attribute>
- <element name="fields">
- <oneOrMore>
- <!--
- Include the generic schema for a field (data element)
- in an entity.
- -->
- <externalRef href="entityField.rng"/>
- </oneOrMore>
- </element>
- </element> <!-- end tag for infoBlock element -->
- </oneOrMore>
- </element> <!-- end tag for infoBlocks element -->
- </group>
-
- <!--
- ... or may simply contain one or more fields, without any infoBlocks.
- -->
- <group>
- <element name="fields">
- <oneOrMore>
- <!--
- Include the generic schema for a field (data element)
- in an entity.
- -->
- <externalRef href="entityField.rng"/>
- </oneOrMore>
- </element>
- </group>
-
- <!--
- Currently, there isn't an option provided to have a mix:
- some fields contained within infoBlocks, accompanied by
- other fields that are not contained within InfoBlocks.
- -->
-
- </choice>
-
-
- <!--
- An entity may optionally contain validation rules.
-
- The content of those rules is TBD. Conceivably, they can be
- written in an XML-based rules language, or can reference in-line
- or external JavaScript code (for use within the UI layer of
- CollectionSpace), etc.
-
- One of the possible approaches to specifying validation rules
- could be to embed Schematron rules within RELAX NG schema.
- As noted in this article, this can be done by inserting
- the appropriate XML markup, in the Schematron namespace:
- either grouped together below the top-level element or,
- throughout the document, within the elements that define
- the contexts for the embedded rules:
- http://www.xml.com/pub/a/2004/02/11/relaxtron.html
-
- This page describes the support for processing embedded Schematron
- rules in Jing, James Clark's RELAX NG library for Java:
- http://www.thaiopensource.com/relaxng/jing-other.html
-
- Also, we might wish to decide whether to offer rules that are 'attached'
- to individual fields, rather than (or in addition to being)
- specified here on a per-entity basis in a 'validationRules' block.
- -->
- <optional>
- <element name="validationRules">
- <oneOrMore>
- <element name="validationRule">
- <!-- Define what goes here -->
- <text/>
- </element>
- </oneOrMore>
- </element>
- </optional>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- entityCoreFields.rng
-
- A schema defining the structure of the core fields (data elements)
- of an entity.
-
- An "entity" is a business object, or a "noun" within the system,
- defined in a separate, related schema file, "entity.rng".
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
--->
-
-<element
- name="coreFields"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
-
- <!-- ######################### -->
- <!-- ID -->
- <!-- ######################### -->
-
- <!--
- A unique system identifier (ID) for this entity record,
- as distinguished from any museum-created or other
- identifiers that might also be associated with it.
-
- Note: We may wish to think further about what this element name should be,
- to help disambiguate it from other identifiers used within the system.
- -->
- <element name="id">
- <!--
- Note: We may potentially wish to specify a regex-type pattern
- here for further validating these IDs.
- -->
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
-
- <!-- ######################### -->
- <!-- Creation -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the creation of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <element name="created">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
-
- <!-- The system Principal that created this entity record -->
- <element name="createdBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal created this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Last modification -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the last modification of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <element name="lastModified">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
-
- <!-- The system Principal that created this entity record -->
- <element name="lastModifiedBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal modified this entity while
- acting as a designate for another Principal?
- -->
-
- <!--
- Do we want multiple modification records here? That would
- allow us to carry entity payloads with their full (or selected)
- modification history, with the downside of
- -->
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- entityField.rng
-
- A schema defining structure of an individual field (or data element)
- in an entity.
-
- One or more of these entityFields may be included within an "entity",
- a generic business object defined in a separate, related schema, "entity.rng".
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
--->
-
-<element
- name="field"
- xmlns="http://relaxng.org/ns/structure/1.0"
- xmlns:a="http://relaxng.org/ns/annotation/0.9"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!-- Attributes -->
-
- <!--
- The name of this field/data element, as used internally by the system.
- See also "displayName", below.
- -->
- <attribute name="systemName">
- <data type="Name" />
- </attribute>
-
- <!--
- The name of this field/data element, as displayed in the system UI.
-
- This name may be customized to meet the needs of a deployed instance,
- internationalized, etc.
-
- If the value of this field is empty (blank), it is expected that the
- systemName, above, will be displayed in the system UI.
- -->
- <attribute name="displayName">
- <optional>
- <data type="normalizedString" />
- </optional>
- </attribute>
-
- <!-- Informational text describing the purpose and usage of this field -->
- <attribute name="usageNotes">
- <optional>
- <data type="string" />
- </optional>
- </attribute>
-
- <!-- Brief, tooltip-type help text describing the purpose and usage of this field -->
- <attribute name="usageHint">
- <optional>
- <data type="string" />
- </optional>
- </attribute>
-
- <!--
- A Boolean value indicating whether this field is to be displayed in system UI.
-
- If this attribute's value is empty (blank), its default value is set to "true".
- Since an entered value for this attribute is currently required, this default
- value may not be necessary (or ever used), but is included here nonetheless.
- -->
- <attribute
- name="displayed"
- a:defaultValue="true">
- <choice>
- <value>true</value>
- <value>false</value>
- </choice>
- </attribute>
-
- <!--
- An optional hint regarding the length of this field.
-
- This may be used for dynamically laying out fields within a forms-based
- user interface, or for similar purposes.
-
- The meaning of this field is instance-dependent, and may refer
- to a typical length, or an expected maximum length, for instance.
- It may also refer to any arbitrary measurement system, such as US-ASCII
- characters, em units or pixels.
- -->
- <optional>
- <attribute name="lengthHint">
- <data type="normalizedString" />
- </attribute>
- </optional>
-
- <!--
- A note regarding "required fields"
-
- A "required field" is a data element into which valid data must be
- entered before a new entity record, or a modification to an existing
- entity record, can be accepted and stored. A particular entity may
- have one required field, or more than one such field. In the latter
- case, each of the required fields must contain valid data before a
- new or modified record is stored.
-you're not
- There isn't currently a 'required' (or similar) attribute for the
- 'field' element, because at present we're assuming that validation
- rules will be used to define required fields.
-
- If this assumption isn't correct, we may wish to add such an attribute
- to this schema.
-
- Apropos of this point, Patrick Schmitz wrote on 2009-02-25:
- "We may have to separate the notion of what the system will require,
- and what a UI interaction will require. This allows for import of
- legacy ... data ... but can put more constraints on what folks enter."
- -->
-
- <!-- Value -->
-
- <!--
- Currently, the values of entity fields are defined as xs:String datatypes.
- -->
- <data type="string" />
-
-</element>
-
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- entityFieldAttributes.rng
-
- A schema defining structure of the attributes of an individual field
- (or data element) in an entity.
-
- These entityFieldAttributes may be included within an "entityField",
- a generic business object defined in a separate, related schema, "entity.rng".
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
--->
-
-<element
- name="field"
- xmlns="http://relaxng.org/ns/structure/1.0"
- xmlns:a="http://relaxng.org/ns/annotation/0.9"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!-- Attributes -->
-
- <!--
- The name of this field/data element, as used internally by the system.
- See also "displayName", below.
- -->
- <attribute name="systemName"
- xmlns="http://relaxng.org/ns/structure/1.0">
- <data type="Name" />
- </attribute>
-
- <!--
- The name of this field/data element, as displayed in the system UI.
-
- This name may be customized to meet the needs of a deployed instance,
- internationalized, etc.
-
- If the value of this field is empty (blank), it is expected that the
- systemName, above, will be displayed in the system UI.
- -->
- <attribute name="displayName">
- <optional>
- <data type="normalizedString" />
- </optional>
- </attribute>
-
- <!-- Informational text describing the purpose and usage of this field -->
- <attribute name="usageNotes">
- <optional>
- <data type="string" />
- </optional>
- </attribute>
-
- <!-- Brief, tooltip-type help text describing the purpose and usage of this field -->
- <attribute name="usageHint">
- <optional>
- <data type="string" />
- </optional>
- </attribute>
-
- <!--
- A Boolean value indicating whether this field is to be displayed in system UI.
-
- If this attribute's value is empty (blank), its default value is set to "true".
- Since an entered value for this attribute is currently required, this default
- value may not be necessary (or ever used), but is included here nonetheless.
- -->
- <attribute
- name="displayed"
- a:defaultValue="true">
- <data type="boolean"/>
- </attribute>
-
- <!--
- An optional hint regarding the length of this field.
-
- This may be used for dynamically laying out fields within a forms-based
- user interface, or for similar purposes.
-
- The meaning of this field is instance-dependent, and may refer
- to a typical length, or an expected maximum length, for instance.
- It may also refer to any arbitrary measurement system, such as US-ASCII
- characters, em units or pixels.
- -->
- <optional>
- <attribute name="lengthHint">
- <data type="normalizedString" />
- </attribute>
- </optional>
-
- <!--
- A note regarding "required fields"
-
- A "required field" is a data element into which valid data must be
- entered before a new entity record, or a modification to an existing
- entity record, can be accepted and stored. A particular entity may
- have one required field, or more than one such field. In the latter
- case, each of the required fields must contain valid data before a
- new or modified record is stored.
-you're not
- There isn't currently a 'required' (or similar) attribute for the
- 'field' element, because at present we're assuming that validation
- rules will be used to define required fields.
-
- If this assumption isn't correct, we may wish to add such an attribute
- to this schema.
-
- Apropos of this point, Patrick Schmitz wrote on 2009-02-25:
- "We may have to separate the notion of what the system will require,
- and what a UI interaction will require. This allows for import of
- legacy ... data ... but can put more constraints on what folks enter."
- -->
-
- <!-- Value -->
-
- <!--
- Currently, the values of entity fields are defined as xs:String datatypes.
- -->
- <data type="string" />
-
-</element>
-
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceResponse.rng
-
- A schema defining the representation of the data returned in
- response to a request. This may include a result code and
- message, as well as a block containing any arbitrary XML-based data.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
--->
-
-<grammar
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <start>
-
- <element
- name="response">
-
- <!-- ######################### -->
- <!-- Result -->
- <!-- ######################### -->
-
- <!-- The result of the operation. -->
- <element name="result">
-
- <!--
- A service-dependent result code, which must be
- at least one character in length.
- -->
- <element name="resultCode">
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <!--
- An (optional) service-dependent message,
- presumably corresponding to the result code.
- -->
- <element name="resultMessage">
- <choice>
- <empty/>
- <data type="normalizedString" />
- </choice>
- </element>
-
- </element>
-
-
- <!-- ######################### -->
- <!-- Data -->
- <!-- ######################### -->
-
- <!--
- The data returned to the caller after performing the operation.
-
- The data may be any one of the following:
- - Empty (blank);
- - Any text; or
- - Any combination of elements, each of which may have attributes,
- text nodes, and child elements.
- -->
-
- <!--
- Note: we may want to add a MIME type attribute, and to consider how to
- structure this for potentially returning multipart MIME data or the like,
- for use cases where we might need to return multiple media objects, etc.
- -->
- <element name="data">
- <choice>
- <empty/>
- <text/>
- <ref name="anyElement"/>
- </choice>
- </element>
-
- </element>
-
- </start>
-
- <!--
- See the "Name Classes" section in the RELAX NG tutorial,
- http://relaxng.org/tutorial-20011203.html#IDAFLZR
- -->
- <define name="anyElement">
- <element>
- <anyName/>
- <zeroOrMore>
- <choice>
- <attribute>
- <anyName/>
- </attribute>
- <text/>
- <ref name="anyElement"/>
- </choice>
- </zeroOrMore>
- </element>
- </define>
-
-</grammar>
-
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceResponse.xml
-
- A hypothetical instance of an serviceResponse document.
-
- This document was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
--->
-
-<!-- Note: this root element may require a namespace. -->
-<response>
- <result>
- <resultCode>1005</resultCode>
- <resultMessage></resultMessage>
- </result>
- <!--
- The 'data' element below may be empty, contain any text,
- or consist of any XML element, which may have attributes,
- text nodes, and child elements.
- -->
- <data>foo</data>
-</response>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject-full-ns.rng
-
- A schema defining the structure of an CollectionObject entity.
-
- This schema includes all of its components, rather than referring
- to them via 'externalRef' references. As such, it can be used as the
- basis for generating a W3C XML Schema (XSD) schema, via
- James Clark's Trang utility (http://http://www.thaiopensource.com/relaxng/trang.html).
- (Trang version 20081028 can't resolve such references.)
-
- As a convenience, a 'rng-to-xsd.sh' script file, which trivially wraps Trang
- to generate XSD from a RELAX NG schema, is provided elsewhere in this distribution.
-
- This schema also includes one rudimentary root namespace, scoped for the Release 0.1
- "Hello World" demo. We'll need to determine whether, and if so how, we can
- accommodate multiple namespaces to compose entity objects from various schemas,
- such as service metadata, and declarations for the default entity, a domain- or community-
- provided entity, and site- or instance-specific version of an entity.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author: aron $
- $Revision: 57 $
- $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
--->
-
-<element
- name="collectionObject"
- ns="http://collectionspace.org/hello"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
-
- <!-- ######################################################################## -->
- <!-- Service Metadata -->
- <!-- ######################################################################## -->
-
- <!--
- Data elements common to every entity object in the CollectionSpace system.
-
- This is an quickly conceived-of list for the Release 0.1 "Hello World" demo,
- and is not intended to be definitive going forward; further definition
- will be required.
- -->
-
- <element
- name="serviceMetadata">
-
- <!--
- A unique CollectionSpace system identifier (ID) for this
- entity record. This is distinguished from any museum-created
- or other identifiers that might also be associated with it.
-
- Note: We may wish to think further about what this element name should be.
- -->
- <element name="collectionSpaceId">
- <!--
- Note: We may potentially wish to specify a regex-type pattern
- here for further validating these IDs.
- -->
- <data type="string" />
- </element>
-
- <!--
- All of the data elements after this point are fully optional.
-
- It's possible we may never want or need to pass these in
- routine message payloads, and if so, this merely constitutes
- notes/documentation on a few representative types of data that
- we might additionally store as system metadata, beyond an identifier.
-
- It's also possible that we might offer a service to provide this
- system metadata for any object, so that, for instance, a client
- might be able to retrieve the full modification history for an object.
- This *may* even already be envisioned for an already defined or
- candidate service ...
- -->
-
- <!-- ######################### -->
- <!-- Creation -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the creation of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="created">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="createdBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal created this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Last modification -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the last modification of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="lastModified">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="lastModifiedBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal modified this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Valid from/to -->
- <!-- ######################### -->
-
- <!--
- Patrick mentioned the concept of 'valid to/from' timestamps.
- If this applied to entity objects, not to schema, we might
- explore that further as another possible type of system metadata.
- -->
-
- </element>
-
-
- <!-- ######################################################################## -->
- <!-- Default CollectionObject -->
- <!-- ######################################################################## -->
-
- <!-- The default CollectionSpace schema for an entity object (extremely simplified). -->
-
- <element
- name="defaultCollectionObject">
-
- <!--
- The following data elements are taken from the Basic section,
- Object ID Information sub-section, of the Object Data Entry wireframe
-
- See:
-
- http://wiki.collectionspace.org/display/collectionspace/Wireframes+-+Object+Data+Entry
- and
- http://wiki.collectionspace.org/display/collectionspace/Hello+World+(Release+0.1)+Functionality+Requirements
-
- -->
-
- <!-- Allows child elements to appear in any order -->
- <interleave>
-
- <element name="objectNumber">
- <!--
- This declaration specifies that the value of this element must never be empty (blank).
- If that's not accurate, it should be redefined, perhaps to match other elements below.
-
- Note: In a site- or instance-specific declaration - not in the default
- definition here - we might wish to specify a regex-type pattern here for
- further constraining valid object numbers.
- -->
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <optional>
- <element name="otherNumber">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="briefDescription">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="comments">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="distinguishingFeatures">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="objectName">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="responsibleDepartment">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="title">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- </interleave>
-
- </element>
-
- <!-- A domain- or community-provided schema, if available, would go here -->
-
- <!-- An site- or instance-provided schema, if available, would go here. -->
-
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject-full.rng
-
- A schema defining the structure of an CollectionObject entity.
-
- This schema includes all of its components, rather than referring
- to them via 'externalRef' references. As such, it can be used as the
- basis for generating a W3C XML Schema (XSD) schema, via
- James Clark's Trang utility (http://http://www.thaiopensource.com/relaxng/trang.html).
- (Trang version 20081028 can't resolve such references.)
-
- As a convenience, a 'rng-to-xsd.sh' script file, which trivially wraps Trang
- to generate XSD from a RELAX NG schema, is provided elsewhere in this distribution.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author: aron $
- $Revision: 57 $
- $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
--->
-
-<element
- name="collectionObject"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
-
- <!-- ######################################################################## -->
- <!-- Service Metadata -->
- <!-- ######################################################################## -->
-
- <!--
- Data elements common to every entity object in the CollectionSpace system.
-
- This is an quickly conceived-of list for the Release 0.1 "Hello World" demo,
- and is not intended to be definitive going forward; further definition
- will be required.
- -->
-
- <element
- name="serviceMetadata">
-
- <!--
- A unique CollectionSpace system identifier (ID) for this
- entity record. This is distinguished from any museum-created
- or other identifiers that might also be associated with it.
-
- Note: We may wish to think further about what this element name should be.
- -->
- <element name="collectionSpaceId">
- <!--
- Note: We may potentially wish to specify a regex-type pattern
- here for further validating these IDs.
- -->
- <data type="string" />
- </element>
-
- <!--
- All of the data elements after this point are fully optional.
-
- It's possible we may never want or need to pass these in
- routine message payloads, and if so, this merely constitutes
- notes/documentation on a few representative types of data that
- we might additionally store as system metadata, beyond an identifier.
-
- It's also possible that we might offer a service to provide this
- system metadata for any object, so that, for instance, a client
- might be able to retrieve the full modification history for an object.
- This *may* even already be envisioned for an already defined or
- candidate service ...
- -->
-
- <!-- ######################### -->
- <!-- Creation -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the creation of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="created">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="createdBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal created this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Last modification -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the last modification of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="lastModified">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="lastModifiedBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal modified this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Valid from/to -->
- <!-- ######################### -->
-
- <!--
- Patrick mentioned the concept of 'valid to/from' timestamps.
- If this applied to entity objects, not to schema, we might
- explore that further as another possible type of system metadata.
- -->
-
- </element>
-
-
- <!-- ######################################################################## -->
- <!-- Default CollectionObject -->
- <!-- ######################################################################## -->
-
- <!-- The default CollectionSpace schema for an entity object (extremely simplified). -->
-
- <element
- name="defaultCollectionObject">
-
- <!--
- The following data elements are taken from the Basic section,
- Object ID Information sub-section, of the Object Data Entry wireframe
-
- See:
-
- http://wiki.collectionspace.org/display/collectionspace/Wireframes+-+Object+Data+Entry
- and
- http://wiki.collectionspace.org/display/collectionspace/Hello+World+(Release+0.1)+Functionality+Requirements
-
- -->
-
- <!-- Allows child elements to appear in any order -->
- <interleave>
-
- <element name="objectNumber">
- <!--
- This declaration specifies that the value of this element must never be empty (blank).
- If that's not accurate, it should be redefined, perhaps to match other elements below.
-
- Note: In a site- or instance-specific declaration - not in the default
- definition here - we might wish to specify a regex-type pattern here for
- further constraining valid object numbers.
- -->
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <optional>
- <element name="otherNumber">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="briefDescription">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="comments">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="distinguishingFeatures">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="objectName">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="responsibleDepartment">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="title">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- </interleave>
-
- </element>
-
- <!-- A domain- or community-provided schema, if available, would go here -->
-
- <!-- An site- or instance-provided schema, if available, would go here. -->
-
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://collectionspace.org/hello" xmlns="http://collectionspace.org/hello"
-version="0.1">
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="serviceMetadata"/>
- <xs:element ref="defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element minOccurs="0" ref="created"/>
- <xs:element minOccurs="0" ref="createdBy"/>
- <xs:element minOccurs="0" ref="lastModified"/>
- <xs:element minOccurs="0" ref="lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="objectNumber"/>
- <xs:element minOccurs="0" ref="otherNumber"/>
- <xs:element minOccurs="0" ref="briefDescription"/>
- <xs:element minOccurs="0" ref="comments"/>
- <xs:element minOccurs="0" ref="distinguishingFeatures"/>
- <xs:element minOccurs="0" ref="objectName"/>
- <xs:element minOccurs="0" ref="responsibleDepartment"/>
- <xs:element minOccurs="0" ref="title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject-ns.xml
-
- A hypothetical, skeletal instance of an CollectionObject payload,
- represented as an XML document, in a rudimentary root namespace,
- scoped for the Release 0.1 "Hello World" demo.
-
- This is created for the CollectionSpace system, http://www.collectionspace.org/
-
- $Author: aron $
- $Revision: 509 $
- $Date: 2008-10-27 13:55:56 -0700 (Mon, 27 Oct 2008) $
-
--->
-
-<collectionObject
- xmlns="http://collectionspace.org/hello">
-
- <serviceMetadata>
-
- <!-- An entirely arbitrary examle -->
- <collectionSpaceId>org.collectionspace.797220effa5fa160</collectionSpaceId>
-
- </serviceMetadata>
-
-
- <!--
- Data below was taken from the following item in the online catalog
- of the Museum of the Moving Image in Astoria, NY:
-
- http://collection.movingimage.us/index.php?g=detail&object_id=64117
-
- The choice of this item was in turn inspired by William Gibson's short story,
- The Gernsback Continuum:
-
- http://www.americanheritage.com/articles/magazine/it/1988/1/1988_1_34.shtml
- -->
-
-
- <defaultCollectionObject>
-
- <objectNumber>1984.021.0049</objectNumber>
-
- <objectName> Radio News, vol. 10, no. 2, August 1928</objectName>
-
- <!-- Linebreaks were added to the following description for readability -->
- <briefDescription>Radio News, August 1928. The cover of this issue features an
-illustration of a man and woman watching an early "radio movie." Text on
-the cover reads, "Radio's Greatest Magazine / Radio News / August 25
-Cents / Over 200 illustrations / Edited by Hugo Gernsback / Radio Movies
-and Television for the Home / Experimenter Publishing Company, 230 Fifth
-Avenue, New York."
-
-In addition to articles about radios and radio technology, the magazine
-also contains several articles about developments in the field of
-television. The issue begins with an editorial about the future of
-television by the magazine's editor, Hugo Gernsback, which is followed
-by an article about the radio movie receiver system invented by C.
-Francis Jenkins. The article includes drawings illustrating the layout
-of the sytem.</briefDescription>
-
- </defaultCollectionObject>
-
-
-<!--
- <sampleMmiCollectionObject>
-
- <artifactClass>Books, literature, and periodicals</artifactClass>
-
- <format>Magazine</format>
-
- <material>Paper</material>
-
- <overallDimensions>
- <height>11.75</height>
- <width>8.75</width>
- <measurementUnit>in</measurementUnit>
- </overallDimensions>
-
- </sampleMmiCollectionObject>
--->
-
-</collectionObject>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://collectionspace.org/hello" xmlns:hello="http://collectionspace.org/hello">
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="hello:serviceMetadata"/>
- <xs:element ref="hello:defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="hello:collectionSpaceId"/>
- <xs:element minOccurs="0" ref="hello:created"/>
- <xs:element minOccurs="0" ref="hello:createdBy"/>
- <xs:element minOccurs="0" ref="hello:lastModified"/>
- <xs:element minOccurs="0" ref="hello:lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="hello:objectNumber"/>
- <xs:element minOccurs="0" ref="hello:otherNumber"/>
- <xs:element minOccurs="0" ref="hello:briefDescription"/>
- <xs:element minOccurs="0" ref="hello:comments"/>
- <xs:element minOccurs="0" ref="hello:distinguishingFeatures"/>
- <xs:element minOccurs="0" ref="hello:objectName"/>
- <xs:element minOccurs="0" ref="hello:responsibleDepartment"/>
- <xs:element minOccurs="0" ref="hello:title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject.rng
-
- A schema defining the structure of an CollectionObject entity.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<element
- name="collectionObject"
- xmlns="http://relaxng.org/ns/structure/1.0">
-
- <!-- Data elements common to every entity object in the CollectionSpace system. -->
- <externalRef href="serviceMetadata.rng"/>
-
- <!-- The default CollectionSpace schema for an entity object (extremely simplified). -->
- <externalRef href="defaultCollectionObject.rng"/>
-
- <!-- A reference to a domain- or community-provided schema, if available, would go here -->
-
- <!-- An example of a site- or instance-provided schema (extremely simplified). -->
- <externalRef href="sampleMmiCollectionObject.rng"/>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject.xml
-
- A hypothetical, skeletal instance of an CollectionObject payload,
- represented as an XML document.
-
- This is created for the CollectionSpace system, http://www.collectionspace.org/
-
- $Author: aron $
- $Revision: 509 $
- $Date: 2008-10-27 13:55:56 -0700 (Mon, 27 Oct 2008) $
-
--->
-
-<collectionObject>
-
- <serviceMetadata>
-
- <!-- An entirely arbitrary examle -->
- <collectionSpaceId>org.collectionspace.797220effa5fa160</collectionSpaceId>
-
- </serviceMetadata>
-
-
- <!--
- Data below was taken from the following item in the online catalog
- of the Museum of the Moving Image in Astoria, NY.
-
- http://collection.movingimage.us/index.php?g=detail&object_id=64117
-
- and in turn by William Gibson's short story, The Gernsback Continuum.
- -->
-
-
- <defaultCollectionObject>
-
- <objectNumber>1984.021.0049</objectNumber>
-
- <objectName> Radio News, vol. 10, no. 2, August 1928</objectName>
-
- <!-- Linebreaks were added to the following description for readability -->
- <briefDescription>Radio News, August 1928. The cover of this issue features an
-illustration of a man and woman watching an early "radio movie." Text on
-the cover reads, "Radio's Greatest Magazine / Radio News / August 25
-Cents / Over 200 illustrations / Edited by Hugo Gernsback / Radio Movies
-and Television for the Home / Experimenter Publishing Company, 230 Fifth
-Avenue, New York."
-
-In addition to articles about radios and radio technology, the magazine
-also contains several articles about developments in the field of
-television. The issue begins with an editorial about the future of
-television by the magazine's editor, Hugo Gernsback, which is followed
-by an article about the radio movie receiver system invented by C.
-Francis Jenkins. The article includes drawings illustrating the layout
-of the sytem.</briefDescription>
-
- </defaultCollectionObject>
-
-
- <sampleMmiCollectionObject>
-
- <artifactClass>Books, literature, and periodicals</artifactClass>
-
- <format>Magazine</format>
-
- <material>Paper</material>
-
- <overallDimensions>
- <height>11.75</height>
- <width>8.75</width>
- <measurementUnit>in</measurementUnit>
- </overallDimensions>
-
- </sampleMmiCollectionObject>
-
-
-</collectionObject>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="serviceMetadata"/>
- <xs:element ref="defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element minOccurs="0" ref="created"/>
- <xs:element minOccurs="0" ref="createdBy"/>
- <xs:element minOccurs="0" ref="lastModified"/>
- <xs:element minOccurs="0" ref="lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="objectNumber"/>
- <xs:element minOccurs="0" ref="otherNumber"/>
- <xs:element minOccurs="0" ref="briefDescription"/>
- <xs:element minOccurs="0" ref="comments"/>
- <xs:element minOccurs="0" ref="distinguishingFeatures"/>
- <xs:element minOccurs="0" ref="objectName"/>
- <xs:element minOccurs="0" ref="responsibleDepartment"/>
- <xs:element minOccurs="0" ref="title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObjects.rng
-
- A schema defining the structure of an CollectionObject collection
- (list of multiple CollectionObjects).
-
- This schema includes all of its components, rather than referring
- to them via 'externalRef' references. As such, it can be used as the
- basis for generating a W3C XML Schema (XSD) schema, via
- James Clark's Trang utility (http://http://www.thaiopensource.com/relaxng/trang.html).
- (Trang version 20081028 can't resolve such references.)
-
- As a convenience, a 'rng-to-xsd.sh' script file, which trivially wraps Trang
- to generate XSD from a RELAX NG schema, is provided elsewhere in this distribution.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author: aron $
- $Revision: 57 $
- $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
--->
-
-<element
- name="collectionObjects"
- ns="http://collectionspace.org/hello"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- Sanjay's used a different naming convention in the Person prototype,
- which would be equivalent here to "collection-object-list-item".
-
- We may want to standardize on use of CamelCase or hyphenated lowercase throughout, or
- else establish a convention for list items which is distinct from that convention.
- -->
-
- <zeroOrMore>
-
- <element
- name="collectionObjectListItem">
-
- <element name="collectionSpaceId">
- <data type="string" />
- </element>
-
- <element name="objectNumber">
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <element name="objectName">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="uri">
- <data type="anyURI" />
- </element>
-
- </element>
-
- </zeroOrMore>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObjects.xml
-
- A hypothetical, skeletal instance of an CollectionObjects list payload,
- represented as an XML document, in a rudimentary root namespace,
- scoped for the Release 0.1 "Hello World" demo.
-
- This is created for the CollectionSpace system, http://www.collectionspace.org/
-
- $Author: aron $
- $Revision: 509 $
- $Date: 2008-10-27 13:55:56 -0700 (Mon, 27 Oct 2008) $
-
--->
-
-<collectionObjects
- xmlns="http://collectionspace.org/hello">
-
- <collectionObjectListItem>
- <collectionSpaceId>org.collectionspace.797220effa5fa160</collectionSpaceId>
- <objectNumber>1984.021.0049</objectNumber>
- <objectName>Radio News, vol. 10, no. 2, August 1928</objectName>
- <uri>/collectionObjects/1984.021.0049</uri>
- </collectionObjectListItem>
-
- <collectionObjectListItem>
- <collectionSpaceId>org.collectionspace.68ac7dc8f9e743</collectionSpaceId>
- <objectNumber>1997.005.0437</objectNumber>
- <objectName>Toy, Gotham City Police Helicopter, 1992</objectName>
- <uri>/collectionObjects/1997.005.0437</uri>
- </collectionObjectListItem>
-
-</collectionObjects>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-elementFormDefault="qualified"
-targetNamespace="http://collectionspace.org/hello"
-xmlns="http://collectionspace.org/hello">
- <xs:element name="collectionObjects">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="collectionObjectListItem"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionObjectListItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element ref="objectNumber"/>
- <xs:element ref="objectName"/>
- <xs:element ref="uri"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="uri" type="xs:anyURI"/>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- defaultCollectionObject.rng
-
- A schema defining the structure of an default, "out of the box" CollectionObject.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<element
- name="defaultCollectionObject"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- The following data elements are taken from the Basic section,
- Object ID Information sub-section, of the Object Data Entry wireframe
-
- See:
-
- http://wiki.collectionspace.org/display/collectionspace/Wireframes+-+Object+Data+Entry
- and
- http://wiki.collectionspace.org/display/collectionspace/Hello+World+(Release+0.1)+Functionality+Requirements
-
- -->
-
- <!-- Allows child elements to appear in any order -->
- <interleave>
-
- <element name="objectNumber">
- <!--
- This declaration specifies that the value of this element must never be empty (blank).
- If that's not accurate, it should be redefined, perhaps to match other elements below.
-
- Note: In a site- or instance-specific declaration - not in the default
- definition here - we might wish to specify a regex-type pattern here for
- further constraining valid object numbers.
- -->
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <optional>
- <element name="otherNumber">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="briefDescription">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="comments">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="distinguishingFeatures">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="objectName">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="responsibleDepartment">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="title">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- </interleave>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello"
- xmlns="http://collectionspace.org/hello"
- targetNamespace="http://collectionspace.org/hello"
- version="0.1"
->
-
- <!--
- Including multiple schemas via an 'include' directive here does work,
- but results in duplicate declarations for several data elements.
-
- As a workaround, both schemas are included in full here. Several
- child elements of collectionObject (a single entity) are merely
- referenced from within collectionObjects (a list).
- -->
-
- <!-- xs:include schemaLocation="collectionObject-ns-no-prefix.xsd"/ -->
- <!-- xs:include schemaLocation="collectionObjects.xsd"/ -->
-
- <!--
- Sanjay noted:
- avoid XmlRootElement nightnmare, see
- http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html
- -->
-
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="serviceMetadata"/>
- <xs:element ref="defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element minOccurs="0" ref="created"/>
- <xs:element minOccurs="0" ref="createdBy"/>
- <xs:element minOccurs="0" ref="lastModified"/>
- <xs:element minOccurs="0" ref="lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="objectNumber"/>
- <xs:element minOccurs="0" ref="otherNumber"/>
- <xs:element minOccurs="0" ref="briefDescription"/>
- <xs:element minOccurs="0" ref="comments"/>
- <xs:element minOccurs="0" ref="distinguishingFeatures"/>
- <xs:element minOccurs="0" ref="objectName"/>
- <xs:element minOccurs="0" ref="responsibleDepartment"/>
- <xs:element minOccurs="0" ref="title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-
- <xs:element name="collectionObjects">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="collectionObjectListItem"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- Note CamelCase here; Sanjay uses the style "collection-object-list-item", and
- we can and should revert to that if needed.
- -->
- <xs:element name="collectionObjectListItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element ref="objectNumber"/>
- <xs:element ref="objectName"/>
- <xs:element ref="uri"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="uri" type="xs:anyURI"/>
-
-</xs:schema>
-
+++ /dev/null
-#!/bin/sh
-#
-# rng-to-xsd.sh
-#
-# Simple bash shell script to generate a W3C XML Schema (XSD) document
-# from a RELAX NG schema document.
-#
-# Requires two arguments:
-# - Filename of the RELAX NG schema document.
-# (Or the full path to this document, if it is not in the current directory.)
-# - Filename of the new W3C XML Schema document to be created.
-# (Or the full path to this document, if it is not in the current directory.)
-#
-# $Author: aron $
-# $Revision: 57 $
-# $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
-java -jar tools/trang.jar -I rng -O xsd $1 $2
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- sampleMmiCollectionObject.rng
-
- A schema defining the structure of a completely hypothetical CollectionObject
- for the Museum of the Moving Image (MMI) in Astoria, New York.
-
- This is a minimal example created for an early system demo, and represents
- what a site- or instance-specific entity definition might look like.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<element
- name="sampleMmiCollectionObject"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- These initial choices for a small subset of site- or instance-specific
- data elements were inspired by the following item in themuseum's online catalog:
-
- http://collection.movingimage.us/index.php?g=detail&object_id=64117
-
- and in turn by William Gibson's short story, The Gernsback Continuum.
- -->
-
- <!-- Allows child elements to appear in any order -->
- <interleave>
-
- <optional>
- <element name="artifactClass">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="format">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <optional>
- <element name="material">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- The following was constructed somewhat awkwardly, because I
- don't know how yet to make the value of an attribute dependent on
- the value of its corresponding element, as in the case where "if the
- value of the 'height' element is non-empty, then the value of its
- corresponding 'measurementUnit' attribute must also be non-empty." - Aron.
- -->
- <optional>
- <element name="overallDimensions">
- <element name="height">
- <choice>
- <data type="decimal" />
- <empty />
- </choice>
- </element>
- <element name="width">
- <choice>
- <data type="decimal" />
- <empty />
- </choice>
- </element>
- <element name="measurementUnit">
- <choice>
- <value>in</value>
- <value>mm</value>
- <empty />
- </choice>
- </element>
- </element>
- </optional>
-
- </interleave>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceErrorResponse.rng
-
- A schema defining the representation of the data returned,
- as an error response, to a call to a service.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<!-- The result of the operation. -->
-<element name="error"
- ns="http://collectionspace.org/hello"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- A service-dependent result code, which must be
- at least one character in length.
- -->
- <element name="errorCode">
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <!--
- An (optional) service-dependent message,
- presumably corresponding to the result code.
- -->
- <element name="errorMessage">
- <choice>
- <empty/>
- <data type="normalizedString" />
- </choice>
- </element>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceErrorResponse.xml
-
- A hypothetical instance of an error response from a call to a service.
-
- This document was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<!--
- Note: this root element may require a namespace, and it and its
- child elements may require the corresponding namespace prefix.
--->
-<error
- xmlns="http://collectionspace.org/hello">
- <errorCode>1005</errorCode>
- <errorMessage></errorMessage>
-</error>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://collectionspace.org/hello" xmlns="http://collectionspace.org/hello">
- <xs:element name="error">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="errorCode"/>
- <xs:element ref="errorMessage"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="errorCode">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="errorMessage">
- <xs:simpleType>
- <xs:union memberTypes="xs:normalizedString">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceMetadata.rng
-
- A schema defining the structure of service metadata:
- data elements that are associated with every entity object.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<element
- name="serviceMetadata"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- A unique CollectionSpace system identifier (ID) for this
- entity record. This is distinguished from any museum-created
- or other identifiers that might also be associated with it.
-
- Note: We may wish to think further about what this element name should be.
- -->
- <element name="collectionSpaceId">
- <!--
- Note: We may potentially wish to specify a regex-type pattern
- here for further validating these IDs.
- -->
- <data type="string" />
- </element>
-
- <!--
- All of the data elements after this point are fully optional.
-
- It's possible we may never want or need to pass these in
- routine message payloads, and if so, this merely constitutes
- notes/documentation on a few representative types of data that
- we might additionally store as system metadata, beyond an identifier.
-
- It's also possible that we might offer a service to provide this
- system metadata for any object, so that, for instance, a client
- might be able to retrieve the full modification history for an object.
- This *may* even already be envisioned for an already defined or
- candidate service ...
- -->
-
- <!-- ######################### -->
- <!-- Creation -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the creation of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="created">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="createdBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal created this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Last modification -->
- <!-- ######################### -->
-
- <!--
- A timestamp for the last modification of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="lastModified">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="lastModifiedBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal modified this entity while
- acting as a designate for another Principal?
- -->
-
- <!-- ######################### -->
- <!-- Valid from/to -->
- <!-- ######################### -->
-
- <!--
- Patrick mentioned the concept of 'valid to/from' timestamps.
- If this applied to entity objects, not to schema, we might
- explore that further as another possible type of system metadata.
- -->
-
-</element>
+++ /dev/null
-#!/bin/sh
-#
-# Simple bash shell script to validate an XML instance document
-# against a RELAX NG schema.
-#
-# Requires two arguments:
-# - Filename of the RELAX NG schema document.
-# (Or the full path to this document, if it is not in the current directory.)
-# - Filename of the XML instance document.
-# (Or the full path to this document, if it is not in the current directory.)
-#
-# $Author: aron $
-# $Revision: 57 $
-# $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
-java -jar tools/jing.jar $1 $2
\ No newline at end of file
+++ /dev/null
-<collectionObject xmlns="http://collectionspace.org/hello">
-<defaultCollectionObject>
-<objectNumber>
-1984.021.0049</objectNumber>
-<objectName>
-Radio News, vol. 10, no. 2, August 1928</objectName>
-</defaultCollectionObject>
-</collectionObject>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject.rng
-
- A schema defining the structure of an CollectionObject entity.
-
- This schema includes all of its components, rather than referring
- to them via 'externalRef' references. As such, it can be used as the
- basis for generating a W3C XML Schema (XSD) schema, via
- James Clark's Trang utility (http://http://www.thaiopensource.com/relaxng/trang.html).
- (Trang version 20081028 can't resolve such references.)
-
- As a convenience, a 'rng-to-xsd.sh' script file, which trivially wraps Trang
- to generate XSD from a RELAX NG schema, is provided elsewhere in this distribution.
-
- This schema also includes one rudimentary root namespace, scoped for the Release 0.1
- "Hello World" demo. We'll need to determine whether, and if so how, we can
- accommodate multiple namespaces to compose entity objects from various schemas,
- such as service metadata, and declarations for the default entity, a domain- or community-
- provided entity, and site- or instance-specific version of an entity.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author: aron $
- $Revision: 57 $
- $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
--->
-
-<element
- name="collectionObject"
- ns="http://collectionspace.org/hello"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
-
- <!-- ######################################################################## -->
- <!-- Service Metadata -->
- <!-- ######################################################################## -->
-
- <!--
- Data elements common to every entity object in the CollectionSpace system.
-
- This is an quickly conceived-of list for the Release 0.1 "Hello World" demo,
- and is not intended to be definitive going forward; further definition
- will be required.
- -->
-
- <element
- name="serviceMetadata">
-
- <!--
- A unique CollectionSpace system identifier (ID) for this
- entity record. This is distinguished from any museum-created
- or other identifiers that might also be associated with it.
-
- Note: We may wish to think further about what this element name should be.
- -->
- <element name="collectionSpaceId">
- <!--
- Note: We may potentially wish to specify a regex-type pattern
- here for further validating these IDs.
- -->
- <data type="string" />
- </element>
-
- <!--
- All of the data elements after this point are fully optional.
-
- It's possible we may never want or need to pass these in
- routine message payloads, and if so, this merely constitutes
- notes/documentation on a few representative types of data that
- we might additionally store as system metadata, beyond an identifier.
-
- It's also possible that we might offer a service to provide this
- system metadata for any object, so that, for instance, a client
- might be able to retrieve the full modification history for an object.
- This *may* even already be envisioned for an already defined or
- candidate service ...
- -->
-
- <!--
- A timestamp for the creation of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="created">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="createdBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal created this entity while
- acting as a designate for another Principal?
- -->
-
- <!--
- A timestamp for the last modification of this entity record, as specified in
- http://www.w3.org/TR/xmlschema-2/#dateTime
- -->
- <optional>
- <element name="lastModified">
- <choice>
- <data type="dateTime" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!-- The system Principal that created this entity record -->
- <optional>
- <element name="lastModifiedBy">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
- </optional>
-
- <!--
- Note: Do we also need 'acting as designate for' information here,
- for cases where one system Principal modified this entity while
- acting as a designate for another Principal?
- -->
-
- <!--
- Patrick mentioned the concept of 'valid to/from' timestamps.
- If this applied to entity objects, not to schema, we might
- explore that further as another possible type of system metadata.
- -->
-
- </element>
-
-
- <!-- ######################################################################## -->
- <!-- Default CollectionObject -->
- <!-- ######################################################################## -->
-
- <!-- The default CollectionSpace schema for an entity object (extremely simplified). -->
-
- <element
- name="defaultCollectionObject">
-
- <!--
- The following data elements are taken from the Basic section,
- Object ID Information sub-section, of the Object Data Entry wireframe
-
- See:
-
- http://wiki.collectionspace.org/display/collectionspace/Wireframes+-+Object+Data+Entry
- and
- http://wiki.collectionspace.org/display/collectionspace/Hello+World+(Release+0.1)+Functionality+Requirements
-
- -->
-
- <!-- Allows child elements to appear in any order -->
- <interleave>
-
- <element name="objectNumber">
- <!--
- This declaration specifies that the value of this element must never be empty (blank).
- If that's not accurate, it should be redefined, perhaps to match other elements below.
-
- Note: In a site- or instance-specific declaration - not in the default
- definition here - we might wish to specify a regex-type pattern here for
- further constraining valid object numbers.
- -->
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <element name="otherNumber">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="briefDescription">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="comments">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="distinguishingFeatures">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="objectName">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="responsibleDepartment">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="title">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- </interleave>
-
- </element>
-
- <!-- A domain- or community-provided schema, if available, would go here -->
-
- <!-- An site- or instance-provided schema, if available, would go here. -->
-
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObject.xml
-
- A hypothetical, skeletal instance of an CollectionObject payload,
- represented as an XML document, in a rudimentary root namespace,
- scoped for the Release 0.1 "Hello World" demo.
-
- This document was created for the CollectionSpace system, http://www.collectionspace.org/
-
- $Author: aron $
- $Revision: 509 $
- $Date: 2008-10-27 13:55:56 -0700 (Mon, 27 Oct 2008) $
-
--->
-
-<collectionObject
- xmlns="http://collectionspace.org/hello">
-
-
- <serviceMetadata>
-
- <!-- An entirely arbitrary example -->
- <collectionSpaceId>org.collectionspace.797220effa5fa160</collectionSpaceId>
-
- </serviceMetadata>
-
-
- <defaultCollectionObject>
-
- <!--
- Data below was taken from the following item in the online catalog
- of the Museum of the Moving Image in Astoria, NY:
-
- http://collection.movingimage.us/index.php?g=detail&object_id=64117
-
- The choice of this item was in turn inspired by William Gibson's short story,
- The Gernsback Continuum:
-
- http://www.americanheritage.com/articles/magazine/it/1988/1/1988_1_34.shtml
- -->
-
- <objectNumber>1984.021.0049</objectNumber>
-
- <objectName> Radio News, vol. 10, no. 2, August 1928</objectName>
-
- <!-- Linebreaks were added to the following description for readability -->
- <briefDescription>Radio News, August 1928. The cover of this issue features an
-illustration of a man and woman watching an early "radio movie." Text on
-the cover reads, "Radio's Greatest Magazine / Radio News / August 25
-Cents / Over 200 illustrations / Edited by Hugo Gernsback / Radio Movies
-and Television for the Home / Experimenter Publishing Company, 230 Fifth
-Avenue, New York."
-
-In addition to articles about radios and radio technology, the magazine
-also contains several articles about developments in the field of
-television. The issue begins with an editorial about the future of
-television by the magazine's editor, Hugo Gernsback, which is followed
-by an article about the radio movie receiver system invented by C.
-Francis Jenkins. The article includes drawings illustrating the layout
-of the sytem.</briefDescription>
-
- <otherNumber></otherNumber>
- <comments></comments>
- <distinguishingFeatures></distinguishingFeatures>
- <responsibleDepartment></responsibleDepartment>
- <title></title>
-
- </defaultCollectionObject>
-
-</collectionObject>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://collectionspace.org/hello" xmlns:hello="http://collectionspace.org/hello">
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="hello:serviceMetadata"/>
- <xs:element ref="hello:defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="hello:collectionSpaceId"/>
- <xs:element minOccurs="0" ref="hello:created"/>
- <xs:element minOccurs="0" ref="hello:createdBy"/>
- <xs:element minOccurs="0" ref="hello:lastModified"/>
- <xs:element minOccurs="0" ref="hello:lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="hello:objectNumber"/>
- <xs:element ref="hello:otherNumber"/>
- <xs:element ref="hello:briefDescription"/>
- <xs:element ref="hello:comments"/>
- <xs:element ref="hello:distinguishingFeatures"/>
- <xs:element ref="hello:objectName"/>
- <xs:element ref="hello:responsibleDepartment"/>
- <xs:element ref="hello:title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObjectList.rng
-
- A schema defining the structure of an CollectionObject collection
- (list of multiple CollectionObjects).
-
- This schema includes all of its components, rather than referring
- to them via 'externalRef' references. As such, it can be used as the
- basis for generating a W3C XML Schema (XSD) schema, via
- James Clark's Trang utility (http://http://www.thaiopensource.com/relaxng/trang.html).
- (Trang version 20081028 can't resolve such references.)
-
- As a convenience, a 'rng-to-xsd.sh' script file, which trivially wraps Trang
- to generate XSD from a RELAX NG schema, is provided elsewhere in this distribution.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author: aron $
- $Revision: 57 $
- $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
--->
-
-<element
- name="collectionObjectList"
- ns="http://collectionspace.org/hello"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- Sanjay has used a different naming convention in the Person prototype,
- which would be equivalent here to "collection-object-list-item", rather than
- to "collectionObjectListItem", as used below.
-
- We may want to standardize on use of CamelCase or hyphenated lowercase throughout, or
- else establish a convention for list items which is distinct from that convention.
- -->
-
- <zeroOrMore>
-
- <element
- name="collectionObjectListItem">
-
- <element name="collectionSpaceId">
- <data type="string" />
- </element>
-
- <element name="objectNumber">
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <element name="objectName">
- <choice>
- <data type="string" />
- <empty />
- </choice>
- </element>
-
- <element name="uri">
- <data type="anyURI" />
- </element>
-
- </element>
-
- </zeroOrMore>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- collectionObjectList.xml
-
- A hypothetical, skeletal instance of an CollectionObjects list payload,
- represented as an XML document, in a rudimentary root namespace,
- scoped for the Release 0.1 "Hello World" demo.
-
- This was created for the CollectionSpace system, http://www.collectionspace.org/
-
- $Author: aron $
- $Revision: 509 $
- $Date: 2008-10-27 13:55:56 -0700 (Mon, 27 Oct 2008) $
-
--->
-
-<collectionObjectList
- xmlns="http://collectionspace.org/hello">
-
- <collectionObjectListItem>
- <collectionSpaceId>org.collectionspace:797220effa5fa160</collectionSpaceId>
- <objectNumber>1984.021.0049</objectNumber>
- <objectName>Radio News, vol. 10, no. 2, August 1928</objectName>
- <uri>/collectionObjects/1984.021.0049</uri>
- </collectionObjectListItem>
-
- <collectionObjectListItem>
- <collectionSpaceId>org.collectionspace:68ac7dc8f9e743</collectionSpaceId>
- <objectNumber>1997.005.0437</objectNumber>
- <objectName>Toy, Gotham City Police Helicopter, 1992</objectName>
- <uri>/collectionObjects/1997.005.0437</uri>
- </collectionObjectListItem>
-
-</collectionObjectList>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://collectionspace.org/hello" xmlns:hello="http://collectionspace.org/hello">
- <xs:element name="collectionObjectList">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="hello:collectionObjectListItem"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionObjectListItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="hello:collectionSpaceId"/>
- <xs:element ref="hello:objectNumber"/>
- <xs:element ref="hello:objectName"/>
- <xs:element ref="hello:uri"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="uri" type="xs:anyURI"/>
-</xs:schema>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello"
- xmlns="http://collectionspace.org/hello"
- targetNamespace="http://collectionspace.org/hello"
- version="0.1"
->
-
- <!--
- Including multiple schemas via an 'include' directive here does work,
- but results in duplicate declarations for several data elements.
-
- As a workaround, both schemas are included in full here. Several
- child elements of collectionObject (a single entity) are merely
- referenced from within collectionObjects (a list).
- -->
-
- <!-- xs:include schemaLocation="collectionObject-ns-no-prefix.xsd"/ -->
- <!-- xs:include schemaLocation="collectionObjects.xsd"/ -->
-
- <!--
- Sanjay noted:
- avoid XmlRootElement nightnmare, see
- http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html
- -->
-
- <xs:element name="collectionObject">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="serviceMetadata"/>
- <xs:element ref="defaultCollectionObject"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="serviceMetadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element minOccurs="0" ref="created"/>
- <xs:element minOccurs="0" ref="createdBy"/>
- <xs:element minOccurs="0" ref="lastModified"/>
- <xs:element minOccurs="0" ref="lastModifiedBy"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="collectionSpaceId" type="xs:string"/>
- <xs:element name="created">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="createdBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModified">
- <xs:simpleType>
- <xs:union memberTypes="xs:dateTime">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="lastModifiedBy">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="defaultCollectionObject">
- <xs:complexType>
- <xs:all>
- <xs:element ref="objectNumber"/>
- <xs:element ref="otherNumber"/>
- <xs:element ref="briefDescription"/>
- <xs:element ref="comments"/>
- <xs:element ref="distinguishingFeatures"/>
- <xs:element ref="objectName"/>
- <xs:element ref="responsibleDepartment"/>
- <xs:element ref="title"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
- <xs:element name="objectNumber">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="otherNumber">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="briefDescription">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="comments">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="distinguishingFeatures">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="objectName">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="responsibleDepartment">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
- <xs:element name="title">
- <xs:simpleType>
- <xs:union memberTypes="xs:string">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-
- <xs:element name="collectionObjectList">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="collectionObjectListItem"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- Note CamelCase here; Sanjay uses the style "collection-object-list-item", and
- we can and should revert to that if needed.
- -->
- <xs:element name="collectionObjectListItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="collectionSpaceId"/>
- <xs:element ref="objectNumber"/>
- <xs:element ref="objectName"/>
- <xs:element ref="uri"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="uri" type="xs:anyURI"/>
-
-</xs:schema>
-
+++ /dev/null
-#!/bin/sh
-#
-# rng-to-xsd.sh
-#
-# Simple bash shell script to generate a W3C XML Schema (XSD) document
-# from a RELAX NG schema document.
-#
-# Uses James Clark's Trang utility, http://www.thaiopensource.com/relaxng/trang.html
-#
-# Assumes Trang's 'trang.jar' file is located in a 'tools' subdirectory of the current directory.
-#
-# Requires two arguments:
-# - Filename of the RELAX NG schema document.
-# (Or the full path to this document, if it is not in the current directory.)
-# - Filename of the new W3C XML Schema document to be created.
-# (Or the full path to this document, if it is not in the current directory.)
-#
-# $Author: aron $
-# $Revision: 57 $
-# $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
-java -jar tools/trang.jar -I rng -O xsd $1 $2
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceErrorResponse.rng
-
- A schema defining the representation of the data returned,
- as an error response, to a call to a service.
-
- This schema was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- It is written in the XML syntax of the RELAX NG schema language,
- http://relaxng.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<!-- The result of the operation. -->
-<element name="error"
- ns="http://collectionspace.org/hello"
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-
- <!--
- A service-dependent result code, which must be
- at least one character in length.
- -->
- <element name="errorCode">
- <data type="normalizedString">
- <param name="minLength">1</param>
- </data>
- </element>
-
- <!--
- An (optional) service-dependent message,
- presumably corresponding to the result code.
- -->
- <element name="errorMessage">
- <choice>
- <empty/>
- <data type="normalizedString" />
- </choice>
- </element>
-
-</element>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- serviceErrorResponse.xml
-
- A hypothetical instance of an error response from a call to a service.
-
- This document was created for the CollectionSpace system,
- http://www.collectionspace.org/
-
- $Author$
- $Revision$
- $Date$
-
--->
-
-<!--
- Note: this root element may require a namespace, and it and its
- child elements may require the corresponding namespace prefix.
--->
-<error
- xmlns="http://collectionspace.org/hello">
- <errorCode>1005</errorCode>
- <errorMessage></errorMessage>
-</error>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://collectionspace.org/hello" xmlns="http://collectionspace.org/hello">
- <xs:element name="error">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="errorCode"/>
- <xs:element ref="errorMessage"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="errorCode">
- <xs:simpleType>
- <xs:restriction base="xs:normalizedString">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="errorMessage">
- <xs:simpleType>
- <xs:union memberTypes="xs:normalizedString">
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:length value="0"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:element>
-</xs:schema>
+++ /dev/null
-#!/bin/sh
-#
-# Simple bash shell script to validate an XML instance document
-# against a RELAX NG schema.
-#
-# Uses James Clark's Jing utility, http://www.thaiopensource.com/relaxng/jing.html
-#
-# Assumes Jing's 'jing.jar' file is located in a 'tools' subdirectory of the current directory.
-#
-# Requires two arguments:
-# - Filename of the RELAX NG schema document.
-# (Or the full path to this document, if it is not in the current directory.)
-# - Filename of the XML instance document.
-# (Or the full path to this document, if it is not in the current directory.)
-#
-# $Author: aron $
-# $Revision: 57 $
-# $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
-java -jar tools/jing.jar $1 $2
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-#
-# Simple bash shell script to validate an XML instance document
-# against a W3C XML Schema.
-#
-# Uses the XMLStarlet utility, http://xmlstar.sourceforge.net/
-#
-# Assumes the 'xmlstarlet' executable is located within the shell's executable path.
-#
-# Note that XMLStarlet's support for XML Schema is "not yet fully supported", due to
-# incomplete support in a dependency, the XML C toolkit for Gnome (http://xmlsoft.org/).
-#
-# Requires two arguments:
-# - Filename of the W3C XML Schema document.
-# (Or the full path to this document, if it is not in the current directory.)
-# - Filename of the XML instance document.
-# (Or the full path to this document, if it is not in the current directory.)
-#
-# $Author: aron $
-# $Revision: 57 $
-# $Date: 2009-03-05 16:06:06 -0800 (Thu, 05 Mar 2009) $
-
-xmlstarlet val --err --xsd $1 $2
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>My Web Application</title><style type="text/css">
- body {
- font-family: sans-serif;
- font-size: 0.85em;
- margin: 2em 8em;
- }
- .methods {
- background-color: #eef;
- padding: 1em;
- }
- h1 {
- font-size: 2.5em;
- }
- h2 {
- border-bottom: 1px solid black;
- margin-top: 1em;
- margin-bottom: 0.5em;
- font-size: 2em;
- }
- h3 {
- color: orange;
- font-size: 1.75em;
- margin-top: 1.25em;
- margin-bottom: 0em;
- }
- h4 {
- margin: 0em;
- padding: 0em;
- border-bottom: 2px solid white;
- }
- h6 {
- font-size: 1.1em;
- color: #99a;
- margin: 0.5em 0em 0.25em 0em;
- }
- dd {
- margin-left: 1em;
- }
- tt {
- font-size: 1.2em;
- }
- table {
- margin-bottom: 0.5em;
- }
- th {
- text-align: left;
- font-weight: normal;
- color: black;
- border-bottom: 1px solid black;
- padding: 3px 6px;
- }
- td {
- padding: 3px 6px;
- vertical-align: top;
- background-color: f6f6ff;
- font-size: 0.85em;
- }
- td p {
- margin: 0px;
- }
- ul {
- padding-left: 1.75em;
- }
- p + ul, p + ol, p + dl {
- margin-top: 0em;
- }
- .optional {
- font-weight: normal;
- opacity: 0.75;
- }
- </style></head><body><h1>My Web Application</h1><ul><li><a href="#resources">Resources</a><ul><li><a href="#id75620">http://api.search.yahoo.com/NewsSearchService/V1/newsSearch</a></li></ul></li><li><a href="#representations">Representations</a><ul><li><a href="#id75769">application/xml (<abbr title="{urn:yahoo:yn} ResultSet">yn:ResultSet</abbr>)</a></li></ul></li><li><a href="#faults">Faults</a><ul><li><a href="#id75771">Status Code 400 - application/xml (<abbr title="{urn:yahoo:api} Error">ya:Error</abbr>)</a></li></ul></li></ul><h2 id="resources">Resources</h2><div class="resource"><h3 id="id75620">/newsSearch?appid&query<span class="optional">&type</span><span class="optional">&results</span><span class="optional">&start</span><span class="optional">&sort</span><span class="optional">&language</span></h3><h6>Methods</h6><div class="methods"><div class="method"><h4 id="http://api.search.yahoo.com/NewsSearchService/V1#search">GET</h4><h6>request query parameters</h6><table><tr><th>parameter</th><th>value</th><th>description</th></tr><tr><td><p><strong>appid</strong></p></td><td><p><em><a href="http://www.w3.org/TR/xmlschema-2/#string">string</a></em><small> (required)</small></p></td><td></td></tr><tr><td><p><strong>query</strong></p></td><td><p><em><a href="http://www.w3.org/TR/xmlschema-2/#string">string</a></em><small> (required)</small></p></td><td></td></tr><tr><td><p><strong>type</strong></p></td><td><p><em><a href="" title=""></a></em></p><p><em>One of:</em></p><ul><li><tt>all</tt><small> (default)</small></li><li><tt>any</tt></li><li><tt>phrase</tt></li></ul></td><td></td></tr><tr><td><p><strong>results</strong></p></td><td><p><em><a href="http://www.w3.org/TR/xmlschema-2/#int">int</a></em></p><p>Default: <tt>10</tt></p></td><td></td></tr><tr><td><p><strong>start</strong></p></td><td><p><em><a href="http://www.w3.org/TR/xmlschema-2/#int">int</a></em></p><p>Default: <tt>1</tt></p></td><td></td></tr><tr><td><p><strong>sort</strong></p></td><td><p><em><a href="" title=""></a></em></p><p><em>One of:</em></p><ul><li><tt>rank</tt><small> (default)</small></li><li><tt>date</tt></li></ul></td><td></td></tr><tr><td><p><strong>language</strong></p></td><td><p><em><a href="http://www.w3.org/TR/xmlschema-2/#string">string</a></em></p></td><td></td></tr></table><p><em>available response representations:</em></p><ul><li><a href="#id75769">application/xml (<abbr title="{urn:yahoo:yn} ResultSet">yn:ResultSet</abbr>)</a></li></ul><p><em>potential faults:</em></p><ul><li><a href="#id75771">Status Code 400 - application/xml (<abbr title="{urn:yahoo:api} Error">ya:Error</abbr>)</a></li></ul></div></div></div><h2 id="representations">Representations</h2><h3 id="id75769">application/xml (<abbr title="{urn:yahoo:yn} ResultSet">yn:ResultSet</abbr>)</h3><div class="representation"><h6>XML Schema</h6><p><em>Source: <a href=""></a></em></p><pre></pre></div><h2 id="faults">Faults</h2><h3 id="id75771">Status Code 400 - application/xml (<abbr title="{urn:yahoo:api} Error">ya:Error</abbr>)</h3><div class="representation"><h6>XML Schema</h6><p><em>Source: <a href=""></a></em></p><pre></pre></div></body></html>
+++ /dev/null
-<?xml version="1.0"?>
-<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xsi:schemaLocation="http://research.sun.com/wadl/2006/10 wadl.xsd"
-xmlns:tns="urn:yahoo:yn"
-xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-xmlns:yn="urn:yahoo:yn"
-xmlns:ya="urn:yahoo:api"
-xmlns="http://research.sun.com/wadl/2006/10">
-<grammars>
-<!-- include
-href="NewsSearchResponse.xsd"/ -->
-<!-- include
-href="Error.xsd"/ -->
-</grammars>
-
-<resources base="http://api.search.yahoo.com/NewsSearchService/V1/">
-<resource path="newsSearch">
-<method name="GET" id="search">
-<request>
-<param name="appid" type="xsd:string"
-style="query" required="true"/>
-<param name="query" type="xsd:string"
-style="query" required="true"/>
-<param name="type" style="query" default="all">
-<option value="all"/>
-<option value="any"/>
-<option value="phrase"/>
-</param>
-<param name="results" style="query" type="xsd:int" default="10"/>
-<param name="start" style="query" type="xsd:int" default="1"/>
-<param name="sort" style="query" default="rank">
-<option value="rank"/>
-<option value="date"/>
-</param>
-<param name="language" style="query" type="xsd:string"/>
-</request>
-<response>
-<representation mediaType="application/xml"
-element="yn:ResultSet"/>
-<fault status="400" mediaType="application/xml"
-element="ya:Error"/>
-</response>
-</method>
-</resource>
-</resources>
-
-</application>
\ No newline at end of file
+++ /dev/null
-namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
-namespace local = ""
-namespace wadl = "http://research.sun.com/wadl/2006/10"
-
-start =
- element wadl:application {
- doc*,
- grammars?,
- resources?,
- ( resource_type | method | representation | fault )*,
- foreign-attribute,
- foreign-element
- }
-doc =
- element wadl:doc {
- attribute xml:lang { languageTag }?,
- attribute title { text }?,
- ( text | foreign-element )*,
- foreign-attribute
- }
-grammars =
- element wadl:grammars {
- doc*,
- incl*,
- foreign-element
- }
-incl =
- element wadl:include {
- doc*,
- attribute href { xsd:anyURI },
- foreign-attribute
- }
-resources =
- element wadl:resources {
- doc*,
- resource+,
- attribute base { xsd:anyURI },
- foreign-attribute,
- foreign-element
- }
-resource_type =
- element wadl:resource_type {
- doc*,
- param*,
- method*,
- attribute id { xsd:token }?,
- foreign-element,
- foreign-attribute
- }
-resource =
- element wadl:resource {
- doc*,
- param*,
- (method | resource)*,
- attribute type { list {xsd:anyURI} } ?,
- attribute path { text }?,
- attribute id { xsd:token }?,
- attribute queryType { text }?,
- foreign-element,
- foreign-attribute
- }
-method =
- element wadl:method {
- (
- (
- attribute href { xsd:anyURI }
- ) | (
- doc*,
- request?,
- response?,
- attribute id { xsd:token }?,
- attribute name {
- "DELETE" | "GET" | "HEAD" | "POST" | "PUT" | xsd:token
- }
- )
- ),
- foreign-element,
- foreign-attribute
- }
-request =
- element wadl:request {
- doc*,
- param*,
- representation*,
- foreign-attribute,
- foreign-element
- }
-response =
- element wadl:response {
- doc*,
- param*,
- (representation | fault)*,
- foreign-attribute,
- foreign-element
- }
-representation_type =
- (
- (
- attribute href { xsd:anyURI }
- ) | (
- doc*,
- param*,
- attribute id { xsd:token }?,
- attribute element { xsd:QName }?,
- attribute mediaType { text }?,
- attribute profile { list { xsd:anyURI} }?,
- attribute status { list { xsd:int+ } }?
- )
- )
-representation =
- element wadl:representation {
- representation_type,
- foreign-attribute,
- foreign-element
- }
-fault =
- element wadl:fault {
- representation_type,
- foreign-attribute,
- foreign-element
- }
-param =
- element wadl:param {
- doc*,
- option*,
- link?,
- attribute name {xsd:token },
- attribute style {
- "plain" | "query" | "matrix" | "header" | "template"
- },
- attribute id { xsd:token }?,
- attribute type { text }?,
- attribute default { text }?,
- attribute path { text }?,
- attribute required { xsd:boolean }?,
- attribute repeating { xsd:boolean }?,
- attribute fixed { text }?,
- foreign-element,
- foreign-attribute
- }
-option =
- element wadl:option {
- doc*,
- attribute value { xsd:string },
- foreign-element,
- foreign-attribute
- }
-link =
- element wadl:link {
- doc*,
- attribute resource_type { xsd:anyURI }?,
- attribute rel { xsd:token }?,
- attribute rev { xsd:token }?,
- foreign-element,
- foreign-attribute
- }
-foreign-attribute = attribute * - (wadl:* | local:* | xml:*) { text }*
-foreign-element =
- element * - (wadl:* | local:*) {
- (attribute * { text }
- | text
- | any-element)*
- }*
-any-element =
- element * {
- (attribute * { text }
- | text
- | any-element)*
- }*
-languageTag = xsd:string {
- pattern = "[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*"
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- wadl_documentation.xsl (2008-12-09)
-
- An XSLT stylesheet for generating HTML documentation from WADL,
- by Mark Nottingham <mnot@yahoo-inc.com>.
-
- Copyright (c) 2006-2008 Yahoo! Inc.
-
- This work is licensed under the Creative Commons Attribution-ShareAlike 2.5
- License. To view a copy of this license, visit
- http://creativecommons.org/licenses/by-sa/2.5/
- or send a letter to
- Creative Commons
- 543 Howard Street, 5th Floor
- San Francisco, California, 94105, USA
--->
-<!--
- * FIXME
- - Doesn't inherit query/header params from resource/@type
- - XML schema import, include, redefine don't import
--->
-<!--
- * TODO
- - forms
- - link to or include non-schema variable type defs (as a separate list?)
- - @href error handling
--->
-
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:wadl="http://research.sun.com/wadl/2006/10"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:html="http://www.w3.org/1999/xhtml"
- xmlns:exsl="http://exslt.org/common"
- xmlns:ns="urn:namespace"
- extension-element-prefixes="exsl"
- xmlns="http://www.w3.org/1999/xhtml"
- exclude-result-prefixes="xsl wadl xs html ns"
->
-
- <xsl:output
- method="html"
- encoding="UTF-8"
- indent="yes"
- doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
- />
-
- <xsl:variable name="wadl-ns">http://research.sun.com/wadl/2006/10</xsl:variable>
-
-
- <!-- expand @hrefs, @types into a full tree -->
-
- <xsl:variable name="resources">
-
- <xsl:apply-templates select="/wadl:application/wadl:resources" mode="expand"/>
- </xsl:variable>
-
- <xsl:template match="wadl:resources" mode="expand">
- <xsl:variable name="base">
- <xsl:choose>
- <xsl:when test="substring(@base, string-length(@base), 1) = '/'">
- <xsl:value-of select="substring(@base, 1, string-length(@base) - 1)"/>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="@base"/></xsl:otherwise>
-
- </xsl:choose>
- </xsl:variable>
- <xsl:element name="resources" namespace="{$wadl-ns}">
- <xsl:for-each select="namespace::*">
- <xsl:variable name="prefix" select="name(.)"/>
- <xsl:if test="$prefix">
- <xsl:attribute name="ns:{$prefix}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:apply-templates select="@*|node()" mode="expand">
- <xsl:with-param name="base" select="$base"/>
- </xsl:apply-templates>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="wadl:resource[@type]" mode="expand">
- <xsl:param name="base"></xsl:param>
- <xsl:variable name="uri" select="substring-before(@type, '#')"/>
- <xsl:variable name="id" select="substring-after(@type, '#')"/>
-
- <xsl:element name="resource" namespace="{$wadl-ns}">
- <xsl:choose>
- <xsl:when test="$uri">
- <xsl:variable name="included" select="document($uri, /)"/>
- <xsl:copy-of select="$included/descendant::wadl:resource_type[@id=$id]/@*"/>
- <xsl:attribute name="id"><xsl:value-of select="@type"/></xsl:attribute>
- <xsl:apply-templates select="$included/descendant::wadl:resource_type[@id=$id]/*" mode="expand">
- <xsl:with-param name="base" select="$uri"/>
- </xsl:apply-templates>
-
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="//resource_type[@id=$id]/@*"/>
- <xsl:attribute name="id"><xsl:value-of select="$base"/>#<xsl:value-of select="@type"/></xsl:attribute>
- <xsl:apply-templates select="//wadl:resource_type[@id=$id]/*" mode="expand">
- <xsl:with-param name="base" select="$base"/>
- </xsl:apply-templates>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:apply-templates select="node()" mode="expand">
- <xsl:with-param name="base" select="$base"/>
- </xsl:apply-templates>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="wadl:*[@href]" mode="expand">
- <xsl:param name="base"></xsl:param>
- <xsl:variable name="uri" select="substring-before(@href, '#')"/>
- <xsl:variable name="id" select="substring-after(@href, '#')"/>
-
- <xsl:element name="{local-name()}" namespace="{$wadl-ns}">
- <xsl:copy-of select="@*"/>
- <xsl:choose>
- <xsl:when test="$uri">
- <xsl:attribute name="id"><xsl:value-of select="@href"/></xsl:attribute>
- <xsl:variable name="included" select="document($uri, /)"/>
- <xsl:apply-templates select="$included/descendant::wadl:*[@id=$id]/*" mode="expand">
- <xsl:with-param name="base" select="$uri"/>
- </xsl:apply-templates>
-
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="id"><xsl:value-of select="$base"/>#<xsl:value-of select="$id"/></xsl:attribute>
- <!-- xsl:attribute name="id"><xsl:value-of select="generate-id()"/></xsl:attribute -->
- <xsl:attribute name="element"><xsl:value-of select="//wadl:*[@id=$id]/@element"/></xsl:attribute>
- <xsl:attribute name="mediaType"><xsl:value-of select="//wadl:*[@id=$id]/@mediaType"/></xsl:attribute>
- <xsl:attribute name="status"><xsl:value-of select="//wadl:*[@id=$id]/@status"/></xsl:attribute>
- <xsl:attribute name="name"><xsl:value-of select="//wadl:*[@id=$id]/@name"/></xsl:attribute>
- <xsl:apply-templates select="//wadl:*[@id=$id]/*" mode="expand">
- <xsl:with-param name="base" select="$base"/>
-
- </xsl:apply-templates>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="node()[@id]" mode="expand">
- <xsl:param name="base"></xsl:param>
- <xsl:element name="{local-name()}" namespace="{$wadl-ns}">
- <xsl:copy-of select="@*"/>
-
- <xsl:attribute name="id"><xsl:value-of select="$base"/>#<xsl:value-of select="@id"/></xsl:attribute>
- <!-- xsl:attribute name="id"><xsl:value-of select="generate-id()"/></xsl:attribute -->
- <xsl:apply-templates select="node()" mode="expand">
- <xsl:with-param name="base" select="$base"/>
- </xsl:apply-templates>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="@*|node()" mode="expand">
-
- <xsl:param name="base"></xsl:param>
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" mode="expand">
- <xsl:with-param name="base" select="$base"/>
- </xsl:apply-templates>
- </xsl:copy>
- </xsl:template>
-
-<!-- debug $resources
- <xsl:template match="/">
- <xsl:copy-of select="$resources"/>
- </xsl:template>
--->
-
- <!-- collect grammars (TODO: walk over $resources instead) -->
-
-
- <xsl:variable name="grammars">
- <xsl:copy-of select="/wadl:application/wadl:grammars/*[not(namespace-uri()=$wadl-ns)]"/>
- <xsl:apply-templates select="/wadl:application/wadl:grammars/wadl:include[@href]" mode="include-grammar"/>
- <xsl:apply-templates select="/wadl:application/wadl:resources/descendant::wadl:resource[@type]" mode="include-href"/>
- <xsl:apply-templates select="exsl:node-set($resources)/descendant::wadl:*[@href]" mode="include-href"/>
- </xsl:variable>
-
- <xsl:template match="wadl:include[@href]" mode="include-grammar">
- <xsl:variable name="included" select="document(@href, /)/*"></xsl:variable>
- <xsl:element name="wadl:include">
-
- <xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
- <xsl:copy-of select="$included"/> <!-- FIXME: xml-schema includes, etc -->
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="wadl:*[@href]" mode="include-href">
- <xsl:variable name="uri" select="substring-before(@href, '#')"/>
- <xsl:if test="$uri">
- <xsl:variable name="included" select="document($uri, /)"/>
-
- <xsl:copy-of select="$included/wadl:application/wadl:grammars/*[not(namespace-uri()=$wadl-ns)]"/>
- <xsl:apply-templates select="$included/descendant::wadl:include[@href]" mode="include-grammar"/>
- <xsl:apply-templates select="$included/wadl:application/wadl:resources/descendant::wadl:resource[@type]" mode="include-href"/>
- <xsl:apply-templates select="$included/wadl:application/wadl:resources/descendant::wadl:*[@href]" mode="include-href"/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="wadl:resource[@type]" mode="include-href">
- <xsl:variable name="uri" select="substring-before(@type, '#')"/>
- <xsl:if test="$uri">
-
- <xsl:variable name="included" select="document($uri, /)"/>
- <xsl:copy-of select="$included/wadl:application/wadl:grammars/*[not(namespace-uri()=$wadl-ns)]"/>
- <xsl:apply-templates select="$included/descendant::wadl:include[@href]" mode="include-grammar"/>
- <xsl:apply-templates select="$included/wadl:application/wadl:resources/descendant::wadl:resource[@type]" mode="include-href"/>
- <xsl:apply-templates select="$included/wadl:application/wadl:resources/descendant::wadl:*[@href]" mode="include-href"/>
- </xsl:if>
- </xsl:template>
-
- <!-- main template -->
-
- <xsl:template match="/wadl:application">
- <html>
-
- <head>
- <title>
- <xsl:choose>
- <xsl:when test="wadl:doc[@title]">
- <xsl:value-of select="wadl:doc[@title][1]/@title"/>
- </xsl:when>
- <xsl:otherwise>My Web Application</xsl:otherwise>
- </xsl:choose>
- </title>
-
- <style type="text/css">
- body {
- font-family: sans-serif;
- font-size: 0.85em;
- margin: 2em 8em;
- }
- .methods {
- background-color: #eef;
- padding: 1em;
- }
- h1 {
- font-size: 2.5em;
- }
- h2 {
- border-bottom: 1px solid black;
- margin-top: 1em;
- margin-bottom: 0.5em;
- font-size: 2em;
- }
- h3 {
- color: orange;
- font-size: 1.75em;
- margin-top: 1.25em;
- margin-bottom: 0em;
- }
- h4 {
- margin: 0em;
- padding: 0em;
- border-bottom: 2px solid white;
- }
- h6 {
- font-size: 1.1em;
- color: #99a;
- margin: 0.5em 0em 0.25em 0em;
- }
- dd {
- margin-left: 1em;
- }
- tt {
- font-size: 1.2em;
- }
- table {
- margin-bottom: 0.5em;
- }
- th {
- text-align: left;
- font-weight: normal;
- color: black;
- border-bottom: 1px solid black;
- padding: 3px 6px;
- }
- td {
- padding: 3px 6px;
- vertical-align: top;
- background-color: f6f6ff;
- font-size: 0.85em;
- }
- td p {
- margin: 0px;
- }
- ul {
- padding-left: 1.75em;
- }
- p + ul, p + ol, p + dl {
- margin-top: 0em;
- }
- .optional {
- font-weight: normal;
- opacity: 0.75;
- }
- </style>
- </head>
- <body>
- <h1>
- <xsl:choose>
- <xsl:when test="wadl:doc[@title]">
- <xsl:value-of select="wadl:doc[@title][1]/@title"/>
-
- </xsl:when>
- <xsl:otherwise>My Web Application</xsl:otherwise>
- </xsl:choose>
- </h1>
- <xsl:apply-templates select="wadl:doc"/>
- <ul>
- <li><a href="#resources">Resources</a>
- <xsl:apply-templates select="exsl:node-set($resources)" mode="toc"/>
-
- </li>
- <li><a href="#representations">Representations</a>
- <ul>
- <xsl:apply-templates select="exsl:node-set($resources)/descendant::wadl:representation" mode="toc"/>
- </ul>
- </li>
- <xsl:if test="descendant::wadl:fault">
- <li><a href="#faults">Faults</a>
-
- <ul>
- <xsl:apply-templates select="exsl:node-set($resources)/descendant::wadl:fault" mode="toc"/>
- </ul>
- </li>
- </xsl:if>
- </ul>
- <h2 id="resources">Resources</h2>
- <xsl:apply-templates select="exsl:node-set($resources)" mode="list"/>
-
- <h2 id="representations">Representations</h2>
- <xsl:apply-templates select="exsl:node-set($resources)/descendant::wadl:representation" mode="list"/>
- <xsl:if test="exsl:node-set($resources)/descendant::wadl:fault"><h2 id="faults">Faults</h2>
- <xsl:apply-templates select="exsl:node-set($resources)/descendant::wadl:fault" mode="list"/>
- </xsl:if>
- </body>
- </html>
- </xsl:template>
-
- <!-- Table of Contents -->
-
- <xsl:template match="wadl:resources" mode="toc">
- <xsl:variable name="base">
- <xsl:choose>
- <xsl:when test="substring(@base, string-length(@base), 1) = '/'">
- <xsl:value-of select="substring(@base, 1, string-length(@base) - 1)"/>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="@base"/></xsl:otherwise>
-
- </xsl:choose>
- </xsl:variable>
- <ul>
- <xsl:apply-templates select="wadl:resource" mode="toc">
- <xsl:with-param name="context"><xsl:value-of select="$base"/></xsl:with-param>
- </xsl:apply-templates>
- </ul>
- </xsl:template>
-
- <xsl:template match="wadl:resource" mode="toc">
-
- <xsl:param name="context"/>
- <xsl:variable name="id"><xsl:call-template name="get-id"/></xsl:variable>
- <xsl:variable name="name"><xsl:value-of select="$context"/>/<xsl:value-of select="@path"/></xsl:variable>
- <li><a href="#{$id}"><xsl:value-of select="$name"/></a>
- <xsl:if test="wadl:resource">
- <ul>
- <xsl:apply-templates select="wadl:resource" mode="toc">
- <xsl:with-param name="context" select="$name"/>
-
- </xsl:apply-templates>
- </ul>
- </xsl:if>
- </li>
- </xsl:template>
-
- <xsl:template match="wadl:representation|wadl:fault" mode="toc">
- <xsl:variable name="id"><xsl:call-template name="get-id"/></xsl:variable>
- <xsl:variable name="href" select="@id"/>
-
- <xsl:choose>
- <xsl:when test="preceding::wadl:*[@id=$href]"/>
- <xsl:otherwise>
- <li>
- <a href="#{$id}">
- <xsl:call-template name="representation-name"/>
- </a>
- </li>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:template>
-
- <!-- Listings -->
-
- <xsl:template match="wadl:resources" mode="list">
- <xsl:variable name="base">
- <xsl:choose>
- <xsl:when test="substring(@base, string-length(@base), 1) = '/'">
- <xsl:value-of select="substring(@base, 1, string-length(@base) - 1)"/>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="@base"/></xsl:otherwise>
-
- </xsl:choose>
- </xsl:variable>
- <xsl:apply-templates select="wadl:resource" mode="list"/>
-
- </xsl:template>
-
- <xsl:template match="wadl:resource" mode="list">
- <xsl:param name="context"/>
- <xsl:variable name="href" select="@id"/>
- <xsl:choose>
- <xsl:when test="preceding::wadl:resource[@id=$href]"/>
-
- <xsl:otherwise>
- <xsl:variable name="id"><xsl:call-template name="get-id"/></xsl:variable>
- <xsl:variable name="name">
- <xsl:value-of select="$context"/>/<xsl:value-of select="@path"/>
- <xsl:for-each select="wadl:param[@style='matrix']">
- <span class="optional">;<xsl:value-of select="@name"/>=...</span>
- </xsl:for-each>
-
- </xsl:variable>
- <div class="resource">
- <h3 id="{$id}">
- <xsl:choose>
- <xsl:when test="wadl:doc[@title]"><xsl:value-of select="wadl:doc[@title][1]/@title"/></xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="$name"/>
- <xsl:for-each select="wadl:method[1]/wadl:request/wadl:param[@style='query']">
- <xsl:choose>
-
- <xsl:when test="@required='true'">
- <xsl:choose>
- <xsl:when test="preceding-sibling::wadl:param[@style='query']">&</xsl:when>
- <xsl:otherwise>?</xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="@name"/>
- </xsl:when>
- <xsl:otherwise>
-
- <span class="optional">
- <xsl:choose>
- <xsl:when test="preceding-sibling::wadl:param[@style='query']">&</xsl:when>
- <xsl:otherwise>?</xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="@name"/>
- </span>
- </xsl:otherwise>
-
- </xsl:choose>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
-
- </h3>
- <xsl:apply-templates select="wadl:doc"/>
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="prefix">resource-wide</xsl:with-param>
-
- <xsl:with-param name="style">template</xsl:with-param>
- </xsl:apply-templates>
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="prefix">resource-wide</xsl:with-param>
- <xsl:with-param name="style">matrix</xsl:with-param>
- </xsl:apply-templates>
- <h6>Methods</h6>
- <div class="methods">
-
- <xsl:apply-templates select="wadl:method"/>
- </div>
- </div>
- <xsl:apply-templates select="wadl:resource" mode="list">
- <xsl:with-param name="context" select="$name"/>
- </xsl:apply-templates>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
-
- <xsl:template match="wadl:method">
- <xsl:variable name="id"><xsl:call-template name="get-id"/></xsl:variable>
- <div class="method">
- <h4 id="{$id}"><xsl:value-of select="@name"/></h4>
- <xsl:apply-templates select="wadl:doc"/>
- <xsl:apply-templates select="wadl:request"/>
- <xsl:apply-templates select="wadl:response"/>
- </div>
- </xsl:template>
-
- <xsl:template match="wadl:request">
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="prefix">request</xsl:with-param>
- <xsl:with-param name="style">query</xsl:with-param>
- </xsl:apply-templates>
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="prefix">request</xsl:with-param>
-
- <xsl:with-param name="style">header</xsl:with-param>
- </xsl:apply-templates>
- <xsl:if test="wadl:representation">
- <p><em>acceptable request representations:</em></p>
- <ul>
- <xsl:apply-templates select="wadl:representation"/>
- </ul>
- </xsl:if>
-
- </xsl:template>
-
- <xsl:template match="wadl:response">
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="prefix">response</xsl:with-param>
- <xsl:with-param name="style">header</xsl:with-param>
- </xsl:apply-templates>
- <xsl:if test="wadl:representation">
- <p><em>available response representations:</em></p>
-
- <ul>
- <xsl:apply-templates select="wadl:representation"/>
- </ul>
- </xsl:if>
- <xsl:if test="wadl:fault">
- <p><em>potential faults:</em></p>
- <ul>
- <xsl:apply-templates select="wadl:fault"/>
-
- </ul>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="wadl:representation|wadl:fault">
- <xsl:variable name="id"><xsl:call-template name="get-id"/></xsl:variable>
- <li>
- <a href="#{$id}">
- <xsl:call-template name="representation-name"/>
-
- </a>
- </li>
- </xsl:template>
-
- <xsl:template match="wadl:representation|wadl:fault" mode="list">
- <xsl:variable name="id"><xsl:call-template name="get-id"/></xsl:variable>
- <xsl:variable name="href" select="@id"/>
- <xsl:variable name="expanded-name">
- <xsl:call-template name="expand-qname">
- <xsl:with-param select="@element" name="qname"/>
-
- </xsl:call-template>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="preceding::wadl:*[@id=$href]"/>
- <xsl:otherwise>
- <h3 id="{$id}">
- <xsl:call-template name="representation-name"/>
- </h3>
- <xsl:apply-templates select="wadl:doc"/>
-
- <xsl:if test="@element or wadl:param">
- <div class="representation">
- <xsl:if test="@element">
- <h6>XML Schema</h6>
- <xsl:call-template name="get-element">
- <xsl:with-param name="context" select="."/>
- <xsl:with-param name="qname" select="@element"/>
- </xsl:call-template>
-
- </xsl:if>
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="style">plain</xsl:with-param>
- </xsl:apply-templates>
- <xsl:apply-templates select="." mode="param-group">
- <xsl:with-param name="style">header</xsl:with-param>
- </xsl:apply-templates>
- </div>
- </xsl:if>
- </xsl:otherwise>
-
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="wadl:*" mode="param-group">
- <xsl:param name="style"/>
- <xsl:param name="prefix"></xsl:param>
- <xsl:if test="ancestor-or-self::wadl:*/wadl:param[@style=$style]">
- <h6><xsl:value-of select="$prefix"/><xsl:text> </xsl:text><xsl:value-of select="$style"/> parameters</h6>
- <table>
-
- <tr>
- <th>parameter</th>
- <th>value</th>
- <th>description</th>
- </tr>
- <xsl:apply-templates select="ancestor-or-self::wadl:*/wadl:param[@style=$style]"/>
- </table>
-
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="wadl:param">
- <tr>
- <td>
- <p><strong><xsl:value-of select="@name"/></strong></p>
- </td>
- <td>
- <p>
-
- <em><xsl:call-template name="link-qname"><xsl:with-param name="qname" select="@type"/></xsl:call-template></em>
- <xsl:if test="@required='true'"> <small> (required)</small></xsl:if>
- <xsl:if test="@repeating='true'"> <small> (repeating)</small></xsl:if>
- </p>
- <xsl:choose>
- <xsl:when test="wadl:option">
-
- <p><em>One of:</em></p>
- <ul>
- <xsl:apply-templates select="wadl:option"/>
- </ul>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="@default"><p>Default: <tt><xsl:value-of select="@default"/></tt></p></xsl:if>
- <xsl:if test="@fixed"><p>Fixed: <tt><xsl:value-of select="@fixed"/></tt></p></xsl:if>
-
- </xsl:otherwise>
- </xsl:choose>
- </td>
- <td>
- <xsl:apply-templates select="wadl:doc"/>
- <xsl:if test="wadl:option[wadl:doc]">
- <dl>
- <xsl:apply-templates select="wadl:option" mode="option-doc"/>
- </dl>
-
- </xsl:if>
- <xsl:if test="@path">
- <ul>
- <li>XPath to value: <tt><xsl:value-of select="@path"/></tt></li>
- <xsl:apply-templates select="wadl:link"/>
- </ul>
- </xsl:if>
- </td>
-
- </tr>
- </xsl:template>
-
- <xsl:template match="wadl:link">
- <li>
- Link: <a href="#{@resource_type}"><xsl:value-of select="@rel"/></a>
- </li>
- </xsl:template>
-
- <xsl:template match="wadl:option">
-
- <li>
- <tt><xsl:value-of select="@value"/></tt>
- <xsl:if test="ancestor::wadl:param[1]/@default=@value"> <small> (default)</small></xsl:if>
- </li>
- </xsl:template>
-
- <xsl:template match="wadl:option" mode="option-doc">
- <dt>
-
- <tt><xsl:value-of select="@value"/></tt>
- <xsl:if test="ancestor::wadl:param[1]/@default=@value"> <small> (default)</small></xsl:if>
- </dt>
- <dd>
- <xsl:apply-templates select="wadl:doc"/>
- </dd>
- </xsl:template>
-
- <xsl:template match="wadl:doc">
-
- <xsl:param name="inline">0</xsl:param>
- <!-- skip WADL elements -->
- <xsl:choose>
- <xsl:when test="node()[1]=text() and $inline=0">
- <p>
- <xsl:apply-templates select="node()" mode="copy"/>
- </p>
- </xsl:when>
-
- <xsl:otherwise>
- <xsl:apply-templates select="node()" mode="copy"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!-- utilities -->
-
- <xsl:template name="get-id">
- <xsl:choose>
-
- <xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="generate-id()"/></xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="get-namespace-uri">
- <xsl:param name="context" select="."/>
- <xsl:param name="qname"/>
- <xsl:variable name="prefix" select="substring-before($qname,':')"/>
-
- <xsl:variable name="qname-ns-uri" select="$context/namespace::*[name()=$prefix]"/>
- <!-- nasty hack to get around libxsl's refusal to copy all namespace nodes when pushing nodesets around -->
- <xsl:choose>
- <xsl:when test="$qname-ns-uri">
- <xsl:value-of select="$qname-ns-uri"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="exsl:node-set($resources)/*[1]/attribute::*[namespace-uri()='urn:namespace' and local-name()=$prefix]"/>
- </xsl:otherwise>
-
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="get-element">
- <xsl:param name="context" select="."/>
- <xsl:param name="qname"/>
- <xsl:variable name="ns-uri">
- <xsl:call-template name="get-namespace-uri">
- <xsl:with-param name="context" select="$context"/>
-
- <xsl:with-param name="qname" select="$qname"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="localname" select="substring-after($qname, ':')"/>
- <xsl:variable name="definition" select="exsl:node-set($grammars)/descendant::xs:element[@name=$localname][ancestor-or-self::*[@targetNamespace=$ns-uri]]"/>
- <xsl:variable name='source' select="$definition/ancestor-or-self::wadl:include[1]/@href"/>
- <p><em>Source: <a href="{$source}"><xsl:value-of select="$source"/></a></em></p>
- <pre><xsl:apply-templates select="$definition" mode="encode"/></pre>
-
- </xsl:template>
-
- <xsl:template name="link-qname">
- <xsl:param name="context" select="."/>
- <xsl:param name="qname"/>
- <xsl:variable name="ns-uri">
- <xsl:call-template name="get-namespace-uri">
- <xsl:with-param name="context" select="$context"/>
- <xsl:with-param name="qname" select="$qname"/>
-
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="localname" select="substring-after($qname, ':')"/>
- <xsl:choose>
- <xsl:when test="$ns-uri='http://www.w3.org/2001/XMLSchema'">
- <a href="http://www.w3.org/TR/xmlschema-2/#{$localname}"><xsl:value-of select="$localname"/></a>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="definition" select="exsl:node-set($grammars)/descendant::xs:*[@name=$localname][ancestor-or-self::*[@targetNamespace=$ns-uri]]"/>
- <a href="{$definition/ancestor-or-self::wadl:include[1]/@href}" title="{$definition/descendant::xs:documentation/descendant::text()}"><xsl:value-of select="$localname"/></a>
-
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="expand-qname">
- <xsl:param name="context" select="."/>
- <xsl:param name="qname"/>
- <xsl:variable name="ns-uri">
- <xsl:call-template name="get-namespace-uri">
-
- <xsl:with-param name="context" select="$context"/>
- <xsl:with-param name="qname" select="$qname"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:text>{</xsl:text>
- <xsl:value-of select="$ns-uri"/>
- <xsl:text>} </xsl:text>
- <xsl:value-of select="substring-after($qname, ':')"/>
-
- </xsl:template>
-
-
- <xsl:template name="representation-name">
- <xsl:variable name="expanded-name">
- <xsl:call-template name="expand-qname">
- <xsl:with-param select="@element" name="qname"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="wadl:doc[@title]">
-
- <xsl:value-of select="wadl:doc[@title][1]/@title"/>
- <xsl:if test="@status or @mediaType or @element"> (</xsl:if>
- <xsl:if test="@status">Status Code </xsl:if><xsl:value-of select="@status"/>
- <xsl:if test="@status and @mediaType"> - </xsl:if>
- <xsl:value-of select="@mediaType"/>
- <xsl:if test="(@status or @mediaType) and @element"> - </xsl:if>
-
- <xsl:if test="@element">
- <abbr title="{$expanded-name}"><xsl:value-of select="@element"/></abbr>
- </xsl:if>
- <xsl:if test="@status or @mediaType or @element">)</xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="@status">Status Code </xsl:if><xsl:value-of select="@status"/>
- <xsl:if test="@status and @mediaType"> - </xsl:if>
-
- <xsl:value-of select="@mediaType"/>
- <xsl:if test="@element"> (</xsl:if>
- <abbr title="{$expanded-name}"><xsl:value-of select="@element"/></abbr>
- <xsl:if test="@element">)</xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!-- entity-encode markup for display -->
-
- <xsl:template match="*" mode="encode">
- <xsl:text><</xsl:text>
- <xsl:value-of select="name()"/><xsl:apply-templates select="attribute::*" mode="encode"/>
- <xsl:choose>
- <xsl:when test="*|text()">
- <xsl:text>></xsl:text>
- <xsl:apply-templates select="*|text()" mode="encode" xml:space="preserve"/>
- <xsl:text></</xsl:text><xsl:value-of select="name()"/><xsl:text>></xsl:text>
- </xsl:when>
-
- <xsl:otherwise>
- <xsl:text>/></xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="@*" mode="encode">
- <xsl:text> </xsl:text><xsl:value-of select="name()"/><xsl:text>="</xsl:text><xsl:value-of select="."/><xsl:text>"</xsl:text>
- </xsl:template>
-
- <xsl:template match="text()" mode="encode">
-
- <xsl:value-of select="." xml:space="preserve"/>
- </xsl:template>
-
- <!-- copy HTML for display -->
-
- <xsl:template match="html:*" mode="copy">
- <!-- remove the prefix on HTML elements -->
- <xsl:element name="{local-name()}">
- <xsl:for-each select="@*">
- <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:for-each>
-
- <xsl:apply-templates select="node()" mode="copy"/>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="@*|node()[namespace-uri()!='http://www.w3.org/1999/xhtml']" mode="copy">
- <!-- everything else goes straight through -->
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" mode="copy"/>
- </xsl:copy>
- </xsl:template>
-
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>\r
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>\r
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>\r
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
- <classpathentry kind="src" path=".apt_generated">\r
- <attributes>\r
- <attribute name="optional" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+++ /dev/null
-<factorypath>
-</factorypath>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<projectDescription>\r
- <name>maven-kscontract-plugin</name>\r
- <comment></comment>\r
- <projects>\r
- </projects>\r
- <buildSpec>\r
- <buildCommand>\r
- <name>org.eclipse.jdt.core.javabuilder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- <buildCommand>\r
- <name>org.maven.ide.eclipse.maven2Builder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- </buildSpec>\r
- <natures>\r
- <nature>org.eclipse.jdt.core.javanature</nature>\r
- <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
- </natures>\r
-</projectDescription>\r
+++ /dev/null
-#Mon Jan 26 12:10:34 PST 2009\r
-eclipse.preferences.version=1\r
-org.eclipse.jdt.apt.aptEnabled=true\r
-org.eclipse.jdt.apt.genSrcDir=.apt_generated\r
-org.eclipse.jdt.apt.reconcileEnabled=true\r
+++ /dev/null
-#Mon Jan 26 12:11:37 PST 2009\r
-eclipse.preferences.version=1\r
-org.eclipse.jdt.core.builder.cleanOutputFolder=ignore\r
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning\r
-org.eclipse.jdt.core.builder.invalidClasspath=abort\r
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore\r
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch\r
-org.eclipse.jdt.core.circularClasspath=error\r
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled\r
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled\r
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled\r
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100\r
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning\r
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore\r
-org.eclipse.jdt.core.compiler.problem.deprecation=warning\r
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled\r
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled\r
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning\r
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore\r
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore\r
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled\r
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore\r
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning\r
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning\r
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error\r
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning\r
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning\r
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore\r
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore\r
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore\r
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled\r
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled\r
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled\r
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public\r
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore\r
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning\r
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled\r
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public\r
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore\r
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning\r
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning\r
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning\r
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore\r
-org.eclipse.jdt.core.compiler.problem.nullReference=warning\r
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning\r
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore\r
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore\r
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore\r
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning\r
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore\r
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore\r
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled\r
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning\r
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled\r
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore\r
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning\r
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning\r
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore\r
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning\r
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore\r
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore\r
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore\r
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore\r
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled\r
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled\r
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled\r
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning\r
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning\r
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning\r
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore\r
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled\r
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled\r
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled\r
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning\r
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning\r
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning\r
-org.eclipse.jdt.core.compiler.processAnnotations=enabled\r
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled\r
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL\r
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX\r
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore\r
-org.eclipse.jdt.core.incompleteClasspath=error\r
+++ /dev/null
-#Mon Jan 26 12:10:31 PST 2009\r
-eclipse.preferences.version=1\r
-internal.default.compliance=user\r
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>\r
+++ /dev/null
-#Mon Jan 26 12:05:24 PST 2009\r
-activeProfiles=\r
-eclipse.preferences.version=1\r
-filterResources=false\r
-fullBuildGoals=process-test-resources\r
-includeModules=false\r
-resolveWorkspaceProjects=true\r
-resourceFilterGoals=process-resources resources\:testResources\r
-useMavenFolders=true\r
-version=1\r
+++ /dev/null
-<contents>\r
-\r
-<p><a name="FactFinderService-findFactTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findFactTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of Facts Types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factTypeInfoList+Structure" title="factTypeInfoList Structure">factTypeInfoList</a></td>\r
-<td class="methodReturnDesc">List of Fact type information <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Do we want to switch this to just keys due to amount of information?</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-\r
-<p><a name="FactFinderService-fetchFactType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchFactType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a type of Fact, listing all the keys required for its computation.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factTypeKey+Structure" title="factTypeKey Structure">factTypeKey</a></td>\r
-<td class="methodParamName">factTypeKey</td>\r
-<td class="methodParamDesc">Identifier for the Fact type.</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factTypeInfo+Structure" title="factTypeInfo Structure">factTypeInfo</a></td>\r
-<td class="methodReturnDesc">Information about the specified type of Fact</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="FactFinderService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<p><a name="FactFinderService-fetchFact"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findFact</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">retrieves the result of computation of the Fact by the service</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factTypeKey+Structure" title="factTypeKey Structure">factTypeKey</a></td>\r
-<td class="methodParamName">factTypeKey</td>\r
-<td class="methodParamDesc">Fact type idenfifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factStructure+Structure" title="factStructure Structure">factStructure</a></td>\r
-<td class="methodParamName">factStructure</td>\r
-<td class="methodParamDesc">Fact Structure containing Fact type and values for the keys required for fact computation.</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factResults+Structure" title="factResults Structure">factResults</a></td>\r
-<td class="methodReturnDesc">values for the fact that will be used in the rules - differentiated from normal search results, due to potential differing needs (ex. inclusion of the resultType in expanded form, etc.) <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Probably need to discuss</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-<p><!-- ServiceOperationStop --></p>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Fact+Finder+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Fact+Finder+Service"\r
- dc:title="Fact Finder Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/89358342"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="89358342">\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-243" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-rules">kss-rules</a> <span class="remove-label-caption">kss-rules</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-214" class="confluence-label">\r
-\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932996" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svb2">kss-svb2</a> <span class="remove-label-caption">kss-svb2</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
-\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
-\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
-\r
- </div>\r
- </form>\r
- </div>\r
-</div>\r
-\r
- <div id="children-section" class="pageSection">\r
- \r
- <div class="section-header ">\r
- <h2 id="children-section-title" class="section-title">\r
- <a name="children">Children (3)</a>\r
-\r
- </h2>\r
- <span class="noprint">\r
- \r
- <a id="hide-children-link" class="grey" href="/confluence/display/KULSTU/Fact+Finder+Service?showChildren=false#children">Hide Children</a>\r
- \r
- | <a class="grey" href="/confluence/pages/listpages-dirview.action?key=KULSTU&openId=89358342#selectedPageInHierarchy">View in Hierarchy</a>\r
- | \r
-\r
- <a class="grey" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=89358342">Add Child Page</a>\r
- </span>\r
- </div>\r
- <div id="page-children" class="pageSectionBody">\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Description and Assumptions"/>\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Description+and+Assumptions">Fact Finder Service Description and Assumptions</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Release Notes"/>\r
-\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Release+Notes">Fact Finder Service Release Notes</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Sandbox"/>\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Sandbox">Fact Finder Service Sandbox</a>\r
- <br>\r
- </div>\r
- </div>\r
- \r
- \r
-\r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
-\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>\r
-</contents>\r
+++ /dev/null
-<table class="methodTable"><tr><th class="h">Method</th>\r
-\r
-<td colspan="3" class="methodName">getCommMediaTypesForUsageType</td></tr>\r
-<tr><th class="h">Description</th>\r
-<td colspan="3" class="methodDesc">Retrieves the list of communication media types that are supported for a given usage type.</td></tr>\r
-<tr><th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/display/collectionspace/objectTypeKey+Structure" title="objectTypeKey Structure">commUsageTypeKey</a></td>\r
-<td class="methodParamName">commUsageTypeKey</td>\r
-<td class="methodParamDesc">usage type identifier</td></tr>\r
-<tr><th class="h">Return</th>\r
-<td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">commMediaTypeInfoList</a></td>\r
-\r
-<td class="methodReturnDesc">list of communication media type information</td></tr>\r
-<tr><th class="h" rowspan="4">Errors</th>\r
-<td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">commUsageTypeKey not found</td></tr>\r
-<tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid commUsageTypeKey</td></tr>\r
-<tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing commUsageTypeKey</td></tr>\r
-<tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr><th class="h">Capabilities</th>\r
-<td colspan="3" class="capabilityDesc"></td></tr>\r
-<tr><th class="h">Use Cases</th>\r
-<td colspan="3" class="usecaseDesc"></td></tr>\r
-<tr><th class="h">Comments/Feedback</th>\r
-<td colspan="3" class="commentsDesc"></td></tr></table>\r
+++ /dev/null
-<table class="methodTable"><tr><th class="h">Method</th>\r
-<td colspan="3" class="methodName">getCommMediaTypesForUsageType</td></tr>\r
-<tr><th class="h">Description</th>\r
-<td colspan="3" class="methodDesc">Retrieves the list of communication media types that are supported for a given usage type.</td></tr>\r
-<tr><th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/pages/createpage.action?spaceKey=collectionspace&title=commUsageTypeKey+Structure&linkCreation=true&fromPageId=8355857" class="createlink">commUsageTypeKey</a></td>\r
-<td class="methodParamName">commUsageTypeKey</td>\r
-<td class="methodParamDesc">usage type identifier</td></tr>\r
-\r
-<tr><th class="h">Return</th>\r
-<td colspan="2" class="methodReturnType"><a href="/pages/createpage.action?spaceKey=collectionspace&title=commMediaTypeInfoList+Structure&linkCreation=true&fromPageId=8355857" class="createlink">commMediaTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of communication media type information</td></tr>\r
-<tr><th class="h" rowspan="4">Errors</th>\r
-<td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">commUsageTypeKey not found</td></tr>\r
-<tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid commUsageTypeKey</td></tr>\r
-<tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">missing commUsageTypeKey</td></tr>\r
-<tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr><th class="h">Capabilities</th>\r
-<td colspan="3" class="capabilityDesc"></td></tr>\r
-<tr><th class="h">Use Cases</th>\r
-<td colspan="3" class="usecaseDesc"></td></tr>\r
-<tr><th class="h">Comments/Feedback</th>\r
-<td colspan="3" class="commentsDesc"></td></tr></table>\r
+++ /dev/null
-<table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">getCommMediaTypesForUsageType</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of communication media types that are supported for a given usage type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><span class="error">[commUsageTypeKey]</span></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><span class="error">[commMediaTypeInfoList]</span></td><td class="methodReturnDesc">list of communication media type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">commUsageTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid commUsageTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing commUsageTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table>\r
+++ /dev/null
-<contents>\r
-<p><a name="wikitojavatestservice-getCommMediaTypes"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a>\r
-</p>\r
-<p><a name="wikitojavatestservice-getCommUsageTypes"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<p><a name="wikitojavatestservice-getCommMediaTypesForUsageType"></a>\r
-</p>\r
-\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td colspan="3" class="methodName">getCommMediaTypesForUsageType</td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td colspan="3" class="methodDesc">Retrieves the list of communication media types that are supported for a given usage type.</td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/display/collectionspace/objectTypeKey+Structure" title="objectTypeKey Structure">commUsageTypeKey</a></td>\r
-<td class="methodParamName">commUsageTypeKey</td>\r
-<td class="methodParamDesc">usage type identifier</td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">commMediaTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of communication media type information</td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">commUsageTypeKey not found</td>\r
-</tr>\r
-\r
-<tr>\r
-<td colspan="2" class="methodErrorType">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid commUsageTypeKey</td>\r
-</tr>\r
-\r
-<tr>\r
-<td colspan="2" class="methodErrorType">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing commUsageTypeKey</td>\r
-</tr>\r
-\r
-<tr>\r
-<td colspan="2" class="methodErrorType">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td colspan="3" class="capabilityDesc"></td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td colspan="3" class="usecaseDesc"></td>\r
-</tr>\r
-\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td colspan="3" class="commentsDesc"></td>\r
-</tr>\r
-\r
-</table>\r
-\r
-<p>\r
-<a href="#wikitojavatestservice-Operations">Back to Operations</a>\r
-</p>\r
-\r
-<h4>\r
-<a name="wikitojavatestservice-"></a>\r
-<font color="#000066"><em>Read</em></font>\r
-</h4>\r
-\r
-<p><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<h4>\r
-<a name="wikitojavatestservice-"></a>\r
-<font color="#000066"><em>Search</em></font>\r
-</h4>\r
-\r
-<p><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<h4>\r
-<a name="wikitojavatestservice-"></a>\r
-<font color="#000066"><em>Maintenance</em></font>\r
-</h4>\r
-\r
-<p><a name="wikitojavatestservice-sendMessageToPeople"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<p><a name="wikitojavatestservice-sendMessageToPeopleByUsageType"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<p><a name="wikitojavatestservice-sendMessageToPeopleByMediaType"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<p><a name="wikitojavatestservice-sendMessageToOrg"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<p><a name="wikitojavatestservice-sendMessageToOrgByUsageType"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p>\r
-<p><!-- ServiceOperationStop --> </p>\r
-\r
-<h3><a name="wikitojavatestservice-Capabilities"></a>Capabilities </h3>\r
-</div><!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://wiki.collectionspace.org/display/collectionspace/wikitojavatestservice" dc:identifier="http://wiki.collectionspace.org/display/collectionspace/wikitojavatestservice" dc:title="wikitojavatestservice" trackback:ping="http://wiki.collectionspace.org/rpc/trackback/8355857"/></rdf:RDF>--> <!-- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.--> <div class="wiki-content" style="margin-right:10px;"> <p style="clear: both"/><!-- comments should always display underneath the content. we should have a 'clear:both' here just in case there are floats or aligned images in the content --> </div> </div> </td> </tr> </table> <!-- End inner content table --> </td> </tr> </table></div><div id="footer"> <p class="license license-community"> Powered by a free <b>Atlassian Confluence Community License</b> granted to Museum of the Moving Image. <a href="http://www.atlassian.com/c/conf/11460">Evaluate Confluence today</a>.<br> </p> <ul id="poweredby"> <li>Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.10, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li> <li><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li> <li><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li> <li><a href="/administrators.action">Contact administrators</a></li> </ul></div></contents>\r
+++ /dev/null
-<contents><p><a name="wikitojavatestservice-getCommMediaTypes"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><a name="wikitojavatestservice-getCommUsageTypes"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><a name="wikitojavatestservice-getCommMediaTypesForUsageType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">getCommMediaTypesForUsageType</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of communication media types that are supported for a given usage type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/objectTypeKey+Structure" title="objectTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">commMediaTypeInfoList</a></td><td class="methodReturnDesc">list of communication media type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">commUsageTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid commUsageTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing commUsageTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><p><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><h4><a name="wikitojavatestservice-"></a><font color="#000066"><em>Read</em></font></h4><p><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><h4><a name="wikitojavatestservice-"></a><font color="#000066"><em>Search</em></font></h4><p><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><h4><a name="wikitojavatestservice-"></a><font color="#000066"><em>Maintenance</em></font></h4><p><a name="wikitojavatestservice-sendMessageToPeople"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><a name="wikitojavatestservice-sendMessageToPeopleByUsageType"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><a name="wikitojavatestservice-sendMessageToPeopleByMediaType"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><a name="wikitojavatestservice-sendMessageToOrg"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><a name="wikitojavatestservice-sendMessageToOrgByUsageType"></a><br/><a href="#wikitojavatestservice-Operations">Back to Operations</a></p><p><!-- ServiceOperationStop --> </p></contents>\r
+++ /dev/null
-<table class="methodTable">\r
-\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">getCommMediaTypesForUsageType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of communication media types that are supported for a given usage type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td>\r
-<td class="methodParamName">commUsageTypeKey</td>\r
-\r
-<td class="methodParamDesc">usage type identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/commMediaTypeInfoList+Structure" title="commMediaTypeInfoList Structure">commMediaTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of communication media type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">commUsageTypeKey not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid commUsageTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing commUsageTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
+++ /dev/null
-<table class="methodTable"><tr><th class="h">Method</th><td class="methodName" \r
-colspan="3">getCommMediaTypesForUsageType</td></tr><tr><th \r
-class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list \r
-of communication media types that are supported for a given usage \r
-type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td \r
-class="methodParamType"><a \r
-href="/confluence/display/KULSTU/commUsageTypeKey+Structure" \r
-title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td \r
-class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage \r
-type identifier</td></tr><tr><th class="h">Return</th><td \r
-class="methodReturnType" colspan="2"><a \r
-href="/confluence/display/KULSTU/commMediaTypeInfoList+Structure" \r
-title="commMediaTypeInfoList Structure">commMediaTypeInfoList</a></td><td \r
-class="methodReturnDesc">list of communication media type \r
-information</td></tr><tr><th class="h" rowspan="4">Errors</th><td \r
-class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td \r
-class="methodErrorDesc">commUsageTypeKey not found</td></tr><tr><td \r
-class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td \r
-class="methodErrorDesc">invalid commUsageTypeKey</td></tr><tr><td \r
-class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td \r
-class="methodErrorDesc">missing commUsageTypeKey</td></tr><tr><td \r
-class="methodErrorType" colspan="2">OPERATION_FAILED</td><td \r
-class="methodErrorDesc">unable to complete request</td></tr><tr><th \r
-class="h">Capabilities</th><td class="capabilityDesc" \r
-colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" \r
-colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td \r
-class="commentsDesc" colspan="3"></td></tr></table>\r
+++ /dev/null
-<table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">getCommMediaTypesForUsageType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of communication media types that are supported for a given usage type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/commMediaTypeInfoList+Structure" title="commMediaTypeInfoList Structure">commMediaTypeInfoList</a></td><td class="methodReturnDesc">list of communication media type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">commUsageTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid commUsageTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing commUsageTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table>\r
+++ /dev/null
-<contents><p><a name="CommunicationService-getCommMediaTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">getCommMediaTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of communication media types that this service knows of.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/commMediaTypeInfoList+Structure" title="commMediaTypeInfoList Structure">commMediaTypeInfoList</a></td><td class="methodReturnDesc">list of communication media type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><a name="CommunicationService-getCommUsageTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">getCommUsageTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of communication usage types that this service knows of.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/commUsageTypeInfoList+Structure" title="commUsageTypeInfoList Structure">commUsageTypeInfoList</a></td><td class="methodReturnDesc">list of communication usage type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><a name="CommunicationService-getCommMediaTypesForUsageType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">getCommMediaTypesForUsageType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of communication media types that are supported for a given usage type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/commMediaTypeInfoList+Structure" title="commMediaTypeInfoList Structure">commMediaTypeInfoList</a></td><td class="methodReturnDesc">list of communication media type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">commUsageTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid commUsageTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing commUsageTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><h4><a name="CommunicationService-"></a><font color="#000066"><em>Read</em></font></h4><p><a href="#CommunicationService-Operations">Back to Operations</a></p><h4><a name="CommunicationService-"></a><font color="#000066"><em>Search</em></font></h4><p><a href="#CommunicationService-Operations">Back to Operations</a></p><h4><a name="CommunicationService-"></a><font color="#000066"><em>Maintenance</em></font></h4><p><a name="CommunicationService-sendMessageToPeople"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">sendMessageToPeople</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Sends a message to a list of people for a particular media and usage type</td></tr><tr><th class="h" rowspan="5">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/personIdList+Structure" title="personIdList Structure">personIdList</a></td><td class="methodParamName">personIdList</td><td class="methodParamDesc">list of person identifiers</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commMediaTypeKey+Structure" title="commMediaTypeKey Structure">commMediaTypeKey</a></td><td class="methodParamName">commMediaTypeKey</td><td class="methodParamDesc">media type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">subject</td><td class="methodParamDesc">subject of the message</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">message</td><td class="methodParamDesc">message to send</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="7">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId found, but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, commMediaTypeKey, commUsageTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId, commMediaTypeKey, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId, commMediaTypeKey, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><td class="methodErrorType" colspan="2">UNSUPPORTED_ACTION</td><td class="methodErrorDesc">commMediaTypeKey is not supported for the commUsageTypeKey</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><a name="CommunicationService-sendMessageToPeopleByUsageType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">sendMessageToPeopleByUsageType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Sends a message to a list of people for a particular usage type</td></tr><tr><th class="h" rowspan="4">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/personIdList+Structure" title="personIdList Structure">personIdList</a></td><td class="methodParamName">personIdList</td><td class="methodParamDesc">list of person identifiers</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">subject</td><td class="methodParamDesc">subject of the message</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">message</td><td class="methodParamDesc">message to send</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId found, but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, commUsageTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><a name="CommunicationService-sendMessageToPeopleByMediaType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">sendMessageToPeopleByMediaType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Sends a message to a list of people for a particular media type</td></tr><tr><th class="h" rowspan="4">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/personIdList+Structure" title="personIdList Structure">personIdList</a></td><td class="methodParamName">personIdList</td><td class="methodParamDesc">list of person identifiers</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commMediaTypeKey+Structure" title="commMediaTypeKey Structure">commMediaTypeKey</a></td><td class="methodParamName">commMediaTypeKey</td><td class="methodParamDesc">media type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">subject</td><td class="methodParamDesc">subject of the message</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">message</td><td class="methodParamDesc">message to send</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId found, but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, commMediaTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personIdList, commMediaTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personIdList, commMediaTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><a name="CommunicationService-sendMessageToOrg"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">sendMessageToOrg</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Sends a message to an organization for a particular media and usage type</td></tr><tr><th class="h" rowspan="5">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/orgIdList+Structure" title="orgIdList Structure">orgIdList</a></td><td class="methodParamName">orgIdList</td><td class="methodParamDesc">list of organization identifiers</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commMediaTypeKey+Structure" title="commMediaTypeKey Structure">commMediaTypeKey</a></td><td class="methodParamName">commMediaTypeKey</td><td class="methodParamDesc">media type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">subject</td><td class="methodParamDesc">subject of the message</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">message</td><td class="methodParamDesc">message to send</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">orgId, commMediaTypeKey, commUsageTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid orgIdList, commMediaTypeKey, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing orgIdList, commMediaTypeKey, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><td class="methodErrorType" colspan="2">UNSUPPORTED_ACTION</td><td class="methodErrorDesc">commMediaTypeKey is not supported for the commUsageTypeKey</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><a name="CommunicationService-sendMessageToOrgByUsageType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">sendMessageToOrgByUsageType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Sends a message to an organization for a particular usage type</td></tr><tr><th class="h" rowspan="4">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/orgIdList+Structure" title="orgIdList Structure">orgIdList</a></td><td class="methodParamName">orgIdList</td><td class="methodParamDesc">list of organization identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/commUsageTypeKey+Structure" title="commUsageTypeKey Structure">commUsageTypeKey</a></td><td class="methodParamName">commUsageTypeKey</td><td class="methodParamDesc">usage type identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">subject</td><td class="methodParamDesc">subject of the message</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">message</td><td class="methodParamDesc">message to send</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="5">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">orgId, commUsageTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid orgIdList, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing orgIdList, commUsageTypeKey, subject, message</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#CommunicationService-Operations">Back to Operations</a></p><p><!-- ServiceOperationStop --></p></contents>\r
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
-<html>\r
-<head>\r
- <title>Fact Finder Service - KS Workspace - Confluence</title>\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
- \r
-<meta id="confluence-context-path" name="confluence-context-path" content="/confluence">\r
-<script type="text/javascript">\r
- // Deprecated global variables. To be removed in a future version of Confluence.\r
- var contextPath = '/confluence';\r
- var i18n = [];\r
-</script>\r
-\r
-\r
-\r
-<!-- include system resources -->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master.css" title="Confluence Master Stylesheet" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/wiki-content.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tabs.css" media="all"/>\r
-\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu-ie.css" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tables.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/panels.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master-ie.css" title="Master-IE" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/renderer-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/information-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/layout-macros.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:prototype/prototype.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/effects.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/dragdrop.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/controls.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/util.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery-compatibility.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.dimensions.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:ajs/atlassian.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/engine.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/util.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/AddLabeltoEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/RemoveLabelFromEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/SuggestedLabelsForEntity.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/GenerateAutocompleteLabelsListForEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/uberlabels.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels-editor.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/autocomplete.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:animation/animation.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments-ie.css" media="all"/>\r
-<![endif]-->\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:breadcrumbs/breadcrumbs.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/master.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/menu.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/PageNotification.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:print-styles/print.css" media="print"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:atlassian-effects/atlassian-effects.js" ></script>\r
-\r
-<!-- end system resources -->\r
-\r
- <link rel="stylesheet" href="/confluence/s/1415/4/1/_/styles/combined.css?spaceKey=KULSTU" type="text/css">\r
-\r
- <meta name="confluence-request-time" content="1233961622371">\r
-<link rel="shortcut icon" href="/confluence/images/icons/favicon.ico">\r
-<link rel="icon" type="image/png" href="/confluence/images/icons/favicon.png">\r
-\r
-\r
- \r
-</head>\r
-\r
- <body onload="placeFocus()" id="com-atlassian-confluence">\r
- \r
-\r
-\r
- <script type="text/javascript">\r
- AJS.toInit(function ($) {\r
- $(".message-close-button").each(function () {\r
- var li = $(this).parent();\r
- var cookieId = this.alt;\r
- $(this).click(function () {\r
- li.slideUp();\r
- setCookie(cookieId, true);\r
- });\r
- });\r
-\r
- $("#messageContainer .confluence-messages").each(function () {\r
- if (!getCookie(this.id)) {\r
- $(this).show();\r
- }\r
- })\r
- });\r
- </script>\r
-\r
- \r
-<div id="header">\r
- <form id="quick-search" method="get" action="/confluence/dosearchsite.action">\r
- <fieldset>\r
-\r
- <legend>Quick Search</legend>\r
- <input type="hidden" name="where" value="conf_all" />\r
- <input id="quick-search-query" type="text" accessKey="q" name="queryString" size="25"/>\r
- <input id="quick-search-submit" type="submit" value="Search"/>\r
- </fieldset>\r
- <fieldset class="hidden parameters">\r
- <input type="hidden" id="quickSearchPlaceholder" value="Search">\r
- </fieldset>\r
-\r
- </form>\r
- <ul id="header-menu-bar" class="ajs-menu-bar">\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="browse-menu-link" class="browse trigger ajs-menu-title" href="#"><span><span>Browse</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="browse-menu-link-leading" class="section-leading first">\r
- <li>\r
- \r
- <a id="space-pages-link" href="/confluence/pages/listpages.action?key=KULSTU" class="" >\r
- <span>Pages</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-blogposts-link" href="/confluence/pages/viewrecentblogposts.action?key=KULSTU" class="" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="space-labels-link" href="/confluence/labels/listlabels-heatmap.action?key=KULSTU" class="" >\r
- <span>Labels</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-attachments-link" href="/confluence/spaces/listattachmentsforspace.action?key=KULSTU" class="" >\r
- <span>Attachments</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/space-bookmarks.action?spaceKey=KULSTU" class="" >\r
- <span>Bookmarks</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-mail-link" href="/confluence/spaces/viewmailarchive.action?key=KULSTU" class="" >\r
- <span>Mail</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/usage/report.action?key=KULSTU" class="" >\r
- <span>Activity</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-advanced-link" href="/confluence/spaces/viewspacesummary.action?key=KULSTU" class="" >\r
- <span>Advanced</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="browse-menu-link-global" class="section-global">\r
- <li>\r
- \r
- <a id="people-directory-link" href="/confluence/peopledirectory.action" class="" >\r
-\r
- <span>People Directory</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="user-menu-link" class="user trigger ajs-menu-title" href="#"><span><span>UCB Guest</span></span></a> <div class="hidden ajs-drop-down">\r
-\r
- <ul id="user-menu-link-user-preferences" class="section-user-preferences first">\r
- <li>\r
- \r
- <a id="view-user-profile-link" href="/confluence/users/viewuserprofile.action?username=ucbguest" class="user-item user-profile" >\r
- <span>Preferences</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="view-user-history-link" href="/confluence/users/viewuserhistory.action" class="user-item user-history popup-link" >\r
- <span>History</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-content" class="section-user-content">\r
- <li>\r
- \r
- <a id="user-labels-link" href="/confluence/users/viewmylabels.action" class="user-item" >\r
- <span>Labels</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-watches-link" href="/confluence/users/viewnotifications.action" class="user-item" >\r
-\r
- <span>Watches</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-drafts-link" href="/confluence/users/viewmydrafts.action" class="user-item" >\r
- <span>Drafts</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-operations" class="section-user-operations">\r
-\r
- <li>\r
- \r
- <a id="logout-link" href="/confluence/logout.action" class="user-item logout-link" >\r
- <span>Log Out</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- \r
- \r
- <ol id="breadcrumbs">\r
- \r
- <li><span>\r
- <a href="/confluence/dashboard.action">Dashboard</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU">KS Workspace</a>\r
- </span></li>\r
-\r
- <li id="ellipsis" title=" …\r
- Home\r
- > Service Architecture Homepage\r
- > Service Design Repositories\r
- …\r
-"><span>> <strong>…</strong></span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Home">Home</a>\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Architecture+Homepage">Service Architecture Homepage</a>\r
-\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Design+Repositories">Service Design Repositories</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU/Service+Description+Repository">Service Description Repository</a>\r
- </span></li>\r
-\r
- \r
- <li><span>\r
- > Fact Finder Service\r
- </span></li>\r
- </ol>\r
-\r
-</div>\r
-<div id="main">\r
- \r
- <ul id="user-control-panel">\r
- <li class="first">Welcome <a href="/confluence/display/~ucbguest">UCB Guest</a></li>\r
-\r
- <li><a href="/confluence/users/viewuserhistory.action" onclick="window.open(this.href,'user_history', 'width=620, height=175, resizable'); return false;" title="View History">History</a></li>\r
- \r
- <li><a href="/confluence/users/viewuserprofile.action?username=ucbguest">Preferences</a></li>\r
-\r
- \r
- <li><a href="/confluence/logout.action" id="logout">Log Out</a></li>\r
- </ul>\r
- \r
- <div id="navigation" class="content-navigation view">\r
- <fieldset class="hidden parameters">\r
-\r
- <input type="hidden" id="pageId" value="89358342">\r
- </fieldset>\r
- <ul class="ajs-menu-bar">\r
- <li class="ajs-button normal">\r
- \r
- <a id="editPageLink" href="/confluence/pages/editpage.action?pageId=89358342" class="edit" accessKey="e">\r
- <span><u>E</u>dit</span> </a>\r
-</li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="add-menu-link" class="add trigger ajs-menu-title" href="#"><span><span>Add</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="add-menu-link-space" class="section-space first">\r
- <li>\r
- \r
- <a id="createPageLink" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=89358342" class="add-page" >\r
- <span>Page</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="createNewsLink" href="/confluence/pages/createblogpost.action?spaceKey=KULSTU" class="add-news" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/plugins/socialbookmarking/updatebookmark.action?spaceKey=KULSTU&redirect=spacebookmarks" class="" >\r
- <span><img alt="Bookmark" src="/confluence/images/icons/adfav_16.gif" height="16" width="16" title="Bookmark"\r
- >Bookmark</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a href="/confluence/spaces/gliffy/adddiagram.action?pageId=89358342&key=KULSTU" class="" >\r
- <span><img alt="Diagram" src="/confluence/download/resources/com.gliffy.integration.confluence:gliffy-macro-key/resources/icons/add_diagram_16.gif" height="16" width="16" title="Diagram"\r
- >Diagram</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="add-menu-link-page" class="section-page">\r
- <li>\r
- \r
- <a id="add-comment-menu-link" href="/confluence/display/KULSTU/Fact+Finder+Service?showComments=true&showCommentArea=true#addcomment" class="add-comment" >\r
- <span>Comment</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="add-attachment-link" href="/confluence/pages/viewpageattachments.action?pageId=89358342" class="add-attachment" accessKey="a">\r
- <span>Attachment</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="action-menu-link" class="action trigger ajs-menu-title" href="#"><span><span>Tools</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="action-menu-link-primary" class="section-primary first">\r
- <li>\r
- \r
- <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=89358342" class="action-view-attachments" accessKey="a">\r
- <span><u>A</u>ttachments (0)</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=89358342" class="action-view-history" >\r
- <span>History</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="mailPageLink" href="/confluence/pages/mailpage/mailpage.action?pageId=89358342" class="" >\r
- <span><img alt="E-mail" src="/confluence/images/icons/mail_content_16.gif" height="16" width="16" title="E-mail"\r
- >E-mail</span> </a>\r
-</li>\r
- </ul>\r
-\r
- <ul id="action-menu-link-marker" class="section-marker">\r
- <li>\r
- \r
- <a id="page-favourite" href="/confluence/labels/addfavourite.action?entityId=89358342" class="action-page-favourite" >\r
- <span>Favourite</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="page-watch" href="/confluence/pages/addpagenotification.action?pageId=89358342" class="action-page-watching" >\r
- <span>Watch</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-secondary" class="section-secondary">\r
- <li>\r
- \r
- <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=89358342" class="action-view-info" accessKey="i">\r
- <span><u>I</u>nfo</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-source-link" href="/confluence/pages/viewpagesrc.action?pageId=89358342" class="action-view-source popup-link" >\r
- <span>View Wiki Markup</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="action-export-pdf-link" href="/confluence/pages/doexportpage.action?pageId=89358342&type=TYPE_PDF" class="action-export-pdf" >\r
- <span>Export to PDF</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-export-word-link" href="/confluence/exportword?pageId=89358342" class="action-export-word" >\r
- <span>Export to Word</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-modify" class="section-modify">\r
- <li>\r
- \r
- <a id="action-copy-page-link" href="/confluence/pages/copypage.action?idOfPageToCopy=89358342&spaceKey=KULSTU" class="action-copy" >\r
- <span>Copy</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="action-move-page-link" href="/confluence/pages/editpage.action?pageId=89358342&locationShowing=true#locationSection" class="action-move" >\r
- <span>Move</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- </div>\r
-\r
- <h1 id="title-heading" class="pagetitle">\r
- <a href="/confluence/display/KULSTU"><img class="logo space custom" src="/confluence/download/attachments/25289/KULSTU?version=1" alt=""></a> \r
- <span id="title-text">\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service">Fact Finder Service</a>\r
- </span>\r
- </h1>\r
-\r
- <!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
-\r
-<div id="content" class="page view">\r
- \r
- \r
- \r
- \r
-\r
- \r
- <div class="page-metadata">\r
- Added by <a href="/confluence/display/~kmuthusw">Kamal Muthuswamy</a>, last edited by <a href="/confluence/display/~abucior">Andy Bucior</a> on Oct 15, 2008\r
- <span class="noprint"> (<a href="/confluence/pages/diffpages.action?pageId=89358342&originalId=99549515">view change</a>)</span>\r
-\r
- </div> \r
- <div class="wiki-content">\r
- <!-- wiki content -->\r
- <h2><a name="FactFinderService-FactFinderService"></a>Fact Finder Service</h2>\r
-\r
-<style type="text/css">\r
-\r
-table#serviceMetaTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-table#serviceMetaTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-table#serviceMetaTable td#serviceName {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-table#serviceMetaTable td#serviceVersion {\r
-border:1px solid #000000;\r
-width:70%;\r
-}\r
-table#serviceMetaTable td#serviceVersionHistory {\r
-border:1px solid #000000;\r
-width:15%;\r
-}\r
-\r
-</style>\r
-\r
-\r
-<table id="serviceMetaTable">\r
-<tr>\r
-<th class="h">Name</th>\r
-\r
-<td colspan="2" id="serviceName">FactFinderService</td></tr>\r
-<tr>\r
-<th class="h">Version</th>\r
-<td id="serviceVersion">Dev</td>\r
-<td id="serviceVersionHistory"><a href="/confluence/display/KULSTU/Fact+Finder+Service+Release+Notes#FactFinderServiceReleaseNotes-current">Release Notes/History</a></td></tr></table>\r
-<table class='confluenceTable'><tbody>\r
-<tr>\r
-<td class='confluenceTd'> <a href="#FactFinderService-References">References</a> </td>\r
-<td class='confluenceTd'> <a href="#FactFinderService-Operations">Operations</a> </td>\r
-\r
-<td class='confluenceTd'> <a href="#FactFinderService-Capabilities">Capabilities</a> </td>\r
-</tr>\r
-</tbody></table>\r
-\r
-<h3><a name="FactFinderService-References"></a>References</h3>\r
-\r
-<p><a href="/confluence/display/KULSTU/Fact+Finder+Service+Description+and+Assumptions" title="Fact Finder Service Description and Assumptions">Fact Finder Service Description and Assumptions</a><br/>\r
-<a href="/confluence/display/KULSTU/Business+Rules+Management+Service+Description+and+Assumptions" title="Business Rules Management Service Description and Assumptions">Business Rules Management Service Description and Assumptions</a><br/>\r
-<a href="https://test.kuali.org/confluence/spaces/gliffy/viewlargediagram.action?ceoid=38699060&name=Rules+Entity+7&pageId=38699060" rel="nofollow">BRMS Entity Diagram</a> - diagram used in the creation of BRMS<br/>\r
-\r
-<a href="/confluence/display/KULSTU/Entity+Diagrams" title="Entity Diagrams">BRMS Core Technical Entity Diagram</a><br/>\r
-<a href="/confluence/display/KULSTU/BRMS+Design+Specification" title="BRMS Design Specification">BRMS Design Specification</a><br/>\r
-<a href="/confluence/display/KULSTU/BRMS+Service+Diagrams" title="BRMS Service Diagrams">BRMS stack</a> describes the relationship between the BRMS and the run-time rules engine (Drools)<br/>\r
-<a href="https://test.kuali.org/confluence/display/KULSTU/Business+Rules+Management+Service+Structures" rel="nofollow">BRMS Structures</a></p>\r
-\r
-<h3><a name="FactFinderService-Operations"></a>Operations</h3>\r
-\r
-<style type="text/css">\r
-\r
-table.methodTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-\r
-table.methodTable td.d {\r
-border:1px solid #000000;\r
-}\r
-\r
-table.methodTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-\r
-table.methodTable td.methodName {\r
-border:1px solid #000000;\r
-background-color:#f2f2f2;\r
-color:#222222;\r
-text-align:center;\r
-width:85%;\r
-font-weight:bold;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodDesc {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-table.methodTable td.methodParamType {\r
-border:1px solid #000000;\r
-width:21%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodParamName {\r
-border:1px solid #000000;\r
-width:21%;\r
-}\r
-table.methodTable td.methodParamDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-table.methodTable td.methodReturnType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodReturnDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.methodErrors {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-\r
-table.methodTable td.methodErrorType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodErrorDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.capabilityDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.usecaseDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.commentsDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-\r
-\r
-</style>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;">\r
-<div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;">\r
-<b>Setup</b>\r
-</div>\r
-<div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><a href="#FactFinderService-findFactTypes">findFactTypes</a><br/>\r
-<a href="#FactFinderService-fetchFactType">fetchFactType</a></p>\r
-</div>\r
-\r
-</div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Read</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p><a href="#FactFinderService-fetchFact">fetchFact</a></p>\r
-</div></div>\r
-\r
-<p><!-- ServiceOperationStart --></p>\r
-\r
-<h4><a name="FactFinderService-"></a><font color="#000066"><em>Setup</em></font></h4>\r
-\r
-<p><a name="FactFinderService-findFactTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findFactTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of Facts Types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factTypeInfoList+Structure" title="factTypeInfoList Structure">factTypeInfoList</a></td>\r
-<td class="methodReturnDesc">List of Fact type information <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Do we want to switch this to just keys due to amount of information?</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-\r
-<p><a name="FactFinderService-fetchFactType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchFactType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a type of Fact, listing all the keys required for its computation.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factTypeKey+Structure" title="factTypeKey Structure">factTypeKey</a></td>\r
-<td class="methodParamName">factTypeKey</td>\r
-<td class="methodParamDesc">Identifier for the Fact type.</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factTypeInfo+Structure" title="factTypeInfo Structure">factTypeInfo</a></td>\r
-<td class="methodReturnDesc">Information about the specified type of Fact</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="FactFinderService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<p><a name="FactFinderService-fetchFact"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findFact</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">retrieves the result of computation of the Fact by the service</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factTypeKey+Structure" title="factTypeKey Structure">factTypeKey</a></td>\r
-<td class="methodParamName">factTypeKey</td>\r
-<td class="methodParamDesc">Fact type idenfifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factStructure+Structure" title="factStructure Structure">factStructure</a></td>\r
-<td class="methodParamName">factStructure</td>\r
-<td class="methodParamDesc">Fact Structure containing Fact type and values for the keys required for fact computation.</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factResults+Structure" title="factResults Structure">factResults</a></td>\r
-<td class="methodReturnDesc">values for the fact that will be used in the rules - differentiated from normal search results, due to potential differing needs (ex. inclusion of the resultType in expanded form, etc.) <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Probably need to discuss</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-<p><!-- ServiceOperationStop --></p>\r
-\r
-<h3><a name="FactFinderService-Capabilities"></a>Capabilities</h3>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Fact+Finder+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Fact+Finder+Service"\r
- dc:title="Fact Finder Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/89358342"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="89358342">\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-243" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-rules">kss-rules</a> <span class="remove-label-caption">kss-rules</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-214" class="confluence-label">\r
-\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932996" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svb2">kss-svb2</a> <span class="remove-label-caption">kss-svb2</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
-\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
-\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
-\r
- </div>\r
- </form>\r
- </div>\r
-</div>\r
-\r
- <div id="children-section" class="pageSection">\r
- \r
- <div class="section-header ">\r
- <h2 id="children-section-title" class="section-title">\r
- <a name="children">Children (3)</a>\r
-\r
- </h2>\r
- <span class="noprint">\r
- \r
- <a id="hide-children-link" class="grey" href="/confluence/display/KULSTU/Fact+Finder+Service?showChildren=false#children">Hide Children</a>\r
- \r
- | <a class="grey" href="/confluence/pages/listpages-dirview.action?key=KULSTU&openId=89358342#selectedPageInHierarchy">View in Hierarchy</a>\r
- | \r
-\r
- <a class="grey" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=89358342">Add Child Page</a>\r
- </span>\r
- </div>\r
- <div id="page-children" class="pageSectionBody">\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Description and Assumptions"/>\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Description+and+Assumptions">Fact Finder Service Description and Assumptions</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Release Notes"/>\r
-\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Release+Notes">Fact Finder Service Release Notes</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Sandbox"/>\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Sandbox">Fact Finder Service Sandbox</a>\r
- <br>\r
- </div>\r
- </div>\r
- \r
- \r
-\r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
-\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
-<html>\r
-<head>\r
- <title>Fact Finder Service - KS Workspace - Confluence</title>\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
- \r
-<meta id="confluence-context-path" name="confluence-context-path" content="/confluence">\r
-<script type="text/javascript">\r
- // Deprecated global variables. To be removed in a future version of Confluence.\r
- var contextPath = '/confluence';\r
- var i18n = [];\r
-</script>\r
-\r
-\r
-\r
-<!-- include system resources -->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master.css" title="Confluence Master Stylesheet" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/wiki-content.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tabs.css" media="all"/>\r
-\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu-ie.css" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tables.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/panels.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master-ie.css" title="Master-IE" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/renderer-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/information-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/layout-macros.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:prototype/prototype.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/effects.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/dragdrop.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/controls.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/util.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery-compatibility.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.dimensions.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:ajs/atlassian.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/engine.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/util.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/AddLabeltoEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/RemoveLabelFromEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/SuggestedLabelsForEntity.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/GenerateAutocompleteLabelsListForEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/uberlabels.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels-editor.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/autocomplete.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:animation/animation.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments-ie.css" media="all"/>\r
-<![endif]-->\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:breadcrumbs/breadcrumbs.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/master.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/menu.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/PageNotification.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:print-styles/print.css" media="print"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:atlassian-effects/atlassian-effects.js" ></script>\r
-\r
-<!-- end system resources -->\r
-\r
- <link rel="stylesheet" href="/confluence/s/1415/4/1/_/styles/combined.css?spaceKey=KULSTU" type="text/css">\r
-\r
- <meta name="confluence-request-time" content="1233961622371">\r
-<link rel="shortcut icon" href="/confluence/images/icons/favicon.ico">\r
-<link rel="icon" type="image/png" href="/confluence/images/icons/favicon.png">\r
-\r
-\r
- \r
-</head>\r
-\r
- <body onload="placeFocus()" id="com-atlassian-confluence">\r
- \r
-\r
-\r
- <script type="text/javascript">\r
- AJS.toInit(function ($) {\r
- $(".message-close-button").each(function () {\r
- var li = $(this).parent();\r
- var cookieId = this.alt;\r
- $(this).click(function () {\r
- li.slideUp();\r
- setCookie(cookieId, true);\r
- });\r
- });\r
-\r
- $("#messageContainer .confluence-messages").each(function () {\r
- if (!getCookie(this.id)) {\r
- $(this).show();\r
- }\r
- })\r
- });\r
- </script>\r
-\r
- \r
-<div id="header">\r
- <form id="quick-search" method="get" action="/confluence/dosearchsite.action">\r
- <fieldset>\r
-\r
- <legend>Quick Search</legend>\r
- <input type="hidden" name="where" value="conf_all" />\r
- <input id="quick-search-query" type="text" accessKey="q" name="queryString" size="25"/>\r
- <input id="quick-search-submit" type="submit" value="Search"/>\r
- </fieldset>\r
- <fieldset class="hidden parameters">\r
- <input type="hidden" id="quickSearchPlaceholder" value="Search">\r
- </fieldset>\r
-\r
- </form>\r
- <ul id="header-menu-bar" class="ajs-menu-bar">\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="browse-menu-link" class="browse trigger ajs-menu-title" href="#"><span><span>Browse</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="browse-menu-link-leading" class="section-leading first">\r
- <li>\r
- \r
- <a id="space-pages-link" href="/confluence/pages/listpages.action?key=KULSTU" class="" >\r
- <span>Pages</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-blogposts-link" href="/confluence/pages/viewrecentblogposts.action?key=KULSTU" class="" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="space-labels-link" href="/confluence/labels/listlabels-heatmap.action?key=KULSTU" class="" >\r
- <span>Labels</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-attachments-link" href="/confluence/spaces/listattachmentsforspace.action?key=KULSTU" class="" >\r
- <span>Attachments</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/space-bookmarks.action?spaceKey=KULSTU" class="" >\r
- <span>Bookmarks</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-mail-link" href="/confluence/spaces/viewmailarchive.action?key=KULSTU" class="" >\r
- <span>Mail</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/usage/report.action?key=KULSTU" class="" >\r
- <span>Activity</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-advanced-link" href="/confluence/spaces/viewspacesummary.action?key=KULSTU" class="" >\r
- <span>Advanced</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="browse-menu-link-global" class="section-global">\r
- <li>\r
- \r
- <a id="people-directory-link" href="/confluence/peopledirectory.action" class="" >\r
-\r
- <span>People Directory</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="user-menu-link" class="user trigger ajs-menu-title" href="#"><span><span>UCB Guest</span></span></a> <div class="hidden ajs-drop-down">\r
-\r
- <ul id="user-menu-link-user-preferences" class="section-user-preferences first">\r
- <li>\r
- \r
- <a id="view-user-profile-link" href="/confluence/users/viewuserprofile.action?username=ucbguest" class="user-item user-profile" >\r
- <span>Preferences</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="view-user-history-link" href="/confluence/users/viewuserhistory.action" class="user-item user-history popup-link" >\r
- <span>History</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-content" class="section-user-content">\r
- <li>\r
- \r
- <a id="user-labels-link" href="/confluence/users/viewmylabels.action" class="user-item" >\r
- <span>Labels</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-watches-link" href="/confluence/users/viewnotifications.action" class="user-item" >\r
-\r
- <span>Watches</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-drafts-link" href="/confluence/users/viewmydrafts.action" class="user-item" >\r
- <span>Drafts</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-operations" class="section-user-operations">\r
-\r
- <li>\r
- \r
- <a id="logout-link" href="/confluence/logout.action" class="user-item logout-link" >\r
- <span>Log Out</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- \r
- \r
- <ol id="breadcrumbs">\r
- \r
- <li><span>\r
- <a href="/confluence/dashboard.action">Dashboard</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU">KS Workspace</a>\r
- </span></li>\r
-\r
- <li id="ellipsis" title=" …\r
- Home\r
- > Service Architecture Homepage\r
- > Service Design Repositories\r
- …\r
-"><span>> <strong>…</strong></span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Home">Home</a>\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Architecture+Homepage">Service Architecture Homepage</a>\r
-\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Design+Repositories">Service Design Repositories</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU/Service+Description+Repository">Service Description Repository</a>\r
- </span></li>\r
-\r
- \r
- <li><span>\r
- > Fact Finder Service\r
- </span></li>\r
- </ol>\r
-\r
-</div>\r
-<div id="main">\r
- \r
- <ul id="user-control-panel">\r
- <li class="first">Welcome <a href="/confluence/display/~ucbguest">UCB Guest</a></li>\r
-\r
- <li><a href="/confluence/users/viewuserhistory.action" onclick="window.open(this.href,'user_history', 'width=620, height=175, resizable'); return false;" title="View History">History</a></li>\r
- \r
- <li><a href="/confluence/users/viewuserprofile.action?username=ucbguest">Preferences</a></li>\r
-\r
- \r
- <li><a href="/confluence/logout.action" id="logout">Log Out</a></li>\r
- </ul>\r
- \r
- <div id="navigation" class="content-navigation view">\r
- <fieldset class="hidden parameters">\r
-\r
- <input type="hidden" id="pageId" value="89358342">\r
- </fieldset>\r
- <ul class="ajs-menu-bar">\r
- <li class="ajs-button normal">\r
- \r
- <a id="editPageLink" href="/confluence/pages/editpage.action?pageId=89358342" class="edit" accessKey="e">\r
- <span><u>E</u>dit</span> </a>\r
-</li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="add-menu-link" class="add trigger ajs-menu-title" href="#"><span><span>Add</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="add-menu-link-space" class="section-space first">\r
- <li>\r
- \r
- <a id="createPageLink" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=89358342" class="add-page" >\r
- <span>Page</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="createNewsLink" href="/confluence/pages/createblogpost.action?spaceKey=KULSTU" class="add-news" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/plugins/socialbookmarking/updatebookmark.action?spaceKey=KULSTU&redirect=spacebookmarks" class="" >\r
- <span><img alt="Bookmark" src="/confluence/images/icons/adfav_16.gif" height="16" width="16" title="Bookmark"\r
- >Bookmark</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a href="/confluence/spaces/gliffy/adddiagram.action?pageId=89358342&key=KULSTU" class="" >\r
- <span><img alt="Diagram" src="/confluence/download/resources/com.gliffy.integration.confluence:gliffy-macro-key/resources/icons/add_diagram_16.gif" height="16" width="16" title="Diagram"\r
- >Diagram</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="add-menu-link-page" class="section-page">\r
- <li>\r
- \r
- <a id="add-comment-menu-link" href="/confluence/display/KULSTU/Fact+Finder+Service?showComments=true&showCommentArea=true#addcomment" class="add-comment" >\r
- <span>Comment</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="add-attachment-link" href="/confluence/pages/viewpageattachments.action?pageId=89358342" class="add-attachment" accessKey="a">\r
- <span>Attachment</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="action-menu-link" class="action trigger ajs-menu-title" href="#"><span><span>Tools</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="action-menu-link-primary" class="section-primary first">\r
- <li>\r
- \r
- <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=89358342" class="action-view-attachments" accessKey="a">\r
- <span><u>A</u>ttachments (0)</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=89358342" class="action-view-history" >\r
- <span>History</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="mailPageLink" href="/confluence/pages/mailpage/mailpage.action?pageId=89358342" class="" >\r
- <span><img alt="E-mail" src="/confluence/images/icons/mail_content_16.gif" height="16" width="16" title="E-mail"\r
- >E-mail</span> </a>\r
-</li>\r
- </ul>\r
-\r
- <ul id="action-menu-link-marker" class="section-marker">\r
- <li>\r
- \r
- <a id="page-favourite" href="/confluence/labels/addfavourite.action?entityId=89358342" class="action-page-favourite" >\r
- <span>Favourite</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="page-watch" href="/confluence/pages/addpagenotification.action?pageId=89358342" class="action-page-watching" >\r
- <span>Watch</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-secondary" class="section-secondary">\r
- <li>\r
- \r
- <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=89358342" class="action-view-info" accessKey="i">\r
- <span><u>I</u>nfo</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-source-link" href="/confluence/pages/viewpagesrc.action?pageId=89358342" class="action-view-source popup-link" >\r
- <span>View Wiki Markup</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="action-export-pdf-link" href="/confluence/pages/doexportpage.action?pageId=89358342&type=TYPE_PDF" class="action-export-pdf" >\r
- <span>Export to PDF</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-export-word-link" href="/confluence/exportword?pageId=89358342" class="action-export-word" >\r
- <span>Export to Word</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-modify" class="section-modify">\r
- <li>\r
- \r
- <a id="action-copy-page-link" href="/confluence/pages/copypage.action?idOfPageToCopy=89358342&spaceKey=KULSTU" class="action-copy" >\r
- <span>Copy</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="action-move-page-link" href="/confluence/pages/editpage.action?pageId=89358342&locationShowing=true#locationSection" class="action-move" >\r
- <span>Move</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- </div>\r
-\r
- <h1 id="title-heading" class="pagetitle">\r
- <a href="/confluence/display/KULSTU"><img class="logo space custom" src="/confluence/download/attachments/25289/KULSTU?version=1" alt=""></a> \r
- <span id="title-text">\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service">Fact Finder Service</a>\r
- </span>\r
- </h1>\r
-\r
- <!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
-\r
-<div id="content" class="page view">\r
- \r
- \r
- \r
- \r
-\r
- \r
- <div class="page-metadata">\r
- Added by <a href="/confluence/display/~kmuthusw">Kamal Muthuswamy</a>, last edited by <a href="/confluence/display/~abucior">Andy Bucior</a> on Oct 15, 2008\r
- <span class="noprint"> (<a href="/confluence/pages/diffpages.action?pageId=89358342&originalId=99549515">view change</a>)</span>\r
-\r
- </div> \r
- <div class="wiki-content">\r
- <!-- wiki content -->\r
- <h2><a name="FactFinderService-FactFinderService"></a>Fact Finder Service</h2>\r
-\r
-<style type="text/css">\r
-\r
-table#serviceMetaTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-table#serviceMetaTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-table#serviceMetaTable td#serviceName {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-table#serviceMetaTable td#serviceVersion {\r
-border:1px solid #000000;\r
-width:70%;\r
-}\r
-table#serviceMetaTable td#serviceVersionHistory {\r
-border:1px solid #000000;\r
-width:15%;\r
-}\r
-\r
-</style>\r
-\r
-\r
-<table id="serviceMetaTable">\r
-<tr>\r
-<th class="h">Name</th>\r
-\r
-<td colspan="2" id="serviceName">FactFinderService</td></tr>\r
-<tr>\r
-<th class="h">Version</th>\r
-<td id="serviceVersion">Dev</td>\r
-<td id="serviceVersionHistory"><a href="/confluence/display/KULSTU/Fact+Finder+Service+Release+Notes#FactFinderServiceReleaseNotes-current">Release Notes/History</a></td></tr></table>\r
-<table class='confluenceTable'><tbody>\r
-<tr>\r
-<td class='confluenceTd'> <a href="#FactFinderService-References">References</a> </td>\r
-<td class='confluenceTd'> <a href="#FactFinderService-Operations">Operations</a> </td>\r
-\r
-<td class='confluenceTd'> <a href="#FactFinderService-Capabilities">Capabilities</a> </td>\r
-</tr>\r
-</tbody></table>\r
-\r
-<h3><a name="FactFinderService-References"></a>References</h3>\r
-\r
-<p><a href="/confluence/display/KULSTU/Fact+Finder+Service+Description+and+Assumptions" title="Fact Finder Service Description and Assumptions">Fact Finder Service Description and Assumptions</a><br/>\r
-<a href="/confluence/display/KULSTU/Business+Rules+Management+Service+Description+and+Assumptions" title="Business Rules Management Service Description and Assumptions">Business Rules Management Service Description and Assumptions</a><br/>\r
-<a href="https://test.kuali.org/confluence/spaces/gliffy/viewlargediagram.action?ceoid=38699060&name=Rules+Entity+7&pageId=38699060" rel="nofollow">BRMS Entity Diagram</a> - diagram used in the creation of BRMS<br/>\r
-\r
-<a href="/confluence/display/KULSTU/Entity+Diagrams" title="Entity Diagrams">BRMS Core Technical Entity Diagram</a><br/>\r
-<a href="/confluence/display/KULSTU/BRMS+Design+Specification" title="BRMS Design Specification">BRMS Design Specification</a><br/>\r
-<a href="/confluence/display/KULSTU/BRMS+Service+Diagrams" title="BRMS Service Diagrams">BRMS stack</a> describes the relationship between the BRMS and the run-time rules engine (Drools)<br/>\r
-<a href="https://test.kuali.org/confluence/display/KULSTU/Business+Rules+Management+Service+Structures" rel="nofollow">BRMS Structures</a></p>\r
-\r
-<h3><a name="FactFinderService-Operations"></a>Operations</h3>\r
-\r
-<style type="text/css">\r
-\r
-table.methodTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-\r
-table.methodTable td.d {\r
-border:1px solid #000000;\r
-}\r
-\r
-table.methodTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-\r
-table.methodTable td.methodName {\r
-border:1px solid #000000;\r
-background-color:#f2f2f2;\r
-color:#222222;\r
-text-align:center;\r
-width:85%;\r
-font-weight:bold;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodDesc {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-table.methodTable td.methodParamType {\r
-border:1px solid #000000;\r
-width:21%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodParamName {\r
-border:1px solid #000000;\r
-width:21%;\r
-}\r
-table.methodTable td.methodParamDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-table.methodTable td.methodReturnType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodReturnDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.methodErrors {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-\r
-table.methodTable td.methodErrorType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodErrorDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.capabilityDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.usecaseDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.commentsDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-\r
-\r
-</style>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Setup</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p><a href="#FactFinderService-findFactTypes">findFactTypes</a><br/>\r
-<a href="#FactFinderService-fetchFactType">fetchFactType</a></p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Read</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p><a href="#FactFinderService-fetchFact">fetchFact</a></p>\r
-</div></div>\r
-\r
-<p><!-- ServiceOperationStart --></p>\r
-\r
-<h4><a name="FactFinderService-"></a><font color="#000066"><em>Setup</em></font></h4>\r
-\r
-<p><a name="FactFinderService-findFactTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findFactTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of Facts Types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factTypeInfoList+Structure" title="factTypeInfoList Structure">factTypeInfoList</a></td>\r
-<td class="methodReturnDesc">List of Fact type information <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Do we want to switch this to just keys due to amount of information?</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-\r
-<p><a name="FactFinderService-fetchFactType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchFactType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a type of Fact, listing all the keys required for its computation.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factTypeKey+Structure" title="factTypeKey Structure">factTypeKey</a></td>\r
-<td class="methodParamName">factTypeKey</td>\r
-<td class="methodParamDesc">Identifier for the Fact type.</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factTypeInfo+Structure" title="factTypeInfo Structure">factTypeInfo</a></td>\r
-<td class="methodReturnDesc">Information about the specified type of Fact</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="FactFinderService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<p><a name="FactFinderService-fetchFact"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findFact</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">retrieves the result of computation of the Fact by the service</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factTypeKey+Structure" title="factTypeKey Structure">factTypeKey</a></td>\r
-<td class="methodParamName">factTypeKey</td>\r
-<td class="methodParamDesc">Fact type idenfifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/factStructure+Structure" title="factStructure Structure">factStructure</a></td>\r
-<td class="methodParamName">factStructure</td>\r
-<td class="methodParamDesc">Fact Structure containing Fact type and values for the keys required for fact computation.</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/factResults+Structure" title="factResults Structure">factResults</a></td>\r
-<td class="methodReturnDesc">values for the fact that will be used in the rules - differentiated from normal search results, due to potential differing needs (ex. inclusion of the resultType in expanded form, etc.) <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Probably need to discuss</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr></table>\r
-<p><a href="#FactFinderService-Operations">Back to Operations</a></p>\r
-\r
-<p><!-- ServiceOperationStop --></p>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Fact+Finder+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Fact+Finder+Service"\r
- dc:title="Fact Finder Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/89358342"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="89358342">\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-243" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-rules">kss-rules</a> <span class="remove-label-caption">kss-rules</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-214" class="confluence-label">\r
-\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932996" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svb2">kss-svb2</a> <span class="remove-label-caption">kss-svb2</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
-\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
-\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
-\r
- </div>\r
- </form>\r
- </div>\r
-</div>\r
-\r
- <div id="children-section" class="pageSection">\r
- \r
- <div class="section-header ">\r
- <h2 id="children-section-title" class="section-title">\r
- <a name="children">Children (3)</a>\r
-\r
- </h2>\r
- <span class="noprint">\r
- \r
- <a id="hide-children-link" class="grey" href="/confluence/display/KULSTU/Fact+Finder+Service?showChildren=false#children">Hide Children</a>\r
- \r
- | <a class="grey" href="/confluence/pages/listpages-dirview.action?key=KULSTU&openId=89358342#selectedPageInHierarchy">View in Hierarchy</a>\r
- | \r
-\r
- <a class="grey" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=89358342">Add Child Page</a>\r
- </span>\r
- </div>\r
- <div id="page-children" class="pageSectionBody">\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Description and Assumptions"/>\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Description+and+Assumptions">Fact Finder Service Description and Assumptions</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Release Notes"/>\r
-\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Release+Notes">Fact Finder Service Release Notes</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Fact Finder Service Sandbox"/>\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service+Sandbox">Fact Finder Service Sandbox</a>\r
- <br>\r
- </div>\r
- </div>\r
- \r
- \r
-\r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Fact+Finder+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
-\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-<contents><p><a name="KSSPage-findObjectTypes"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findObjectTypes</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of object type identifiers known by this service. Example: cluInfo.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/objectTypeKeyList+Structure" title="objectTypeKeyList Structure">objectTypeKeyList</a></td><td class="methodReturnDesc">list of object type identifiers</td></tr><tr><th class="h" rowspan="1">Errors</th><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchObjectStructure"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchObjectStructure</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the basic dictionary information about a particular object structure. Including all variations based on a certain type and state. Example: Given that a CLU is of type "Course" and in the state of "Proposed," tell which fields are read only, mandatory, not applicable, have enumerations available, etc.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/objectTypeKey+Structure" title="objectTypeKey Structure">objectTypeKey</a></td><td class="methodParamName">objectTypeKey</td><td class="methodParamDesc">identifier of the object type</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/objectStructure+Structure" title="objectStructure Structure">objectStructure</a></td><td class="methodReturnDesc">describes the fields for the input object type</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified objectTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid objectTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing objectTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchEnumeration"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchEnumeration</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of enumeration values for a particular enumeration with a certain context for a particular date. The values returned should be those where the supplied date is between the effective and expiration dates. Certain enumerations may not support this functionality.</td></tr><tr><th class="h" rowspan="4">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/enumerationKey+Structure" title="enumerationKey Structure">enumerationKey</a></td><td class="methodParamName">enumerationKey</td><td class="methodParamDesc">identifier of the enumeration</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/enumContextKey+Structure" title="enumContextKey Structure">enumContextKey</a></td><td class="methodParamName">contextType</td><td class="methodParamDesc">identifier of the enumeration context type</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/string+Structure" title="string Structure">string</a></td><td class="methodParamName">contextValue</td><td class="methodParamDesc">value of the enumeration context</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/dateTime+Structure" title="dateTime Structure">dateTime</a></td><td class="methodParamName">contextDate</td><td class="methodParamDesc">date and time to get the enumeration for</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/enumeratedValueList+Structure" title="enumeratedValueList Structure">enumeratedValueList</a></td><td class="methodReturnDesc">list of enumerated codes and values</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">enumerationKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid enumerationKey, contextType, contextValue, contextDate</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing enumerationKey, contextType, contextValue, contextDate</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findSearchTypes"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findSearchTypes</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of search types known by this service.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No Parameters</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td><td class="methodReturnDesc">list of search type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchSearchType"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchSearchType</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves information about a particular search type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td><td class="methodParamName">searchTypeKey</td><td class="methodParamDesc">identifier of the search type</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfo+Structure" title="searchTypeInfo Structure">searchTypeInfo</a></td><td class="methodReturnDesc">information on the search type</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">searchTypeKey not specified</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findSearchTypesByResult"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findSearchTypesByResult</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of search types which return results in the specified format.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td><td class="methodParamName">searchResultTypeKey</td><td class="methodParamDesc">identifier of the search result type</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td><td class="methodReturnDesc">list of search type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchResultTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">searchResultTypeKey not specified</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findSearchTypesByCriteria"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findSearchTypesByCriteria</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of search types which use criteria in the specified format.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td><td class="methodParamName">searchCriteriaTypeKey</td><td class="methodParamDesc">identifier of the search criteria</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td><td class="methodReturnDesc">list of search type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findSearchResultTypes"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findSearchResultTypes</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of search result types known by this service. Search result types describe the return structure for a search.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No Parameters</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchResultTypeInfoList+Structure" title="searchResultTypeInfoList Structure">searchResultTypeInfoList</a></td><td class="methodReturnDesc">list of search result type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchSearchResultType"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchSearchResultType</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves information about a particular search result type. Search result types describe the return structure for a search.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td><td class="methodParamName">searchResultTypeKey</td><td class="methodParamDesc">identifier of the search result type</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchResultTypeInfo+Structure" title="searchResultTypeInfo Structure">searchResultTypeInfo</a></td><td class="methodReturnDesc">information on the search result type</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchResultTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">searchResultTypeKey not specified</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findSearchCriteriaTypes"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findSearchCriteriaTypes</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves the list of search criteria types known by this service.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchCriteriaTypeInfoList+Structure" title="searchCriteriaTypeInfoList Structure">searchCriteriaTypeInfoList</a></td><td class="methodReturnDesc">list of search criteria type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchSearchCriteriaType"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchSearchCriteriaType</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves information about a particular search criteria type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td><td class="methodParamName">searchCriteriaTypeKey</td><td class="methodParamDesc">identifier of the search criteria type</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/searchCriteriaTypeInfo+Structure" title="searchCriteriaTypeInfo Structure">searchCriteriaTypeInfo</a></td><td class="methodReturnDesc">information on the search criteria type</td></tr><tr><th class="h" rowspan="4">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findAuthenticationTypes"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findAuthenticationTypes</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieve the list of authentication types known by this service</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/authenticationTypeList+Structure" title="authenticationTypeList Structure">authenticationTypeList</a></td><td class="methodReturnDesc">list of authentication types</td></tr><tr><th class="h" rowspan="1">Errors</th><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><h4><a name="KSSPage-"></a><font color="#000066"><em>Read</em></font></h4><p><a name="KSSPage-findPrincipalIdsByPerson"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findPrincipalIdsByPerson</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves a list of Principals for a given Person</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/personId+Structure" title="personId Structure">personId</a></td><td class="methodParamName">personId</td><td class="methodParamDesc">person identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td><td class="methodReturnDesc">list of principal ids for the specified person</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findPrincipalIdsBySystem"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findPrincipalIdsBySystem</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves a list of Principals for a given System</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodParamName">systemId</td><td class="methodParamDesc">system identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td><td class="methodReturnDesc">list of principal ids for the given system</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">systemId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">systemId not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid systemId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing systemId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchPersonIdByPrincipal"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchPersonIdByPrincipal</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves a Person for a given Principal</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/personId+Structure" title="personId Structure">personId</a></td><td class="methodReturnDesc">person identifier that matches the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchSystemIdByPrincipal"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchSystemByPrincipal</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves a System for a given Principal</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodReturnDesc">system identifier that matches the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">systemId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">systemId not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-fetchPrincipalTypeForPrincipal"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">fetchPrincipalTypeForPrincipal</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves a Principal Type for a given Principal</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/principalType+Structure" title="principalType Structure">principalType</a></td><td class="methodReturnDesc">principal type that matches the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-findPrincipalTypesByPrincipalIdList"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">findPrincipalTypesByPrincipalIdList</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves a list of Principal Types for a given list of Principal Ids</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td><td class="methodParamName">principalIdList</td><td class="methodParamDesc">list of principal identifiers</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/principalTypeList+Structure" title="principalTypeList Structure">principalTypeList</a></td><td class="methodReturnDesc">List of principal types that match the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">One or more principalIds found but have been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">One or more principalIds not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalIdList</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><h4><a name="KSSPage-"></a><font color="#000066"><em>Search</em></font></h4><p><a name="KSSPage-searchForResults"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">searchForResults</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Retrieves results in tabular form for the specified parameters.</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><span class="error">[searchTypeKey]</span></td><td class="methodParamName">searchTypeKey</td><td class="methodParamDesc">search identifier</td></tr><tr><td class="methodParamType"><span class="error">[queryParamValueList]</span></td><td class="methodParamName">queryParamValues</td><td class="methodParamDesc">list of values for search parameters</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><span class="error">[resultList]</span></td><td class="methodReturnDesc">list of results from the query</td></tr><tr><th class="h" rowspan="5">Errors</th><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified search type not found</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchTypeKey, queryParamValueList</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">searchTypeKey, queryParamValueList not specified</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><h4><a name="KSSPage-"></a><font color="#000066"><em>Maintenance</em></font></h4><p><a name="KSSPage-assignPrincipalToPerson"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">assignPrincipalToPerson</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Assigns a Principal to a Person</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/personId+Structure" title="personId Structure">personId</a></td><td class="methodParamName">personId</td><td class="methodParamDesc">person identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="7">Errors</th><td colspan="2" class="methodErrorType">ALREADY_EXISTS</td><td class="methodErrorDesc">association already exists</td></tr><tr><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId or principalId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, principalId does not exist</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId, principalId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId, principalId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-assignPrincipalToSystem"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">assignPrincipalToSystem</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Assigns a Principal to a System</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodParamName">systemId</td><td class="methodParamDesc">system identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="7">Errors</th><td colspan="2" class="methodErrorType">ALREADY_EXISTS</td><td class="methodErrorDesc">association already exists</td></tr><tr><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId, systemId does not exist</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId, systemId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId, systemId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-removePrincipalFromPerson"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">removePrincipalFromPerson</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Remove a Principal from a Person</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/personId+Structure" title="personId Structure">personId</a></td><td class="methodParamName">personId</td><td class="methodParamDesc">person identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId or principalId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, principalId, association does not exist</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId, principalId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId, principalId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><a name="KSSPage-removePrincipalFromSystem"></a><table class="methodTable"><tr><th class="h">Method</th><td colspan="3" class="methodName">removePrincipalFromSystem</td></tr><tr><th class="h">Description</th><td colspan="3" class="methodDesc">Remove a Principal from a System</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/display/collectionspace/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/display/collectionspace/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodParamName">systemId</td><td class="methodParamDesc">system identifier</td></tr><tr><th class="h">Return</th><td colspan="2" class="methodReturnType"><a href="/display/collectionspace/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td colspan="2" class="methodErrorType">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr><tr><td colspan="2" class="methodErrorType">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId, systemId, association does not exist</td></tr><tr><td colspan="2" class="methodErrorType">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId, systemId</td></tr><tr><td colspan="2" class="methodErrorType">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId, systemId</td></tr><tr><td colspan="2" class="methodErrorType">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td colspan="2" class="methodErrorType">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td colspan="3" class="capabilityDesc"></td></tr><tr><th class="h">Use Cases</th><td colspan="3" class="usecaseDesc"></td></tr><tr><th class="h">Comments/Feedback</th><td colspan="3" class="commentsDesc"></td></tr></table><a href="#KSSPage-Operations">Back to Operations</a></p><p><!-- ServiceOperationStop --> </p></contents>
\ No newline at end of file
+++ /dev/null
-<p><!-- ServiceOperationStart --></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Setup</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-findObjectTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findObjectTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of object type identifiers known by this service. Example: cluInfo.</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectTypeKeyList+Structure" title="objectTypeKeyList Structure">objectTypeKeyList</a></td>\r
-<td class="methodReturnDesc">list of object type identifiers</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchObjectStructure"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchObjectStructure</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the basic dictionary information about a particular object structure. Including all variations based on a certain type and state. Example: Given that a CLU is of type "Course" and in the state of "Proposed," tell which fields are read only, mandatory, not applicable, have enumerations available, etc.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/objectTypeKey+Structure" title="objectTypeKey Structure">objectTypeKey</a></td>\r
-\r
-<td class="methodParamName">objectTypeKey</td>\r
-<td class="methodParamDesc">identifier of the object type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectStructure+Structure" title="objectStructure Structure">objectStructure</a></td>\r
-<td class="methodReturnDesc">describes the fields for the input object type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified objectTypeKey not found</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid objectTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing objectTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchEnumeration"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">fetchEnumeration</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of enumeration values for a particular enumeration with a certain context for a particular date. The values returned should be those where the supplied date is between the effective and expiration dates. Certain enumerations may not support this functionality.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/enumerationKey+Structure" title="enumerationKey Structure">enumerationKey</a></td>\r
-<td class="methodParamName">enumerationKey</td>\r
-<td class="methodParamDesc">identifier of the enumeration</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/enumContextKey+Structure" title="enumContextKey Structure">enumContextKey</a></td>\r
-<td class="methodParamName">contextType</td>\r
-<td class="methodParamDesc">identifier of the enumeration context type</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td>\r
-<td class="methodParamName">contextValue</td>\r
-<td class="methodParamDesc">value of the enumeration context</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/dateTime+Structure" title="dateTime Structure">dateTime</a></td>\r
-<td class="methodParamName">contextDate</td>\r
-\r
-<td class="methodParamDesc">date and time to get the enumeration for</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/enumeratedValueList+Structure" title="enumeratedValueList Structure">enumeratedValueList</a></td>\r
-<td class="methodReturnDesc">list of enumerated codes and values</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">enumerationKey not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid enumerationKey, contextType, contextValue, contextDate</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing enumerationKey, contextType, contextValue, contextDate</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">findSearchTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No Parameters</td></tr>\r
-<tr>\r
-\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchType</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td>\r
-<td class="methodParamName">searchTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfo+Structure" title="searchTypeInfo Structure">searchTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchTypeKey</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypesByResult"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchTypesByResult</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types which return results in the specified format.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td>\r
-<td class="methodParamName">searchResultTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search result type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchResultTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchResultTypeKey not specified</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypesByCriteria"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchTypesByCriteria</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types which use criteria in the specified format.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td>\r
-<td class="methodParamName">searchCriteriaTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search criteria</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-\r
-<td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchResultTypes"></a></p>\r
-<table class="methodTable">\r
-\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchResultTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search result types known by this service. Search result types describe the return structure for a search.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-\r
-<td class="methodParamDesc">No Parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfoList+Structure" title="searchResultTypeInfoList Structure">searchResultTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search result type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchResultType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchResultType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search result type. Search result types describe the return structure for a search.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td>\r
-<td class="methodParamName">searchResultTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search result type</td></tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfo+Structure" title="searchResultTypeInfo Structure">searchResultTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search result type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">invalid searchResultTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchResultTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchCriteriaTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchCriteriaTypes</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search criteria types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfoList+Structure" title="searchCriteriaTypeInfoList Structure">searchCriteriaTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search criteria type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchCriteriaType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchCriteriaType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search criteria type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td>\r
-<td class="methodParamName">searchCriteriaTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search criteria type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfo+Structure" title="searchCriteriaTypeInfo Structure">searchCriteriaTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search criteria type</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findAuthenticationTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findAuthenticationTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieve the list of authentication types known by this service</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/authenticationTypeList+Structure" title="authenticationTypeList Structure">authenticationTypeList</a></td>\r
-<td class="methodReturnDesc">list of authentication types</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-findPrincipalIdsByPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalIdsByPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principals for a given Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodReturnDesc">list of principal ids for the specified person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-\r
-<td class="methodErrorDesc">personId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findPrincipalIdsBySystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalIdsBySystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principals for a given System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodReturnDesc">list of principal ids for the given system</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">systemId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid systemId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchPersonIdByPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">fetchPersonIdByPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a Person for a given Principal</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodReturnDesc">person identifier that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId not found</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSystemIdByPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSystemByPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a System for a given Principal</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodReturnDesc">system identifier that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">systemId found but has been retired</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">systemId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchPrincipalTypeForPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchPrincipalTypeForPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a Principal Type for a given Principal</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalType+Structure" title="principalType Structure">principalType</a></td>\r
-<td class="methodReturnDesc">principal type that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findPrincipalTypesByPrincipalIdList"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalTypesByPrincipalIdList</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principal Types for a given list of Principal Ids</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodParamName">principalIdList</td>\r
-<td class="methodParamDesc">list of principal identifiers</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalTypeList+Structure" title="principalTypeList Structure">principalTypeList</a></td>\r
-<td class="methodReturnDesc">List of principal types that match the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">One or more principalIds found but have been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">One or more principalIds not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalIdList</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Search</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-searchForResults"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">searchForResults</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves results in tabular form for the specified parameters.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td>\r
-<td class="methodParamName">searchTypeKey</td>\r
-<td class="methodParamDesc">search identifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/queryParamValueList+Structure" title="queryParamValueList Structure">queryParamValueList</a></td>\r
-<td class="methodParamName">queryParamValues</td>\r
-<td class="methodParamDesc">list of values for search parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/resultList+Structure" title="resultList Structure">resultList</a></td>\r
-\r
-<td class="methodReturnDesc">list of results from the query</td></tr>\r
-<tr>\r
-<th class="h" rowspan="5">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified search type not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchTypeKey, queryParamValueList</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">searchTypeKey, queryParamValueList not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Maintenance</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-assignPrincipalToPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">assignPrincipalToPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Assigns a Principal to a Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="7">Errors</th>\r
-<td class="methodErrorType" colspan="2">ALREADY_EXISTS</td>\r
-\r
-<td class="methodErrorDesc">association already exists</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">personId or principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId, principalId does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId, principalId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId, principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-assignPrincipalToSystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">assignPrincipalToSystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Assigns a Principal to a System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="7">Errors</th>\r
-<td class="methodErrorType" colspan="2">ALREADY_EXISTS</td>\r
-\r
-<td class="methodErrorDesc">association already exists</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId, systemId does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId, systemId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-removePrincipalFromPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">removePrincipalFromPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Remove a Principal from a Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-\r
-<td class="methodErrorDesc">personId or principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId, principalId, association does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId, principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId, principalId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-removePrincipalFromSystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">removePrincipalFromSystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Remove a Principal from a System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-\r
-<td class="methodErrorDesc">principalId, systemId, association does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><!-- ServiceOperationStop --></p>\r
-\r
-<h3><a name="AuthenticationService-Capabilities"></a>Capabilities</h3>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Authentication+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Authentication+Service"\r
- dc:title="Authentication Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/22511697"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
-\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="22511697">\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
-\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-214" class="confluence-label">\r
-\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-207" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-pi">kss-pi</a> <span class="remove-label-caption">kss-pi</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-30932995" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svb1">kss-svb1</a> <span class="remove-label-caption">kss-svb1</span>\r
-\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
-\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
-\r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
- </div>\r
- </form>\r
-\r
- </div>\r
-</div>\r
-\r
- <div id="children-section" class="pageSection">\r
- \r
- <div class="section-header ">\r
- <h2 id="children-section-title" class="section-title">\r
- <a name="children">Children (2)</a>\r
- </h2>\r
- <span class="noprint">\r
-\r
- \r
- <a id="hide-children-link" class="grey" href="/confluence/display/KULSTU/Authentication+Service?showChildren=false#children">Hide Children</a>\r
- \r
- | <a class="grey" href="/confluence/pages/listpages-dirview.action?key=KULSTU&openId=22511697#selectedPageInHierarchy">View in Hierarchy</a>\r
- | \r
- <a class="grey" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=22511697">Add Child Page</a>\r
- </span>\r
-\r
- </div>\r
- <div id="page-children" class="pageSectionBody">\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Authentication Service Description and Assumptions"/>\r
- <a href="/confluence/display/KULSTU/Authentication+Service+Description+and+Assumptions">Authentication Service Description and Assumptions</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Authentication Service Release Notes"/>\r
- <a href="/confluence/display/KULSTU/Authentication+Service+Release+Notes">Authentication Service Release Notes</a>\r
- <br>\r
-\r
- </div>\r
- </div>\r
- \r
- \r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Authentication+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
-\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
-\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
-<html>\r
-<head>\r
- <title>Authentication Service - KS Workspace - Confluence</title>\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
- \r
-<meta id="confluence-context-path" name="confluence-context-path" content="/confluence">\r
-<script type="text/javascript">\r
- // Deprecated global variables. To be removed in a future version of Confluence.\r
- var contextPath = '/confluence';\r
- var i18n = [];\r
-</script>\r
-\r
-\r
-\r
-<!-- include system resources -->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master.css" title="Confluence Master Stylesheet" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/wiki-content.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tabs.css" media="all"/>\r
-\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu-ie.css" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tables.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/panels.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master-ie.css" title="Master-IE" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/renderer-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/information-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/layout-macros.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:prototype/prototype.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/effects.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/dragdrop.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/controls.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/util.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery-compatibility.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.dimensions.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:ajs/atlassian.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/engine.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/util.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/AddLabeltoEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/RemoveLabelFromEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/SuggestedLabelsForEntity.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/GenerateAutocompleteLabelsListForEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/uberlabels.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels-editor.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/autocomplete.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:animation/animation.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments-ie.css" media="all"/>\r
-<![endif]-->\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:breadcrumbs/breadcrumbs.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/master.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/menu.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/PageNotification.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:print-styles/print.css" media="print"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:atlassian-effects/atlassian-effects.js" ></script>\r
-\r
-<!-- end system resources -->\r
-\r
- <link rel="stylesheet" href="/confluence/s/1415/4/1/_/styles/combined.css?spaceKey=KULSTU" type="text/css">\r
-\r
- <meta name="confluence-request-time" content="1233170154924">\r
-<link rel="shortcut icon" href="/confluence/images/icons/favicon.ico">\r
-<link rel="icon" type="image/png" href="/confluence/images/icons/favicon.png">\r
-\r
-\r
- \r
-</head>\r
-\r
- <body onload="placeFocus()" id="com-atlassian-confluence">\r
- \r
-\r
-\r
- <script type="text/javascript">\r
- AJS.toInit(function ($) {\r
- $(".message-close-button").each(function () {\r
- var li = $(this).parent();\r
- var cookieId = this.alt;\r
- $(this).click(function () {\r
- li.slideUp();\r
- setCookie(cookieId, true);\r
- });\r
- });\r
-\r
- $("#messageContainer .confluence-messages").each(function () {\r
- if (!getCookie(this.id)) {\r
- $(this).show();\r
- }\r
- })\r
- });\r
- </script>\r
-\r
- \r
-<div id="header">\r
- <form id="quick-search" method="get" action="/confluence/dosearchsite.action">\r
- <fieldset>\r
-\r
- <legend>Quick Search</legend>\r
- <input type="hidden" name="where" value="conf_all" />\r
- <input id="quick-search-query" type="text" accessKey="q" name="queryString" size="25"/>\r
- <input id="quick-search-submit" type="submit" value="Search"/>\r
- </fieldset>\r
- <fieldset class="hidden parameters">\r
- <input type="hidden" id="quickSearchPlaceholder" value="Search">\r
- </fieldset>\r
-\r
- </form>\r
- <ul id="header-menu-bar" class="ajs-menu-bar">\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="browse-menu-link" class="browse trigger ajs-menu-title" href="#"><span><span>Browse</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="browse-menu-link-leading" class="section-leading first">\r
- <li>\r
- \r
- <a id="space-pages-link" href="/confluence/pages/listpages.action?key=KULSTU" class="" >\r
- <span>Pages</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-blogposts-link" href="/confluence/pages/viewrecentblogposts.action?key=KULSTU" class="" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="space-labels-link" href="/confluence/labels/listlabels-heatmap.action?key=KULSTU" class="" >\r
- <span>Labels</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-attachments-link" href="/confluence/spaces/listattachmentsforspace.action?key=KULSTU" class="" >\r
- <span>Attachments</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/space-bookmarks.action?spaceKey=KULSTU" class="" >\r
- <span>Bookmarks</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-mail-link" href="/confluence/spaces/viewmailarchive.action?key=KULSTU" class="" >\r
- <span>Mail</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/usage/report.action?key=KULSTU" class="" >\r
- <span>Activity</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-advanced-link" href="/confluence/spaces/viewspacesummary.action?key=KULSTU" class="" >\r
- <span>Advanced</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="browse-menu-link-global" class="section-global">\r
- <li>\r
- \r
- <a id="people-directory-link" href="/confluence/peopledirectory.action" class="" >\r
-\r
- <span>People Directory</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="user-menu-link" class="user trigger ajs-menu-title" href="#"><span><span>UCB Guest</span></span></a> <div class="hidden ajs-drop-down">\r
-\r
- <ul id="user-menu-link-user-preferences" class="section-user-preferences first">\r
- <li>\r
- \r
- <a id="view-user-profile-link" href="/confluence/users/viewuserprofile.action?username=ucbguest" class="user-item user-profile" >\r
- <span>Preferences</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="view-user-history-link" href="/confluence/users/viewuserhistory.action" class="user-item user-history popup-link" >\r
- <span>History</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-content" class="section-user-content">\r
- <li>\r
- \r
- <a id="user-labels-link" href="/confluence/users/viewmylabels.action" class="user-item" >\r
- <span>Labels</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-watches-link" href="/confluence/users/viewnotifications.action" class="user-item" >\r
-\r
- <span>Watches</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-drafts-link" href="/confluence/users/viewmydrafts.action" class="user-item" >\r
- <span>Drafts</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-operations" class="section-user-operations">\r
-\r
- <li>\r
- \r
- <a id="logout-link" href="/confluence/logout.action" class="user-item logout-link" >\r
- <span>Log Out</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- \r
- \r
- <ol id="breadcrumbs">\r
- \r
- <li><span>\r
- <a href="/confluence/dashboard.action">Dashboard</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU">KS Workspace</a>\r
- </span></li>\r
-\r
- <li id="ellipsis" title=" …\r
- Home\r
- > Service Architecture Homepage\r
- > Service Design Repositories\r
- …\r
-"><span>> <strong>…</strong></span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Home">Home</a>\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Architecture+Homepage">Service Architecture Homepage</a>\r
-\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Design+Repositories">Service Design Repositories</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU/Service+Description+Repository">Service Description Repository</a>\r
- </span></li>\r
-\r
- \r
- <li><span>\r
- > Authentication Service\r
- </span></li>\r
- </ol>\r
-\r
-</div>\r
-<div id="main">\r
- \r
- <ul id="user-control-panel">\r
- <li class="first">Welcome <a href="/confluence/display/~ucbguest">UCB Guest</a></li>\r
-\r
- <li><a href="/confluence/users/viewuserhistory.action" onclick="window.open(this.href,'user_history', 'width=620, height=150, resizable'); return false;" title="View History">History</a></li>\r
- \r
- <li><a href="/confluence/users/viewuserprofile.action?username=ucbguest">Preferences</a></li>\r
-\r
- \r
- <li><a href="/confluence/logout.action" id="logout">Log Out</a></li>\r
- </ul>\r
- \r
- <div id="navigation" class="content-navigation view">\r
- <fieldset class="hidden parameters">\r
-\r
- <input type="hidden" id="pageId" value="22511697">\r
- </fieldset>\r
- <ul class="ajs-menu-bar">\r
- <li class="ajs-button normal">\r
- \r
- <a id="editPageLink" href="/confluence/pages/editpage.action?pageId=22511697" class="edit" accessKey="e">\r
- <span><u>E</u>dit</span> </a>\r
-</li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="add-menu-link" class="add trigger ajs-menu-title" href="#"><span><span>Add</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="add-menu-link-space" class="section-space first">\r
- <li>\r
- \r
- <a id="createPageLink" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=22511697" class="add-page" >\r
- <span>Page</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="createNewsLink" href="/confluence/pages/createblogpost.action?spaceKey=KULSTU" class="add-news" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/plugins/socialbookmarking/updatebookmark.action?spaceKey=KULSTU&redirect=spacebookmarks" class="" >\r
- <span><img alt="Bookmark" src="/confluence/images/icons/adfav_16.gif" height="16" width="16" title="Bookmark"\r
- >Bookmark</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a href="/confluence/spaces/gliffy/adddiagram.action?pageId=22511697&key=KULSTU" class="" >\r
- <span><img alt="Diagram" src="/confluence/download/resources/com.gliffy.integration.confluence:gliffy-macro-key/resources/icons/add_diagram_16.gif" height="16" width="16" title="Diagram"\r
- >Diagram</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="add-menu-link-page" class="section-page">\r
- <li>\r
- \r
- <a id="add-comment-menu-link" href="/confluence/display/KULSTU/Authentication+Service?showComments=true&showCommentArea=true#addcomment" class="add-comment" >\r
- <span>Comment</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="add-attachment-link" href="/confluence/pages/viewpageattachments.action?pageId=22511697" class="add-attachment" accessKey="a">\r
- <span>Attachment</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="action-menu-link" class="action trigger ajs-menu-title" href="#"><span><span>Tools</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="action-menu-link-primary" class="section-primary first">\r
- <li>\r
- \r
- <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=22511697" class="action-view-attachments" accessKey="a">\r
- <span><u>A</u>ttachments (0)</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=22511697" class="action-view-history" >\r
- <span>History</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="mailPageLink" href="/confluence/pages/mailpage/mailpage.action?pageId=22511697" class="" >\r
- <span><img alt="E-mail" src="/confluence/images/icons/mail_content_16.gif" height="16" width="16" title="E-mail"\r
- >E-mail</span> </a>\r
-</li>\r
- </ul>\r
-\r
- <ul id="action-menu-link-marker" class="section-marker">\r
- <li>\r
- \r
- <a id="page-favourite" href="/confluence/labels/addfavourite.action?entityId=22511697" class="action-page-favourite" >\r
- <span>Favourite</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="page-watch" href="/confluence/pages/addpagenotification.action?pageId=22511697" class="action-page-watching" >\r
- <span>Watch</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-secondary" class="section-secondary">\r
- <li>\r
- \r
- <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=22511697" class="action-view-info" accessKey="i">\r
- <span><u>I</u>nfo</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-source-link" href="/confluence/pages/viewpagesrc.action?pageId=22511697" class="action-view-source popup-link" >\r
- <span>View Wiki Markup</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="action-export-pdf-link" href="/confluence/pages/doexportpage.action?pageId=22511697&type=TYPE_PDF" class="action-export-pdf" >\r
- <span>Export to PDF</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-export-word-link" href="/confluence/exportword?pageId=22511697" class="action-export-word" >\r
- <span>Export to Word</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-modify" class="section-modify">\r
- <li>\r
- \r
- <a id="action-copy-page-link" href="/confluence/pages/copypage.action?idOfPageToCopy=22511697&spaceKey=KULSTU" class="action-copy" >\r
- <span>Copy</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="action-move-page-link" href="/confluence/pages/editpage.action?pageId=22511697&locationShowing=true#locationSection" class="action-move" >\r
- <span>Move</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- </div>\r
-\r
- <h1 id="title-heading" class="pagetitle">\r
- <a href="/confluence/display/KULSTU"><img class="logo space custom" src="/confluence/download/attachments/25289/KULSTU?version=1" alt=""></a> \r
- <span id="title-text">\r
- <a href="/confluence/display/KULSTU/Authentication+Service">Authentication Service</a>\r
- </span>\r
- </h1>\r
-\r
- <!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
-\r
-<div id="content" class="page view">\r
- \r
- \r
- \r
- \r
-\r
- \r
- <div class="page-metadata">\r
- Added by <a href="/confluence/display/~abucior">Andy Bucior</a>, last edited by <a href="/confluence/display/~hjohnson">Heather Johnson</a> on Nov 12, 2008\r
- <span class="noprint"> (<a href="/confluence/pages/diffpages.action?pageId=22511697&originalId=108200144">view change</a>)</span>\r
-\r
- </div> \r
- <div class="wiki-content">\r
- <!-- wiki content -->\r
- <h2><a name="AuthenticationService-AuthenticationService"></a>Authentication Service</h2>\r
-\r
-<style type="text/css">\r
-\r
-table#serviceMetaTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-table#serviceMetaTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-table#serviceMetaTable td#serviceName {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-table#serviceMetaTable td#serviceVersion {\r
-border:1px solid #000000;\r
-width:70%;\r
-}\r
-table#serviceMetaTable td#serviceVersionHistory {\r
-border:1px solid #000000;\r
-width:15%;\r
-}\r
-\r
-</style>\r
-\r
-\r
-<table id="serviceMetaTable">\r
-<tr>\r
-<th class="h">Name</th>\r
-\r
-<td colspan="2" id="serviceName">AuthenticationService</td></tr>\r
-<tr>\r
-<th class="h">Version</th>\r
-<td id="serviceVersion">Dev</td>\r
-<td id="serviceVersionHistory"><a href="/confluence/display/KULSTU/Authentication+Service+Release+Notes#AuthenticationServiceReleaseNotes-current">Release Notes/History</a></td></tr></table>\r
-<table class='confluenceTable'><tbody>\r
-<tr>\r
-<td class='confluenceTd'> <a href="#AuthenticationService-References">References</a> </td>\r
-<td class='confluenceTd'> <a href="#AuthenticationService-Operations">Operations</a> </td>\r
-\r
-<td class='confluenceTd'> <a href="#AuthenticationService-Capabilities">Capabilities</a> </td>\r
-</tr>\r
-</tbody></table>\r
-\r
-<p><br clear="all" /></p>\r
-<div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Authentication Service Description and Assumptions</b></div><div class="panelContent">\r
-This service establishes identity only. It may also provide a mapping from the identity "Principal" to the Person_Id.\r
-</div></div>\r
-\r
-<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Notes</b><br />\r
-\r
-</td></tr></table></div>\r
-\r
-<h3><a name="AuthenticationService-References"></a>References</h3>\r
-\r
-<p><a href="/confluence/display/KULSTU/Authentication+Service+Description+and+Assumptions" title="Authentication Service Description and Assumptions">Authentication Service Description and Assumptions</a><br/>\r
-<a href="/confluence/display/KULSTU/Authentication+Service+Structures" title="Authentication Service Structures">Authentication Service Structures</a></p>\r
-\r
-<p><a href="/confluence/display/KULSTU/Principal+Entity" title="Principal Entity">Principal Entity</a> and <a href="/confluence/display/KULSTU/Principal+Set+Entity" title="Principal Set Entity">Principal Set Entity</a> - entity page with fields and examples.<br/>\r
-\r
-<a href="/confluence/display/KULSTU/Authentication+Stack+Options" title="Authentication Stack Options">Authentication Stack Options</a> - help understand how the Authentication service might interact with other service layers<br/>\r
-<a href="/confluence/display/KULSTA/PI+Meeting+Diagrams" title="PI Meeting Diagrams">PI Meeting Diagrams</a></p>\r
-\r
-<h3><a name="AuthenticationService-Operations"></a>Operations</h3>\r
-\r
-<style type="text/css">\r
-\r
-table.methodTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-\r
-table.methodTable td.d {\r
-border:1px solid #000000;\r
-}\r
-\r
-table.methodTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-\r
-table.methodTable td.methodName {\r
-border:1px solid #000000;\r
-background-color:#f2f2f2;\r
-color:#222222;\r
-text-align:center;\r
-width:85%;\r
-font-weight:bold;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodDesc {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-table.methodTable td.methodParamType {\r
-border:1px solid #000000;\r
-width:21%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodParamName {\r
-border:1px solid #000000;\r
-width:21%;\r
-}\r
-table.methodTable td.methodParamDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-table.methodTable td.methodReturnType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodReturnDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.methodErrors {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-\r
-table.methodTable td.methodErrorType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodErrorDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.capabilityDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.usecaseDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.commentsDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-\r
-\r
-</style>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;">\r
-<div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;">\r
-<b>Setup</b>\r
-</div>\r
-<div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><b>Dictionary Operations</b><br/>\r
-<a href="#AuthenticationService-findObjectTypes">findObjectTypes</a><br/>\r
-<a href="#AuthenticationService-fetchObjectStructure">fetchObjectStructure</a><br/>\r
-<a href="#AuthenticationService-fetchEnumeration">fetchEnumeration</a></p>\r
-\r
-<p><b>Search Operations</b><br/>\r
-<a href="#AuthenticationService-findSearchTypes">findSearchTypes</a><br/>\r
-<a href="#AuthenticationService-fetchSearchType">fetchSearchType</a><br/>\r
-<a href="#AuthenticationService-findSearchTypesByResult">findSearchTypesByResult</a><br/>\r
-<a href="#AuthenticationService-findSearchTypesByCriteria">findSearchTypesByCriteria</a><br/>\r
-\r
-<a href="#AuthenticationService-findSearchResultTypes">findSearchResultTypes</a><br/>\r
-<a href="#AuthenticationService-fetchSearchResultType">fetchSearchResultType</a><br/>\r
-<a href="#AuthenticationService-findSearchCriteriaTypes">findSearchCriteriaTypes</a><br/>\r
-<a href="#AuthenticationService-fetchSearchCriteriaType">fetchSearchCriteriaType</a></p>\r
-\r
-<p><b>Domain Operations</b><br/>\r
-<a href="#AuthenticationService-findAuthenticationTypes">findAuthenticationTypes</a></p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Read</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Need to add operation for fetchCurrentUser</p>\r
-\r
-<p><a href="#AuthenticationService-fetchPrincipal">fetchPrincipal</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/><br/>\r
-<a href="#AuthenticationService-findPrincipalsByIdList">findPrincipalsByIdList</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>\r
-\r
-<p><a href="#AuthenticationService-fetchPrincipalDisplayInfo">fetchPrincipalDisplayInfo</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/><br/>\r
-\r
-<a href="#AuthenticationService-findPrincipalDisplayInfoByIdList">findPrincipalDisplayInfoByIdList</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>\r
-\r
-<p><a href="#AuthenticationService-findPrincipalIdsByPerson">findPrincipalIdsByPerson</a><br/>\r
-<a href="#AuthenticationService-findPrincipalIdsBySystem">findPrincipalIdsBySystem</a> </p>\r
-\r
-<p><a href="#AuthenticationService-fetchPersonIdByPrincipal">fetchPersonIdByPrincipal</a><br/>\r
-<a href="#AuthenticationService-fetchSystemIdByPrincipal">fetchSystemIdByPrincipal</a> <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Changed Service to System<br/>\r
-\r
-<a href="#AuthenticationService-fetchPrincipalTypeForPrincipal">fetchPrincipalTypeForPrincipal</a></p>\r
-\r
-<p><a href="#AuthenticationService-findPrincipalTypesByPrincipalIdList">findPrincipalTypesByPrincipalIdList</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Search</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p><a href="#AuthenticationService-searchForResults">searchForResults</a></p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Maintenance</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><a href="#AuthenticationService-assignPrincipalToPerson">assignPrincipalToPerson</a><br/>\r
-<a href="#AuthenticationService-assignPrincipalToSystem">assignPrincipalToSystem</a> <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Changed Service to System<br/>\r
-<a href="#AuthenticationService-removePrincipalFromPerson">removePrincipalFromPerson</a><br/>\r
-<a href="#AuthenticationService-removePrincipalFromSystem">removePrincipalFromSystem</a> <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Changed Service to System</p>\r
-</div></div>\r
-\r
-<p><!-- ServiceOperationStart --></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Setup</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-findObjectTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findObjectTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of object type identifiers known by this service. Example: cluInfo.</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectTypeKeyList+Structure" title="objectTypeKeyList Structure">objectTypeKeyList</a></td>\r
-<td class="methodReturnDesc">list of object type identifiers</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchObjectStructure"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchObjectStructure</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the basic dictionary information about a particular object structure. Including all variations based on a certain type and state. Example: Given that a CLU is of type "Course" and in the state of "Proposed," tell which fields are read only, mandatory, not applicable, have enumerations available, etc.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/objectTypeKey+Structure" title="objectTypeKey Structure">objectTypeKey</a></td>\r
-\r
-<td class="methodParamName">objectTypeKey</td>\r
-<td class="methodParamDesc">identifier of the object type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectStructure+Structure" title="objectStructure Structure">objectStructure</a></td>\r
-<td class="methodReturnDesc">describes the fields for the input object type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified objectTypeKey not found</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid objectTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing objectTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchEnumeration"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">fetchEnumeration</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of enumeration values for a particular enumeration with a certain context for a particular date. The values returned should be those where the supplied date is between the effective and expiration dates. Certain enumerations may not support this functionality.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/enumerationKey+Structure" title="enumerationKey Structure">enumerationKey</a></td>\r
-<td class="methodParamName">enumerationKey</td>\r
-<td class="methodParamDesc">identifier of the enumeration</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/enumContextKey+Structure" title="enumContextKey Structure">enumContextKey</a></td>\r
-<td class="methodParamName">contextType</td>\r
-<td class="methodParamDesc">identifier of the enumeration context type</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td>\r
-<td class="methodParamName">contextValue</td>\r
-<td class="methodParamDesc">value of the enumeration context</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/dateTime+Structure" title="dateTime Structure">dateTime</a></td>\r
-<td class="methodParamName">contextDate</td>\r
-\r
-<td class="methodParamDesc">date and time to get the enumeration for</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/enumeratedValueList+Structure" title="enumeratedValueList Structure">enumeratedValueList</a></td>\r
-<td class="methodReturnDesc">list of enumerated codes and values</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">enumerationKey not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid enumerationKey, contextType, contextValue, contextDate</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing enumerationKey, contextType, contextValue, contextDate</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">findSearchTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No Parameters</td></tr>\r
-<tr>\r
-\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchType</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td>\r
-<td class="methodParamName">searchTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfo+Structure" title="searchTypeInfo Structure">searchTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchTypeKey</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypesByResult"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchTypesByResult</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types which return results in the specified format.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td>\r
-<td class="methodParamName">searchResultTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search result type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchResultTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchResultTypeKey not specified</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypesByCriteria"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchTypesByCriteria</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types which use criteria in the specified format.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td>\r
-<td class="methodParamName">searchCriteriaTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search criteria</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-\r
-<td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchResultTypes"></a></p>\r
-<table class="methodTable">\r
-\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchResultTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search result types known by this service. Search result types describe the return structure for a search.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-\r
-<td class="methodParamDesc">No Parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfoList+Structure" title="searchResultTypeInfoList Structure">searchResultTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search result type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchResultType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchResultType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search result type. Search result types describe the return structure for a search.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td>\r
-<td class="methodParamName">searchResultTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search result type</td></tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfo+Structure" title="searchResultTypeInfo Structure">searchResultTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search result type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">invalid searchResultTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchResultTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchCriteriaTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchCriteriaTypes</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search criteria types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfoList+Structure" title="searchCriteriaTypeInfoList Structure">searchCriteriaTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search criteria type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchCriteriaType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchCriteriaType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search criteria type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td>\r
-<td class="methodParamName">searchCriteriaTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search criteria type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfo+Structure" title="searchCriteriaTypeInfo Structure">searchCriteriaTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search criteria type</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findAuthenticationTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findAuthenticationTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieve the list of authentication types known by this service</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/authenticationTypeList+Structure" title="authenticationTypeList Structure">authenticationTypeList</a></td>\r
-<td class="methodReturnDesc">list of authentication types</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-findPrincipalIdsByPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalIdsByPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principals for a given Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodReturnDesc">list of principal ids for the specified person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-\r
-<td class="methodErrorDesc">personId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findPrincipalIdsBySystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalIdsBySystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principals for a given System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodReturnDesc">list of principal ids for the given system</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">systemId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid systemId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchPersonIdByPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">fetchPersonIdByPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a Person for a given Principal</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodReturnDesc">person identifier that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId not found</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSystemIdByPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSystemByPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a System for a given Principal</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodReturnDesc">system identifier that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">systemId found but has been retired</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">systemId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchPrincipalTypeForPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchPrincipalTypeForPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a Principal Type for a given Principal</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalType+Structure" title="principalType Structure">principalType</a></td>\r
-<td class="methodReturnDesc">principal type that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findPrincipalTypesByPrincipalIdList"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalTypesByPrincipalIdList</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principal Types for a given list of Principal Ids</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodParamName">principalIdList</td>\r
-<td class="methodParamDesc">list of principal identifiers</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalTypeList+Structure" title="principalTypeList Structure">principalTypeList</a></td>\r
-<td class="methodReturnDesc">List of principal types that match the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">One or more principalIds found but have been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">One or more principalIds not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalIdList</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Search</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-searchForResults"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">searchForResults</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves results in tabular form for the specified parameters.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td>\r
-<td class="methodParamName">searchTypeKey</td>\r
-<td class="methodParamDesc">search identifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/queryParamValueList+Structure" title="queryParamValueList Structure">queryParamValueList</a></td>\r
-<td class="methodParamName">queryParamValues</td>\r
-<td class="methodParamDesc">list of values for search parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/resultList+Structure" title="resultList Structure">resultList</a></td>\r
-\r
-<td class="methodReturnDesc">list of results from the query</td></tr>\r
-<tr>\r
-<th class="h" rowspan="5">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified search type not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchTypeKey, queryParamValueList</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">searchTypeKey, queryParamValueList not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Maintenance</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-assignPrincipalToPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">assignPrincipalToPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Assigns a Principal to a Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="7">Errors</th>\r
-<td class="methodErrorType" colspan="2">ALREADY_EXISTS</td>\r
-\r
-<td class="methodErrorDesc">association already exists</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">personId or principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId, principalId does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId, principalId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId, principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-assignPrincipalToSystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">assignPrincipalToSystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Assigns a Principal to a System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="7">Errors</th>\r
-<td class="methodErrorType" colspan="2">ALREADY_EXISTS</td>\r
-\r
-<td class="methodErrorDesc">association already exists</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId, systemId does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId, systemId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-removePrincipalFromPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">removePrincipalFromPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Remove a Principal from a Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-\r
-<td class="methodErrorDesc">personId or principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId, principalId, association does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId, principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId, principalId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-removePrincipalFromSystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">removePrincipalFromSystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Remove a Principal from a System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-\r
-<td class="methodErrorDesc">principalId, systemId, association does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><!-- ServiceOperationStop --></p>\r
-\r
-<h3><a name="AuthenticationService-Capabilities"></a>Capabilities</h3>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Authentication+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Authentication+Service"\r
- dc:title="Authentication Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/22511697"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
-\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="22511697">\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
-\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-214" class="confluence-label">\r
-\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-207" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-pi">kss-pi</a> <span class="remove-label-caption">kss-pi</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-30932995" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svb1">kss-svb1</a> <span class="remove-label-caption">kss-svb1</span>\r
-\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
-\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
-\r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
- </div>\r
- </form>\r
-\r
- </div>\r
-</div>\r
-\r
- <div id="children-section" class="pageSection">\r
- \r
- <div class="section-header ">\r
- <h2 id="children-section-title" class="section-title">\r
- <a name="children">Children (2)</a>\r
- </h2>\r
- <span class="noprint">\r
-\r
- \r
- <a id="hide-children-link" class="grey" href="/confluence/display/KULSTU/Authentication+Service?showChildren=false#children">Hide Children</a>\r
- \r
- | <a class="grey" href="/confluence/pages/listpages-dirview.action?key=KULSTU&openId=22511697#selectedPageInHierarchy">View in Hierarchy</a>\r
- | \r
- <a class="grey" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=22511697">Add Child Page</a>\r
- </span>\r
-\r
- </div>\r
- <div id="page-children" class="pageSectionBody">\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Authentication Service Description and Assumptions"/>\r
- <a href="/confluence/display/KULSTU/Authentication+Service+Description+and+Assumptions">Authentication Service Description and Assumptions</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Authentication Service Release Notes"/>\r
- <a href="/confluence/display/KULSTU/Authentication+Service+Release+Notes">Authentication Service Release Notes</a>\r
- <br>\r
-\r
- </div>\r
- </div>\r
- \r
- \r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Authentication+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
-\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
-\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
-<html>\r
-<head>\r
- <title>Authentication Service - KS Workspace - Confluence</title>\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
- \r
-<meta id="confluence-context-path" name="confluence-context-path" content="/confluence">\r
-<script type="text/javascript">\r
- // Deprecated global variables. To be removed in a future version of Confluence.\r
- var contextPath = '/confluence';\r
- var i18n = [];\r
-</script>\r
-\r
-\r
-\r
-<!-- include system resources -->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master.css" title="Confluence Master Stylesheet" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/wiki-content.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tabs.css" media="all"/>\r
-\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu-ie.css" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tables.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/panels.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master-ie.css" title="Master-IE" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/renderer-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/information-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/layout-macros.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:prototype/prototype.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/effects.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/dragdrop.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/controls.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/util.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery-compatibility.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.dimensions.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:ajs/atlassian.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/engine.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/util.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/AddLabeltoEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/RemoveLabelFromEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/SuggestedLabelsForEntity.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/GenerateAutocompleteLabelsListForEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/uberlabels.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels-editor.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/autocomplete.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:animation/animation.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments-ie.css" media="all"/>\r
-<![endif]-->\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:breadcrumbs/breadcrumbs.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/master.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/menu.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/PageNotification.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:print-styles/print.css" media="print"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:atlassian-effects/atlassian-effects.js" ></script>\r
-\r
-<!-- end system resources -->\r
-\r
- <link rel="stylesheet" href="/confluence/s/1415/4/1/_/styles/combined.css?spaceKey=KULSTU" type="text/css">\r
-\r
- <meta name="confluence-request-time" content="1233170154924">\r
-<link rel="shortcut icon" href="/confluence/images/icons/favicon.ico">\r
-<link rel="icon" type="image/png" href="/confluence/images/icons/favicon.png">\r
-\r
-\r
- \r
-</head>\r
-\r
- <body onload="placeFocus()" id="com-atlassian-confluence">\r
- \r
-\r
-\r
- <script type="text/javascript">\r
- AJS.toInit(function ($) {\r
- $(".message-close-button").each(function () {\r
- var li = $(this).parent();\r
- var cookieId = this.alt;\r
- $(this).click(function () {\r
- li.slideUp();\r
- setCookie(cookieId, true);\r
- });\r
- });\r
-\r
- $("#messageContainer .confluence-messages").each(function () {\r
- if (!getCookie(this.id)) {\r
- $(this).show();\r
- }\r
- })\r
- });\r
- </script>\r
-\r
- \r
-<div id="header">\r
- <form id="quick-search" method="get" action="/confluence/dosearchsite.action">\r
- <fieldset>\r
-\r
- <legend>Quick Search</legend>\r
- <input type="hidden" name="where" value="conf_all" />\r
- <input id="quick-search-query" type="text" accessKey="q" name="queryString" size="25"/>\r
- <input id="quick-search-submit" type="submit" value="Search"/>\r
- </fieldset>\r
- <fieldset class="hidden parameters">\r
- <input type="hidden" id="quickSearchPlaceholder" value="Search">\r
- </fieldset>\r
-\r
- </form>\r
- <ul id="header-menu-bar" class="ajs-menu-bar">\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="browse-menu-link" class="browse trigger ajs-menu-title" href="#"><span><span>Browse</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="browse-menu-link-leading" class="section-leading first">\r
- <li>\r
- \r
- <a id="space-pages-link" href="/confluence/pages/listpages.action?key=KULSTU" class="" >\r
- <span>Pages</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-blogposts-link" href="/confluence/pages/viewrecentblogposts.action?key=KULSTU" class="" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="space-labels-link" href="/confluence/labels/listlabels-heatmap.action?key=KULSTU" class="" >\r
- <span>Labels</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-attachments-link" href="/confluence/spaces/listattachmentsforspace.action?key=KULSTU" class="" >\r
- <span>Attachments</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/space-bookmarks.action?spaceKey=KULSTU" class="" >\r
- <span>Bookmarks</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-mail-link" href="/confluence/spaces/viewmailarchive.action?key=KULSTU" class="" >\r
- <span>Mail</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/usage/report.action?key=KULSTU" class="" >\r
- <span>Activity</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-advanced-link" href="/confluence/spaces/viewspacesummary.action?key=KULSTU" class="" >\r
- <span>Advanced</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="browse-menu-link-global" class="section-global">\r
- <li>\r
- \r
- <a id="people-directory-link" href="/confluence/peopledirectory.action" class="" >\r
-\r
- <span>People Directory</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="user-menu-link" class="user trigger ajs-menu-title" href="#"><span><span>UCB Guest</span></span></a> <div class="hidden ajs-drop-down">\r
-\r
- <ul id="user-menu-link-user-preferences" class="section-user-preferences first">\r
- <li>\r
- \r
- <a id="view-user-profile-link" href="/confluence/users/viewuserprofile.action?username=ucbguest" class="user-item user-profile" >\r
- <span>Preferences</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="view-user-history-link" href="/confluence/users/viewuserhistory.action" class="user-item user-history popup-link" >\r
- <span>History</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-content" class="section-user-content">\r
- <li>\r
- \r
- <a id="user-labels-link" href="/confluence/users/viewmylabels.action" class="user-item" >\r
- <span>Labels</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-watches-link" href="/confluence/users/viewnotifications.action" class="user-item" >\r
-\r
- <span>Watches</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-drafts-link" href="/confluence/users/viewmydrafts.action" class="user-item" >\r
- <span>Drafts</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-operations" class="section-user-operations">\r
-\r
- <li>\r
- \r
- <a id="logout-link" href="/confluence/logout.action" class="user-item logout-link" >\r
- <span>Log Out</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- \r
- \r
- <ol id="breadcrumbs">\r
- \r
- <li><span>\r
- <a href="/confluence/dashboard.action">Dashboard</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU">KS Workspace</a>\r
- </span></li>\r
-\r
- <li id="ellipsis" title=" …\r
- Home\r
- > Service Architecture Homepage\r
- > Service Design Repositories\r
- …\r
-"><span>> <strong>…</strong></span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Home">Home</a>\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Architecture+Homepage">Service Architecture Homepage</a>\r
-\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Design+Repositories">Service Design Repositories</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU/Service+Description+Repository">Service Description Repository</a>\r
- </span></li>\r
-\r
- \r
- <li><span>\r
- > Authentication Service\r
- </span></li>\r
- </ol>\r
-\r
-</div>\r
-<div id="main">\r
- \r
- <ul id="user-control-panel">\r
- <li class="first">Welcome <a href="/confluence/display/~ucbguest">UCB Guest</a></li>\r
-\r
- <li><a href="/confluence/users/viewuserhistory.action" onclick="window.open(this.href,'user_history', 'width=620, height=150, resizable'); return false;" title="View History">History</a></li>\r
- \r
- <li><a href="/confluence/users/viewuserprofile.action?username=ucbguest">Preferences</a></li>\r
-\r
- \r
- <li><a href="/confluence/logout.action" id="logout">Log Out</a></li>\r
- </ul>\r
- \r
- <div id="navigation" class="content-navigation view">\r
- <fieldset class="hidden parameters">\r
-\r
- <input type="hidden" id="pageId" value="22511697">\r
- </fieldset>\r
- <ul class="ajs-menu-bar">\r
- <li class="ajs-button normal">\r
- \r
- <a id="editPageLink" href="/confluence/pages/editpage.action?pageId=22511697" class="edit" accessKey="e">\r
- <span><u>E</u>dit</span> </a>\r
-</li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="add-menu-link" class="add trigger ajs-menu-title" href="#"><span><span>Add</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="add-menu-link-space" class="section-space first">\r
- <li>\r
- \r
- <a id="createPageLink" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=22511697" class="add-page" >\r
- <span>Page</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="createNewsLink" href="/confluence/pages/createblogpost.action?spaceKey=KULSTU" class="add-news" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/plugins/socialbookmarking/updatebookmark.action?spaceKey=KULSTU&redirect=spacebookmarks" class="" >\r
- <span><img alt="Bookmark" src="/confluence/images/icons/adfav_16.gif" height="16" width="16" title="Bookmark"\r
- >Bookmark</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a href="/confluence/spaces/gliffy/adddiagram.action?pageId=22511697&key=KULSTU" class="" >\r
- <span><img alt="Diagram" src="/confluence/download/resources/com.gliffy.integration.confluence:gliffy-macro-key/resources/icons/add_diagram_16.gif" height="16" width="16" title="Diagram"\r
- >Diagram</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="add-menu-link-page" class="section-page">\r
- <li>\r
- \r
- <a id="add-comment-menu-link" href="/confluence/display/KULSTU/Authentication+Service?showComments=true&showCommentArea=true#addcomment" class="add-comment" >\r
- <span>Comment</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="add-attachment-link" href="/confluence/pages/viewpageattachments.action?pageId=22511697" class="add-attachment" accessKey="a">\r
- <span>Attachment</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="action-menu-link" class="action trigger ajs-menu-title" href="#"><span><span>Tools</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="action-menu-link-primary" class="section-primary first">\r
- <li>\r
- \r
- <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=22511697" class="action-view-attachments" accessKey="a">\r
- <span><u>A</u>ttachments (0)</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=22511697" class="action-view-history" >\r
- <span>History</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="mailPageLink" href="/confluence/pages/mailpage/mailpage.action?pageId=22511697" class="" >\r
- <span><img alt="E-mail" src="/confluence/images/icons/mail_content_16.gif" height="16" width="16" title="E-mail"\r
- >E-mail</span> </a>\r
-</li>\r
- </ul>\r
-\r
- <ul id="action-menu-link-marker" class="section-marker">\r
- <li>\r
- \r
- <a id="page-favourite" href="/confluence/labels/addfavourite.action?entityId=22511697" class="action-page-favourite" >\r
- <span>Favourite</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="page-watch" href="/confluence/pages/addpagenotification.action?pageId=22511697" class="action-page-watching" >\r
- <span>Watch</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-secondary" class="section-secondary">\r
- <li>\r
- \r
- <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=22511697" class="action-view-info" accessKey="i">\r
- <span><u>I</u>nfo</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-source-link" href="/confluence/pages/viewpagesrc.action?pageId=22511697" class="action-view-source popup-link" >\r
- <span>View Wiki Markup</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="action-export-pdf-link" href="/confluence/pages/doexportpage.action?pageId=22511697&type=TYPE_PDF" class="action-export-pdf" >\r
- <span>Export to PDF</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-export-word-link" href="/confluence/exportword?pageId=22511697" class="action-export-word" >\r
- <span>Export to Word</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-modify" class="section-modify">\r
- <li>\r
- \r
- <a id="action-copy-page-link" href="/confluence/pages/copypage.action?idOfPageToCopy=22511697&spaceKey=KULSTU" class="action-copy" >\r
- <span>Copy</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="action-move-page-link" href="/confluence/pages/editpage.action?pageId=22511697&locationShowing=true#locationSection" class="action-move" >\r
- <span>Move</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- </div>\r
-\r
- <h1 id="title-heading" class="pagetitle">\r
- <a href="/confluence/display/KULSTU"><img class="logo space custom" src="/confluence/download/attachments/25289/KULSTU?version=1" alt=""></a> \r
- <span id="title-text">\r
- <a href="/confluence/display/KULSTU/Authentication+Service">Authentication Service</a>\r
- </span>\r
- </h1>\r
-\r
- <!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
-\r
-<div id="content" class="page view">\r
- \r
- \r
- \r
- \r
-\r
- \r
- <div class="page-metadata">\r
- Added by <a href="/confluence/display/~abucior">Andy Bucior</a>, last edited by <a href="/confluence/display/~hjohnson">Heather Johnson</a> on Nov 12, 2008\r
- <span class="noprint"> (<a href="/confluence/pages/diffpages.action?pageId=22511697&originalId=108200144">view change</a>)</span>\r
-\r
- </div> \r
- <div class="wiki-content">\r
- <!-- wiki content -->\r
- <h2><a name="AuthenticationService-AuthenticationService"></a>Authentication Service</h2>\r
-\r
-<style type="text/css">\r
-\r
-table#serviceMetaTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-table#serviceMetaTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-table#serviceMetaTable td#serviceName {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-table#serviceMetaTable td#serviceVersion {\r
-border:1px solid #000000;\r
-width:70%;\r
-}\r
-table#serviceMetaTable td#serviceVersionHistory {\r
-border:1px solid #000000;\r
-width:15%;\r
-}\r
-\r
-</style>\r
-\r
-\r
-<table id="serviceMetaTable">\r
-<tr>\r
-<th class="h">Name</th>\r
-\r
-<td colspan="2" id="serviceName">AuthenticationService</td></tr>\r
-<tr>\r
-<th class="h">Version</th>\r
-<td id="serviceVersion">Dev</td>\r
-<td id="serviceVersionHistory"><a href="/confluence/display/KULSTU/Authentication+Service+Release+Notes#AuthenticationServiceReleaseNotes-current">Release Notes/History</a></td></tr></table>\r
-<table class='confluenceTable'><tbody>\r
-<tr>\r
-<td class='confluenceTd'> <a href="#AuthenticationService-References">References</a> </td>\r
-<td class='confluenceTd'> <a href="#AuthenticationService-Operations">Operations</a> </td>\r
-\r
-<td class='confluenceTd'> <a href="#AuthenticationService-Capabilities">Capabilities</a> </td>\r
-</tr>\r
-</tbody></table>\r
-\r
-<p><br clear="all" /></p>\r
-<div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Authentication Service Description and Assumptions</b></div><div class="panelContent">\r
-This service establishes identity only. It may also provide a mapping from the identity "Principal" to the Person_Id.\r
-</div></div>\r
-\r
-<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Notes</b><br />\r
-\r
-</td></tr></table></div>\r
-\r
-<h3><a name="AuthenticationService-References"></a>References</h3>\r
-\r
-<p><a href="/confluence/display/KULSTU/Authentication+Service+Description+and+Assumptions" title="Authentication Service Description and Assumptions">Authentication Service Description and Assumptions</a><br/>\r
-<a href="/confluence/display/KULSTU/Authentication+Service+Structures" title="Authentication Service Structures">Authentication Service Structures</a></p>\r
-\r
-<p><a href="/confluence/display/KULSTU/Principal+Entity" title="Principal Entity">Principal Entity</a> and <a href="/confluence/display/KULSTU/Principal+Set+Entity" title="Principal Set Entity">Principal Set Entity</a> - entity page with fields and examples.<br/>\r
-\r
-<a href="/confluence/display/KULSTU/Authentication+Stack+Options" title="Authentication Stack Options">Authentication Stack Options</a> - help understand how the Authentication service might interact with other service layers<br/>\r
-<a href="/confluence/display/KULSTA/PI+Meeting+Diagrams" title="PI Meeting Diagrams">PI Meeting Diagrams</a></p>\r
-\r
-<h3><a name="AuthenticationService-Operations"></a>Operations</h3>\r
-\r
-<style type="text/css">\r
-\r
-table.methodTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-\r
-table.methodTable td.d {\r
-border:1px solid #000000;\r
-}\r
-\r
-table.methodTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-\r
-table.methodTable td.methodName {\r
-border:1px solid #000000;\r
-background-color:#f2f2f2;\r
-color:#222222;\r
-text-align:center;\r
-width:85%;\r
-font-weight:bold;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodDesc {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-table.methodTable td.methodParamType {\r
-border:1px solid #000000;\r
-width:21%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodParamName {\r
-border:1px solid #000000;\r
-width:21%;\r
-}\r
-table.methodTable td.methodParamDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-table.methodTable td.methodReturnType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodReturnDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.methodErrors {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-\r
-table.methodTable td.methodErrorType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodErrorDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.capabilityDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.usecaseDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.commentsDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-\r
-\r
-</style>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;">\r
-<div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;">\r
-<b>Setup</b>\r
-</div>\r
-<div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><b>Dictionary Operations</b><br/>\r
-<a href="#AuthenticationService-findObjectTypes">findObjectTypes</a><br/>\r
-<a href="#AuthenticationService-fetchObjectStructure">fetchObjectStructure</a><br/>\r
-<a href="#AuthenticationService-fetchEnumeration">fetchEnumeration</a></p>\r
-\r
-<p><b>Search Operations</b><br/>\r
-<a href="#AuthenticationService-findSearchTypes">findSearchTypes</a><br/>\r
-<a href="#AuthenticationService-fetchSearchType">fetchSearchType</a><br/>\r
-<a href="#AuthenticationService-findSearchTypesByResult">findSearchTypesByResult</a><br/>\r
-<a href="#AuthenticationService-findSearchTypesByCriteria">findSearchTypesByCriteria</a><br/>\r
-\r
-<a href="#AuthenticationService-findSearchResultTypes">findSearchResultTypes</a><br/>\r
-<a href="#AuthenticationService-fetchSearchResultType">fetchSearchResultType</a><br/>\r
-<a href="#AuthenticationService-findSearchCriteriaTypes">findSearchCriteriaTypes</a><br/>\r
-<a href="#AuthenticationService-fetchSearchCriteriaType">fetchSearchCriteriaType</a></p>\r
-\r
-<p><b>Domain Operations</b><br/>\r
-<a href="#AuthenticationService-findAuthenticationTypes">findAuthenticationTypes</a></p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Read</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Need to add operation for fetchCurrentUser</p>\r
-\r
-<p><a href="#AuthenticationService-fetchPrincipal">fetchPrincipal</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/><br/>\r
-<a href="#AuthenticationService-findPrincipalsByIdList">findPrincipalsByIdList</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>\r
-\r
-<p><a href="#AuthenticationService-fetchPrincipalDisplayInfo">fetchPrincipalDisplayInfo</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/><br/>\r
-\r
-<a href="#AuthenticationService-findPrincipalDisplayInfoByIdList">findPrincipalDisplayInfoByIdList</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> <img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/></p>\r
-\r
-<p><a href="#AuthenticationService-findPrincipalIdsByPerson">findPrincipalIdsByPerson</a><br/>\r
-<a href="#AuthenticationService-findPrincipalIdsBySystem">findPrincipalIdsBySystem</a> </p>\r
-\r
-<p><a href="#AuthenticationService-fetchPersonIdByPrincipal">fetchPersonIdByPrincipal</a><br/>\r
-<a href="#AuthenticationService-fetchSystemIdByPrincipal">fetchSystemIdByPrincipal</a> <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Changed Service to System<br/>\r
-\r
-<a href="#AuthenticationService-fetchPrincipalTypeForPrincipal">fetchPrincipalTypeForPrincipal</a></p>\r
-\r
-<p><a href="#AuthenticationService-findPrincipalTypesByPrincipalIdList">findPrincipalTypesByPrincipalIdList</a> <img class="emoticon" src="/confluence/images/icons/emoticons/add.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Search</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p><a href="#AuthenticationService-searchForResults">searchForResults</a></p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Maintenance</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><a href="#AuthenticationService-assignPrincipalToPerson">assignPrincipalToPerson</a><br/>\r
-<a href="#AuthenticationService-assignPrincipalToSystem">assignPrincipalToSystem</a> <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Changed Service to System<br/>\r
-<a href="#AuthenticationService-removePrincipalFromPerson">removePrincipalFromPerson</a><br/>\r
-<a href="#AuthenticationService-removePrincipalFromSystem">removePrincipalFromSystem</a> <img class="emoticon" src="/confluence/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> Changed Service to System</p>\r
-</div></div>\r
-\r
-<p><!-- ServiceOperationStart --></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Setup</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-findObjectTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findObjectTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of object type identifiers known by this service. Example: cluInfo.</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectTypeKeyList+Structure" title="objectTypeKeyList Structure">objectTypeKeyList</a></td>\r
-<td class="methodReturnDesc">list of object type identifiers</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchObjectStructure"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchObjectStructure</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the basic dictionary information about a particular object structure. Including all variations based on a certain type and state. Example: Given that a CLU is of type "Course" and in the state of "Proposed," tell which fields are read only, mandatory, not applicable, have enumerations available, etc.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/objectTypeKey+Structure" title="objectTypeKey Structure">objectTypeKey</a></td>\r
-\r
-<td class="methodParamName">objectTypeKey</td>\r
-<td class="methodParamDesc">identifier of the object type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectStructure+Structure" title="objectStructure Structure">objectStructure</a></td>\r
-<td class="methodReturnDesc">describes the fields for the input object type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified objectTypeKey not found</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid objectTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing objectTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchEnumeration"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">fetchEnumeration</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of enumeration values for a particular enumeration with a certain context for a particular date. The values returned should be those where the supplied date is between the effective and expiration dates. Certain enumerations may not support this functionality.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/enumerationKey+Structure" title="enumerationKey Structure">enumerationKey</a></td>\r
-<td class="methodParamName">enumerationKey</td>\r
-<td class="methodParamDesc">identifier of the enumeration</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/enumContextKey+Structure" title="enumContextKey Structure">enumContextKey</a></td>\r
-<td class="methodParamName">contextType</td>\r
-<td class="methodParamDesc">identifier of the enumeration context type</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td>\r
-<td class="methodParamName">contextValue</td>\r
-<td class="methodParamDesc">value of the enumeration context</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/dateTime+Structure" title="dateTime Structure">dateTime</a></td>\r
-<td class="methodParamName">contextDate</td>\r
-\r
-<td class="methodParamDesc">date and time to get the enumeration for</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/enumeratedValueList+Structure" title="enumeratedValueList Structure">enumeratedValueList</a></td>\r
-<td class="methodReturnDesc">list of enumerated codes and values</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">enumerationKey not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid enumerationKey, contextType, contextValue, contextDate</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing enumerationKey, contextType, contextValue, contextDate</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">findSearchTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No Parameters</td></tr>\r
-<tr>\r
-\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchType</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td>\r
-<td class="methodParamName">searchTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfo+Structure" title="searchTypeInfo Structure">searchTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchTypeKey</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypesByResult"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchTypesByResult</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types which return results in the specified format.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td>\r
-<td class="methodParamName">searchResultTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search result type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchResultTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchResultTypeKey not specified</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchTypesByCriteria"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchTypesByCriteria</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search types which use criteria in the specified format.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td>\r
-<td class="methodParamName">searchCriteriaTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search criteria</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-\r
-<td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchResultTypes"></a></p>\r
-<table class="methodTable">\r
-\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchResultTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search result types known by this service. Search result types describe the return structure for a search.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-\r
-<td class="methodParamDesc">No Parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfoList+Structure" title="searchResultTypeInfoList Structure">searchResultTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search result type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchResultType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchResultType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search result type. Search result types describe the return structure for a search.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td>\r
-<td class="methodParamName">searchResultTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search result type</td></tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfo+Structure" title="searchResultTypeInfo Structure">searchResultTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search result type</td></tr>\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">invalid searchResultTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchResultTypeKey not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findSearchCriteriaTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findSearchCriteriaTypes</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of search criteria types known by this service.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfoList+Structure" title="searchCriteriaTypeInfoList Structure">searchCriteriaTypeInfoList</a></td>\r
-<td class="methodReturnDesc">list of search criteria type information</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSearchCriteriaType"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSearchCriteriaType</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves information about a particular search criteria type.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td>\r
-<td class="methodParamName">searchCriteriaTypeKey</td>\r
-<td class="methodParamDesc">identifier of the search criteria type</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfo+Structure" title="searchCriteriaTypeInfo Structure">searchCriteriaTypeInfo</a></td>\r
-<td class="methodReturnDesc">information on the search criteria type</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="4">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findAuthenticationTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findAuthenticationTypes</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieve the list of authentication types known by this service</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/authenticationTypeList+Structure" title="authenticationTypeList Structure">authenticationTypeList</a></td>\r
-<td class="methodReturnDesc">list of authentication types</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-findPrincipalIdsByPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalIdsByPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principals for a given Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodReturnDesc">list of principal ids for the specified person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-\r
-<td class="methodErrorDesc">personId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findPrincipalIdsBySystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalIdsBySystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principals for a given System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodReturnDesc">list of principal ids for the given system</td></tr>\r
-\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">systemId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid systemId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchPersonIdByPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">fetchPersonIdByPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a Person for a given Principal</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodReturnDesc">person identifier that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId not found</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchSystemIdByPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchSystemByPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a System for a given Principal</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodReturnDesc">system identifier that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">systemId found but has been retired</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">systemId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-fetchPrincipalTypeForPrincipal"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">fetchPrincipalTypeForPrincipal</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a Principal Type for a given Principal</td></tr>\r
-<tr>\r
-\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalType+Structure" title="principalType Structure">principalType</a></td>\r
-<td class="methodReturnDesc">principal type that matches the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-findPrincipalTypesByPrincipalIdList"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">findPrincipalTypesByPrincipalIdList</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves a list of Principal Types for a given list of Principal Ids</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td>\r
-<td class="methodParamName">principalIdList</td>\r
-<td class="methodParamDesc">list of principal identifiers</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalTypeList+Structure" title="principalTypeList Structure">principalTypeList</a></td>\r
-<td class="methodReturnDesc">List of principal types that match the supplied criteria</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">One or more principalIds found but have been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">One or more principalIds not found</td></tr>\r
-<tr>\r
-\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalIdList</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Search</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-searchForResults"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">searchForResults</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves results in tabular form for the specified parameters.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td>\r
-<td class="methodParamName">searchTypeKey</td>\r
-<td class="methodParamDesc">search identifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/queryParamValueList+Structure" title="queryParamValueList Structure">queryParamValueList</a></td>\r
-<td class="methodParamName">queryParamValues</td>\r
-<td class="methodParamDesc">list of values for search parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/resultList+Structure" title="resultList Structure">resultList</a></td>\r
-\r
-<td class="methodReturnDesc">list of results from the query</td></tr>\r
-<tr>\r
-<th class="h" rowspan="5">Errors</th>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">specified search type not found</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid searchTypeKey, queryParamValueList</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-\r
-<td class="methodErrorDesc">searchTypeKey, queryParamValueList not specified</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="AuthenticationService-"></a><font color="#000066"><em>Maintenance</em></font></h4>\r
-\r
-<p><a name="AuthenticationService-assignPrincipalToPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">assignPrincipalToPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Assigns a Principal to a Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="7">Errors</th>\r
-<td class="methodErrorType" colspan="2">ALREADY_EXISTS</td>\r
-\r
-<td class="methodErrorDesc">association already exists</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">personId or principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId, principalId does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId, principalId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId, principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-assignPrincipalToSystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">assignPrincipalToSystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Assigns a Principal to a System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="7">Errors</th>\r
-<td class="methodErrorType" colspan="2">ALREADY_EXISTS</td>\r
-\r
-<td class="methodErrorDesc">association already exists</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">principalId, systemId does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId, systemId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-removePrincipalFromPerson"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-\r
-<td class="methodName" colspan="3">removePrincipalFromPerson</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Remove a Principal from a Person</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td>\r
-<td class="methodParamName">personId</td>\r
-<td class="methodParamDesc">person identifier</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-\r
-<td class="methodErrorDesc">personId or principalId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-<td class="methodErrorDesc">personId, principalId, association does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid personId, principalId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing personId, principalId</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><a name="AuthenticationService-removePrincipalFromSystem"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">removePrincipalFromSystem</td></tr>\r
-<tr>\r
-<th class="h">Description</th>\r
-\r
-<td class="methodDesc" colspan="3">Remove a Principal from a System</td></tr>\r
-<tr>\r
-<th class="h" rowspan="2">Parameters</th>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td>\r
-<td class="methodParamName">principalId</td>\r
-<td class="methodParamDesc">principal identifier</td></tr>\r
-<tr>\r
-<td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td>\r
-<td class="methodParamName">systemId</td>\r
-<td class="methodParamDesc">system identifier</td></tr>\r
-\r
-<tr>\r
-<th class="h">Return</th>\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td>\r
-<td class="methodReturnDesc">status of the operation</td></tr>\r
-<tr>\r
-<th class="h" rowspan="6">Errors</th>\r
-<td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td>\r
-<td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td>\r
-\r
-<td class="methodErrorDesc">principalId, systemId, association does not exist</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">INVALID_PARAMETER</td>\r
-<td class="methodErrorDesc">invalid principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">MISSING_PARAMETER</td>\r
-<td class="methodErrorDesc">missing principalId, systemId</td></tr>\r
-<tr>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-\r
-<tr>\r
-<td class="methodErrorType" colspan="2">PERMISSION_DENIED</td>\r
-<td class="methodErrorDesc">authorization failure</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-\r
-<p><a href="#AuthenticationService-Operations">Back to Operations</a></p>\r
-\r
-<p><!-- ServiceOperationStop --></p>\r
-\r
-<h3><a name="AuthenticationService-Capabilities"></a>Capabilities</h3>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Authentication+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Authentication+Service"\r
- dc:title="Authentication Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/22511697"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
-\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="22511697">\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
-\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-214" class="confluence-label">\r
-\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-207" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-pi">kss-pi</a> <span class="remove-label-caption">kss-pi</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
-<div id="label-30932995" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svb1">kss-svb1</a> <span class="remove-label-caption">kss-svb1</span>\r
-\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
-\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
-\r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
- </div>\r
- </form>\r
-\r
- </div>\r
-</div>\r
-\r
- <div id="children-section" class="pageSection">\r
- \r
- <div class="section-header ">\r
- <h2 id="children-section-title" class="section-title">\r
- <a name="children">Children (2)</a>\r
- </h2>\r
- <span class="noprint">\r
-\r
- \r
- <a id="hide-children-link" class="grey" href="/confluence/display/KULSTU/Authentication+Service?showChildren=false#children">Hide Children</a>\r
- \r
- | <a class="grey" href="/confluence/pages/listpages-dirview.action?key=KULSTU&openId=22511697#selectedPageInHierarchy">View in Hierarchy</a>\r
- | \r
- <a class="grey" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=22511697">Add Child Page</a>\r
- </span>\r
-\r
- </div>\r
- <div id="page-children" class="pageSectionBody">\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Authentication Service Description and Assumptions"/>\r
- <a href="/confluence/display/KULSTU/Authentication+Service+Description+and+Assumptions">Authentication Service Description and Assumptions</a>\r
- <br>\r
- <img src="/confluence/images/icons/docs_16.gif" height="16" width="16" border="0" align="absmiddle" title="Authentication Service Release Notes"/>\r
- <a href="/confluence/display/KULSTU/Authentication+Service+Release+Notes">Authentication Service Release Notes</a>\r
- <br>\r
-\r
- </div>\r
- </div>\r
- \r
- \r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Authentication+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
-\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
-\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-<contents><p><a name="AuthenticationService-findObjectTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findObjectTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of object type identifiers known by this service. Example: cluInfo.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectTypeKeyList+Structure" title="objectTypeKeyList Structure">objectTypeKeyList</a></td><td class="methodReturnDesc">list of object type identifiers</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchObjectStructure"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchObjectStructure</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the basic dictionary information about a particular object structure. Including all variations based on a certain type and state. Example: Given that a CLU is of type "Course" and in the state of "Proposed," tell which fields are read only, mandatory, not applicable, have enumerations available, etc.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/objectTypeKey+Structure" title="objectTypeKey Structure">objectTypeKey</a></td><td class="methodParamName">objectTypeKey</td><td class="methodParamDesc">identifier of the object type</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/objectStructure+Structure" title="objectStructure Structure">objectStructure</a></td><td class="methodReturnDesc">describes the fields for the input object type</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified objectTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid objectTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing objectTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchEnumeration"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchEnumeration</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of enumeration values for a particular enumeration with a certain context for a particular date. The values returned should be those where the supplied date is between the effective and expiration dates. Certain enumerations may not support this functionality.</td></tr><tr><th class="h" rowspan="4">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/enumerationKey+Structure" title="enumerationKey Structure">enumerationKey</a></td><td class="methodParamName">enumerationKey</td><td class="methodParamDesc">identifier of the enumeration</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/enumContextKey+Structure" title="enumContextKey Structure">enumContextKey</a></td><td class="methodParamName">contextType</td><td class="methodParamDesc">identifier of the enumeration context type</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/string+Structure" title="string Structure">string</a></td><td class="methodParamName">contextValue</td><td class="methodParamDesc">value of the enumeration context</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/dateTime+Structure" title="dateTime Structure">dateTime</a></td><td class="methodParamName">contextDate</td><td class="methodParamDesc">date and time to get the enumeration for</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/enumeratedValueList+Structure" title="enumeratedValueList Structure">enumeratedValueList</a></td><td class="methodReturnDesc">list of enumerated codes and values</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">enumerationKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid enumerationKey, contextType, contextValue, contextDate</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing enumerationKey, contextType, contextValue, contextDate</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findSearchTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findSearchTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of search types known by this service.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No Parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td><td class="methodReturnDesc">list of search type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchSearchType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchSearchType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves information about a particular search type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td><td class="methodParamName">searchTypeKey</td><td class="methodParamDesc">identifier of the search type</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfo+Structure" title="searchTypeInfo Structure">searchTypeInfo</a></td><td class="methodReturnDesc">information on the search type</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">searchTypeKey not specified</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findSearchTypesByResult"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findSearchTypesByResult</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of search types which return results in the specified format.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td><td class="methodParamName">searchResultTypeKey</td><td class="methodParamDesc">identifier of the search result type</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td><td class="methodReturnDesc">list of search type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchResultTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">searchResultTypeKey not specified</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findSearchTypesByCriteria"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findSearchTypesByCriteria</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of search types which use criteria in the specified format.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td><td class="methodParamName">searchCriteriaTypeKey</td><td class="methodParamDesc">identifier of the search criteria</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchTypeInfoList+Structure" title="searchTypeInfoList Structure">searchTypeInfoList</a></td><td class="methodReturnDesc">list of search type information</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findSearchResultTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findSearchResultTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of search result types known by this service. Search result types describe the return structure for a search.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No Parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfoList+Structure" title="searchResultTypeInfoList Structure">searchResultTypeInfoList</a></td><td class="methodReturnDesc">list of search result type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchSearchResultType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchSearchResultType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves information about a particular search result type. Search result types describe the return structure for a search.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/searchResultTypeKey+Structure" title="searchResultTypeKey Structure">searchResultTypeKey</a></td><td class="methodParamName">searchResultTypeKey</td><td class="methodParamDesc">identifier of the search result type</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchResultTypeInfo+Structure" title="searchResultTypeInfo Structure">searchResultTypeInfo</a></td><td class="methodReturnDesc">information on the search result type</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchResultTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchResultTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">searchResultTypeKey not specified</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findSearchCriteriaTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findSearchCriteriaTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves the list of search criteria types known by this service.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfoList+Structure" title="searchCriteriaTypeInfoList Structure">searchCriteriaTypeInfoList</a></td><td class="methodReturnDesc">list of search criteria type information</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchSearchCriteriaType"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchSearchCriteriaType</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves information about a particular search criteria type.</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/searchCriteriaTypeKey+Structure" title="searchCriteriaTypeKey Structure">searchCriteriaTypeKey</a></td><td class="methodParamName">searchCriteriaTypeKey</td><td class="methodParamDesc">identifier of the search criteria type</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/searchCriteriaTypeInfo+Structure" title="searchCriteriaTypeInfo Structure">searchCriteriaTypeInfo</a></td><td class="methodReturnDesc">information on the search criteria type</td></tr><tr><th class="h" rowspan="4">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified searchCriteriaTypeKey not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchCriteriaTypeKey</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">searchCriteriaTypeKey not specified</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findAuthenticationTypes"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findAuthenticationTypes</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieve the list of authentication types known by this service</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType">None</td><td class="methodParamName">None</td><td class="methodParamDesc">No parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/authenticationTypeList+Structure" title="authenticationTypeList Structure">authenticationTypeList</a></td><td class="methodReturnDesc">list of authentication types</td></tr><tr><th class="h" rowspan="1">Errors</th><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><h4><a name="AuthenticationService-"></a><font color="#000066"><em>Read</em></font></h4><p><a name="AuthenticationService-findPrincipalIdsByPerson"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findPrincipalIdsByPerson</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves a list of Principals for a given Person</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td><td class="methodParamName">personId</td><td class="methodParamDesc">person identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td><td class="methodReturnDesc">list of principal ids for the specified person</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findPrincipalIdsBySystem"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findPrincipalIdsBySystem</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves a list of Principals for a given System</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodParamName">systemId</td><td class="methodParamDesc">system identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td><td class="methodReturnDesc">list of principal ids for the given system</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">systemId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">systemId not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid systemId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing systemId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchPersonIdByPrincipal"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchPersonIdByPrincipal</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves a Person for a given Principal</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td><td class="methodReturnDesc">person identifier that matches the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchSystemIdByPrincipal"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchSystemByPrincipal</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves a System for a given Principal</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodReturnDesc">system identifier that matches the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">systemId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">systemId not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-fetchPrincipalTypeForPrincipal"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">fetchPrincipalTypeForPrincipal</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves a Principal Type for a given Principal</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalType+Structure" title="principalType Structure">principalType</a></td><td class="methodReturnDesc">principal type that matches the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-findPrincipalTypesByPrincipalIdList"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">findPrincipalTypesByPrincipalIdList</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves a list of Principal Types for a given list of Principal Ids</td></tr><tr><th class="h" rowspan="1">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalIdList+Structure" title="principalIdList Structure">principalIdList</a></td><td class="methodParamName">principalIdList</td><td class="methodParamDesc">list of principal identifiers</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/principalTypeList+Structure" title="principalTypeList Structure">principalTypeList</a></td><td class="methodReturnDesc">List of principal types that match the supplied criteria</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">One or more principalIds found but have been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">One or more principalIds not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalIdList</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><h4><a name="AuthenticationService-"></a><font color="#000066"><em>Search</em></font></h4><p><a name="AuthenticationService-searchForResults"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">searchForResults</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Retrieves results in tabular form for the specified parameters.</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/searchTypeKey+Structure" title="searchTypeKey Structure">searchTypeKey</a></td><td class="methodParamName">searchTypeKey</td><td class="methodParamDesc">search identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/queryParamValueList+Structure" title="queryParamValueList Structure">queryParamValueList</a></td><td class="methodParamName">queryParamValues</td><td class="methodParamDesc">list of values for search parameters</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/resultList+Structure" title="resultList Structure">resultList</a></td><td class="methodReturnDesc">list of results from the query</td></tr><tr><th class="h" rowspan="5">Errors</th><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">specified search type not found</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid searchTypeKey, queryParamValueList</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">searchTypeKey, queryParamValueList not specified</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><h4><a name="AuthenticationService-"></a><font color="#000066"><em>Maintenance</em></font></h4><p><a name="AuthenticationService-assignPrincipalToPerson"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">assignPrincipalToPerson</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Assigns a Principal to a Person</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td><td class="methodParamName">personId</td><td class="methodParamDesc">person identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="7">Errors</th><td class="methodErrorType" colspan="2">ALREADY_EXISTS</td><td class="methodErrorDesc">association already exists</td></tr><tr><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId or principalId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, principalId does not exist</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId, principalId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId, principalId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-assignPrincipalToSystem"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">assignPrincipalToSystem</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Assigns a Principal to a System</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodParamName">systemId</td><td class="methodParamDesc">system identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="7">Errors</th><td class="methodErrorType" colspan="2">ALREADY_EXISTS</td><td class="methodErrorDesc">association already exists</td></tr><tr><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId, systemId does not exist</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId, systemId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId, systemId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-removePrincipalFromPerson"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">removePrincipalFromPerson</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Remove a Principal from a Person</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/personId+Structure" title="personId Structure">personId</a></td><td class="methodParamName">personId</td><td class="methodParamDesc">person identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">personId or principalId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">personId, principalId, association does not exist</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid personId, principalId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing personId, principalId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><a name="AuthenticationService-removePrincipalFromSystem"></a></p><table class="methodTable"><tr><th class="h">Method</th><td class="methodName" colspan="3">removePrincipalFromSystem</td></tr><tr><th class="h">Description</th><td class="methodDesc" colspan="3">Remove a Principal from a System</td></tr><tr><th class="h" rowspan="2">Parameters</th><td class="methodParamType"><a href="/confluence/display/KULSTU/principalId+Structure" title="principalId Structure">principalId</a></td><td class="methodParamName">principalId</td><td class="methodParamDesc">principal identifier</td></tr><tr><td class="methodParamType"><a href="/confluence/display/KULSTU/systemId+Structure" title="systemId Structure">systemId</a></td><td class="methodParamName">systemId</td><td class="methodParamDesc">system identifier</td></tr><tr><th class="h">Return</th><td class="methodReturnType" colspan="2"><a href="/confluence/display/KULSTU/status+Structure" title="status Structure">status</a></td><td class="methodReturnDesc">status of the operation</td></tr><tr><th class="h" rowspan="6">Errors</th><td class="methodErrorType" colspan="2">DISABLED_IDENTIFIER</td><td class="methodErrorDesc">principalId, systemId found but has been retired</td></tr><tr><td class="methodErrorType" colspan="2">DOES_NOT_EXIST</td><td class="methodErrorDesc">principalId, systemId, association does not exist</td></tr><tr><td class="methodErrorType" colspan="2">INVALID_PARAMETER</td><td class="methodErrorDesc">invalid principalId, systemId</td></tr><tr><td class="methodErrorType" colspan="2">MISSING_PARAMETER</td><td class="methodErrorDesc">missing principalId, systemId</td></tr><tr><td class="methodErrorType" colspan="2">OPERATION_FAILED</td><td class="methodErrorDesc">unable to complete request</td></tr><tr><td class="methodErrorType" colspan="2">PERMISSION_DENIED</td><td class="methodErrorDesc">authorization failure</td></tr><tr><th class="h">Capabilities</th><td class="capabilityDesc" colspan="3"></td></tr><tr><th class="h">Use Cases</th><td class="usecaseDesc" colspan="3"></td></tr><tr><th class="h">Comments/Feedback</th><td class="commentsDesc" colspan="3"></td></tr></table><p><a href="#AuthenticationService-Operations">Back to Operations</a></p><p><!-- ServiceOperationStop --></p></contents>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
-<html>\r
-<head>\r
- <title>Comment Service - KS Workspace - Confluence</title>\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
- \r
-<meta id="confluence-context-path" name="confluence-context-path" content="/confluence">\r
-<script type="text/javascript">\r
- // Deprecated global variables. To be removed in a future version of Confluence.\r
- var contextPath = '/confluence';\r
- var i18n = [];\r
-</script>\r
-\r
-\r
-\r
-<!-- include system resources -->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master.css" title="Confluence Master Stylesheet" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/wiki-content.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tabs.css" media="all"/>\r
-\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/menu-ie.css" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/tables.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/panels.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/master-ie.css" title="Master-IE" media="all"/>\r
-<![endif]-->\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/renderer-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/information-macros.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-styles/layout-macros.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:prototype/prototype.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/effects.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/dragdrop.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/controls.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:scriptaculous/util.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery-compatibility.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:jquery/jquery.dimensions.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:ajs/atlassian.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/engine.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:dwr/util.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/AddLabeltoEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/RemoveLabelFromEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/SuggestedLabelsForEntity.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/GenerateAutocompleteLabelsListForEntity.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/uberlabels.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels-editor.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/autocomplete.css" media="all"/>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:labels-editor/labels.css" media="all"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:animation/animation.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments.css" media="all"/>\r
-<!--[if IE]>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:comments/comments-ie.css" media="all"/>\r
-<![endif]-->\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:breadcrumbs/breadcrumbs.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/master.js" ></script>\r
-\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/menu.js" ></script>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:master-scripts/PageNotification.js" ></script>\r
-<link type="text/css" rel="stylesheet" href="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:print-styles/print.css" media="print"/>\r
-<script type="text/javascript" src="/confluence/s/1415/4/1.0/_/download/resources/confluence.web.resources:atlassian-effects/atlassian-effects.js" ></script>\r
-\r
-<!-- end system resources -->\r
-\r
- <link rel="stylesheet" href="/confluence/s/1415/4/1/_/styles/combined.css?spaceKey=KULSTU" type="text/css">\r
-\r
- <meta name="confluence-request-time" content="1233005326633">\r
-<link rel="shortcut icon" href="/confluence/images/icons/favicon.ico">\r
-<link rel="icon" type="image/png" href="/confluence/images/icons/favicon.png">\r
-\r
-\r
- \r
-</head>\r
-\r
- <body onload="placeFocus()" id="com-atlassian-confluence">\r
- \r
-\r
-\r
- <script type="text/javascript">\r
- AJS.toInit(function ($) {\r
- $(".message-close-button").each(function () {\r
- var li = $(this).parent();\r
- var cookieId = this.alt;\r
- $(this).click(function () {\r
- li.slideUp();\r
- setCookie(cookieId, true);\r
- });\r
- });\r
-\r
- $("#messageContainer .confluence-messages").each(function () {\r
- if (!getCookie(this.id)) {\r
- $(this).show();\r
- }\r
- })\r
- });\r
- </script>\r
-\r
- \r
-<div id="header">\r
- <form id="quick-search" method="get" action="/confluence/dosearchsite.action">\r
- <fieldset>\r
-\r
- <legend>Quick Search</legend>\r
- <input type="hidden" name="where" value="conf_all" />\r
- <input id="quick-search-query" type="text" accessKey="q" name="queryString" size="25"/>\r
- <input id="quick-search-submit" type="submit" value="Search"/>\r
- </fieldset>\r
- <fieldset class="hidden parameters">\r
- <input type="hidden" id="quickSearchPlaceholder" value="Search">\r
- </fieldset>\r
-\r
- </form>\r
- <ul id="header-menu-bar" class="ajs-menu-bar">\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="browse-menu-link" class="browse trigger ajs-menu-title" href="#"><span><span>Browse</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="browse-menu-link-leading" class="section-leading first">\r
- <li>\r
- \r
- <a id="space-pages-link" href="/confluence/pages/listpages.action?key=KULSTU" class="" >\r
- <span>Pages</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-blogposts-link" href="/confluence/pages/viewrecentblogposts.action?key=KULSTU" class="" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="space-labels-link" href="/confluence/labels/listlabels-heatmap.action?key=KULSTU" class="" >\r
- <span>Labels</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-attachments-link" href="/confluence/spaces/listattachmentsforspace.action?key=KULSTU" class="" >\r
- <span>Attachments</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/space-bookmarks.action?spaceKey=KULSTU" class="" >\r
- <span>Bookmarks</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-mail-link" href="/confluence/spaces/viewmailarchive.action?key=KULSTU" class="" >\r
- <span>Mail</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/spaces/usage/report.action?key=KULSTU" class="" >\r
- <span>Activity</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="space-advanced-link" href="/confluence/spaces/viewspacesummary.action?key=KULSTU" class="" >\r
- <span>Advanced</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="browse-menu-link-global" class="section-global">\r
- <li>\r
- \r
- <a id="people-directory-link" href="/confluence/peopledirectory.action" class="" >\r
-\r
- <span>People Directory</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- \r
- <li class="normal ajs-menu-item">\r
- <a id="user-menu-link" class="user trigger ajs-menu-title" href="#"><span><span>UCB Guest</span></span></a> <div class="hidden ajs-drop-down">\r
-\r
- <ul id="user-menu-link-user-preferences" class="section-user-preferences first">\r
- <li>\r
- \r
- <a id="view-user-profile-link" href="/confluence/users/viewuserprofile.action?username=ucbguest" class="user-item user-profile" >\r
- <span>Preferences</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="view-user-history-link" href="/confluence/users/viewuserhistory.action" class="user-item user-history popup-link" >\r
- <span>History</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-content" class="section-user-content">\r
- <li>\r
- \r
- <a id="user-labels-link" href="/confluence/users/viewmylabels.action" class="user-item" >\r
- <span>Labels</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-watches-link" href="/confluence/users/viewnotifications.action" class="user-item" >\r
-\r
- <span>Watches</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="user-drafts-link" href="/confluence/users/viewmydrafts.action" class="user-item" >\r
- <span>Drafts</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="user-menu-link-user-operations" class="section-user-operations">\r
-\r
- <li>\r
- \r
- <a id="logout-link" href="/confluence/logout.action" class="user-item logout-link" >\r
- <span>Log Out</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- \r
- \r
- <ol id="breadcrumbs">\r
- \r
- <li><span>\r
- <a href="/confluence/dashboard.action">Dashboard</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU">KS Workspace</a>\r
- </span></li>\r
-\r
- <li id="ellipsis" title=" …\r
- Home\r
- > Service Architecture Homepage\r
- > Service Design Repositories\r
- …\r
-"><span>> <strong>…</strong></span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Home">Home</a>\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Architecture+Homepage">Service Architecture Homepage</a>\r
-\r
- </span></li>\r
- \r
- <li class="hidden-crumb" ><span>\r
- > <a href="/confluence/display/KULSTU/Service+Design+Repositories">Service Design Repositories</a>\r
- </span></li>\r
- \r
- <li><span>\r
- > <a href="/confluence/display/KULSTU/Service+Description+Repository">Service Description Repository</a>\r
- </span></li>\r
-\r
- \r
- <li><span>\r
- > Comment Service\r
- </span></li>\r
- </ol>\r
-\r
-</div>\r
-<div id="main">\r
- \r
- <ul id="user-control-panel">\r
- <li class="first">Welcome <a href="/confluence/display/~ucbguest">UCB Guest</a></li>\r
-\r
- <li><a href="/confluence/users/viewuserhistory.action" onclick="window.open(this.href,'user_history', 'width=620, height=200, resizable'); return false;" title="View History">History</a></li>\r
- \r
- <li><a href="/confluence/users/viewuserprofile.action?username=ucbguest">Preferences</a></li>\r
-\r
- \r
- <li><a href="/confluence/logout.action" id="logout">Log Out</a></li>\r
- </ul>\r
- \r
- <div id="navigation" class="content-navigation view">\r
- <fieldset class="hidden parameters">\r
-\r
- <input type="hidden" id="pageId" value="132481223">\r
- </fieldset>\r
- <ul class="ajs-menu-bar">\r
- <li class="ajs-button normal">\r
- \r
- <a id="editPageLink" href="/confluence/pages/editpage.action?pageId=132481223" class="edit" accessKey="e">\r
- <span><u>E</u>dit</span> </a>\r
-</li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="add-menu-link" class="add trigger ajs-menu-title" href="#"><span><span>Add</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="add-menu-link-space" class="section-space first">\r
- <li>\r
- \r
- <a id="createPageLink" href="/confluence/pages/createpage.action?spaceKey=KULSTU&fromPageId=132481223" class="add-page" >\r
- <span>Page</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="createNewsLink" href="/confluence/pages/createblogpost.action?spaceKey=KULSTU" class="add-news" >\r
- <span>News</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a href="/confluence/plugins/socialbookmarking/updatebookmark.action?spaceKey=KULSTU&redirect=spacebookmarks" class="" >\r
- <span><img alt="Bookmark" src="/confluence/images/icons/adfav_16.gif" height="16" width="16" title="Bookmark"\r
- >Bookmark</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a href="/confluence/spaces/gliffy/adddiagram.action?pageId=132481223&key=KULSTU" class="" >\r
- <span><img alt="Diagram" src="/confluence/download/resources/com.gliffy.integration.confluence:gliffy-macro-key/resources/icons/add_diagram_16.gif" height="16" width="16" title="Diagram"\r
- >Diagram</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="add-menu-link-page" class="section-page">\r
- <li>\r
- \r
- <a id="add-comment-menu-link" href="/confluence/display/KULSTU/Comment+Service?showComments=true&showCommentArea=true#addcomment" class="add-comment" >\r
- <span>Comment</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="add-attachment-link" href="/confluence/pages/viewpageattachments.action?pageId=132481223" class="add-attachment" accessKey="a">\r
- <span>Attachment</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- \r
- <li class="normal ajs-menu-item">\r
-\r
- <a id="action-menu-link" class="action trigger ajs-menu-title" href="#"><span><span>Tools</span></span></a> <div class="hidden ajs-drop-down">\r
- <ul id="action-menu-link-primary" class="section-primary first">\r
- <li>\r
- \r
- <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=132481223" class="action-view-attachments" accessKey="a">\r
- <span><u>A</u>ttachments (0)</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=132481223" class="action-view-history" >\r
- <span>History</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="mailPageLink" href="/confluence/pages/mailpage/mailpage.action?pageId=132481223" class="" >\r
- <span><img alt="E-mail" src="/confluence/images/icons/mail_content_16.gif" height="16" width="16" title="E-mail"\r
- >E-mail</span> </a>\r
-</li>\r
- </ul>\r
-\r
- <ul id="action-menu-link-marker" class="section-marker">\r
- <li>\r
- \r
- <a id="page-favourite" href="/confluence/labels/addfavourite.action?entityId=132481223" class="action-page-favourite" >\r
- <span>Favourite</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="page-watch" href="/confluence/pages/addpagenotification.action?pageId=132481223" class="action-page-watching" >\r
- <span>Watch</span> </a>\r
-\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-secondary" class="section-secondary">\r
- <li>\r
- \r
- <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=132481223" class="action-view-info" accessKey="i">\r
- <span><u>I</u>nfo</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-view-source-link" href="/confluence/pages/viewpagesrc.action?pageId=132481223" class="action-view-source popup-link" >\r
- <span>View Wiki Markup</span> </a>\r
-</li>\r
- <li>\r
- \r
- <a id="action-export-pdf-link" href="/confluence/pages/doexportpage.action?pageId=132481223&type=TYPE_PDF" class="action-export-pdf" >\r
- <span>Export to PDF</span> </a>\r
-</li>\r
- <li>\r
-\r
- \r
- <a id="action-export-word-link" href="/confluence/exportword?pageId=132481223" class="action-export-word" >\r
- <span>Export to Word</span> </a>\r
-</li>\r
- </ul>\r
- <ul id="action-menu-link-modify" class="section-modify">\r
- <li>\r
- \r
- <a id="action-copy-page-link" href="/confluence/pages/copypage.action?idOfPageToCopy=132481223&spaceKey=KULSTU" class="action-copy" >\r
- <span>Copy</span> </a>\r
-\r
-</li>\r
- <li>\r
- \r
- <a id="action-move-page-link" href="/confluence/pages/editpage.action?pageId=132481223&locationShowing=true#locationSection" class="action-move" >\r
- <span>Move</span> </a>\r
-</li>\r
- </ul>\r
- </div>\r
- </li>\r
- </ul>\r
-\r
- </div>\r
-\r
- <h1 id="title-heading" class="pagetitle">\r
- <a href="/confluence/display/KULSTU"><img class="logo space custom" src="/confluence/download/attachments/25289/KULSTU?version=1" alt=""></a> \r
- <span id="title-text">\r
- <a href="/confluence/display/KULSTU/Comment+Service">Comment Service</a>\r
- </span>\r
- </h1>\r
-\r
- <!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
- \r
- \r
- \r
- \r
- \r
- \r
-\r
-\r
-<div id="content" class="page view">\r
- \r
- \r
- \r
- \r
-\r
- \r
- <div class="page-metadata">\r
- Added by <a href="/confluence/display/~sthorne">Scott Thorne</a>, last edited by <a href="/confluence/display/~abucior">Andy Bucior</a> on Jan 26, 2009\r
- <span class="noprint"> (<a href="/confluence/pages/diffpages.action?pageId=132481223&originalId=132481358">view change</a>)</span>\r
-\r
- </div> \r
- <div class="wiki-content">\r
- <!-- wiki content -->\r
- <h2><a name="CommentService-CommentService"></a>Comment Service</h2>\r
-\r
-<style type="text/css">\r
-\r
-table#serviceMetaTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-table#serviceMetaTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-table#serviceMetaTable td#serviceName {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-table#serviceMetaTable td#serviceVersion {\r
-border:1px solid #000000;\r
-width:70%;\r
-}\r
-table#serviceMetaTable td#serviceVersionHistory {\r
-border:1px solid #000000;\r
-width:15%;\r
-}\r
-\r
-</style>\r
-\r
-\r
-<table id="serviceMetaTable">\r
-<tr>\r
-<th class="h">Name</th>\r
-\r
-<td colspan="2" id="serviceName">CommentService</td></tr>\r
-<tr>\r
-<th class="h">Version</th>\r
-<td id="serviceVersion">Dev</td>\r
-<td id="serviceVersionHistory"><a href="/confluence/display/KULSTU/Person+Service+Release+Notes#PersonServiceReleaseNotes-current">Release Notes</a></td></tr></table>\r
-<table class='confluenceTable'><tbody>\r
-<tr>\r
-<td class='confluenceTd'> <a href="#CommentService-References">References</a> </td>\r
-<td class='confluenceTd'> <a href="#CommentService-Operations">Operations</a> </td>\r
-\r
-<td class='confluenceTd'> <a href="#CommentService-Capabilities">Capabilities</a> </td>\r
-</tr>\r
-</tbody></table>\r
-\r
-<h3><a name="CommentService-Description"></a>Description</h3>\r
-<p>The Comment Service manages user comments associated with any object.This service is to allow comments and tags to be created for objects across the system. There is no expectation that the Objects no about these at all, and therefore objects can be deleted while there were still tags or comments.</p>\r
-\r
-<p><img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> We're using "objects" in a different way than elsewhere, so we need a better name.<br/>\r
-<img class="emoticon" src="/confluence/images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> How much threading do we need</p>\r
-\r
-<h3><a name="CommentService-Operations"></a>Operations</h3>\r
-<style type="text/css">\r
-\r
-table.methodTable {\r
-border-collapse:collapse;\r
-border:1px solid #000000;\r
-width:95%;\r
-}\r
-\r
-table.methodTable td.d {\r
-border:1px solid #000000;\r
-}\r
-\r
-table.methodTable th.h {\r
-border:1px solid #000000;\r
-background-color:#eeeeee;\r
-width:15%;\r
-}\r
-\r
-table.methodTable td.methodName {\r
-border:1px solid #000000;\r
-background-color:#f2f2f2;\r
-color:#222222;\r
-text-align:center;\r
-width:85%;\r
-font-weight:bold;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodDesc {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-table.methodTable td.methodParamType {\r
-border:1px solid #000000;\r
-width:21%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodParamName {\r
-border:1px solid #000000;\r
-width:21%;\r
-}\r
-table.methodTable td.methodParamDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-table.methodTable td.methodReturnType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-\r
-table.methodTable td.methodReturnDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.methodErrors {\r
-border:1px solid #000000;\r
-width:85%;\r
-}\r
-\r
-\r
-table.methodTable td.methodErrorType {\r
-border:1px solid #000000;\r
-width:42%;\r
-font-style:italic;\r
-}\r
-table.methodTable td.methodErrorDesc {\r
-border:1px solid #000000;\r
-width:43%;\r
-}\r
-\r
-table.methodTable td.capabilityDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.usecaseDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-table.methodTable td.commentsDesc {\r
-border:1px solid #000000;\r
-background:#ffffff;\r
-}\r
-\r
-\r
-\r
-</style>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Setup</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p><b>Dictionary Operations</b><br/>\r
-<a href="#CommentService-findObjectTypes">findObjectTypes</a><br/>\r
-<a href="#CommentService-fetchObjectStructure">fetchObjectStructure</a><br/>\r
-<a href="#CommentService-fetchEnumeration">fetchEnumeration</a></p>\r
-\r
-<p><b>Search Operations</b><br/>\r
-\r
-<a href="#CommentService-findSearchTypes">findSearchTypes</a><br/>\r
-<a href="#CommentService-fetchSearchType">fetchSearchType</a><br/>\r
-<a href="#CommentService-findSearchTypesByResult">findSearchTypesByResult</a><br/>\r
-<a href="#CommentService-findSearchTypesByCriteria">findSearchTypesByCriteria</a><br/>\r
-<a href="#CommentService-findSearchResultTypes">findSearchResultTypes</a><br/>\r
-<a href="#CommentService-fetchSearchResultType">fetchSearchResultType</a><br/>\r
-<a href="#CommentService-findSearchCriteriaTypes">findSearchCriteriaTypes</a><br/>\r
-<a href="#CommentService-fetchSearchCriteriaType">fetchSearchCriteriaType</a></p>\r
-\r
-<p><b>Domain Operations</b><br/>\r
-<a href="#CommentService-getReferenceTypes">getReferenceTypes</a><br/>\r
-getCommentTypes – Do we need these? Separate Personal from Official etc<br/>\r
-getTagTypes – Do we need these?</p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Read</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p>getTagsForReference<br/>\r
-\r
-getCommentsForReference</p>\r
-\r
-<p>getComments</p>\r
-\r
-<p>getReferencesByTag<br/>\r
-getReferencesOfTypeByTag</p>\r
-\r
-<p>getTags</p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Search</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-\r
-<p><a href="#CommentService-searchForResults">searchForResults</a></p>\r
-</div></div>\r
-\r
-<div class="panel" style="background-color: #ffffff;border-color: #cccccc;border-style: solid;border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #cccccc;background-color: #eeeeee;"><b>Maintenance</b></div><div class="panelContent" style="background-color: #ffffff;">\r
-<p>addTag<br/>\r
-removeTag</p>\r
-\r
-<p>addComment</p>\r
-\r
-<p>removeComment</p>\r
-\r
-<p>removeAllTags<br/>\r
-removeAllComments</p>\r
-</div></div>\r
-\r
-<p><!-- ServiceOperationStart --></p>\r
-\r
-<h4><a name="CommentService-"></a><font color="#000066"><em>Setup</em></font></h4>\r
-\r
-<p><a name="CommentService-getReferenceTypes"></a></p>\r
-<table class="methodTable">\r
-<tr>\r
-<th class="h">Method</th>\r
-<td class="methodName" colspan="3">getReferenceTypes</td></tr>\r
-\r
-<tr>\r
-<th class="h">Description</th>\r
-<td class="methodDesc" colspan="3">Retrieves the list of types which can be tagged or commented.</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Parameters</th>\r
-<td class="methodParamType">None</td>\r
-<td class="methodParamName">None</td>\r
-<td class="methodParamDesc">No parameters</td></tr>\r
-<tr>\r
-<th class="h">Return</th>\r
-\r
-<td class="methodReturnType" colspan="2"><a href="/confluence/pages/createpage.action?spaceKey=KULSTU&title=referenceTypeInfoList+Structure&linkCreation=true&fromPageId=132481223" class="createlink">referenceTypeInfoList</a></td>\r
-<td class="methodReturnDesc">the list of types which can be tagged or commented</td></tr>\r
-<tr>\r
-<th class="h" rowspan="1">Errors</th>\r
-<td class="methodErrorType" colspan="2">OPERATION_FAILED</td>\r
-<td class="methodErrorDesc">unable to complete request</td></tr>\r
-<tr>\r
-<th class="h">Capabilities</th>\r
-<td class="capabilityDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Use Cases</th>\r
-\r
-<td class="usecaseDesc" colspan="3"></td></tr>\r
-<tr>\r
-<th class="h">Comments/Feedback</th>\r
-<td class="commentsDesc" colspan="3"></td></tr></table>\r
-<p><a href="#CommentService-Operations">Back to Operations</a></p>\r
-\r
-<h4><a name="CommentService-"></a><font color="#000066"><em>Read</em></font></h4>\r
-\r
-<h4><a name="CommentService-"></a><font color="#000066"><em>Search</em></font></h4>\r
-\r
-<h4><a name="CommentService-"></a><font color="#000066"><em>Maintenance</em></font></h4>\r
- </div>\r
-\r
- <!--\r
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
- xmlns:dc="http://purl.org/dc/elements/1.1/"\r
- xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">\r
-<rdf:Description\r
- rdf:about="https://test.kuali.org/confluence/display/KULSTU/Comment+Service"\r
- dc:identifier="https://test.kuali.org/confluence/display/KULSTU/Comment+Service"\r
- dc:title="Comment Service"\r
- trackback:ping="https://test.kuali.org/confluence/rpc/trackback/132481223"/>\r
-</rdf:RDF>\r
--->\r
-\r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="hidden parameters">\r
- <legend>Labels parameters</legend>\r
- <input type="hidden" id="editLabel" value="Edit">\r
- <input type="hidden" id="addLabel" value="Add Labels">\r
- <input type="hidden" id="domainName" value="https://test.kuali.org/confluence">\r
- <input type="hidden" id="pageId" value="132481223">\r
-\r
- <input type="hidden" id="spaceKey" value="KULSTU">\r
-</fieldset>\r
-\r
-<div id="labels-section" class="pageSection">\r
- <div id="default-labels-header" class="section-header">\r
- <h2 id="labels-section-title" class="section-title ">Labels</h2>\r
- <a id="labels-edit" href="#" class="show-labels-editor">Edit</a>\r
- <a href="#" class="hide-labels-editor inline-control-link hidden">\r
- Done\r
- </a>\r
-\r
- </div>\r
-\r
- <div class="labels-editor">\r
- <div id="labelsList">\r
- <div id="label-214" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-svcs">kss-svcs</a> <span class="remove-label-caption">kss-svcs</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-\r
-</div>\r
-<div id="label-30932994" class="confluence-label">\r
- <a class="label" rel="nofollow" href="/confluence/label/KULSTU/kss-service">kss-service</a> <span class="remove-label-caption">kss-service</span>\r
- <a class="remove-label" href="#">Delete</a>\r
-</div>\r
- </div>\r
-\r
- <span class="errorMessage error" id="errorSpan"></span>\r
- <form method="GET" action="" id="add-labels-form">\r
-\r
- <div id="labelInputSpan" class="labels-input">\r
- <div id="labelOperationErrorContainer" class="hidden">\r
- <span class="error"><span class="errorMessage" id="labelOperationErrorMessage"></span></span>\r
- </div>\r
-\r
- <div class="caption">Enter labels to add to this page:</div>\r
-\r
- <input autocomplete="off" id="labelsString" name="labelsString" value="" size="40">\r
- <input type="submit" class="add-labels" value="Add">\r
-\r
- <input type="submit" class="hide-labels-editor" value="Done">\r
- <div id="waitImageAndStatus">\r
- <img class="waiting" alt="Please wait" src="/confluence/images/icons/wait.gif"> \r
- <span id="labelOperationStatus" class="smalltext"></span>\r
- </div>\r
- <div class="auto_complete" id="labelsAutocompleteList"></div>\r
- <div class="labels-tip">\r
- <div id="suggestedLabelsSpan"></div>\r
- Looking for a label? Just start typing.\r
- </div>\r
-\r
- </div>\r
- </form>\r
- </div>\r
-</div>\r
-\r
- \r
- \r
-\r
-<!--\r
- Root decorator: this is a layer of abstraction that Confluence doesn't need. It will be removed eventually.\r
--->\r
-\r
-\r
-\r
-\r
- \r
- \r
-\r
-\r
-\r
-\r
-\r
-<fieldset class="parameters hidden">\r
- <input type="hidden" id="deleteCommentConfirmMessage" value="Are you sure you want to remove the comment?">\r
-\r
- <input type="hidden" id="collapseTooltip" value="Click to toggle the display of this comment.">\r
-</fieldset>\r
-\r
-\r
-\r
-\r
-\r
-<div id="comments-section" class="pageSection">\r
- \r
- \r
- \r
- \r
- <p class="noprint">\r
- <a href="/confluence/display/KULSTU/Comment+Service?showComments=true&showCommentArea=true#addcomment" id="add-comment-bottom" accesskey="m">Add Comment</a>\r
- </p>\r
- </div>\r
-\r
-\r
-\r
- \r
-</div>\r
-</div>\r
-\r
-\r
-<div id="footer">\r
- <p class="license license-opensource">\r
- Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Kuali Project. <a href="http://www.atlassian.com/c/conf/11461">Evaluate Confluence today</a>.<br>\r
-\r
- </p>\r
- <ul id="poweredby">\r
- <li class="noprint">Powered by <a href="http://www.atlassian.com/software/confluence" class="smalltext">Atlassian Confluence</a> 2.9, the <a href="http://www.atlassian.com/software/confluence" class="smalltext">Enterprise Wiki</a>.</li>\r
- <li class="print-only">Printed by Atlassian Confluence 2.9, the Enterprise Wiki.</li>\r
- <li class="noprint"><a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a> –</li>\r
-\r
- <li class="noprint"><a href="http://www.atlassian.com/about/connected.jsp?s_kwcid=Confluence-stayintouch" class="smalltext">Atlassian news</a> –</li>\r
- <li class="noprint"><a href="/confluence/administrators.action">Contact administrators</a></li>\r
- </ul>\r
-</div>\r
-\r
-\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project xmlns="http://maven.apache.org/POM/4.0.0"\r
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.kuali.student.mojo</groupId>\r
- <artifactId>maven-kscontract-plugin</artifactId>\r
- <version>0.0.1-SNAPSHOT</version>\r
- <packaging>maven-plugin</packaging>\r
- <name />\r
- <description />\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.apache.maven</groupId>\r
- <artifactId>maven-plugin-api</artifactId>\r
- <version>2.0</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>net.sf.saxon</groupId>\r
- <artifactId>saxon</artifactId>\r
- <version>8.7</version>\r
- </dependency>\r
- </dependencies>\r
-\r
-</project>
\ No newline at end of file
+++ /dev/null
-/**\r
- * \r
- */\r
-\r
-import java.io.File;\r
-import java.net.MalformedURLException;\r
-import java.net.URL;\r
-\r
-import org.apache.maven.plugin.MojoExecutionException;\r
-import org.apache.maven.plugin.MojoFailureException;\r
-\r
-import org.kuali.student.mojo.*;\r
-\r
-/**\r
- * @author remillet\r
- *\r
- */\r
-public class CSpace {\r
-\r
- /**\r
- * @param args\r
- */\r
- public static void main(String[] args) {\r
- \r
- // the contract file to transform\r
- File contractFile = null;\r
-// contractFile = new File("C:/dev/src/kss/maven-kscontract-plugin/maven-kscontract-plugin/contracts/ffservice");\r
- \r
- // the URL to the contract to transform\r
- URL contractURL = null;\r
- try {\r
- contractURL = new URL("https://test.kuali.org/confluence/display/KULSTU/Authentication+Service");\r
-// contractURL = new URL("http://wiki.collectionspace.org/display/collectionspace/wikitojavatestservice");\r
- \r
- //\r
- } catch (MalformedURLException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
- }\r
- \r
- // where to store the transformed output\r
- File outputDirectory = \r
- new File("C:/dev/src/kss/maven-kscontract-plugin/maven-kscontract-plugin/transforms");\r
- \r
- // XSLT file describing the transform\r
- File transformFile = \r
- new File("C:/dev/src/kss/maven-kscontract-plugin/maven-kscontract-plugin/src/main/resources/interface.xml");\r
- \r
- // XSLT file describing the message transform\r
- File messageTransformFile = \r
- new File("C:/dev/src/kss/maven-kscontract-plugin/maven-kscontract-plugin/src/main/resources/messageInterface.xml");\r
- \r
- // the session ID token\r
- String jsessionId = "8B705ECBA5854E818026D31FC4A38C1A.Kuali3_1Engine";\r
- \r
- \r
- \r
- KsContractMojo kssContractMojo = new KsContractMojo(\r
- contractFile,\r
- contractURL,\r
- outputDirectory,\r
- transformFile,\r
- messageTransformFile,\r
- jsessionId);\r
- \r
- try {\r
- kssContractMojo.execute();\r
- }\r
- catch (MojoExecutionException mee) {\r
- System.err.print(mee.toString());\r
- }\r
- catch (MojoFailureException mfe) {\r
- System.err.print(mfe.toString());\r
- }\r
- \r
- }\r
-\r
-}\r
+++ /dev/null
-package org.kuali.student.contract;\r
-\r
-import java.io.BufferedReader;\r
-import java.io.ByteArrayInputStream;\r
-import java.io.File;\r
-import java.io.FileNotFoundException;\r
-import java.io.FileReader;\r
-import java.io.IOException;\r
-import java.io.InputStreamReader;\r
-import java.io.StringReader;\r
-import java.io.UnsupportedEncodingException;\r
-import java.net.URL;\r
-import java.net.URLConnection;\r
-\r
-import javax.xml.parsers.DocumentBuilder;\r
-import javax.xml.parsers.DocumentBuilderFactory;\r
-import javax.xml.parsers.ParserConfigurationException;\r
-import javax.xml.transform.stream.StreamSource;\r
-\r
-import org.w3c.dom.Document;\r
-import org.xml.sax.SAXException;\r
-import java.util.regex.Pattern;\r
-\r
-public class ContractReader {\r
-\r
- private String contractText;\r
-\r
- public ContractReader(File file) throws FileNotFoundException, IOException {\r
- FileReader fileReader = new FileReader(file);\r
- BufferedReader reader = new BufferedReader(fileReader);\r
-\r
- contractText = trimContract(reader);\r
- }\r
-\r
- public ContractReader(URL url, String jsessionId) throws IOException {\r
- URLConnection connection = url.openConnection();\r
- connection.setRequestProperty("Cookie", "JSESSIONID=" + jsessionId);\r
-\r
- InputStreamReader myReader = new InputStreamReader(connection.getInputStream());\r
- BufferedReader reader = new BufferedReader(myReader);\r
-\r
- contractText = trimContract(reader);\r
- }\r
-\r
- public Document getDocument() throws ParserConfigurationException, UnsupportedEncodingException, IOException, SAXException {\r
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
- DocumentBuilder builder = factory.newDocumentBuilder();\r
- \r
- return builder.parse(new ByteArrayInputStream(contractText.getBytes("UTF-8")));\r
- }\r
- \r
- public StreamSource getStreamSource() {\r
- StringReader stringReader = new StringReader(contractText);\r
-\r
- return new StreamSource(stringReader);\r
- }\r
-\r
- protected String trimContract(BufferedReader reader) throws IOException {\r
-\r
- String result = null;\r
- StringBuilder builder = new StringBuilder();\r
- String line;\r
- boolean inContract = false;\r
-\r
- while ((line = reader.readLine()) != null) {\r
-// System.out.println(line);\r
- if (!inContract) {\r
- if (line.contains("<em>Setup</em>")) {\r
- inContract = true;\r
- builder.append("<contents>");\r
- }\r
- } else {\r
-// if (line.contains("</a>Capabilities</h3>")) {\r
- if (line.matches(".*</a>\\s*Capabilities\\s*</h3>.*") == true) {\r
- inContract = false;\r
- } else {\r
- builder.append(line);\r
- }\r
- }\r
- }\r
-\r
- builder.append("</contents>" + "\n");\r
- result = builder.toString();\r
- \r
- System.out.print(result);\r
- \r
- return result;\r
- }\r
-\r
- /**\r
- * @return the contractText\r
- */\r
- public String getContractText() {\r
- return contractText;\r
- }\r
-}\r
+++ /dev/null
-package org.kuali.student.contract;\r
-\r
-import java.io.BufferedReader;\r
-import java.io.File;\r
-import java.io.FileNotFoundException;\r
-import java.io.IOException;\r
-import java.net.URL;\r
-\r
-public class MessageContractReader extends ContractReader {\r
-\r
- /**\r
- * @param url\r
- * @throws IOException\r
- */\r
- public MessageContractReader(URL url, String jsessionId) throws IOException {\r
- super(url, jsessionId);\r
- // TODO Auto-generated constructor stub\r
- }\r
-\r
- public MessageContractReader(File file) throws FileNotFoundException,\r
- IOException {\r
- super(file);\r
- // TODO Auto-generated constructor stub\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- * \r
- * @see org.kuali.student.contract.ContractReader#trimContract(java.io.BufferedReader)\r
- */\r
- @Override\r
- protected String trimContract(BufferedReader reader) throws IOException {\r
- StringBuilder builder = new StringBuilder();\r
- String line;\r
-\r
- // Add in xml header and entity definitions\r
- builder.append("<?xml version=\"1.0\"?>" + "<!DOCTYPE xsl:stylesheet ["\r
- + "<!ENTITY nbsp ' '>" + "]>");\r
-\r
- // Get rid of the first line (doctype info stuff)\r
- reader.readLine();\r
-\r
- // read each line and fix any open tags, bad attributes, and '&' symbols\r
- // without a ';'\r
- boolean inContract = false;\r
- while ((line = reader.readLine()) != null) {\r
-\r
- // Check if the current line has a tag that does not end yet\r
- if (line.matches(".*<[^>]+")) {\r
-\r
- // Concatenate the next lines until the tag is closed\r
- String newLine;\r
- while ((newLine = reader.readLine()) != null\r
- && !(line += newLine).contains(">")) {\r
- }\r
- }\r
-\r
-// System.err.println("Line before:" + line); // BEFORE\r
- \r
- // Do some regex to clean up the tags\r
- line = line.replaceAll("border=0", "border=\"0\"");\r
- line = line.replaceAll("([^:])nowrap([^=])", "$1nowrap=\"true\"$2");\r
- line = line.replaceAll("&(\\w+[^;])", "$1");\r
- line = line.replaceAll("(<(META|meta|br|hr|col|link|img|input)(\\s+[\\w-]+\\s*=\\s*(\"([^\"]*)\"|'([^']*)'))*\\s*)>", "$1/>");\r
- line = line.replaceAll("<div \">", "<div>");\r
- \r
-// System.err.println("Line after :" + line); // AFTER\r
-// System.err.println();\r
- \r
- if (line.contains("Example</h3>")) {\r
- inContract = false;\r
- builder.append("</div>" + "\n"); // end of <div class=wiki-content>\r
- builder.append("</div>" + "\n"); // end of <div id=content>\r
- builder.append("</div>" + "\n"); // end of <div id=main>\r
- builder.append("</body>" + "\n"); // end of <body>\r
- builder.append("</html>" + "\n"); // end of <html>\r
- }\r
-\r
- if (line.contains("id=\"structureMetaTable\"")) {\r
- inContract = true;\r
- // Add <html>, <body>, and main <div> nodes\r
- builder.append("<html>" + "\n");\r
- builder.append("<body>" + "\n");\r
- builder.append("<div id=\"main\">" + "\n");\r
- \r
- // Add <div> for content, and <div> for wiki content\r
- builder.append("<div id=\"content\">" + "\n");\r
- builder.append("<div class=\"wiki-content\">" + "\n");\r
- }\r
- \r
- if (inContract == true) {\r
- builder.append(line + "\n");\r
-// System.out.println(line);\r
- }\r
- \r
- \r
- }\r
-\r
- System.out.println(builder.toString());\r
-\r
- return builder.toString();\r
- \r
- \r
- }\r
-}\r
- \r
+++ /dev/null
-package org.kuali.student.mojo;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.net.MalformedURLException;\r
-import java.net.URL;\r
-import java.util.HashSet;\r
-import java.util.Set;\r
-\r
-import javax.xml.parsers.ParserConfigurationException;\r
-import javax.xml.transform.Result;\r
-import javax.xml.transform.Transformer;\r
-import javax.xml.transform.TransformerConfigurationException;\r
-import javax.xml.transform.TransformerException;\r
-import javax.xml.transform.TransformerFactoryConfigurationError;\r
-import javax.xml.transform.stream.StreamResult;\r
-import javax.xml.transform.stream.StreamSource;\r
-\r
-import org.apache.maven.plugin.AbstractMojo;\r
-import org.apache.maven.plugin.MojoExecutionException;\r
-import org.apache.maven.plugin.MojoFailureException;\r
-import org.kuali.student.contract.ContractReader;\r
-import org.kuali.student.contract.MessageContractReader;\r
-import org.w3c.dom.DOMException;\r
-import org.w3c.dom.Document;\r
-import org.w3c.dom.NamedNodeMap;\r
-import org.w3c.dom.Node;\r
-import org.w3c.dom.NodeList;\r
-import org.xml.sax.SAXException;\r
-\r
-/**\r
- * Creates WS service interface from wiki service contract.\r
- * \r
- * @goal contractToJava\r
- */\r
-public class KsContractMojo extends AbstractMojo {\r
-\r
- public KsContractMojo(\r
- File contractFile,\r
- URL contractURL, \r
- File outputDirectory,\r
- File transformFile,\r
- File messageTransformFile,\r
- String jsessionId)\r
- {\r
- this.contractFile = contractFile;\r
- this.contractURL = contractURL;\r
- this.outputDirectory = outputDirectory;\r
- this.transformFile = transformFile;\r
- this.messageTransformFile = messageTransformFile;\r
- this.jsessionId = jsessionId;\r
- \r
- return;\r
- }\r
- \r
- public KsContractMojo() {\r
- this.contractFile = null;\r
- this.contractURL = null;\r
- }\r
-\r
- /**\r
- * Path to service contract file.\r
- * \r
- * @parameter\r
- */\r
- private File contractFile;\r
-\r
- /**\r
- * URL of service contract from wiki.\r
- * \r
- * @parameter\r
- */\r
- private URL contractURL;\r
-\r
- /**\r
- * Path to output directory.\r
- * \r
- * @parameter\r
- */\r
- private File outputDirectory;\r
-\r
- /**\r
- * Path to custom xslt.\r
- * \r
- * @parameter\r
- */\r
- private File transformFile;\r
-\r
- /**\r
- * Path to custom xslt.\r
- * \r
- * @parameter\r
- */\r
- private File messageTransformFile;\r
- \r
- /**\r
- * JSESSIONID from a current session\r
- * \r
- * @parameter\r
- */\r
- private String jsessionId;\r
- \r
- public void execute() throws MojoExecutionException, MojoFailureException {\r
-\r
- ContractReader contract;\r
-\r
- try {\r
- if (contractURL != null) {\r
- contract = new ContractReader(contractURL, jsessionId);\r
- } else {\r
- contract = new ContractReader(contractFile);\r
- }\r
- } catch (Exception ex) {\r
- throw new MojoExecutionException("Can't parse contract", ex);\r
- }\r
-\r
- StreamSource wsdlXslt;\r
- if (transformFile == null) {\r
- wsdlXslt = new StreamSource(this.getClass().getClassLoader()\r
- .getResourceAsStream("interface.xml"));\r
- } else {\r
- wsdlXslt = new StreamSource(transformFile);\r
- }\r
-\r
- try {\r
- Transformer transformer = net.sf.saxon.TransformerFactoryImpl\r
- .newInstance().newTransformer(wsdlXslt);\r
-\r
- Result result = new StreamResult(new File(outputDirectory,\r
- "foo.java"));\r
- transformer.transform(contract.getStreamSource(), result);\r
-\r
- findParams(contract.getDocument());\r
- } catch (TransformerConfigurationException tcex) {\r
- getLog().error(tcex);\r
- throw new MojoExecutionException("Can't initialize xslt.", tcex);\r
- } catch (TransformerException tex) {\r
- getLog().error(tex);\r
- throw new MojoExecutionException("Can't transform contract.", tex);\r
- } catch (Exception ex) {\r
- ex.printStackTrace();\r
- throw new MojoExecutionException("Error parsing params", ex);\r
- }\r
- }\r
-\r
- public void findParamsFromMessage(String param, URL url,\r
- Set<URL> alreadyParsedUrlSet) {\r
- if (alreadyParsedUrlSet.contains(url) || "datetime".equals(param.toLowerCase())\r
- || "string".equals(param.toLowerCase()) || "boolean".equals(param.toLowerCase())\r
- || "integer".equals(param.toLowerCase())) {\r
- return;\r
- }\r
- \r
- //rem\r
- if (param.equals("objectStructure")) {\r
- System.out.println();\r
- }\r
- \r
- ContractReader contract;\r
- try {\r
- contract = new MessageContractReader(url, jsessionId);\r
- // Create the java code\r
- if (!param.endsWith("List") && !param.endsWith("Id")\r
- && !param.endsWith("Key") && !param.endsWith("Type")) {\r
- message2Java(contract, param);\r
- }\r
- // add this url to the already oarsed list\r
- alreadyParsedUrlSet.add(url);\r
-\r
-// System.out.println("URL:" + url.toString());\r
-// System.out.println(contract.getContractText());\r
- \r
- // recurse through the node to\r
- NodeList nodeList = contract.getDocument().getElementsByTagName(\r
- "td");\r
- for (int i = 0, iCnt = nodeList.getLength(); i < iCnt; i++) {\r
- Node node = nodeList.item(i);\r
- NamedNodeMap nodeMap = node.getAttributes();\r
- System.err.println("Node=" + i + ":" + node.toString());\r
- \r
- //rem\r
- if (nodeMap != null) {\r
- if (nodeMap.getNamedItem("class") != null) {\r
- String nodeValue = nodeMap.getNamedItem("class").getNodeValue();\r
- System.out.println("Node value: " + i + ":" + nodeValue);\r
- }\r
- }\r
- \r
- if (nodeMap != null\r
- && nodeMap.getNamedItem("class") != null\r
- && "structType".equals(nodeMap.getNamedItem("class")\r
- .getNodeValue())) {\r
- Node anchor = node.getFirstChild();\r
- String urlString = anchor.getAttributes().getNamedItem(\r
- "href").getNodeValue();\r
- if (!urlString.startsWith("http")\r
- && !urlString.startsWith("file")) {\r
- urlString = contractURL.getProtocol()+"://"+contractURL.getHost()\r
- + urlString;\r
- }\r
- URL newUrl = new URL(urlString);\r
- String newParam = anchor.getTextContent().trim();\r
- if (!newParam.startsWith("<")\r
- && !alreadyParsedUrlSet.contains(newUrl)) {\r
- findParamsFromMessage(newParam, newUrl,\r
- alreadyParsedUrlSet);\r
- }\r
- }\r
- }\r
- } catch (IOException e) {\r
- getLog().warn(\r
- "Error loading page for Type '" + param + "'"\r
- + e.getMessage());\r
- } catch (ParserConfigurationException e) {\r
- e.printStackTrace();\r
- getLog().warn(\r
- "Error parsing page for Type '" + param + "'"\r
- + e.getMessage());\r
- } catch (SAXException e) {\r
- getLog().warn(\r
- "Error parsing page for Type '" + param + "'"\r
- + e.getMessage());\r
- } finally {\r
- System.err.println();\r
- }\r
- }\r
-\r
- public void findParams(Document document) {\r
- Set<URL> alreadyParsedUrlSet = new HashSet<URL>();\r
- NodeList nodeList = document.getElementsByTagName("td");\r
- for (int i = 0, iCnt = nodeList.getLength(); i < iCnt; i++) {\r
- Node node = nodeList.item(i);\r
- NamedNodeMap nodeMap = node.getAttributes();\r
- if (nodeMap != null\r
- && ("methodParamType".equals(nodeMap.getNamedItem("class")\r
- .getNodeValue()) || "methodReturnType"\r
- .equals(nodeMap.getNamedItem("class")\r
- .getNodeValue()))) {\r
- String param = node.getFirstChild().getTextContent().trim();\r
- if (!"None".equals(param) && !param.startsWith("<")\r
- && !param.endsWith("Id") && !param.endsWith("Key")) {\r
- try {\r
- String urlString = node.getFirstChild().getAttributes()\r
- .getNamedItem("href").getNodeValue();\r
-// System.out.println("urlString:" + urlString);\r
-// System.out.println("contractURL:" + contractURL);\r
- if (!urlString.startsWith("http")\r
- && !urlString.startsWith("file")) {\r
- urlString = contractURL.getProtocol()+"://"+contractURL.getHost()\r
- + urlString;\r
- }\r
- findParamsFromMessage(param, new URL(urlString),\r
- alreadyParsedUrlSet);\r
- } catch (MalformedURLException e) {\r
- getLog().warn(\r
- "Error loading page for Type '" + param + "'"\r
- + e.getMessage());\r
- } catch (DOMException e) {\r
- getLog().warn(\r
- "DOM Error parsing page for Type '" + param\r
- + "'" + e.getMessage());\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- private void message2Java(ContractReader contract, String param) {\r
- StreamSource wsdlXslt;\r
- if (messageTransformFile == null) {\r
- wsdlXslt = new StreamSource(this.getClass().getClassLoader()\r
- .getResourceAsStream("messageInterface.xml"));\r
- } else {\r
- wsdlXslt = new StreamSource(messageTransformFile);\r
- }\r
- try {\r
- Transformer transformer = net.sf.saxon.TransformerFactoryImpl\r
- .newInstance().newTransformer(wsdlXslt);\r
-\r
- Result result = new StreamResult(new File(outputDirectory, param\r
- .substring(0, 1).toUpperCase()\r
- + param.substring(1) + ".java"));\r
- \r
- StreamSource xmlSource = contract.getStreamSource();\r
- transformer.transform(xmlSource, result);\r
- \r
- System.out.println(result.toString());\r
- } catch (TransformerConfigurationException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
- } catch (TransformerFactoryConfigurationError e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
- } catch (TransformerException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
- } finally {\r
- System.out.println();\r
- }\r
-\r
- }\r
-\r
- public File getContractFile() {\r
- return contractFile;\r
- }\r
-\r
- public void setContractFile(File contractFile) {\r
- this.contractFile = contractFile;\r
- }\r
-\r
- public URL getContractURL() {\r
- return contractURL;\r
- }\r
-\r
- public void setContractURL(URL contractURL) {\r
- this.contractURL = contractURL;\r
- }\r
-\r
- public File getOutputDirectory() {\r
- return outputDirectory;\r
- }\r
-\r
- public void setOutputDirectory(File outputDirectory) {\r
- this.outputDirectory = outputDirectory;\r
- }\r
-\r
- public File getTransformFile() {\r
- return transformFile;\r
- }\r
-\r
- public void setTransformFile(File transformFile) {\r
- this.transformFile = transformFile;\r
- }\r
-\r
- /**\r
- * @return the messageTransformFile\r
- */\r
- public File getMessageTransformFile() {\r
- return messageTransformFile;\r
- }\r
-\r
- /**\r
- * @param messageTransformFile\r
- * the messageTransformFile to set\r
- */\r
- public void setMessageTransformFile(File messageTransformFile) {\r
- this.messageTransformFile = messageTransformFile;\r
- }\r
-\r
-}\r
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<xsl:stylesheet version="2.0"\r
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
- <xsl:output method="text" />\r
- <xsl:template match="/">\r
- \r
-<xsl:text>/*\r
- * Copyright 2008 The Kuali Foundation\r
- *\r
- * Licensed under the Educational Community License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.opensource.org/licenses/ecl1.php\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
- \r
- </xsl:text>\r
- \r
- <xsl:text>public interface foo { </xsl:text>\r
- <xsl:for-each select="contents/table">\r
- <xsl:text> /** </xsl:text>\r
- <xsl:text> * </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodDesc'])" />\r
- <xsl:text> </xsl:text>\r
- <xsl:for-each select="tr/td[@class='methodParamName']">\r
- <xsl:if test=". ne 'None'">\r
- <xsl:text> * @param </xsl:text>\r
- <xsl:value-of select="normalize-space(.)" />\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(parent::*/td[@class='methodParamDesc'])" />\r
- <xsl:text> </xsl:text>\r
- </xsl:if>\r
- </xsl:for-each>\r
- <xsl:text> * @return </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodReturnDesc'])" />\r
- <xsl:text> </xsl:text>\r
- <xsl:for-each select="tr/td[@class='methodErrorType']">\r
- <xsl:text> * @throws </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(string-join((for $word in tokenize(.,'_')[position() > 0] return concat(upper-case(substring($word,1,1)), lower-case(substring($word,2)))),''))" />\r
- <xsl:text>Exception </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(parent::*/td[@class='methodErrorDesc'])" />\r
- <xsl:text> </xsl:text>\r
- </xsl:for-each>\r
- <xsl:text> */ </xsl:text>\r
- <xsl:text> public </xsl:text>\r
- <xsl:call-template name="deriveType">\r
- <xsl:with-param name="type">\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodReturnType'])" />\r
- </xsl:with-param>\r
- </xsl:call-template>\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodName'])" />\r
- <xsl:text>(</xsl:text>\r
- <xsl:apply-templates\r
- select="tr[td[@class='methodParamType']]" />\r
- <xsl:text>)</xsl:text>\r
- <xsl:apply-templates\r
- select="tr[td[@class='methodErrorType']]" />\r
- <xsl:text>; </xsl:text>\r
- </xsl:for-each>\r
- <xsl:text>}</xsl:text>\r
- </xsl:template>\r
- <xsl:template match="tr[td[@class='methodParamType']]">\r
- <xsl:if test="td[@class='methodParamName'] ne 'None'">\r
- <xsl:if\r
- test="count(preceding-sibling::tr[td[@class='methodParamType']]) gt 0">\r
- <xsl:text>, </xsl:text>\r
- </xsl:if>\r
- <xsl:text>@WebParam(name="</xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='methodParamName'])" />\r
- <xsl:text>")</xsl:text>\r
- <xsl:call-template name="deriveType">\r
- <xsl:with-param name="type">\r
- <xsl:value-of\r
- select="normalize-space(td[@class='methodParamType'])" />\r
- </xsl:with-param>\r
- </xsl:call-template>\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='methodParamName'])" />\r
- </xsl:if>\r
- </xsl:template>\r
- <xsl:template match="tr[td[@class='methodErrorType']]">\r
- <xsl:if test="td[@class='methodErrorType'] ne 'None'">\r
- <xsl:if\r
- test="count(preceding-sibling::tr[td[@class='methodErrorType']]) gt 0">\r
- <xsl:text>, </xsl:text>\r
- </xsl:if>\r
- <xsl:if\r
- test="count(preceding-sibling::tr[td[@class='methodErrorType']]) eq 0">\r
- <xsl:text> throws </xsl:text>\r
- </xsl:if>\r
- <xsl:value-of\r
- select="normalize-space(string-join((for $word in tokenize(td[@class='methodErrorType'],'_')[position() > 0] return concat(upper-case(substring($word,1,1)), lower-case(substring($word,2)))),''))" />\r
- <xsl:text>Exception</xsl:text>\r
- </xsl:if>\r
- </xsl:template>\r
- <xsl:template name="deriveType">\r
- <xsl:param name="type" />\r
- <xsl:choose>\r
- <xsl:when test="ends-with($type,'List')">\r
- <xsl:text>List<</xsl:text>\r
- <xsl:call-template name="deriveType">\r
- <xsl:with-param name="type">\r
- <xsl:value-of\r
- select="substring-before($type,'List')" />\r
- </xsl:with-param>\r
- </xsl:call-template>\r
- <xsl:text>></xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="$type='dateTime'">\r
- <xsl:text>Date</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with($type,'Key')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with($type,'Id')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:value-of\r
- select="normalize-space(concat(upper-case(substring($type,1,1)),substring($type,2)))" />\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- </xsl:template>\r
-</xsl:stylesheet>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<xsl:stylesheet version="2.0"\r
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
- <xsl:strip-space elements="*" />\r
- <xsl:output method="text" />\r
- <xsl:template match="/">\r
- <xsl:apply-templates select="//div[@class='wiki-content'][1]" />\r
- </xsl:template>\r
- <xsl:template match="//div[@class='wiki-content'][1]">\r
- \r
-<xsl:text>/*\r
- * Copyright 2008 The Kuali Foundation\r
- *\r
- * Licensed under the Educational Community License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.opensource.org/licenses/ecl1.php\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
- </xsl:text>\r
- \r
-<xsl:text>\r
-import java.io.Serializable;\r
-import java.util.ArrayList;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.xml.bind.annotation.XmlAccessType;\r
-import javax.xml.bind.annotation.XmlAccessorType;\r
-import javax.xml.bind.annotation.XmlAttribute;\r
-import javax.xml.bind.annotation.XmlElement;\r
-\r
-@XmlAccessorType(XmlAccessType.FIELD)\r
-public class </xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(h2),1,1)),\r
- substring(normalize-space(h2),2))" />\r
- <xsl:text> implements Serializable { </xsl:text>\r
- <xsl:text> private static final long serialVersionUID = 1L; </xsl:text>\r
- <xsl:for-each\r
- select="table[@class='structTable']/tr[position()>1]">\r
- <xsl:choose>\r
- <xsl:when\r
- test="normalize-space(td[@class='structAttr'])='Yes'">\r
- <xsl:text> @XmlAttribute </xsl:text>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:text> @XmlElement </xsl:text>\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- <xsl:text> private </xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text>; </xsl:text>\r
- </xsl:for-each>\r
- <!-- do getters/setters -->\r
-\r
- <xsl:for-each\r
- select="table[@class='structTable']/tr[position()>1]">\r
- <!-- Do Getter -->\r
- <xsl:text> public </xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text> get</xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structSName']),1,1)),\r
- substring(normalize-space(td[@class='structSName']),2))" />\r
- <xsl:text>() { </xsl:text>\r
- <!-- Add initialization if list -->\r
- <xsl:if\r
- test="ends-with(normalize-space(td[@class='structType']),'List')">\r
- <xsl:text> if (</xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text> == null) { </xsl:text>\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text> = new Array</xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text>(); </xsl:text>\r
- <xsl:text> } </xsl:text>\r
- </xsl:if>\r
- <xsl:text> return </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
-\r
- <xsl:text>; </xsl:text>\r
- <xsl:text> } </xsl:text>\r
-\r
- <!-- Do Setter -->\r
- <xsl:text> public void set</xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structSName']),1,1)),\r
- substring(normalize-space(td[@class='structSName']),2))" />\r
- <xsl:text>(</xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text>) { </xsl:text>\r
- <xsl:text> this.</xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text> = </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text>; </xsl:text>\r
- <xsl:text> } </xsl:text>\r
- </xsl:for-each>\r
-\r
- <xsl:text>}</xsl:text>\r
- </xsl:template>\r
- <xsl:template name="deriveType">\r
- <xsl:choose>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'List')">\r
- <xsl:text>List<</xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structType']),1,1)),\r
- substring(normalize-space(td[@class='structType']),2,string-length(normalize-space(td[@class='structType']))-5))" />\r
- <xsl:text>></xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="normalize-space(td[@class='structType'])='dateTime'">\r
- <xsl:text>Date</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'Id')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'Type')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'Key')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structType']),1,1)),\r
- substring(normalize-space(td[@class='structType']),2))" />\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- </xsl:template>\r
-</xsl:stylesheet>
\ No newline at end of file
+++ /dev/null
-<plugin>
- <description></description>
- <groupId>org.kuali.student.mojo</groupId>
- <artifactId>maven-kscontract-plugin</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <goalPrefix>kscontract</goalPrefix>
- <isolatedRealm>false</isolatedRealm>
- <inheritedByDefault>true</inheritedByDefault>
- <mojos>
- <mojo>
- <goal>contractToJava</goal>
- <description>Creates WS service interface from wiki service contract.</description>
- <requiresDirectInvocation>false</requiresDirectInvocation>
- <requiresProject>true</requiresProject>
- <requiresReports>false</requiresReports>
- <aggregator>false</aggregator>
- <requiresOnline>false</requiresOnline>
- <inheritedByDefault>true</inheritedByDefault>
- <implementation>org.kuali.student.mojo.KsContractMojo</implementation>
- <language>java</language>
- <instantiationStrategy>per-lookup</instantiationStrategy>
- <executionStrategy>once-per-session</executionStrategy>
- <parameters>
- <parameter>
- <name>contractFile</name>
- <type>java.io.File</type>
- <required>false</required>
- <editable>true</editable>
- <description>Path to service contract file.</description>
- </parameter>
- <parameter>
- <name>contractURL</name>
- <type>java.net.URL</type>
- <required>false</required>
- <editable>true</editable>
- <description>URL of service contract from wiki.</description>
- </parameter>
- <parameter>
- <name>jsessionId</name>
- <type>java.lang.String</type>
- <required>false</required>
- <editable>true</editable>
- <description>JSESSIONID from a current session</description>
- </parameter>
- <parameter>
- <name>messageTransformFile</name>
- <type>java.io.File</type>
- <required>false</required>
- <editable>true</editable>
- <description>Path to custom xslt.</description>
- </parameter>
- <parameter>
- <name>outputDirectory</name>
- <type>java.io.File</type>
- <required>false</required>
- <editable>true</editable>
- <description>Path to output directory.</description>
- </parameter>
- <parameter>
- <name>transformFile</name>
- <type>java.io.File</type>
- <required>false</required>
- <editable>true</editable>
- <description>Path to custom xslt.</description>
- </parameter>
- </parameters>
- </mojo>
- </mojos>
- <dependencies/>
-</plugin>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<xsl:stylesheet version="2.0"\r
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
- <xsl:output method="text" />\r
- <xsl:template match="/">\r
- \r
-<xsl:text>/*\r
- * Copyright 2008 The Kuali Foundation\r
- *\r
- * Licensed under the Educational Community License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.opensource.org/licenses/ecl1.php\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
- \r
- </xsl:text>\r
- \r
- <xsl:text>public interface foo { </xsl:text>\r
- <xsl:for-each select="contents/table">\r
- <xsl:text> /** </xsl:text>\r
- <xsl:text> * </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodDesc'])" />\r
- <xsl:text> </xsl:text>\r
- <xsl:for-each select="tr/td[@class='methodParamName']">\r
- <xsl:if test=". ne 'None'">\r
- <xsl:text> * @param </xsl:text>\r
- <xsl:value-of select="normalize-space(.)" />\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(parent::*/td[@class='methodParamDesc'])" />\r
- <xsl:text> </xsl:text>\r
- </xsl:if>\r
- </xsl:for-each>\r
- <xsl:text> * @return </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodReturnDesc'])" />\r
- <xsl:text> </xsl:text>\r
- <xsl:for-each select="tr/td[@class='methodErrorType']">\r
- <xsl:text> * @throws </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(string-join((for $word in tokenize(.,'_')[position() > 0] return concat(upper-case(substring($word,1,1)), lower-case(substring($word,2)))),''))" />\r
- <xsl:text>Exception </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(parent::*/td[@class='methodErrorDesc'])" />\r
- <xsl:text> </xsl:text>\r
- </xsl:for-each>\r
- <xsl:text> */ </xsl:text>\r
- <xsl:text> public </xsl:text>\r
- <xsl:call-template name="deriveType">\r
- <xsl:with-param name="type">\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodReturnType'])" />\r
- </xsl:with-param>\r
- </xsl:call-template>\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(tr/td[@class='methodName'])" />\r
- <xsl:text>(</xsl:text>\r
- <xsl:apply-templates\r
- select="tr[td[@class='methodParamType']]" />\r
- <xsl:text>)</xsl:text>\r
- <xsl:apply-templates\r
- select="tr[td[@class='methodErrorType']]" />\r
- <xsl:text>; </xsl:text>\r
- </xsl:for-each>\r
- <xsl:text>}</xsl:text>\r
- </xsl:template>\r
- <xsl:template match="tr[td[@class='methodParamType']]">\r
- <xsl:if test="td[@class='methodParamName'] ne 'None'">\r
- <xsl:if\r
- test="count(preceding-sibling::tr[td[@class='methodParamType']]) gt 0">\r
- <xsl:text>, </xsl:text>\r
- </xsl:if>\r
- <xsl:text>@WebParam(name="</xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='methodParamName'])" />\r
- <xsl:text>")</xsl:text>\r
- <xsl:call-template name="deriveType">\r
- <xsl:with-param name="type">\r
- <xsl:value-of\r
- select="normalize-space(td[@class='methodParamType'])" />\r
- </xsl:with-param>\r
- </xsl:call-template>\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='methodParamName'])" />\r
- </xsl:if>\r
- </xsl:template>\r
- <xsl:template match="tr[td[@class='methodErrorType']]">\r
- <xsl:if test="td[@class='methodErrorType'] ne 'None'">\r
- <xsl:if\r
- test="count(preceding-sibling::tr[td[@class='methodErrorType']]) gt 0">\r
- <xsl:text>, </xsl:text>\r
- </xsl:if>\r
- <xsl:if\r
- test="count(preceding-sibling::tr[td[@class='methodErrorType']]) eq 0">\r
- <xsl:text> throws </xsl:text>\r
- </xsl:if>\r
- <xsl:value-of\r
- select="normalize-space(string-join((for $word in tokenize(td[@class='methodErrorType'],'_')[position() > 0] return concat(upper-case(substring($word,1,1)), lower-case(substring($word,2)))),''))" />\r
- <xsl:text>Exception</xsl:text>\r
- </xsl:if>\r
- </xsl:template>\r
- <xsl:template name="deriveType">\r
- <xsl:param name="type" />\r
- <xsl:choose>\r
- <xsl:when test="ends-with($type,'List')">\r
- <xsl:text>List<</xsl:text>\r
- <xsl:call-template name="deriveType">\r
- <xsl:with-param name="type">\r
- <xsl:value-of\r
- select="substring-before($type,'List')" />\r
- </xsl:with-param>\r
- </xsl:call-template>\r
- <xsl:text>></xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="$type='dateTime'">\r
- <xsl:text>Date</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with($type,'Key')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with($type,'Id')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:value-of\r
- select="normalize-space(concat(upper-case(substring($type,1,1)),substring($type,2)))" />\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- </xsl:template>\r
-</xsl:stylesheet>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<xsl:stylesheet version="2.0"\r
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
- <xsl:strip-space elements="*" />\r
- <xsl:output method="text" />\r
- <xsl:template match="/">\r
- <xsl:apply-templates select="//div[@class='wiki-content'][1]" />\r
- </xsl:template>\r
- <xsl:template match="//div[@class='wiki-content'][1]">\r
- \r
-<xsl:text>/*\r
- * Copyright 2008 The Kuali Foundation\r
- *\r
- * Licensed under the Educational Community License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.opensource.org/licenses/ecl1.php\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
- </xsl:text>\r
- \r
-<xsl:text>\r
-import java.io.Serializable;\r
-import java.util.ArrayList;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.xml.bind.annotation.XmlAccessType;\r
-import javax.xml.bind.annotation.XmlAccessorType;\r
-import javax.xml.bind.annotation.XmlAttribute;\r
-import javax.xml.bind.annotation.XmlElement;\r
-\r
-@XmlAccessorType(XmlAccessType.FIELD)\r
-public class </xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(h2),1,1)),\r
- substring(normalize-space(h2),2))" />\r
- <xsl:text> implements Serializable { </xsl:text>\r
- <xsl:text> private static final long serialVersionUID = 1L; </xsl:text>\r
- <xsl:for-each\r
- select="table[@class='structTable']/tr[position()>1]">\r
- <xsl:choose>\r
- <xsl:when\r
- test="normalize-space(td[@class='structAttr'])='Yes'">\r
- <xsl:text> @XmlAttribute </xsl:text>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:text> @XmlElement </xsl:text>\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- <xsl:text> private </xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text>; </xsl:text>\r
- </xsl:for-each>\r
- <!-- do getters/setters -->\r
-\r
- <xsl:for-each\r
- select="table[@class='structTable']/tr[position()>1]">\r
- <!-- Do Getter -->\r
- <xsl:text> public </xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text> get</xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structSName']),1,1)),\r
- substring(normalize-space(td[@class='structSName']),2))" />\r
- <xsl:text>() { </xsl:text>\r
- <!-- Add initialization if list -->\r
- <xsl:if\r
- test="ends-with(normalize-space(td[@class='structType']),'List')">\r
- <xsl:text> if (</xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text> == null) { </xsl:text>\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text> = new Array</xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text>(); </xsl:text>\r
- <xsl:text> } </xsl:text>\r
- </xsl:if>\r
- <xsl:text> return </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
-\r
- <xsl:text>; </xsl:text>\r
- <xsl:text> } </xsl:text>\r
-\r
- <!-- Do Setter -->\r
- <xsl:text> public void set</xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structSName']),1,1)),\r
- substring(normalize-space(td[@class='structSName']),2))" />\r
- <xsl:text>(</xsl:text>\r
- <xsl:call-template name="deriveType" />\r
- <xsl:text> </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text>) { </xsl:text>\r
- <xsl:text> this.</xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text> = </xsl:text>\r
- <xsl:value-of\r
- select="normalize-space(td[@class='structSName'])" />\r
- <xsl:text>; </xsl:text>\r
- <xsl:text> } </xsl:text>\r
- </xsl:for-each>\r
-\r
- <xsl:text>}</xsl:text>\r
- </xsl:template>\r
- <xsl:template name="deriveType">\r
- <xsl:choose>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'List')">\r
- <xsl:text>List<</xsl:text>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structType']),1,1)),\r
- substring(normalize-space(td[@class='structType']),2,string-length(normalize-space(td[@class='structType']))-5))" />\r
- <xsl:text>></xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="normalize-space(td[@class='structType'])='dateTime'">\r
- <xsl:text>Date</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'Id')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'Type')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:when\r
- test="ends-with(normalize-space(td[@class='structType']),'Key')">\r
- <xsl:text>String</xsl:text>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:value-of\r
- select="concat(upper-case(substring(normalize-space(td[@class='structType']),1,1)),\r
- substring(normalize-space(td[@class='structType']),2))" />\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- </xsl:template>\r
-</xsl:stylesheet>
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class Attribute implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String value;
-
- @XmlAttribute
- private String key;
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class CommMediaTypeInfo Structure implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private Date effectiveDate;
-
- @XmlElement
- private Date expirationDate;
-
- @XmlElement
- private List<Attribute> attributes;
-
- @XmlAttribute
- private String key;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public Date getEffectiveDate() {
- return effectiveDate;
- }
-
- public void setEffectiveDate(Date effectiveDate) {
- this.effectiveDate = effectiveDate;
- }
-
- public Date getExpirationDate() {
- return expirationDate;
- }
-
- public void setExpirationDate(Date expirationDate) {
- this.expirationDate = expirationDate;
- }
-
- public List<Attribute> getAttributes() {
- if (attributes == null) {
- attributes = new ArrayList<Attribute>();
- }
- return attributes;
- }
-
- public void setAttributes(List<Attribute> attributes) {
- this.attributes = attributes;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class CommUsageTypeInfo implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private Date effectiveDate;
-
- @XmlElement
- private Date expirationDate;
-
- @XmlElement
- private List<Attribute> attributes;
-
- @XmlAttribute
- private String key;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public Date getEffectiveDate() {
- return effectiveDate;
- }
-
- public void setEffectiveDate(Date effectiveDate) {
- this.effectiveDate = effectiveDate;
- }
-
- public Date getExpirationDate() {
- return expirationDate;
- }
-
- public void setExpirationDate(Date expirationDate) {
- this.expirationDate = expirationDate;
- }
-
- public List<Attribute> getAttributes() {
- if (attributes == null) {
- attributes = new ArrayList<Attribute>();
- }
- return attributes;
- }
-
- public void setAttributes(List<Attribute> attributes) {
- this.attributes = attributes;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class Date implements Serializable {
-
- private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class EnumContextInfo implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private FieldDescriptor contextValueDescriptor;
-
- @XmlAttribute
- private String type;
-
- public FieldDescriptor getContextValueDescriptor() {
- return contextValueDescriptor;
- }
-
- public void setContextValueDescriptor(FieldDescriptor contextValueDescriptor) {
- this.contextValueDescriptor = contextValueDescriptor;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class EnumContextValue implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String type;
-
- @XmlElement
- private String value;
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class EnumFieldView implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private List<EnumContextInfo> contextDescriptors;
-
- @XmlAttribute
- private String key;
-
- public List<EnumContextInfo> getContextDescriptors() {
- if (contextDescriptors == null) {
- contextDescriptors = new ArrayList<EnumContextInfo>();
- }
- return contextDescriptors;
- }
-
- public void setContextDescriptors(List<EnumContextInfo> contextDescriptors) {
- this.contextDescriptors = contextDescriptors;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class EnumeratedValue implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String code;
-
- @XmlElement
- private String abbrevValue;
-
- @XmlElement
- private String value;
-
- @XmlElement
- private Date effectiveDate;
-
- @XmlElement
- private Date expirationDate;
-
- @XmlElement
- private String sortKey;
-
- @XmlElement
- private List<EnumContextValue> contexts;
-
- public String getCode() {
- return code;
- }
-
- public void setCode(String code) {
- this.code = code;
- }
-
- public String getAbbrevValue() {
- return abbrevValue;
- }
-
- public void setAbbrevValue(String abbrevValue) {
- this.abbrevValue = abbrevValue;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public Date getEffectiveDate() {
- return effectiveDate;
- }
-
- public void setEffectiveDate(Date effectiveDate) {
- this.effectiveDate = effectiveDate;
- }
-
- public Date getExpirationDate() {
- return expirationDate;
- }
-
- public void setExpirationDate(Date expirationDate) {
- this.expirationDate = expirationDate;
- }
-
- public String getSortKey() {
- return sortKey;
- }
-
- public void setSortKey(String sortKey) {
- this.sortKey = sortKey;
- }
-
- public List<EnumContextValue> getContexts() {
- if (contexts == null) {
- contexts = new ArrayList<EnumContextValue>();
- }
- return contexts;
- }
-
- public void setContexts(List<EnumContextValue> contexts) {
- this.contexts = contexts;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class FieldDescriptor implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private String dataType;
-
- @XmlElement
- private Integer minLength;
-
- @XmlElement
- private String maxLength;
-
- @XmlElement
- private String validChars;
-
- @XmlElement
- private String invalidChars;
-
- @XmlElement
- private String minValue;
-
- @XmlElement
- private String maxValue;
-
- @XmlElement
- private EnumFieldView enumFieldView;
-
- @XmlElement
- private Integer minOccurs;
-
- @XmlElement
- private String maxOccurs;
-
- @XmlElement
- private Boolean readOnly;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public String getDataType() {
- return dataType;
- }
-
- public void setDataType(String dataType) {
- this.dataType = dataType;
- }
-
- public Integer getMinLength() {
- return minLength;
- }
-
- public void setMinLength(Integer minLength) {
- this.minLength = minLength;
- }
-
- public String getMaxLength() {
- return maxLength;
- }
-
- public void setMaxLength(String maxLength) {
- this.maxLength = maxLength;
- }
-
- public String getValidChars() {
- return validChars;
- }
-
- public void setValidChars(String validChars) {
- this.validChars = validChars;
- }
-
- public String getInvalidChars() {
- return invalidChars;
- }
-
- public void setInvalidChars(String invalidChars) {
- this.invalidChars = invalidChars;
- }
-
- public String getMinValue() {
- return minValue;
- }
-
- public void setMinValue(String minValue) {
- this.minValue = minValue;
- }
-
- public String getMaxValue() {
- return maxValue;
- }
-
- public void setMaxValue(String maxValue) {
- this.maxValue = maxValue;
- }
-
- public EnumFieldView getEnumFieldView() {
- return enumFieldView;
- }
-
- public void setEnumFieldView(EnumFieldView enumFieldView) {
- this.enumFieldView = enumFieldView;
- }
-
- public Integer getMinOccurs() {
- return minOccurs;
- }
-
- public void setMinOccurs(Integer minOccurs) {
- this.minOccurs = minOccurs;
- }
-
- public String getMaxOccurs() {
- return maxOccurs;
- }
-
- public void setMaxOccurs(String maxOccurs) {
- this.maxOccurs = maxOccurs;
- }
-
- public Boolean getReadOnly() {
- return readOnly;
- }
-
- public void setReadOnly(Boolean readOnly) {
- this.readOnly = readOnly;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class FieldSelector implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private FieldDescriptor fieldDescriptor;
-
- @XmlElement
- private Boolean isSelector;
-
- @XmlAttribute
- private String key;
-
- public FieldDescriptor getFieldDescriptor() {
- return fieldDescriptor;
- }
-
- public void setFieldDescriptor(FieldDescriptor fieldDescriptor) {
- this.fieldDescriptor = fieldDescriptor;
- }
-
- public Boolean getIsSelector() {
- return isSelector;
- }
-
- public void setIsSelector(Boolean isSelector) {
- this.isSelector = isSelector;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class ObjectStructure implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private TypeSelector type;
-
- @XmlAttribute
- private String objectTypeKey;
-
- public TypeSelector getType() {
- return type;
- }
-
- public void setType(TypeSelector type) {
- this.type = type;
- }
-
- public String getObjectTypeKey() {
- return objectTypeKey;
- }
-
- public void setObjectTypeKey(String objectTypeKey) {
- this.objectTypeKey = objectTypeKey;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class QueryParamInfo implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private FieldDescriptor fieldDescriptor;
-
- @XmlAttribute
- private String key;
-
- public FieldDescriptor getFieldDescriptor() {
- return fieldDescriptor;
- }
-
- public void setFieldDescriptor(FieldDescriptor fieldDescriptor) {
- this.fieldDescriptor = fieldDescriptor;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class QueryParamValue implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String value;
-
- @XmlAttribute
- private String key;
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class Result implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private ResultCell resultCell;
-
- public ResultCell getResultCell() {
- return resultCell;
- }
-
- public void setResultCell(ResultCell resultCell) {
- this.resultCell = resultCell;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class ResultCell implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String value;
-
- @XmlAttribute
- private String key;
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class ResultColumnInfo implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private String dataType;
-
- @XmlAttribute
- private String key;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public String getDataType() {
- return dataType;
- }
-
- public void setDataType(String dataType) {
- this.dataType = dataType;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class SearchCriteriaTypeInfo implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private List<QueryParamInfo> queryParams;
-
- @XmlAttribute
- private String key;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public List<QueryParamInfo> getQueryParams() {
- if (queryParams == null) {
- queryParams = new ArrayList<QueryParamInfo>();
- }
- return queryParams;
- }
-
- public void setQueryParams(List<QueryParamInfo> queryParams) {
- this.queryParams = queryParams;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class SearchResultTypeInfo implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private List<ResultColumnInfo> resultColumns;
-
- @XmlAttribute
- private String key;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public List<ResultColumnInfo> getResultColumns() {
- if (resultColumns == null) {
- resultColumns = new ArrayList<ResultColumnInfo>();
- }
- return resultColumns;
- }
-
- public void setResultColumns(List<ResultColumnInfo> resultColumns) {
- this.resultColumns = resultColumns;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class SearchTypeInfo Structure implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private String name;
-
- @XmlElement
- private String desc;
-
- @XmlElement
- private SearchResultTypeInfo searchResultTypeInfo;
-
- @XmlElement
- private SearchCriteriaTypeInfo searchCriteriaTypeInfo;
-
- @XmlAttribute
- private String key;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public SearchResultTypeInfo getSearchResultTypeInfo() {
- return searchResultTypeInfo;
- }
-
- public void setSearchResultTypeInfo(SearchResultTypeInfo searchResultTypeInfo) {
- this.searchResultTypeInfo = searchResultTypeInfo;
- }
-
- public SearchCriteriaTypeInfo getSearchCriteriaTypeInfo() {
- return searchCriteriaTypeInfo;
- }
-
- public void setSearchCriteriaTypeInfo(SearchCriteriaTypeInfo searchCriteriaTypeInfo) {
- this.searchCriteriaTypeInfo = searchCriteriaTypeInfo;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class StateSelector implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private FieldSelector field;
-
- @XmlAttribute
- private String key;
-
- public FieldSelector getField() {
- return field;
- }
-
- public void setField(FieldSelector field) {
- this.field = field;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class Status implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private Boolean success;
-
- public Boolean getSuccess() {
- return success;
- }
-
- public void setSuccess(Boolean success) {
- this.success = success;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-public class TypeSelector implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @XmlElement
- private StateSelector state;
-
- @XmlAttribute
- private String key;
-
- public StateSelector getState() {
- return state;
- }
-
- public void setState(StateSelector state) {
- this.state = state;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
- public interface foo {
- /**
- * Retrieves the list of communication media types that are supported for a given usage type.
- * @param commUsageTypeKey usage type identifier
- * @return list of communication media type information
- * @throws DoesNotExistException commUsageTypeKey not found
- * @throws InvalidParameterException invalid commUsageTypeKey
- * @throws MissingParameterException missing commUsageTypeKey
- * @throws OperationFailedException unable to complete request
- */
- public List<CommMediaTypeInfo> getCommMediaTypesForUsageType(@WebParam(name="commUsageTypeKey")String commUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright 2008 The Kuali Foundation
- *
- * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
- *
- * 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.
- */
-
- public interface foo {
- /**
- * Retrieves the list of object type identifiers known by this service. Example: cluInfo.
- * @return list of object type identifiers
- * @throws OperationFailedException unable to complete request
- */
- public List<String> findObjectTypes() throws OperationFailedException;
-
- /**
- * Retrieves the basic dictionary information about a particular object structure. Including all variations based on a certain type and state. Example: Given that a CLU is of type "Course" and in the state of "Proposed," tell which fields are read only, mandatory, not applicable, have enumerations available, etc.
- * @param objectTypeKey identifier of the object type
- * @return describes the fields for the input object type
- * @throws DoesNotExistException specified objectTypeKey not found
- * @throws InvalidParameterException invalid objectTypeKey
- * @throws MissingParameterException missing objectTypeKey
- * @throws OperationFailedException unable to complete request
- */
- public ObjectStructure fetchObjectStructure(@WebParam(name="objectTypeKey")String objectTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieves the list of enumeration values for a particular enumeration with a certain context for a particular date. The values returned should be those where the supplied date is between the effective and expiration dates. Certain enumerations may not support this functionality.
- * @param enumerationKey identifier of the enumeration
- * @param contextType identifier of the enumeration context type
- * @param contextValue value of the enumeration context
- * @param contextDate date and time to get the enumeration for
- * @return list of enumerated codes and values
- * @throws DoesNotExistException enumerationKey not found
- * @throws InvalidParameterException invalid enumerationKey, contextType, contextValue, contextDate
- * @throws MissingParameterException missing enumerationKey, contextType, contextValue, contextDate
- * @throws OperationFailedException unable to complete request
- */
- public List<EnumeratedValue> fetchEnumeration(@WebParam(name="enumerationKey")String enumerationKey, @WebParam(name="contextType")String contextType, @WebParam(name="contextValue")String contextValue, @WebParam(name="contextDate")Date contextDate) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieves the list of search types known by this service.
- * @return list of search type information
- * @throws OperationFailedException unable to complete request
- */
- public List<SearchTypeInfo> findSearchTypes() throws OperationFailedException;
-
- /**
- * Retrieves information about a particular search type.
- * @param searchTypeKey identifier of the search type
- * @return information on the search type
- * @throws DoesNotExistException specified searchTypeKey not found
- * @throws InvalidParameterException invalid searchTypeKey
- * @throws MissingParameterException searchTypeKey not specified
- * @throws OperationFailedException unable to complete request
- */
- public SearchTypeInfo fetchSearchType(@WebParam(name="searchTypeKey")String searchTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieves the list of search types which return results in the specified format.
- * @param searchResultTypeKey identifier of the search result type
- * @return list of search type information
- * @throws DoesNotExistException specified searchResultTypeKey not found
- * @throws InvalidParameterException invalid searchResultTypeKey
- * @throws MissingParameterException searchResultTypeKey not specified
- * @throws OperationFailedException unable to complete request
- */
- public List<SearchTypeInfo> findSearchTypesByResult(@WebParam(name="searchResultTypeKey")String searchResultTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieves the list of search types which use criteria in the specified format.
- * @param searchCriteriaTypeKey identifier of the search criteria
- * @return list of search type information
- * @throws DoesNotExistException specified searchCriteriaTypeKey not found
- * @throws InvalidParameterException invalid searchCriteriaTypeKey
- * @throws MissingParameterException searchCriteriaTypeKey not specified
- * @throws OperationFailedException unable to complete request
- */
- public List<SearchTypeInfo> findSearchTypesByCriteria(@WebParam(name="searchCriteriaTypeKey")String searchCriteriaTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieves the list of search result types known by this service. Search result types describe the return structure for a search.
- * @return list of search result type information
- * @throws OperationFailedException unable to complete request
- */
- public List<SearchResultTypeInfo> findSearchResultTypes() throws OperationFailedException;
-
- /**
- * Retrieves information about a particular search result type. Search result types describe the return structure for a search.
- * @param searchResultTypeKey identifier of the search result type
- * @return information on the search result type
- * @throws DoesNotExistException specified searchResultTypeKey not found
- * @throws InvalidParameterException invalid searchResultTypeKey
- * @throws MissingParameterException searchResultTypeKey not specified
- * @throws OperationFailedException unable to complete request
- */
- public SearchResultTypeInfo fetchSearchResultType(@WebParam(name="searchResultTypeKey")String searchResultTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieves the list of search criteria types known by this service.
- * @return list of search criteria type information
- * @throws OperationFailedException unable to complete request
- */
- public List<SearchCriteriaTypeInfo> findSearchCriteriaTypes() throws OperationFailedException;
-
- /**
- * Retrieves information about a particular search criteria type.
- * @param searchCriteriaTypeKey identifier of the search criteria type
- * @return information on the search criteria type
- * @throws DoesNotExistException specified searchCriteriaTypeKey not found
- * @throws InvalidParameterException invalid searchCriteriaTypeKey
- * @throws MissingParameterException searchCriteriaTypeKey not specified
- * @throws OperationFailedException unable to complete request
- */
- public SearchCriteriaTypeInfo fetchSearchCriteriaType(@WebParam(name="searchCriteriaTypeKey")String searchCriteriaTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
-
- /**
- * Retrieve the list of authentication types known by this service
- * @return list of authentication types
- * @throws OperationFailedException unable to complete request
- */
- public List<AuthenticationType> findAuthenticationTypes() throws OperationFailedException;
-
- /**
- * Retrieves a list of Principals for a given Person
- * @param personId person identifier
- * @return list of principal ids for the specified person
- * @throws DisabledIdentifierException personId found but has been retired
- * @throws DoesNotExistException personId not found
- * @throws InvalidParameterException invalid personId
- * @throws MissingParameterException missing personId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public List<String> findPrincipalIdsByPerson(@WebParam(name="personId")String personId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Retrieves a list of Principals for a given System
- * @param systemId system identifier
- * @return list of principal ids for the given system
- * @throws DisabledIdentifierException systemId found but has been retired
- * @throws DoesNotExistException systemId not found
- * @throws InvalidParameterException invalid systemId
- * @throws MissingParameterException missing systemId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public List<String> findPrincipalIdsBySystem(@WebParam(name="systemId")String systemId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Retrieves a Person for a given Principal
- * @param principalId principal identifier
- * @return person identifier that matches the supplied criteria
- * @throws DisabledIdentifierException principalId found but has been retired
- * @throws DoesNotExistException principalId not found
- * @throws InvalidParameterException invalid principalId
- * @throws MissingParameterException missing principalId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public String fetchPersonIdByPrincipal(@WebParam(name="principalId")String principalId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Retrieves a System for a given Principal
- * @param principalId principal identifier
- * @return system identifier that matches the supplied criteria
- * @throws DisabledIdentifierException systemId found but has been retired
- * @throws DoesNotExistException systemId not found
- * @throws InvalidParameterException invalid principalId
- * @throws MissingParameterException missing principalId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public String fetchSystemByPrincipal(@WebParam(name="principalId")String principalId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Retrieves a Principal Type for a given Principal
- * @param principalId principal identifier
- * @return principal type that matches the supplied criteria
- * @throws DisabledIdentifierException principalId found but has been retired
- * @throws DoesNotExistException principalId not found
- * @throws InvalidParameterException invalid principalId
- * @throws MissingParameterException missing principalId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public PrincipalType fetchPrincipalTypeForPrincipal(@WebParam(name="principalId")String principalId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Retrieves a list of Principal Types for a given list of Principal Ids
- * @param principalIdList list of principal identifiers
- * @return List of principal types that match the supplied criteria
- * @throws DisabledIdentifierException One or more principalIds found but have been retired
- * @throws DoesNotExistException One or more principalIds not found
- * @throws InvalidParameterException invalid principalIdList
- * @throws MissingParameterException missing principalId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public List<PrincipalType> findPrincipalTypesByPrincipalIdList(@WebParam(name="principalIdList")List<String> principalIdList) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Retrieves results in tabular form for the specified parameters.
- * @param searchTypeKey search identifier
- * @param queryParamValues list of values for search parameters
- * @return list of results from the query
- * @throws DoesNotExistException specified search type not found
- * @throws InvalidParameterException invalid searchTypeKey, queryParamValueList
- * @throws MissingParameterException searchTypeKey, queryParamValueList not specified
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public List<Result> searchForResults(@WebParam(name="searchTypeKey")String searchTypeKey, @WebParam(name="queryParamValues")List<QueryParamValue> queryParamValues) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Assigns a Principal to a Person
- * @param principalId principal identifier
- * @param personId person identifier
- * @return status of the operation
- * @throws AlreadyExistsException association already exists
- * @throws DisabledIdentifierException personId or principalId found but has been retired
- * @throws DoesNotExistException personId, principalId does not exist
- * @throws InvalidParameterException invalid personId, principalId
- * @throws MissingParameterException missing personId, principalId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public Status assignPrincipalToPerson(@WebParam(name="principalId")String principalId, @WebParam(name="personId")String personId) throws AlreadyExistsException, DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Assigns a Principal to a System
- * @param principalId principal identifier
- * @param systemId system identifier
- * @return status of the operation
- * @throws AlreadyExistsException association already exists
- * @throws DisabledIdentifierException principalId, systemId found but has been retired
- * @throws DoesNotExistException principalId, systemId does not exist
- * @throws InvalidParameterException invalid principalId, systemId
- * @throws MissingParameterException missing principalId, systemId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public Status assignPrincipalToSystem(@WebParam(name="principalId")String principalId, @WebParam(name="systemId")String systemId) throws AlreadyExistsException, DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Remove a Principal from a Person
- * @param principalId principal identifier
- * @param personId person identifier
- * @return status of the operation
- * @throws DisabledIdentifierException personId or principalId found but has been retired
- * @throws DoesNotExistException personId, principalId, association does not exist
- * @throws InvalidParameterException invalid personId, principalId
- * @throws MissingParameterException missing personId, principalId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public Status removePrincipalFromPerson(@WebParam(name="principalId")String principalId, @WebParam(name="personId")String personId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
- /**
- * Remove a Principal from a System
- * @param principalId principal identifier
- * @param systemId system identifier
- * @return status of the operation
- * @throws DisabledIdentifierException principalId, systemId found but has been retired
- * @throws DoesNotExistException principalId, systemId, association does not exist
- * @throws InvalidParameterException invalid principalId, systemId
- * @throws MissingParameterException missing principalId, systemId
- * @throws OperationFailedException unable to complete request
- * @throws PermissionDeniedException authorization failure
- */
- public Status removePrincipalFromSystem(@WebParam(name="principalId")String principalId, @WebParam(name="systemId")String systemId) throws DisabledIdentifierException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
-
-}
\ No newline at end of file
+++ /dev/null
-# Example for Windows
-jboss.dir=c:/dev/jboss-4.2.3.GA
-# Example for Unix
-#jboss.dir=/opt/jboss
-
-# Which JBoss server config to use
-jboss.config=default
-
-# nuxeo deployment
-jboss.nuxeo.ear.dir=${jboss.dir}/server/${jboss.config}/deploy/nuxeo.ear
-
-
-# additional command line parameters for mvn commands
-# e.g. to work offline:
-#mvn.opts=-o
+++ /dev/null
-<?xml version="1.0"?>
-<project name="nuxeo cs" default="all" basedir=".">
-
- <property file="build.properties" />
- <property name="cs.nuxeo.jar" value="nuxeo-platform-collectionspace-5.2-SNAPSHOT.jar"/>
-
- <target name="all" description="all">
- <delete file="${jboss.nuxeo.ear.dir}/system/${cs.nuxeo.jar}"/>
- <copy todir="${jboss.nuxeo.ear.dir}/system">
- <fileset file="${basedir}/target/${cs.nuxeo.jar}" />
- </copy>
- </target>
-
-</project>
+++ /dev/null
-<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.nuxeo.ecm.platform</groupId>
- <artifactId>nuxeo-platform-parent</artifactId>
- <version>5.2-SNAPSHOT</version>
- </parent>
-
- <artifactId>nuxeo-platform-collectionspace</artifactId>
- <packaging>jar</packaging>
- <name>Nuxeo CS extensions</name>
- <description>
- Nuxeo Enterprise Platform: CS extensions
- </description>
-
- <dependencies>
- <dependency>
- <groupId>org.nuxeo.ecm.core</groupId>
- <artifactId>nuxeo-core-schema</artifactId>
- </dependency>
- <dependency>
- <groupId>org.nuxeo.ecm.platform</groupId>
- <artifactId>nuxeo-platform-types-core</artifactId>
- </dependency>
- </dependencies>
-
-</project>
+++ /dev/null
-Manifest-Version: 1.0 \r
-Bundle-ManifestVersion: 1 \r
-Bundle-Name: NuxeoCS\r
-Bundle-SymbolicName: org.collectionspace.collectionobject;singleton:=true \r
-Bundle-Version: 1.0.0\r
-Bundle-Localization: plugin\r
-Bundle-Vendor: Nuxeo \r
-Require-Bundle: org.nuxeo.runtime, \r
- org.nuxeo.ecm.core.api, \r
- org.nuxeo.ecm.core,\r
- org.nuxeo.ecm.core.api,\r
- org.nuxeo.ecm.platform.types.api,\r
- org.nuxeo.ecm.platform.versioning.api,\r
- org.nuxeo.ecm.platform.ui,\r
- org.nuxeo.ecm.platform.forms.layout.client,\r
- org.nuxeo.ecm.platform.publishing.api,\r
- org.nuxeo.ecm.platform.ws \r
-Provide-Package: org.collectionspace.collectionobject\r
-Nuxeo-Component: OSGI-INF/core-types-contrib.xml,\r
- OSGI-INF/ecm-types-contrib.xml,\r
- OSGI-INF/layouts-contrib.xml\r
-\r
+++ /dev/null
-<?xml version="1.0"?>
-<component name="org.collectionspace.collectionobject.coreTypes">
- <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
- <schema name="collectionobject" prefix="collectionobject" src="schemas/collectionobject.xsd"/>
- </extension>
- <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
- <doctype name="CollectionObject" extends="Document">
- <schema name="common"/>
- <schema name="dublincore"/>
- <schema name="collectionobject"/>
- </doctype>
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0"?>
-<fragment>
-
- <extension target="application#MODULE">
- <module>
- <ejb>${bundle.fileName}</ejb>
- </module>
-
- <module>
- <web>
- <web-uri>nuxeo.war</web-uri>
- <context-root>/nuxeo</context-root>
- </web>
- </module>
- </extension>
-
- <!-- uncomment that to enable tomcat based auth
- <extension target="web#LOGIN-CONFIG">
- <login-config>
- <auth-method>FORM</auth-method>
- <realm-name>nuxeo.ecm</realm-name>
- <form-login-config>
- <form-login-page>/login.jsp</form-login-page>
- <form-error-page>/login.jsp?loginFailed=true</form-error-page>
- </form-login-config>
- </login-config>
- </extension>
- -->
-
- <extension target="web#FILTER-MAPPING">
-
- <!-- Seam Context Filter is declared in org.nuxeo.ecm.platform.ui.web
- deployment fragment -->
-
- <filter-mapping>
- <filter-name>Seam Context Filter</filter-name>
- <url-pattern>/ws/FileManageWS</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>Seam Context Filter</filter-name>
- <url-pattern>/DocumentManagerWS</url-pattern>
- </filter-mapping>
- </extension>
-
- <extension target="web#SERVLET">
- </extension>
-
- <extension target="web#SERVLET-MAPPING">
- </extension>
-
- <extension target="pages#PAGES">
- <!-- This calls a method which load the Workspace logo -->
- <page view-id="/showLogo.xhtml" action="#{logoHelper.getLogo}"/>
-
- <!-- Bind URL to the Document URL resolver-->
- <page view-id="/getDocument.xhtml"
- action="#{navigationContext.navigateToURL}">
- </page>
-
- <page view-id="/nxliveedit.xhtml" action="#{liveEditHelper.getBootstrap()}"/>
-
- <!-- Bind URL to the Parallele conversation Document URL resolver-->
- <page view-id="/parallele.xhtml"
- action="#{paralleleNavigationHelper.navigateToURL}">
- </page>
-
- <!-- Post login and 'home' view handler -->
- <page view-id="/nxstartup.xhtml"
- action="#{startupHelper.initDomainAndFindStartupPage('Default domain', 'view')}"/>
-
- <!-- To redirect to the user dashboard instead, use instead:
-
- <page view-id="/nxstartup.xhtml"
- action="#{startupHelper.initDomainAndFindStartupPage('Default domain', 'user_dashboard')}" />
- -->
-
- <!-- config for workspace management
- = give a description for each viewId
- -->
-
- <page view-id="/view_domains.xhtml">
- #{currentServerLocation.name}/#{currentTabAction.label}
- </page>
-
- <page view-id="/select_document_type.faces.xhtml">
- Create new document in #{currentDocument.name}
- </page>
-
- <page view-id="/create_document.faces.xhtml">
- Create new document in #{currentDocument.name}
- </page>
-
- <page view-id="/user_dashboard.xhtml">
- breadcrumb=command.user_dashboard
- </page>
-
- <page view-id="/view_users.xhtml">
- breadcrumb=command.manageMembers
- </page>
-
- <page view-id="/view_many_users.xhtml">
- breadcrumb=command.manageMembers
- </page>
-
- <page view-id="/view_vocabularies.xhtml">
- breadcrumb=title.vocabularies
- </page>
-
- <page view-id="/search/search_form.xhtml">
- breadcrumb=command.advancedSearch
- </page>
- </extension>
-
- <extension target="faces-config#APPLICATION">
- <locale-config>
- <default-locale>en</default-locale>
- <supported-locale>en_GB</supported-locale>
- <supported-locale>en_US</supported-locale>
- <supported-locale>fr</supported-locale>
- <supported-locale>de</supported-locale>
- <supported-locale>es</supported-locale>
- <supported-locale>it</supported-locale>
- <supported-locale>ar</supported-locale>
- <supported-locale>ru</supported-locale>
- <supported-locale>ja</supported-locale>
- <supported-locale>vn</supported-locale>
- </locale-config>
-
- <message-bundle>messages</message-bundle>
- </extension>
-
- <extension target="components#PAGEFLOW">
- <value>config/addWorkspace.jpdl.xml</value>
- </extension>
-
- <extension target="faces-config#NAVIGATION">
- <!-- generic pages -->
- <navigation-case>
- <from-outcome>generic_error_page</from-outcome>
- <to-view-id>/generic_error_page.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>generic_message_page</from-outcome>
- <to-view-id>/generic_message_page.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>home</from-outcome>
- <to-view-id>/nxstartup.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_login</from-outcome>
- <to-view-id>/login.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_logout</from-outcome>
- <to-view-id>/logout.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_servers</from-outcome>
- <to-view-id>/view_servers.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- pages for document actions -->
-
- <navigation-case>
- <from-outcome>view_domains</from-outcome>
- <to-view-id>/view_domains.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>select_document_type</from-outcome>
- <to-view-id>/select_document_type.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_document</from-outcome>
- <to-view-id>/create_document.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_document</from-outcome>
- <to-view-id>/edit_document.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_documents</from-outcome>
- <to-view-id>/view_documents.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_file</from-outcome>
- <to-view-id>/create_file.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_workspace_wizard</from-outcome>
- <to-view-id>/createWorkspaceWizard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>send_email</from-outcome>
- <to-view-id>/document_email.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use view_documents instead -->
- <navigation-case>
- <from-outcome>view_workspaces</from-outcome>
- <to-view-id>/view_workspaces.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use create_document instead -->
- <navigation-case>
- <from-outcome>create_domain</from-outcome>
- <to-view-id>/create_domain.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use edit_document instead -->
- <navigation-case>
- <from-outcome>edit_domain</from-outcome>
- <to-view-id>/edit_domain.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use create_document instead -->
- <navigation-case>
- <from-outcome>create_workspace</from-outcome>
- <to-view-id>/create_workspace.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use edit_document instead -->
- <navigation-case>
- <from-outcome>edit_workspace</from-outcome>
- <to-view-id>/edit_workspace.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- users ang groups -->
-
- <navigation-case>
- <from-outcome>members_management</from-outcome>
- <to-view-id>/members_management.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_users</from-outcome>
- <to-view-id>/view_users.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_many_users</from-outcome>
- <to-view-id>/view_many_users.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_user</from-outcome>
- <to-view-id>/edit_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_user_password</from-outcome>
- <to-view-id>/edit_user_password.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_user</from-outcome>
- <to-view-id>/view_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_user</from-outcome>
- <to-view-id>/create_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_groups</from-outcome>
- <to-view-id>/view_groups.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_group</from-outcome>
- <to-view-id>/view_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_group</from-outcome>
- <to-view-id>/edit_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_group</from-outcome>
- <to-view-id>/create_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_vocabularies</from-outcome>
- <to-view-id>/view_vocabularies.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_vocabulary</from-outcome>
- <to-view-id>/view_vocabulary.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- search -->
-
- <navigation-case>
- <from-outcome>search_form</from-outcome>
- <to-view-id>/search/search_form.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_nxql</from-outcome>
- <to-view-id>/search/search_results_nxql.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_advanced</from-outcome>
- <to-view-id>
- /search/search_results_advanced.xhtml
- </to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_simple</from-outcome>
- <to-view-id>/search/search_results_simple.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- miscellaneaous -->
-
- <navigation-case>
- <from-outcome>clipboard</from-outcome>
- <to-view-id>/incl/clipboard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_dashboard</from-outcome>
- <to-view-id>/user_dashboard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>select_workspace_template</from-outcome>
- <to-view-id>/select_workspace_template.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>pdf_generation_error</from-outcome>
- <to-view-id>/pdf_generation_error.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>mass_edit</from-outcome>
- <to-view-id>/massedit_documents.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>mass_edit_confirm</from-outcome>
- <to-view-id>/massedit_documents_preview.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
- </extension>
-
-</fragment>
-
+++ /dev/null
-<?xml version="1.0"?>
-<component name="org.collectionspace.collectionobject.ecm.types">
- <extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
- <type id="CollectionObject" coretype="CollectionObject">
- <label>org.collectionspace.collectionobject</label>
- <!--icon>/icons/file.gif</icon-->
- <default-view>view_documents</default-view>
-
- <layouts mode="any">
- <layout>heading</layout>
- <layout>collectionobject</layout>
- </layouts>
- </type>
-
- <type id="Folder" coretype="Folder">
- <subtypes>
- <type>CollectionObject</type>
- </subtypes>
- </type>
-
- <type id="Workspace" coretype="Workspace">
- <subtypes>
- <type>CollectionObject</type>
- </subtypes>
- </type>
-
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0"?>
-
-<component name="org.collectionspace.collectionobject.layouts.webapp">
-
- <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
- point="layouts">
-
- <layout name="collectionobject">
- <templates>
- <template mode="any">/layouts/layout_default_template.xhtml</template>
- </templates>
- <rows>
- <row><widget>csid</widget></row>
- <row><widget>identifier</widget></row>
- <row><widget>description</widget></row>
- </rows>
-
- <widget name="csid" type="text">
- <labels>
- <label mode="any">csid</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="collectionobject">csid</field>
- </fields>
- <widgetModes>
- <!-- not shown in create mode -->
- <mode value="create">hidden</mode>
- </widgetModes>
- <properties widgetMode="edit">
- <!-- required in widget mode edit -->
- <property name="required">true</property>
- </properties>
- <properties mode="view">
- <!-- property applying in view mode -->
- <property name="styleClass">cssClass</property>
- </properties>
- </widget>
-
- <widget name="identifier" type="text">
- <labels>
- <label mode="any">identifier</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="collectionobject">identifier</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
- </widget>
-
- <widget name="description" type="text">
- <labels>
- <label mode="any">description</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="collectionobject">description</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
- </widget>
-
- </layout>
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<xs:schema \r
- xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
- xmlns:ns="http://collectionspace.org/collectionobject/"\r
- xmlns="http://collectionspace.org/collectionobject/"\r
- targetNamespace="http://collectionspace.org/collectionobject/"\r
- version="0.1">\r
-\r
- <xs:element name="csid" type="xs:string"/>\r
- <xs:element name="identifier" type="xs:string"/>\r
- <xs:element name="description" type="xs:string"/>\r
-\r
-</xs:schema>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<projectDescription>\r
- <name>helloworld</name>\r
- <comment></comment>\r
- <projects>\r
- </projects>\r
- <buildSpec>\r
- <buildCommand>\r
- <name>org.eclipse.jdt.core.javabuilder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- <buildCommand>\r
- <name>org.maven.ide.eclipse.maven2Builder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- </buildSpec>\r
- <natures>\r
- <nature>org.eclipse.jdt.core.javanature</nature>\r
- <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
- </natures>\r
-</projectDescription>\r
+++ /dev/null
-#Mon Mar 30 16:16:36 PDT 2009\r
-eclipse.preferences.version=1\r
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\r
-org.eclipse.jdt.core.compiler.compliance=1.5\r
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate\r
-org.eclipse.jdt.core.compiler.debug.localVariable=generate\r
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate\r
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
-org.eclipse.jdt.core.compiler.source=1.5\r
+++ /dev/null
-#Thu Mar 26 12:47:04 PDT 2009\r
-activeProfiles=\r
-eclipse.preferences.version=1\r
-fullBuildGoals=process-test-resources\r
-includeModules=false\r
-resolveWorkspaceProjects=true\r
-resourceFilterGoals=process-resources resources\:testResources\r
-version=1\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>\r
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>\r
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>\r
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
- <classpathentry kind="lib" path="/helloworld-jaxb/target/helloworld-jaxb-0.1.jar"/>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>javaee-addressbook-client</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Thu Mar 26 13:03:04 PDT 2009\r
-eclipse.preferences.version=1\r
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\r
-org.eclipse.jdt.core.compiler.compliance=1.5\r
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate\r
-org.eclipse.jdt.core.compiler.debug.localVariable=generate\r
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate\r
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
-org.eclipse.jdt.core.compiler.source=1.5\r
+++ /dev/null
-#Thu Feb 26 16:30:28 PST 2009\r
-activeProfiles=\r
-eclipse.preferences.version=1\r
-fullBuildGoals=process-test-resources\r
-includeModules=false\r
-resolveWorkspaceProjects=true\r
-resourceFilterGoals=process-resources resources\:testResources\r
-version=1\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- \r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project xmlns="http://maven.apache.org/POM/4.0.0"\r
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">\r
- <parent>\r
- <artifactId>helloworld</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-client</artifactId>\r
- <packaging>jar</packaging>\r
- <version>0.1</version>\r
- <name>Helloworld Client</name>\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.testng</groupId>\r
- <artifactId>testng</artifactId>\r
- <version>5.6</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-api</artifactId>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-log4j12</artifactId>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <!-- filter out unwanted jars -->\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-httpclient</groupId>\r
- <artifactId>commons-httpclient</artifactId>\r
- </dependency>\r
- </dependencies>\r
- <build>\r
- <plugins>\r
- <plugin>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <version>2.0.2</version>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A CollectionObjectClient.
-
- * @version $Revision:$
- */
-public class CollectionObjectClient {
-
- private static final String HOST = "http://localhost:8080";
- private static final String URI = "/helloworld/cspace-nuxeo";
-
- /**
- *
- */
- private static final CollectionObjectClient instance = new CollectionObjectClient();
- /**
- *
- */
- private CollectionObjectProxy collectionObjectProxy;
-
- /**
- *
- * Default constructor for CollectionObjectClient class.
- *
- */
- private CollectionObjectClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- collectionObjectProxy = ProxyFactory.create(CollectionObjectProxy.class, HOST + URI);
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static CollectionObjectClient getInstance() {
- return instance;
- }
-
- /**
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#getCollectionObject()
- */
- public ClientResponse<CollectionObjectList> getCollectionObjectList() {
- return collectionObjectProxy.getCollectionObjectList();
- }
-
- /**
- * @param csid
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#getCollectionObject(java.lang.String)
- */
- public ClientResponse<CollectionObject> getCollectionObject(String csid) {
- return collectionObjectProxy.getCollectionObject(csid);
- }
-
- /**
- * @param collectionobject
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#createCollectionObject(org.collectionspace.hello.CollectionObject)
- */
- public ClientResponse<Response> createCollectionObject(CollectionObject collectionObject) {
- return collectionObjectProxy.createCollectionObject(collectionObject);
- }
-
- /**
- * @param csid
- * @param collectionobject
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#updateCollectionObject(java.lang.Long, org.collectionspace.hello.CollectionObject)
- */
- public ClientResponse<CollectionObject> updateCollectionObject(String csid, CollectionObject collectionObject) {
- return collectionObjectProxy.updateCollectionObject(csid, collectionObject);
- }
-
- /**
- * @param csid
- * @return
- * @see org.collectionspace.hello.client.CollectionObjectProxy#deleteCollectionObject(java.lang.Long)
- */
- public ClientResponse<Response> deleteCollectionObject(String csid) {
- return collectionObjectProxy.deleteCollectionObject(csid);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/collectionobjects/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface CollectionObjectProxy {
-
- @GET
- ClientResponse<CollectionObjectList> getCollectionObjectList();
-
- //(C)reate
- @POST
- ClientResponse<Response> createCollectionObject(CollectionObject co);
-
- //(R)ead
- @GET
- @Path("/{csid}")
- ClientResponse<CollectionObject> getCollectionObject(@PathParam("csid") String csid);
-
- //(U)pdate
- @PUT
- @Path("/{csid}")
- ClientResponse<CollectionObject> updateCollectionObject(@PathParam("csid") String csid, CollectionObject co);
-
- //(D)elete
- @DELETE
- @Path("/{csid}")
- ClientResponse<Response> deleteCollectionObject(@PathParam("csid") String csid);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A IdentifierClient.
-
- * @version $Revision:$
- */
-public class IdentifierClient {
-
- /**
- *
- */
- private static final IdentifierClient instance = new IdentifierClient();
- /**
- *
- */
- private IdentifierProxy identifierProxy;
-
- /**
- *
- * Create a new IdentifierClient.
- *
- */
- private IdentifierClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- identifierProxy = ProxyFactory.create(IdentifierProxy.class, "http://localhost:8080/helloworld/cspace-nuxeo");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static IdentifierClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.IdentifierProxy#getIdentifier(java.lang.Long)
- */
- public ClientResponse<Identifier> getIdentifier(Long id) {
- return identifierProxy.getIdentifier(id);
- }
-
- /**
- * @param identifier
- * @return
- * @see org.collectionspace.hello.client.IdentifierProxy#createIdentifier(org.collectionspace.hello.client.entity.Identifier)
- */
- public ClientResponse<Response> createIdentifier(Identifier identifier) {
- return identifierProxy.createIdentifier(identifier);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/identifiers/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface IdentifierProxy {
-
- /**
- * @param id
- * @return
- */
- @GET
- @Path("/{id}")
- ClientResponse<Identifier> getIdentifier(@PathParam("id") Long id);
-
- @POST
- ClientResponse<Response> createIdentifier(Identifier so);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonClient.
-
- * @version $Revision:$
- */
-public class PersonClient {
-
- /**
- *
- */
- private static final PersonClient instance = new PersonClient();
- /**
- *
- */
- private PersonProxy personProxy;
-
- /**
- *
- * Create a new PersonClient.
- *
- */
- private PersonClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- personProxy = ProxyFactory.create(PersonProxy.class, "http://localhost:8080/helloworld/cspace");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static PersonClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#getPerson()
- */
- public ClientResponse<Persons> getPersons() {
- return personProxy.getPersons();
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#getPerson(java.lang.Long)
- */
- public ClientResponse<Person> getPerson(Long id) {
- return personProxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#createPerson(org.collectionspace.hello.client.entity.Person)
- */
- public ClientResponse<Response> createPerson(Person person) {
- return personProxy.createPerson(person);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#updatePerson(java.lang.Long, org.collectionspace.hello.client.entity.Person)
- */
- public ClientResponse<Person> updatePerson(Long id, Person person) {
- return personProxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(Long id) {
- return personProxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonNuxeoClient.
-
- * @version $Revision:$
- */
-public class PersonNuxeoClient {
-
- /**
- *
- */
- private static final PersonNuxeoClient instance = new PersonNuxeoClient();
- /**
- *
- */
- private PersonNuxeoProxy personProxy;
-
- /**
- *
- * Create a new PersonNuxeoClient.
- *
- */
- private PersonNuxeoClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- personProxy = ProxyFactory.create(PersonNuxeoProxy.class, "http://localhost:8080/helloworld/cspace-nuxeo");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static PersonNuxeoClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#getPerson()
- */
- public ClientResponse<People> getPeople() {
- return personProxy.getPeople();
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#getPerson(java.lang.String)
- */
- public ClientResponse<PersonNuxeo> getPerson(String id) {
- return personProxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#createPerson(org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<Response> createPerson(PersonNuxeo person) {
- return personProxy.createPerson(person);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#updatePerson(java.lang.Long, org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<PersonNuxeo> updatePerson(String id, PersonNuxeo person) {
- return personProxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(String id) {
- return personProxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/persons/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface PersonNuxeoProxy {
-
- @GET
- ClientResponse<People> getPeople();
-
- @GET
- @Path("/{id}")
- ClientResponse<PersonNuxeo> getPerson(@PathParam("id") String id);
-
- @POST
- ClientResponse<Response> createPerson(PersonNuxeo so);
-
- @PUT
- @Path("/{id}")
- ClientResponse<PersonNuxeo> updatePerson(@PathParam("id") String id, PersonNuxeo so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") String id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/persons/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface PersonProxy {
-
- @GET
- ClientResponse<Persons> getPersons();
-
- @GET
- @Path("/{id}")
- ClientResponse<Person> getPerson(@PathParam("id") Long id);
-
- @POST
- ClientResponse<Response> createPerson(Person so);
-
- @PUT
- @Path("/{id}")
- ClientResponse<Person> updatePerson(@PathParam("id") Long id, Person so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") Long id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import org.collectionspace.hello.CollectionObject;
-import org.collectionspace.hello.CollectionObjectList;
-import org.collectionspace.hello.client.CollectionObjectClient;
-
-/**
- * A CollectionObjectNuxeoServiceTest.
- *
- * @version $Revision:$
- */
-public class CollectionObjectServiceTest {
-
- private CollectionObjectClient collectionObjectClient = CollectionObjectClient.getInstance();
- private String updateId = null;
- private String deleteId = null;
-
- @Test
- public void createCollectionObject() {
- long identifier = this.createIdentifier();
-
- CollectionObject collectionObject = createCollectionObject(identifier);
- ClientResponse<Response> res = collectionObjectClient.createCollectionObject(collectionObject);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- //store updateId locally for "update" test
- if (updateId == null)
- updateId = extractId(res);
- else
- deleteId = extractId(res);
- }
-
- @Test(dependsOnMethods = {"createCollectionObject"})
- public void updateCollectionObject() {
- ClientResponse<CollectionObject> res = collectionObjectClient.getCollectionObject(updateId);
- CollectionObject collectionObject = res.getEntity();
- verbose("got collectionobject to update: " + updateId,
- collectionObject, CollectionObject.class);
-
- //collectionObject.setCsid("updated-" + updateId);
- collectionObject.setIdentifier("updated-" + collectionObject.getIdentifier());
- collectionObject.setDescription("updated-" + collectionObject.getDescription());
-
- res = collectionObjectClient.updateCollectionObject(updateId, collectionObject);
- CollectionObject updatedCollectionObject = res.getEntity();
- Assert.assertEquals(updatedCollectionObject.getDescription(), collectionObject.getDescription());
-
- verbose("updated collectionObject", updatedCollectionObject, CollectionObject.class);
-
- return;
- }
-
- @Test(dependsOnMethods = {"createCollectionObject"})
- public void createCollection() {
- for (int i = 0; i < 3; i++) {
- this.createCollectionObject();
- }
- }
-
- @Test(dependsOnMethods = {"createCollection"})
- public void getCollectionObjectList() {
- //the resource method is expected to return at least an empty list
- CollectionObjectList coList = collectionObjectClient.getCollectionObjectList().getEntity();
- List<CollectionObjectList.CollectionObjectListItem> coItemList = coList.getCollectionObjectListItem();
- int i = 0;
- for(CollectionObjectList.CollectionObjectListItem pli : coItemList) {
- verbose("getCollectionObjectList: list-item[" + i + "] csid=" + pli.getCsid());
- verbose("getCollectionObjectList: list-item[" + i + "] identifier=" + pli.getIdentifier());
- verbose("getCollectionObjectList: list-item[" + i + "] URI=" + pli.getUri());
- i++;
- }
- }
-
- @Test(dependsOnMethods = {"updateCollectionObject"})
- public void deleteCollectionObject() {
- ClientResponse<Response> res = collectionObjectClient.deleteCollectionObject(deleteId);
- verbose("deleteCollectionObject: csid=" + deleteId);
- verbose("deleteCollectionObject: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private CollectionObject createCollectionObject(String csid, String identifier, String description) {
- CollectionObject collectionObject = new CollectionObject();
-
- collectionObject.setCsid(csid);
- collectionObject.setIdentifier(identifier);
- collectionObject.setDescription(description);
-
- return collectionObject;
- }
-
- private CollectionObject createCollectionObject(long identifier) {
- CollectionObject collectionObject = createCollectionObject("csid-" + identifier,
- "did-" + identifier, "description-" + identifier);
-
- return collectionObject;
- }
-
- private String extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- String id = segments[segments.length - 1];
- verbose("id=" + id);
- return id;
- }
-
- private void verbose(String msg) {
- System.out.println("CollectionObjectServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for(Object entry : map.entrySet()){
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-
- private long createIdentifier() {
- long identifier = System.currentTimeMillis();
- return identifier;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import org.collectionspace.hello.client.*;
-import java.util.ArrayList;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A IdentifierServiceTest.
- *
- * @version $Revision:$
- */
-public class IdentifierServiceTest {
-
- private IdentifierClient identifierClient = IdentifierClient.getInstance();
- private Long id = 0L;
-
- @Test
- public void createIdentifier() {
- Identifier identifier = new Identifier();
- identifier.setNamespace("org.bnhm");
- ClientResponse<Response> res = identifierClient.createIdentifier(identifier);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- id = extractId(res);
- }
-
- @Test(dependsOnMethods = {"createIdentifier"})
- public void getIdentifier() {
- Identifier i = identifierClient.getIdentifier(id).getEntity();
- verbose("got Identifier", i);
- }
-
- private Long extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- verbose("id=" + segments[segments.length - 1]);
- return Long.valueOf(segments[segments.length - 1]);
- }
-
- private void verbose(String msg) {
- System.out.println("IdentifierServiceTest : " + msg);
- }
-
- private void verbose(String msg, Identifier p) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), Identifier.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.collectionspace.hello.client.PersonNuxeoClient;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A PersonNuxeoServiceTest.
- *
- * @version $Revision:$
- */
-public class PersonNuxeoServiceTest {
-
- private PersonNuxeoClient personClient = PersonNuxeoClient.getInstance();
- private String updateId = "";
- private String deleteId = "";
-
- @Test
- public void createPerson() {
- PersonNuxeo person = createPerson("Chris", "Hoffman");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createTeam() {
- PersonNuxeo person = createPerson("Sanjay", "Dalal");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- deleteId = extractId(res);
-
- person = createPerson("Aron", "Roberts");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- person = createPerson("Richard", "Millet");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() {
- PersonNuxeo touPerson = personClient.getPerson(updateId).getEntity();
- touPerson.setId(updateId);
- verbose("got person to update", touPerson, PersonNuxeo.class);
- touPerson.setFirstName("Patrick");
- touPerson.setLastName("Schmitz");
- PersonNuxeo uPerson = personClient.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, PersonNuxeo.class);
- //Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Patrick");
- }
-
- @Test(dependsOnMethods = {"createTeam"})
- public void getPeople() {
- //the resource method is expected to return at least an empty list
- People people = personClient.getPeople().getEntity();
- List<People.PeopleItem> list = people.getPeopleItem();
- int i = 0;
- for(People.PeopleItem pli : list){
- verbose("getPeople: list-item[" + i + "] title=" + pli.getTitle());
- verbose("getPeople: list-item[" + i + "] id=" + pli.getId());
- verbose("getPeople: list-item[" + i + "] uri=" + pli.getUri());
- i++;
- }
- }
-
- @Test(dependsOnMethods = {"updatePerson"})
- public void deletePerson() {
- ClientResponse<Response> res = personClient.deletePerson(deleteId);
- verbose("deletePerson: id=" + deleteId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private PersonNuxeo createPerson(String firstName, String lastName) {
- PersonNuxeo person = new PersonNuxeo();
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- person.setVersion("1.0");
- return person;
- }
-
- private String extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- String id = segments[segments.length - 1];
- verbose("id=" + id);
- return id;
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for(Object entry : map.entrySet()){
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.collectionspace.hello.client.PersonClient;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A PersonServiceTest.
- *
- * @version $Revision:$
- */
-public class PersonServiceTest {
-
- private PersonClient personClient = PersonClient.getInstance();
- private Long updateId = 0L;
-
- @Test
- public void createPerson() {
- Person person = createPerson("Chris", "Hoffman");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createPersons() {
- Person person = createPerson("Aron", "Roberts");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- person = createPerson("Dan", "Sheppard");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() {
- Person touPerson = personClient.getPerson(updateId).getEntity();
- verbose("got person to update", touPerson, Person.class);
- touPerson.setFirstName("Richard");
- touPerson.setLastName("Millet");
- int initialVersion = touPerson.getVersion();
- Person uPerson = personClient.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, Person.class);
- Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Richard");
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void getPersons() {
- //the resource method is expected to return at least an empty list
- Persons persons = personClient.getPersons().getEntity();
- List<Persons.PersonListItem> list = persons.getPersonListItem();
- int i = 0;
- for (Persons.PersonListItem pli : list) {
- verbose("getPersons: list-item[" + i + "] firstName=" + pli.getFirstName());
- verbose("getPersons: list-item[" + i + "] lastName=" + pli.getLastName());
- verbose("getPersons: list-item[" + i + "] uri=" + pli.getUri());
- i++;
- }
- }
-
-
- @Test
- public void getNonExistingPerson() {
- ClientResponse<Person> res = personClient.getPerson(999L);
-
- Response.Status status = res.getResponseStatus();
- verbose(this.getClass().getName() + ": " +
- "getNonExistingPerson: Status: code=" + status.getStatusCode() +
- " message=" + status.toString());
- verbose("getNonExistingPerson: Metadata:");
- verboseMap(res.getMetadata());
- verbose("getNonExistingPerson: Headers:");
- verboseMap(res.getHeaders());
- if (status.equals(Response.Status.NOT_FOUND)) {
- String msg = res.getEntity(String.class, String.class);
- verbose("getNonExistingPerson: error message=" + msg);
- }
- }
-
- @Test(dependsOnMethods = {"updatePerson"})
- public void updateWrongPerson() {
- Person touPerson = personClient.getPerson(updateId).getEntity();
- verbose("updateWrongPerson: got person to update", touPerson, Person.class);
- touPerson.setFirstName("Richard");
- touPerson.setLastName("Millet");
- //use non existing person to update
- ClientResponse<Person> res = personClient.updatePerson(9999L, touPerson);
- if (res.getResponseStatus().equals(Response.Status.NOT_FOUND)) {
- verbose("updateWrongPerson: Status=" + res.getResponseStatus().toString());
- String msg = res.getEntity(String.class, String.class);
- verbose("updateWrongPerson: application error message=" + msg);
- }
- }
-
-
- @Test(dependsOnMethods = {"updateWrongPerson"})
- public void deletePerson() {
- ClientResponse<Response> res = personClient.deletePerson(updateId);
- verbose("deletePerson: id=" + updateId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private Person createPerson(String firstName, String lastName) {
- Person person = new Person();
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- return person;
- }
-
- private Long extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- verbose("id=" + segments[segments.length - 1]);
- return Long.valueOf(segments[segments.length - 1]);
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), Person.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for (Object entry : map.entrySet()) {
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
-
- <appender name="unit-tests"
- class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="./target/unit-tests.log" />
- <param name="MaxFileSize" value="10240KB" />
- <param name="MaxBackupIndex" value="6" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
- <logger name="org.apache.commons.httpclient" additivity="false">
- <level value="warn" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <logger name="httpclient.wire" additivity="false">
- <level value="info" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <root>
- <priority value="debug" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </root>
-
-</log4j:configuration>
-
-
-
-
+++ /dev/null
-<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="javaee-addressbook-client">
- <test verbose="2" name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest" annotations="JDK">
- <classes>
- <class name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest"/>
- </classes>
- </test>
-</suite>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>\r
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>\r
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>javaee-addressbook-jaxb</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Thu Feb 26 16:32:52 PST 2009\r
-eclipse.preferences.version=1\r
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
-org.eclipse.jdt.core.compiler.compliance=1.5\r
-org.eclipse.jdt.core.compiler.source=1.5\r
+++ /dev/null
-#Thu Feb 26 16:30:28 PST 2009\r
-activeProfiles=\r
-eclipse.preferences.version=1\r
-fullBuildGoals=process-test-resources\r
-includeModules=false\r
-resolveWorkspaceProjects=true\r
-resourceFilterGoals=process-resources resources\:testResources\r
-version=1\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
- <parent>
- <artifactId>helloworld</artifactId>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>helloworld-jaxb</artifactId>
- <version>0.1</version>
- <name>Helloworld Client JAXB</name>
- <dependencies>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.0.2</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2-commons</groupId>
- <artifactId>property-listener-injector</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2_commons</groupId>
- <artifactId>runtime</artifactId>
- <version>0.4.1.4</version>
- </dependency>
- </dependencies>
- <build>
- <defaultGoal>install</defaultGoal>
- <plugins>
- <plugin>
- <groupId>org.jvnet.jaxb2.maven2</groupId>
- <artifactId>maven-jaxb2-plugin</artifactId>
- <dependencies>
- <!-- javax.activation.DataSource provider is required by spec -->
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.2</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello"
- xmlns="http://collectionspace.org/hello"
- targetNamespace="http://collectionspace.org/hello"
- version="0.1"
->
-
-<!-- avoid XmlRootElement nightnmare, see http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html-->
- <xs:element name="person">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="firstName" type="xs:string"
- minOccurs="1" />
- <xs:element name="lastName" type="xs:string"
- minOccurs="1" />
- <xs:element name="street" type="xs:string"
- minOccurs="1" />
- <xs:element name="city" type="xs:string"
- minOccurs="1" />
- <xs:element name="state" type="xs:string"
- minOccurs="1" />
- <xs:element name="zip" type="xs:string"
- minOccurs="1" />
- <xs:element name="country" type="xs:string"
- minOccurs="1" />
- </xs:sequence>
- <xs:attribute name="id" type="xs:long" />
- <xs:attribute name="version" type="xs:int" />
-
- </xs:complexType>
- </xs:element>
-
-
- <!-- person short is returned by getPersons method -->
- <xs:element name="persons">
- <xs:complexType>
- <xs:sequence>
-
- <!-- person list item is returned by getPersons method -->
- <xs:element name="person-list-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="firstName" type="xs:string"
- minOccurs="1" />
- <xs:element name="lastName" type="xs:string"
- minOccurs="1" />
- <!-- uri to retrive person details -->
- <xs:element name="uri" type="xs:anyURI"
- minOccurs="1" />
- <xs:element name="id" type="xs:long"
- minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <!-- collection-object -->
- <xs:element name="collection-object">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="csid" type="xs:string" minOccurs="1" />
- <xs:element name="identifier" type="xs:string" minOccurs="1" />
- <xs:element name="description" type="xs:string" minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <!-- collection objects as in nuxeo repository -->
- <xs:element name="collection-object-list">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="collection-object-list-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="identifier" type="xs:string"
- minOccurs="1" />
- <!-- uri to retrive person details -->
- <xs:element name="uri" type="xs:anyURI"
- minOccurs="1" />
- <xs:element name="csid" type="xs:string"
- minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
-
- <!-- person-nuxeo uses both id and version as string -->
- <xs:element name="person-nuxeo">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="id" type="xs:string" minOccurs="1" />
- <xs:element name="version" type="xs:string" minOccurs="1" />
- <xs:element name="firstName" type="xs:string" minOccurs="1" />
- <xs:element name="lastName" type="xs:string" minOccurs="1" />
- <xs:element name="street" type="xs:string" minOccurs="1" />
- <xs:element name="city" type="xs:string" minOccurs="1" />
- <xs:element name="state" type="xs:string" minOccurs="1" />
- <xs:element name="zip" type="xs:string" minOccurs="1" />
- <xs:element name="country" type="xs:string" minOccurs="1" />
- </xs:sequence>
-
- </xs:complexType>
- </xs:element>
-
-
- <!-- people as in nuxeo repository -->
- <xs:element name="people">
- <xs:complexType>
- <xs:sequence>
-
- <xs:element name="people-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="title" type="xs:string"
- minOccurs="1" />
- <!-- uri to retrive person details -->
- <xs:element name="uri" type="xs:anyURI"
- minOccurs="1" />
- <xs:element name="id" type="xs:string"
- minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="identifier">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="namespace" type="xs:string"
- minOccurs="1" />
- <xs:element name="value" type="xs:string"
- minOccurs="0" />
- </xs:sequence>
- <xs:attribute name="id" type="xs:long" />
- <xs:attribute name="version" type="xs:int" />
-
- </xs:complexType>
- </xs:element>
-</xs:schema>
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>\r
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>\r
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
- <classpathentry kind="lib" path="/helloworld-jaxb/target/helloworld-jaxb-0.1.jar" sourcepath="/helloworld-jaxb/target/generated-sources/xjc"/>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<projectDescription>\r
- <name>helloworld-nuxeo-service</name>\r
- <comment></comment>\r
- <projects>\r
- </projects>\r
- <buildSpec>\r
- <buildCommand>\r
- <name>org.eclipse.jdt.core.javabuilder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- <buildCommand>\r
- <name>org.maven.ide.eclipse.maven2Builder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- </buildSpec>\r
- <natures>\r
- <nature>org.eclipse.jdt.core.javanature</nature>\r
- <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
- </natures>\r
-</projectDescription>\r
+++ /dev/null
-#Wed Apr 01 10:19:44 PDT 2009\r
-eclipse.preferences.version=1\r
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
-org.eclipse.jdt.core.compiler.compliance=1.5\r
-org.eclipse.jdt.core.compiler.source=1.5\r
+++ /dev/null
-#Wed Apr 01 10:19:28 PDT 2009\r
-activeProfiles=\r
-eclipse.preferences.version=1\r
-fullBuildGoals=process-test-resources\r
-includeModules=false\r
-resolveWorkspaceProjects=true\r
-resourceFilterGoals=process-resources resources\:testResources\r
-version=1\r
+++ /dev/null
-Helloworld service interfacing with Nuxeo repository through Nuxeo
-REST apis.
-
-System Requirements:
-====================
-- Maven 2.0.9 or higher
-- Nuxeo CollectionSpace Extensions
-
-Building the project:
-====================
-In root directoy...
-1. customize build.properties for your environment
-2. mvn clean package
-3. ant
+++ /dev/null
-jboss.dir=C:/dev/tools/jboss-4.2.3.GA\r
-nuxeo.dir=${jboss.dir}/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.dir=file:///C:/dev/jboss-4.2.3.GA/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.client.dir=file:///C:/dev/nuxeo/nuxeo-core/nuxeo-core-client/target\r
+++ /dev/null
-<?xml version="1.0"?>
-<project name="helloworld" default="deploy" basedir=".">
-
- <property file="build.properties" />
-
-
- <target name="deploy" description="Deploy">
- <copy todir="${jboss.dir}/server/default/deploy">
- <fileset file="${basedir}/target/helloworld.war" />
- </copy>
- </target>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- <netbeans.hint.useExternalMaven>false</netbeans.hint.useExternalMaven>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>test</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>build</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>install</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>clean</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>run</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>debug</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- <netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>\r
- </properties>\r
- </action>\r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>helloworld</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-nuxeo-service</artifactId>\r
- <packaging>war</packaging>\r
- <version>0.1</version>\r
- <name>Helloworld Nuxeo Service</name>\r
-\r
- <repositories>\r
- <repository>\r
- <id>java.net</id>\r
- <url>http://download.java.net/maven/1</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven repo</id>\r
- <name>maven repo</name>\r
- <url>http://repo1.maven.org/maven2/</url>\r
- </repository>\r
- <!-- For resteasy -->\r
- <repository>\r
- <id>jboss</id>\r
- <name>jboss repo</name>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>mojo</id>\r
- <name>mojo repo</name>\r
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>\r
- </repository>\r
-\r
- <repository>\r
- <id>maven-restlet</id>\r
- <name>Public online Restlet repository</name>\r
- <url>http://maven.restlet.org</url>\r
- </repository>\r
- \r
- <repository>\r
- <id>cspace.local.nuxeo</id>\r
- <url>${nuxeo.local.repo.dir}</url>\r
- </repository>\r
- <repository>\r
- <id>cspace.local.nuxeo.client</id>\r
- <url>${nuxeo.local.repo.client.dir}</url>\r
- </repository>\r
- <repository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </repository>\r
- <repository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </repository>\r
-\r
-\r
- </repositories>\r
-\r
- <pluginRepositories>\r
- <pluginRepository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <name>Nuxeo virtual release repository</name>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <name>Nuxeo virtual snapshot repository</name>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </pluginRepository>\r
- </pluginRepositories>\r
-\r
-\r
- <properties>\r
- <jboss.version>4.2.3.GA</jboss.version>\r
- <jboss.ejb.version>3.0</jboss.ejb.version>\r
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
- <apacheds.version>1.5.1</apacheds.version>\r
- <apachedshared.version>0.9.7</apachedshared.version>\r
- <nuxeo.version.5.2>5.2-SNAPSHOT</nuxeo.version.5.2>\r
- <nuxeo.version.1.5>1.5-SNAPSHOT</nuxeo.version.1.5>\r
- </properties>\r
-\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>4.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
-\r
- <!-- javax -->\r
-\r
-\r
- <dependency>\r
- <groupId>javax.security</groupId>\r
- <artifactId>jaas</artifactId>\r
- <version>1.0.01</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>dom4j</groupId>\r
- <artifactId>dom4j</artifactId>\r
- <version>1.6.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- \r
- <!-- jboss -->\r
-\r
- <!-- nuxeo -->\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-api</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <exclusions>\r
- <exclusion>\r
- <artifactId>jboss-remoting</artifactId>\r
- <groupId>jboss</groupId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
-\r
-<!--\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-client</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
--->\r
-\r
- <dependency>\r
- <groupId>org.restlet</groupId>\r
- <artifactId>org.restlet</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.noelios.restlet</groupId>\r
- <artifactId>com.noelios.restlet.ext.httpclient</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.noelios.restlet</groupId>\r
- <artifactId>com.noelios.restlet</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>jaxen</groupId>\r
- <artifactId>jaxen</artifactId>\r
- <version>1.1.1</version>\r
- </dependency>\r
-\r
-\r
- </dependencies>\r
- \r
- <build>\r
- <finalName>helloworld</finalName>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.codehaus.mojo</groupId>\r
- <artifactId>jboss-maven-plugin</artifactId>\r
- <configuration>\r
- <jbossHome>${jboss.dir}</jbossHome>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>jboss-undeploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>undeploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>jboss-deploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
-\r
- </executions>\r
- </plugin>\r
-\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <configuration></configuration>\r
- <executions>\r
- <execution>\r
- <id>surefire-it</id>\r
- <phase>integration-test</phase>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- <configuration>\r
- <skip>false</skip>\r
- </configuration>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.io.ByteArrayInputStream;
-import org.collectionspace.hello.services.nuxeo.NuxeoRESTClient;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import java.util.Map;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.*;
-
-
-import org.collectionspace.hello.CollectionObjectList.CollectionObjectListItem;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.Namespace;
-import org.dom4j.io.SAXReader;
-import org.restlet.resource.Representation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/collectionobjects")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class CollectionObjectResource {
-
- final static String NUXEO_WORKSPACE_UID = "776a8787-9d81-41b0-a02c-1ba674638c0a";
- final static String NUXEO_DOCTYPE = "CollectionObject";
-
- final Logger logger = LoggerFactory.getLogger(CollectionObjectResource.class);
-
- public CollectionObjectResource() {
- // do nothing
- }
-
- @GET
- public CollectionObjectList getCollectionObjectList(@Context UriInfo ui) {
- CollectionObjectList p = new CollectionObjectList();
- try{
- List<CollectionObjectList.CollectionObjectListItem> list = p.getCollectionObjectListItem();
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams = Arrays.asList("default", NUXEO_WORKSPACE_UID, "browse");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- CollectionObjectListItem pli = new CollectionObjectListItem();
- //
- pli.setCsid(element.attributeValue("csid"));
- pli.setUri(element.attributeValue("url"));
- pli.setIdentifier(element.attributeValue("identifier"));
- list.add(pli);
- }
-
- }catch(Exception e){
- e.printStackTrace();
- }
- return p;
- }
-
- @POST
- public Response createCollectionObject(CollectionObject co) {
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(NUXEO_WORKSPACE_UID);
- pathParams.add("createDocument");
- queryParams.put("docType", NUXEO_DOCTYPE);
-
- queryParams.put("dublincore:title", co.getIdentifier());
- // CollectionObject core values
- queryParams.put("collectionobject:csid", Integer.valueOf(1).toString());
- queryParams.put("collectionobject:identifier", co.getIdentifier());
- queryParams.put("collectionobject:description", co.getDescription());
-
- ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
- Representation res = nxClient.post(pathParams, queryParams, bais);
-
- SAXReader reader = new SAXReader();
- try {
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for (Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if ("docRef".equals(element.getName())){
- String id = (String) element.getData();
- co.setCsid(id);
- }
- }
- } catch(Exception e){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- verbose("created collectionobject", co);
- UriBuilder path = UriBuilder.fromResource(PersonNuxeoResource.class);
- path.path("" + co.getCsid());
- Response response = Response.created(path.build()).build();
-
- return response;
- }
-
- @GET
- @Path("{csid}")
- public CollectionObject getCollectionObject(@PathParam("csid") String csid) {
-
- CollectionObject co = null;
- try {
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
-
- pathParams.add("default");
- pathParams.add(csid);
- pathParams.add("export");
- queryParams.put("format", "XML");
-
- NuxeoRESTClient nxClient = getClient();
- Representation res = nxClient.get(pathParams, queryParams);
-
- SAXReader reader = new SAXReader();
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- co = new CollectionObject();
-
- // TODO: recognize schema thru namespace uri
-// Namespace ns = new Namespace("collectionobject", "http://collectionspace.org/collectionobject");
-
- Iterator<Element> siter = root.elementIterator("schema");
- while (siter.hasNext()) {
-
- Element schemaElement = siter.next();
- System.err.println("CollectionObject.getCollectionObject() called.");
-
- //TODO: recognize schema thru namespace uri
- if ("collectionobject".equals(schemaElement.attribute("name").getValue())){
- co.setCsid(csid);
- Element ele = schemaElement.element("identifier");
- if(ele != null){
- co.setIdentifier((String) ele.getData());
- }
- ele = schemaElement.element("description");
- if(ele != null){
- co.setDescription((String) ele.getData());
- }
- }
- }
-
- } catch(Exception e){
- e.printStackTrace();
- Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
- "Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (co == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested CollectionObject CSID:" + csid + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get collectionobject", co);
-
- return co;
- }
-
- @PUT
- @Path("{csid}")
- public CollectionObject updateCollectionObject(
- @PathParam("csid") String csid,
- CollectionObject update) {
-
- verbose("updating collectionobject input", update);
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(update.getCsid());
- pathParams.add("updateDocumentRestlet");
-
- //todo: intelligent merge needed
- if(update.getIdentifier() != null){
- queryParams.put("collectionobject:identifier", update.getIdentifier());
- }
-
- if(update.getDescription() != null){
- queryParams.put("collectionobject:description", update.getDescription());
- }
-
- NuxeoRESTClient nxClient = getClient();
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try {
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("update collectionobject: response=" + status);
- }
-
- }
- } catch(Exception e) {
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- return update;
- }
-
- @DELETE
- @Path("{csid}")
- public void deleteCollectionObject(@PathParam("csid") String csid) {
-
- verbose("deleting collectionobject with csid=" + csid);
-
- NuxeoRESTClient nxClient = getClient();
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
-
- pathParams.add("default");
- pathParams.add(csid);
- pathParams.add("deleteDocumentRestlet");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
-
- try {
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("delete collectionobject: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
-
- private void verbose(String msg, CollectionObject co) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(
- CollectionObject.class);
-
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(co, System.out);
- } catch(Exception e){
- e.printStackTrace();
- }
-
- }
-
- private NuxeoRESTClient getClient() {
- NuxeoRESTClient nxClient = new NuxeoRESTClient("http://127.0.0.1:8080/nuxeo");
- nxClient.setAuthType(NuxeoRESTClient.AUTH_TYPE_BASIC);
- nxClient.setBasicAuthentication("Administrator", "Administrator");
- return nxClient;
- }
-
- private void verbose(String msg) {
- System.out.println("CollectionObjectResource: " + msg);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
-
-public class HelloworldNuxeoApplication extends Application {
-
- private Set<Object> singletons = new HashSet<Object>();
- private Set<Class<?>> empty = new HashSet<Class<?>>();
-
- public HelloworldNuxeoApplication() {
- singletons.add(new CollectionObjectResource());
- singletons.add(new IdentifierResource());
- singletons.add(new PersonNuxeoResource());
- }
-
- @Override
- public Set<Class<?>> getClasses() {
- return empty;
- }
-
- @Override
- public Set<Object> getSingletons() {
- return singletons;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/identifiers")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class IdentifierResource {
-
- final Logger logger = LoggerFactory.getLogger(IdentifierResource.class);
- private Map<Long, Identifier> idDB = new ConcurrentHashMap<Long, Identifier>();
- private AtomicLong idCounter = new AtomicLong();
-
- public IdentifierResource() {
- // do nothing
- }
-
- @POST
- public Response createIdentifier(Identifier id) {
- if (id.getNamespace() == null) {
- id.setNamespace("edu.berkeley");
- }
- id.setId(idCounter.incrementAndGet());
- id.setVersion(1);
- UUID uuid = UUID.nameUUIDFromBytes(id.getNamespace().getBytes());
- id.setValue(uuid.toString());
- idDB.put(id.getId(), id);
- verbose("created Id", id);
- UriBuilder path = UriBuilder.fromResource(IdentifierResource.class);
- path.path("" + id.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public Identifier getIdentifier(@PathParam("id") Long id) {
- Identifier i = idDB.get(id);
- if (i == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "The requested ID was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get Id", i);
- return i;
- }
-
- private void verbose(String msg, Identifier id) {
- try {
- System.out.println("IdentifierResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(id, System.out);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.io.ByteArrayInputStream;
-import org.collectionspace.hello.services.nuxeo.NuxeoRESTClient;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import java.util.Map;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.*;
-
-
-import org.collectionspace.hello.People.PeopleItem;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.Namespace;
-import org.dom4j.io.SAXReader;
-import org.restlet.resource.Representation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/persons")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class PersonNuxeoResource {
-
- final Logger logger = LoggerFactory.getLogger(PersonNuxeoResource.class);
-
- public PersonNuxeoResource() {
- }
-
- @GET
- public People getPeople(@Context UriInfo ui) {
- People p = new People();
- try{
- List<People.PeopleItem> list = p.getPeopleItem();
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- //browse default repository for People
- //For sanjay, People repository id is f084243e-4b81-42a1-9a05-518e974facbd
- //For Richard, workspace repos ID is 77187c27-0467-4c3d-b395-122b82113f4d
- pathParams = Arrays.asList("default", "1b58eef7-4fff-430b-b773-8c98724f19de", "browse");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- PeopleItem pli = new PeopleItem();
- pli.setTitle(element.attributeValue("title"));
- pli.setUri(element.attributeValue("url"));
- pli.setId(element.attributeValue("id"));
- list.add(pli);
- }
-
- }catch(Exception e){
- e.printStackTrace();
- }
- return p;
- }
-
- @POST
- public Response createPerson(PersonNuxeo p) {
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add("1b58eef7-4fff-430b-b773-8c98724f19de");
- pathParams.add("createDocument");
- queryParams.put("docType", "Hello");
- queryParams.put("dublincore:title", p.getFirstName() + " " + p.getLastName());
- queryParams.put("hello:cversion", Integer.valueOf(1).toString());
- queryParams.put("hello:firstName", p.getFirstName());
- queryParams.put("hello:lastName", p.getLastName());
- queryParams.put("hello:street", p.getStreet());
- queryParams.put("hello:city", p.getCity());
- queryParams.put("hello:state", p.getState());
- queryParams.put("hello:zip", p.getZip());
- queryParams.put("hello:country", p.getCountry());
- ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
- Representation res = nxClient.post(pathParams, queryParams, bais);
-
- SAXReader reader = new SAXReader();
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- String id = (String) element.getData();
- p.setId(id);
- }
- }
- }catch(Exception e){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- verbose("created person", p);
- UriBuilder path = UriBuilder.fromResource(PersonNuxeoResource.class);
- path.path("" + p.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public PersonNuxeo getPerson(@PathParam("id") String id) {
-
- PersonNuxeo p = null;
- try{
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
-
- pathParams.add("default");
- pathParams.add(id);
- pathParams.add("export");
- queryParams.put("format", "XML");
-
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
-
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- p = new PersonNuxeo();
- //TODO: recognize schema thru namespace uri
-// Namespace ns = new Namespace("hello", "http://collectionspace.org/hello");
- Iterator<Element> siter = root.elementIterator("schema");
- while(siter.hasNext()){
-
- Element s = siter.next();
-
- System.err.println("PersonNuxeo.getPerson() called.");
-
- //TODO: recognize schema thru namespace uri
- if("hello".equals(s.attribute("name").getValue())){
- p.setId(id);
- Element ele = s.element("cversion");
- if(ele != null){
- p.setVersion((String) ele.getData());
- }
- ele = s.element("firstName");
- if(ele != null){
- p.setFirstName((String) ele.getData());
- }
- ele = s.element("lastName");
- if(ele != null){
- p.setLastName((String) ele.getData());
- }
- ele = s.element("city");
- if(ele != null){
- p.setCity((String) ele.getData());
- }
- ele = s.element("state");
- if(ele != null){
- p.setState((String) ele.getData());
- }
- ele = s.element("zip");
- if(ele != null){
- p.setZip((String) ele.getData());
- }
- ele = s.element("country");
- if(ele != null){
- p.setCountry((String) ele.getData());
- }
- }
- }
-
- }catch(Exception e){
- e.printStackTrace();
- Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
- "Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if(p == null){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get person", p);
- return p;
- }
-
- @PUT
- @Path("{id}")
- public PersonNuxeo updatePerson(
- @PathParam("id") String id,
- PersonNuxeo update) {
-
- verbose("updating person input", update);
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(update.getId());
- pathParams.add("updateDocumentRestlet");
- queryParams.put("dublincore:title", "change title");
- //todo: intelligent merge needed
- if(update.getFirstName() != null){
- queryParams.put("hello:firstName", update.getFirstName());
- }
-
- if(update.getLastName() != null){
- queryParams.put("hello:lastName", update.getLastName());
- }
-
- if(update.getFirstName() != null && update.getLastName() != null){
- queryParams.put("dublincore:title", update.getFirstName() + " " + update.getLastName());
- }
-
- if(update.getStreet() != null){
- queryParams.put("hello:street", update.getStreet());
- }
-
- if(update.getCity() != null){
- queryParams.put("hello:city", update.getCity());
- }
-
- if(update.getState() != null){
- queryParams.put("hello:state", update.getState());
- }
-
- if(update.getZip() != null){
- queryParams.put("hello:zip", update.getZip());
- }
-
- if(update.getCountry() != null){
- queryParams.put("hello:country", update.getCountry());
- }
-
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("updatePerson: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return update;
- }
-
- @DELETE
- @Path("{id}")
- public void deletePerson(@PathParam("id") String id) {
- verbose("deleting person with id=" + id);
- NuxeoRESTClient nxClient = getClient();
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(id);
- pathParams.add("deleteDocumentRestlet");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("deletePerson: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
-
- private void verbose(String msg, PersonNuxeo p) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(
- PersonNuxeo.class);
-
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
-
-// private void getQueryModel() throws IOException {
-// NuxeoRESTClient nxClient = getClient();
-//
-// List<String> pathParams = new ArrayList<String>();
-// Map<String, String> queryParams = new HashMap<String, String>();
-//
-// //query model for user documents
-// pathParams = Arrays.asList("execQueryModel", "USER_DOCUMENTS");
-// queryParams.put("QP1", "Administrator");
-// queryParams.put("format", "XML");
-//
-//
-// Representation res = nxClient.get(pathParams, queryParams);
-// String resStr = res.getText();
-// verbose("getQueryModel:" + resStr);
-//
-// }
-//
-// private void getVocabulary() throws IOException {
-// NuxeoRESTClient nxClient = getClient();
-//
-// List<String> pathParams = new ArrayList<String>();
-// Map<String, String> queryParams = new HashMap<String, String>();
-// //get vocabulary
-// pathParams = Arrays.asList("vocabulary", "continent_country");
-// queryParams.put("lang", "en");
-//
-// Representation res = nxClient.get(pathParams, queryParams);
-// String resStr = res.getText();
-// verbose("getVocabulary:" + resStr);
-//
-// }
- private NuxeoRESTClient getClient() {
- NuxeoRESTClient nxClient = new NuxeoRESTClient("http://127.0.0.1:8080/nuxeo");
- nxClient.setAuthType(NuxeoRESTClient.AUTH_TYPE_BASIC);
- nxClient.setBasicAuthentication("Administrator", "Administrator");
- return nxClient;
- }
-
- private void verbose(String msg) {
- System.out.println("PersonNuxeoResource: " + msg);
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.collectionspace.hello.services.nuxeo;
-
-
-import javax.security.auth.callback.Callback;
-
-/**
- * Copied from jbossx
- *
- * An implementation of Callback that simply obtains an Object to be used
- * as the authentication credential. Interpretation of the Object is up to
- * the LoginModules that validate the credential.
- *
- * @author Scott.Stark@jboss.org
- */
-public class NuxeoCallback implements Callback {
-
- private final String prompt;
-
- private Object credential;
-
- public NuxeoCallback() {
- this("");
- }
-
- public NuxeoCallback(String prompt) {
- this.prompt = prompt;
- }
-
- public String getPrompt() {
- return prompt;
- }
-
- public Object getCredential() {
- return credential;
- }
-
- public void setCredential(Object credential) {
- this.credential = credential;
- }
-
- public void clearCredential() {
- credential = null;
- }
-
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-/**
- * Copied from jbossx.
- *
- * @author Scott.Stark@jboss.org
- */
-public class NuxeoCallbackHandler implements CallbackHandler {
-
- private final String username;
- private char[] password;
- private final Object credential;
-
- /**
- * Initializes the UsernamePasswordHandler with the username and password to
- * use.
- *
- * @param username the user name
- * @param password the password for this user
- */
- public NuxeoCallbackHandler(String username, char[] password) {
- this.username = username;
- this.password = password;
- credential = password;
- }
-
- public NuxeoCallbackHandler(String username, Object credential) {
- this.username = username;
- this.credential = credential;
- if (credential instanceof char[]) {
- password = (char[]) credential;
- } else if (credential instanceof CharSequence) {
- password = credential.toString().toCharArray();
- }
- }
-
- /**
- * Sets any NameCallback name property to the instance username, sets any
- * PasswordCallback password property to the instance, and any password.
- *
- * @exception UnsupportedCallbackException,
- * thrown if any callback of type other than NameCallback or
- * PasswordCallback are seen.
- */
- public void handle(Callback[] callbacks)
- throws UnsupportedCallbackException {
- for (Callback c : callbacks) {
- if (c instanceof NameCallback) {
- NameCallback nc = (NameCallback) c;
- nc.setName(username);
- } else if (c instanceof PasswordCallback) {
- PasswordCallback pc = (PasswordCallback) c;
- if (password == null) {
- // We were given an opaque Object credential but a char[] is
- // requested?
- if (credential != null) {
- String tmp = credential.toString();
- password = tmp.toCharArray();
- }
- }
- pc.setPassword(password);
- } else if (c instanceof NuxeoCallback) {
- NuxeoCallback oc = (NuxeoCallback) c;
- oc.setCredential(credential);
- } else {
- throw new UnsupportedCallbackException(c,
- "Unrecognized Callback");
- }
- }
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
-
-public class NuxeoLoginConfiguration extends Configuration {
-
- private final Configuration parent;
- public static final String LOGIN_DOMAIN = "nuxeo-client-login";
-
- public NuxeoLoginConfiguration(Configuration parent) {
- this.parent = parent;
- }
-
- @Override
- public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
-
- if (LOGIN_DOMAIN.equals(name)) {
- AppConfigurationEntry[] entries = new AppConfigurationEntry[1];
-
- Map<String, Object> options = new HashMap<String, Object>();
-
- options.put("restore-login-identity", "True");
- options.put("multi-threaded", "True");
-
- entries[0] = new AppConfigurationEntry("org.jboss.security.ClientLoginModule", LoginModuleControlFlag.REQUIRED, options);
-
-
- return entries;
- } else {
- return parent.getAppConfigurationEntry(name);
- }
- }
-
- @Override
- public void refresh() {
- if (parent != null) {
- parent.refresh();
- }
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-public class NuxeoLoginContextFactory {
-
-
- private static boolean initDone=false;
-
- private static void initLoginConfig()
- {
- if (initDone)
- return;
-
- Configuration parentConfig = null;
- try {
- parentConfig = Configuration.getConfiguration();
- } catch (Exception e) {
- // do nothing - this can happen if default configuration provider is not correctly configured
- // for examnple FileConfig fails if no config file was defined
- }
- Configuration config = new NuxeoLoginConfiguration(parentConfig);
- Configuration.setConfiguration(config);
-
- initDone=true;
-
- }
-
-
- public static LoginContext getLoginContext(CallbackHandler handler) throws LoginException
- {
- initLoginConfig();
- return new LoginContext(NuxeoLoginConfiguration.LOGIN_DOMAIN, handler);
- }
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * Nuxeo - initial API and implementation
- *
- * $Id: JOOoConvertPluginImpl.java 18651 2007-05-13 20:28:53Z sfermigier $
- */
-package org.collectionspace.hello.services.nuxeo;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.Map;
-
-
-import org.restlet.Client;
-import org.restlet.data.ChallengeResponse;
-import org.restlet.data.ChallengeScheme;
-import org.restlet.data.Cookie;
-import org.restlet.data.Form;
-import org.restlet.data.MediaType;
-import org.restlet.data.Method;
-import org.restlet.data.Parameter;
-import org.restlet.data.Protocol;
-import org.restlet.data.Request;
-import org.restlet.resource.OutputRepresentation;
-import org.restlet.resource.Representation;
-import org.restlet.util.Series;
-
-public class NuxeoRESTClient {
-
- public static final int AUTH_TYPE_NONE = 0;
- public static final int AUTH_TYPE_BASIC = 1;
- public static final int AUTH_TYPE_SECRET = 2;
- protected String baseURL = "http://127.0.0.1:8080/nuxeo";
- protected String restPrefix = "restAPI";
- protected String davPrefix = "dav";
- protected List<Cookie> cookies;
- protected int authType = AUTH_TYPE_NONE;
- protected String userName;
- protected String password;
- protected String secretToken;
- protected Client restClient;
-
- public NuxeoRESTClient(String baseURL) {
- this.baseURL = baseURL;
- }
-
- public NuxeoRESTClient(String protocol, String serverIP, String serverPort) {
- this(protocol, serverIP, serverPort, "nuxeo");
- }
-
- public NuxeoRESTClient(String protocol, String serverIP, String serverPort,
- String servletPath) {
- StringBuffer sb = new StringBuffer();
- sb.append(protocol);
- sb.append("://");
- sb.append(serverIP);
- if (serverPort != null && !serverIP.equals("80")) {
- sb.append(':');
- sb.append(serverPort);
- }
- sb.append(servletPath);
- sb.append('/');
- baseURL = sb.toString();
- }
-
- public void setBasicAuthentication(String userName, String password) {
- authType = AUTH_TYPE_BASIC;
- this.userName = userName;
- this.password = password;
- }
-
- public void setSharedSecretAuthentication(String userName,
- String secretToken) {
- authType = AUTH_TYPE_SECRET;
- this.userName = userName;
- this.secretToken = secretToken;
- }
-
- public void setCookies(List<Cookie> cookies) {
- this.cookies = cookies;
- }
-
- public Representation post(List<String> pathParams,
- Map<String, String> queryParams, InputStream istream) {
- String path = "";
- StringBuffer pathBuffer = new StringBuffer();
-
- if (pathParams != null) {
- for (String p : pathParams) {
- pathBuffer.append(p);
- pathBuffer.append('/');
- }
- path = pathBuffer.toString();
- }
-
- return post(path, queryParams, istream);
- }
-
- public Representation post(String subPath,
- Map<String, String> queryParams, InputStream istream) {
- StringBuffer urlBuffer = new StringBuffer();
-
- if (subPath.startsWith("/")) {
- subPath = subPath.substring(1);
- }
- if (subPath.endsWith("/")) {
- subPath = subPath.substring(0, subPath.length() - 1);
- }
-
- urlBuffer.append(baseURL);
- urlBuffer.append('/');
- urlBuffer.append(restPrefix);
- urlBuffer.append('/');
- urlBuffer.append(subPath);
-
- if (queryParams != null) {
- urlBuffer.append('?');
- for (String qpName : queryParams.keySet()) {
- urlBuffer.append(qpName);
- urlBuffer.append('=');
- urlBuffer.append(queryParams.get(qpName).replaceAll(" ", "%20"));
- urlBuffer.append('&');
- }
- }
-
- String completeURL = urlBuffer.toString();
-
- Request request = new Request(Method.POST, completeURL);
-
- setupAuth(request);
- setupCookies(request);
- final InputStream in = istream;
- request.setEntity(new OutputRepresentation(
- MediaType.MULTIPART_FORM_DATA) {
-
- @Override
- public void write(OutputStream outputStream) throws IOException {
- byte[] buffer = new byte[1024 * 64];
- int read;
- while ((read = in.read(buffer)) != -1) {
- outputStream.write(buffer, 0, read);
- }
-
- }
- });
-
- return getRestClient().handle(request).getEntity();
- }
-
- public Representation get(List<String> pathParams,
- Map<String, String> queryParams) {
- String path = "";
- StringBuffer pathBuffer = new StringBuffer();
-
- if (pathParams != null) {
- for (String p : pathParams) {
- pathBuffer.append(p);
- pathBuffer.append('/');
- }
- path = pathBuffer.toString();
- }
-
- return get(path, queryParams);
- }
-
- public Representation get(String subPath,
- Map<String, String> queryParams) {
- StringBuffer urlBuffer = new StringBuffer();
-
- if (subPath.startsWith("/")) {
- subPath = subPath.substring(1);
- }
- if (subPath.endsWith("/")) {
- subPath = subPath.substring(0, subPath.length() - 1);
- }
-
- urlBuffer.append(baseURL);
- urlBuffer.append('/');
- urlBuffer.append(restPrefix);
- urlBuffer.append('/');
- urlBuffer.append(subPath);
-
- if (queryParams != null) {
- urlBuffer.append('?');
- for (String qpName : queryParams.keySet()) {
- urlBuffer.append(qpName);
- urlBuffer.append('=');
- urlBuffer.append(queryParams.get(qpName).replaceAll(" ", "%20"));
- urlBuffer.append('&');
- }
- }
-
- String completeURL = urlBuffer.toString();
- System.out.println("\nNuxeoRESTClient: calling " + completeURL);
- Request request = new Request(Method.GET, completeURL);
- setupAuth(request);
- setupCookies(request);
-
- return getRestClient().handle(request).getEntity();
- }
-
- protected void setupAuth(Request request) {
-
- if (authType == AUTH_TYPE_BASIC) {
- ChallengeScheme scheme = ChallengeScheme.HTTP_BASIC;
- ChallengeResponse authentication = new ChallengeResponse(scheme,
- userName, password);
- request.setChallengeResponse(authentication);
-
- } else if (authType == AUTH_TYPE_SECRET) {
- Series<Parameter> additionnalHeaders = new Form();
-
- Map<String, String> securityHeaders = PortalSSOAuthenticationProvider.getHeaders(
- secretToken, userName);
-
- for (String hn : securityHeaders.keySet()) {
- additionnalHeaders.add(hn, securityHeaders.get(hn));
- }
-
- request.getAttributes().put("org.restlet.http.headers",
- additionnalHeaders);
- }
- }
-
- protected void setupCookies(Request request) {
- if (cookies != null) {
- request.getCookies().clear();
- for (Cookie cookie : cookies) {
- request.getCookies().add(cookie);
- }
- }
-
- }
-
- protected Client getRestClient() {
- if (restClient == null) {
- if (baseURL.startsWith("https")) {
- restClient = new Client(Protocol.HTTPS);
- } else {
- restClient = new Client(Protocol.HTTP);
- }
- }
-
- return restClient;
- }
-
- public int getAuthType() {
- return authType;
- }
-
- public void setAuthType(int authType) {
- this.authType = authType;
- }
-
- public String getDavPrefix() {
- return davPrefix;
- }
-
- public void setDavPrefix(String davPrefix) {
- this.davPrefix = davPrefix;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getRestPrefix() {
- return restPrefix;
- }
-
- public void setRestPrefix(String restPrefix) {
- this.restPrefix = restPrefix;
- }
-
- public String getSecretToken() {
- return secretToken;
- }
-
- public void setSecretToken(String secretToken) {
- this.secretToken = secretToken;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * Nuxeo - initial API and implementation
- *
- * $Id: JOOoConvertPluginImpl.java 18651 2007-05-13 20:28:53Z sfermigier $
- */
-
-package org.collectionspace.hello.services.nuxeo;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-
-import com.noelios.restlet.util.Base64;
-
-public class PortalSSOAuthenticationProvider {
-
- private static final String TOKEN_SEP = ":";
-
- private static final String TS_HEADER = "NX_TS";
-
- private static final String RANDOM_HEADER = "NX_RD";
-
- private static final String TOKEN_HEADER = "NX_TOKEN";
-
- private static final String USER_HEADER = "NX_USER";
-
- public static Map<String, String> getHeaders(String secretKey,
- String userName) {
-
- Map<String, String> headers = new HashMap<String, String>();
-
- Date timestamp = new Date();
- int randomData = new Random(timestamp.getTime()).nextInt();
-
- String clearToken = timestamp.getTime() + TOKEN_SEP + randomData
- + TOKEN_SEP + secretKey + TOKEN_SEP + userName;
-
- byte[] hashedToken;
-
- try {
- hashedToken = MessageDigest.getInstance("MD5").digest(
- clearToken.getBytes());
- } catch (NoSuchAlgorithmException e) {
- return null;
- }
-
- String base64HashedToken = Base64.encodeBytes(hashedToken);
-
- headers.put(TS_HEADER, String.valueOf(timestamp.getTime()));
- headers.put(RANDOM_HEADER, String.valueOf(randomData));
- headers.put(TOKEN_HEADER, base64HashedToken);
- headers.put(USER_HEADER, userName);
-
- return headers;
- }
-
-}
+++ /dev/null
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-java.naming.provider.url=jnp://localhost:1099
\ No newline at end of file
+++ /dev/null
-org.nuxeo.runtime.server.enabled=false
-org.nuxeo.runtime.streaming.isServer=false
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">\r
-<web-app>\r
- <display-name>HelloworldNuxeo</display-name>\r
-\r
- <context-param>\r
- <param-name>javax.ws.rs.Application</param-name>\r
- <param-value>org.collectionspace.hello.services.HelloworldNuxeoApplication</param-value>\r
- </context-param>\r
-\r
- <context-param>\r
- <param-name>resteasy.servlet.mapping.prefix</param-name>\r
- <param-value>/cspace-nuxeo</param-value>\r
- </context-param>\r
-\r
- <listener>\r
- <listener-class>\r
- org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\r
- </listener-class>\r
- </listener>\r
-\r
- <servlet>\r
- <servlet-name>Resteasy</servlet-name>\r
- <servlet-class>\r
- org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\r
- </servlet-class>\r
- </servlet>\r
-\r
- <servlet-mapping>\r
- <servlet-name>Resteasy</servlet-name>\r
- <url-pattern>/cspace-nuxeo/*</url-pattern>\r
- </servlet-mapping>\r
-\r
-</web-app>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<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>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- <artifactId>helloworld</artifactId>
- <packaging>pom</packaging>
- <name>HelloWorld</name>
- <modules>
- <module>HelloWorldJaxb</module>
- <module>HelloWorldClient</module>
- <module>HelloWorldNuxeoService</module>
- </modules>
- <repositories>
- <repository>
- <id>jboss</id>
- <url>http://repository.jboss.org/maven2</url>
- </repository>
- <repository>
- <id>sun</id>
- <url>http://download.java.net/maven/2</url>
- </repository>
- <repository>
- <id>java.net</id>
- <name>java.net Maven Repository</name>
- <url>
- https://maven-repository.dev.java.net/nonav/repository
- </url>
- <layout>legacy</layout>
- </repository>
- <repository>
- <id>maven2-repository.dev.java.net</id>
- <name>Java.net Maven 2 Repository</name>
- <url>http://download.java.net/maven/2</url>
- </repository>
- </repositories>
- <pluginRepositories>
-
- <pluginRepository>
- <id>java.net</id>
- <name>java.net Maven Repository</name>
- <url>
- https://maven-repository.dev.java.net/nonav/repository
- </url>
- <layout>legacy</layout>
- </pluginRepository>
- <pluginRepository>
- <id>maven2-repository.dev.java.net</id>
- <name>Java.net Maven 2 Repository</name>
- <url>http://download.java.net/maven/2</url>
- </pluginRepository>
- </pluginRepositories>
-
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <unzipCommand>
- /usr/bin/unzip -o > err.txt
- </unzipCommand>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.0.1</version>
- <configuration>
-
- <warSourceExcludes>
- WEB-INF/lib/*.jar
- </warSourceExcludes>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
-
- </manifest>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.jvnet.jaxb2.maven2</groupId>
- <artifactId>maven-jaxb2-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <args>
- <arg>-XtoString</arg>
- <arg>-Xinject-listener-code</arg>
-
- <!-- <arg>-Xcollection-setter-injector</arg>
- <arg>-Xfluent-api</arg> -->
- </args>
- <plugins>
- <plugin>
- <groupId>
- org.jvnet.jaxb2_commons
- </groupId>
- <artifactId>basic</artifactId>
- <version>0.4.1</version>
- </plugin>
- <plugin>
- <groupId>
- org.jvnet.jaxb2-commons
- </groupId>
- <artifactId>
- property-listener-injector
- </artifactId>
- <version>1.0</version>
- </plugin>
- <!--
- <plugin>
- <groupId>
- net.java.dev.jaxb2-commons
- </groupId>
- <artifactId>jaxb-fluent-api</artifactId>
- <version>2.0.1</version>
- </plugin>
- -->
- </plugins>
- <generatePackage>
- org.collectionspace.hello
- </generatePackage>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>net.java.dev.jaxb2-commons</groupId>
- <artifactId>jaxb-fluent-api</artifactId>
- <version>2.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>5.6</version>
- <scope>test</scope>
- <classifier>jdk15</classifier>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>jaxrs-api</artifactId>
- <version>1.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>net.java.dev.jaxb2-commons</groupId>
- <artifactId>jaxb-fluent-api</artifactId>
- <version>2.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2-commons</groupId>
- <artifactId>property-listener-injector</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2_commons</groupId>
- <artifactId>runtime</artifactId>
- <version>0.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.7</version>
- </dependency>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>5.6</version>
- <scope>test</scope>
- <classifier>jdk15</classifier>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.5.2</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.2</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.5</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.jgoodies</groupId>
- <artifactId>binding</artifactId>
- <version>2.0.2</version>
- </dependency>
- <dependency>
- <groupId>com.jgoodies</groupId>
- <artifactId>forms</artifactId>
- <version>1.2.0</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-</project>
+++ /dev/null
-<element name="Identifier" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">\r
- <element name="ID">\r
- <data type="string"/>\r
- </element>\r
-</element>\r
-
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>\r
-\r
-<!--\r
-\r
- CSID (CollectionSpace Entity Identifier)\r
- \r
- A schema defining the structure of a CollectionSpace entity identifier.\r
- This identifier is used by clients of the service to identify CollectionSpace\r
- Service entities.\r
-\r
- This schema was created for the CollectionSpace system,\r
- http://www.collectionspace.org/\r
- \r
- It is written in the XML syntax of the RELAX NG schema language,\r
- http://relaxng.org/\r
-\r
- {\r
-\r
--->\r
-\r
-<element name="csid"\r
- xmlns:xsd="http://relaxng.org/ns/structure/1.0"\r
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">\r
-\r
- <element name="id">\r
- <data type="xsd:NMTOKEN"/>\r
- </element>\r
-\r
-</element>\r
-
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<grammar \r
- xmlns="http://relaxng.org/ns/structure/1.0"\r
- xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"\r
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">\r
- <start>\r
- <element name="dsid">\r
- <ref name="dsid-content"/>\r
- </element>\r
- </start>\r
- \r
- <define name="dsid-content">\r
- <data type="string"/>\r
- </define>\r
-</grammar>
\ No newline at end of file
+++ /dev/null
-<library>\r
- <book id="-0836217462">\r
- <isbn>\r
- 0836217462\r
- </isbn>\r
- <title>\r
- Being a Dog Is a Full-Time Job\r
- </title>\r
- <author-ref id="Charles-M.-Schulz"/>\r
- <character-ref id="Peppermint-Patty"/>\r
- <character-ref id="Snoopy"/>\r
- <character-ref id="Schroeder"/>\r
- <character-ref id="Lucy"/>\r
- </book>\r
- <book id="-0805033106">\r
- <isbn>\r
- 0805033106\r
- </isbn>\r
- <title>\r
- Peanuts Every Sunday\r
- </title>\r
- <author-ref id="Charles-M.-Schulz"/>\r
- <character-ref id="Sally-Brown"/>\r
- <character-ref id="Snoopy"/>\r
- <character-ref id="Linus"/>\r
- <character-ref id="Snoopy"/>\r
- </book>\r
- <author id="Charles-M.-Schulz">\r
- <name>\r
- Charles M. Schulz\r
- </name>\r
- <nickName>\r
- SPARKY\r
- </nickName>\r
- <born>\r
- November 26, 1922\r
- </born>\r
- <dead>\r
- February 12, 2000\r
- </dead>\r
- </author>\r
- <character id="Peppermint-Patty">\r
- <name>\r
- Peppermint Patty\r
- </name>\r
- <since>\r
- Aug. 22, 1966\r
- </since>\r
- <qualification>\r
- bold, brash and tomboyish\r
- </qualification>\r
- </character>\r
- <character id="Snoopy">\r
- <name>\r
- Snoopy\r
- </name>\r
- <since>\r
- October 4, 1950\r
- </since>\r
- <qualification>\r
- extroverted beagle\r
- </qualification>\r
- </character>\r
- <character id="Schroeder">\r
- <name>\r
- Schroeder\r
- </name>\r
- <since>\r
- May 30, 1951\r
- </since>\r
- <qualification>\r
- brought classical music to the Peanuts strip\r
- </qualification>\r
- </character>\r
- <character id="Lucy">\r
- <name>\r
- Lucy\r
- </name>\r
- <since>\r
- March 3, 1952\r
- </since>\r
- <qualification>\r
- bossy, crabby and selfish\r
- </qualification>\r
- </character>\r
- <character id="Sally-Brown">\r
- <name>\r
- Sally Brown\r
- </name>\r
- <since>\r
- Aug, 22, 1960\r
- </since>\r
- <qualification>\r
- always looks for the easy way out\r
- </qualification>\r
- </character>\r
- <character id="Linus">\r
- <name>\r
- Linus\r
- </name>\r
- <since>\r
- Sept. 19, 1952\r
- </since>\r
- <qualification>\r
- the intellectual of the gang\r
- </qualification>\r
- </character>\r
-</library>\r
+++ /dev/null
-<grammar\r
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"\r
- xmlns="http://relaxng.org/ns/structure/1.0">\r
- <start>\r
- <ref name="library"/>\r
- </start>\r
- <define name="library">\r
- <element name="library">\r
- <oneOrMore>\r
- <ref name="book"/>\r
- </oneOrMore>\r
- <zeroOrMore>\r
- <ref name="author"/>\r
- </zeroOrMore>\r
- <zeroOrMore>\r
- <ref name="character"/>\r
- </zeroOrMore>\r
- </element>\r
- </define>\r
- <define name="author">\r
- <element name="author">\r
- <attribute name="id">\r
- <data type="ID"/>\r
- </attribute>\r
- <element name="name">\r
- <text/>\r
- </element>\r
- <element name="nickName">\r
- <text/>\r
- </element>\r
- <element name="born">\r
- <text/>\r
- </element>\r
- <element name="dead">\r
- <text/>\r
- </element>\r
- </element>\r
- </define>\r
- <define name="book">\r
- <element name="book">\r
- <ref name="id-attribute"/>\r
- <ref name="isbn"/>\r
- <ref name="title"/>\r
- <zeroOrMore>\r
- <element name="author-ref">\r
- <attribute name="id">\r
- <data type="IDREF"/>\r
- </attribute>\r
- <empty/>\r
- </element>\r
- </zeroOrMore>\r
- <zeroOrMore>\r
- <element name="character-ref">\r
- <attribute name="id">\r
- <data type="IDREF"/>\r
- </attribute>\r
- <empty/>\r
- </element>\r
- </zeroOrMore>\r
- </element>\r
- </define>\r
- <define name="id-attribute">\r
- <attribute name="id">\r
- <data type="ID"/>\r
- </attribute>\r
- </define>\r
- <define name="character">\r
- <element name="character">\r
- <ref name="id-attribute"/>\r
- <ref name="name"/>\r
- <ref name="since"/>\r
- <ref name="qualification"/>\r
- </element>\r
- </define>\r
- <define name="isbn">\r
- <element name="isbn">\r
- <text/>\r
- </element>\r
- </define>\r
- <define name="name">\r
- <element name="name">\r
- <text/>\r
- </element>\r
- </define>\r
- <define name="nickName">\r
- <element name="nickName">\r
- <text/>\r
- </element>\r
- </define>\r
- <define name="qualification">\r
- <element name="qualification">\r
- <text/>\r
- </element>\r
- </define>\r
- <define name="since">\r
- <element name="since">\r
- <data type="date"/>\r
- </element>\r
- </define>\r
- <define name="title">\r
- <element name="title">\r
- <text/>\r
- </element>\r
- </define>\r
-</grammar>\r
+++ /dev/null
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">\r
- <xs:element name="library">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name="book" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name="isbn" type="xs:string"/>\r
- <xs:element name="title" type="xs:string"/> \r
- <xs:element name="author-ref" minOccurs="0"\r
- maxOccurs="unbounded">\r
- <xs:complexType> \r
- <xs:attribute name="id" type="xs:IDREF"\r
- use="required"/>\r
- </xs:complexType>\r
- </xs:element> \r
- <xs:element name="character-ref" minOccurs="0"\r
- maxOccurs="unbounded">\r
- <xs:complexType> \r
- <xs:attribute name="id" type="xs:IDREF"\r
- use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attribute name="id" type="xs:ID" use="required"/>\r
- </xs:complexType>\r
- </xs:element> \r
- <xs:element name="author" minOccurs="0"\r
- maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref="name"/>\r
- <xs:element name="nickName" type="xs:string"/>\r
- <xs:element name="born" type="xs:string"/>\r
- <xs:element name="dead" type="xs:string"/>\r
- </xs:sequence>\r
- <xs:attribute name="id" type="xs:ID" use="required"/>\r
- </xs:complexType>\r
- </xs:element> \r
- <xs:element name="character" minOccurs="0"\r
- maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref="name"/>\r
- <xs:element name="since" type="xs:string"/>\r
- <xs:element name="qualification" type="xs:string"/>\r
- </xs:sequence>\r
- <xs:attribute name="id" type="xs:ID" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="name" type="xs:string"/>\r
-</xs:schema>\r
+++ /dev/null
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-Submitted by nelson on Thu, 2007-06-07 16:10. ::
-
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-1. Definitions.
-
-1.1. "Contributor" means each individual or entity that
-creates or contributes to the creation of Modifications.
-
-1.2. "Contributor Version" means the combination of the
-Original Software, prior Modifications used by a
-Contributor (if any), and the Modifications made by that
-particular Contributor.
-
-1.3. "Covered Software" means (a) the Original Software, or
-(b) Modifications, or (c) the combination of files
-containing Original Software with files containing
-Modifications, in each case including portions thereof.
-
-1.4. "Executable" means the Covered Software in any form
-other than Source Code.
-
-1.5. "Initial Developer" means the individual or entity
-that first makes Original Software available under this
-License.
-
-1.6. "Larger Work" means a work which combines Covered
-Software or portions thereof with code not governed by the
-terms of this License.
-
-1.7. "License" means this document.
-
-1.8. "Licensable" means having the right to grant, to the
-maximum extent possible, whether at the time of the initial
-grant or subsequently acquired, any and all of the rights
-conveyed herein.
-
-1.9. "Modifications" means the Source Code and Executable
-form of any of the following:
-
-A. Any file that results from an addition to,
-deletion from or modification of the contents of a
-file containing Original Software or previous
-Modifications;
-
-B. Any new file that contains any part of the
-Original Software or previous Modification; or
-
-C. Any new file that is contributed or otherwise made
-available under the terms of this License.
-
-1.10. "Original Software" means the Source Code and
-Executable form of computer software code that is
-originally released under this License.
-
-1.11. "Patent Claims" means any patent claim(s), now owned
-or hereafter acquired, including without limitation,
-method, process, and apparatus claims, in any patent
-Licensable by grantor.
-
-1.12. "Source Code" means (a) the common form of computer
-software code in which modifications are made and (b)
-associated documentation included in or with such code.
-
-1.13. "You" (or "Your") means an individual or a legal
-entity exercising rights under, and complying with all of
-the terms of, this License. For legal entities, "You"
-includes any entity which controls, is controlled by, or is
-under common control with You. For purposes of this
-definition, "control" means (a) the power, direct or
-indirect, to cause the direction or management of such
-entity, whether by contract or otherwise, or (b) ownership
-of more than fifty percent (50%) of the outstanding shares
-or beneficial ownership of such entity.
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, the
-Initial Developer hereby grants You a world-wide,
-royalty-free, non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Initial Developer,
-to use, reproduce, modify, display, perform,
-sublicense and distribute the Original Software (or
-portions thereof), with or without Modifications,
-and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using or selling of Original Software, to make, have
-made, use, practice, sell, and offer for sale, and/or
-otherwise dispose of the Original Software (or
-portions thereof).
-
-(c) The licenses granted in Sections 2.1(a) and (b)
-are effective on the date Initial Developer first
-distributes or otherwise makes the Original Software
-available to a third party under the terms of this
-License.
-
-(d) Notwithstanding Section 2.1(b) above, no patent
-license is granted: (1) for code that You delete from
-the Original Software, or (2) for infringements
-caused by: (i) the modification of the Original
-Software, or (ii) the combination of the Original
-Software with other software or devices.
-
-2.2. Contributor Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, each
-Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Contributor to
-use, reproduce, modify, display, perform, sublicense
-and distribute the Modifications created by such
-Contributor (or portions thereof), either on an
-unmodified basis, with other Modifications, as
-Covered Software and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using, or selling of Modifications made by that
-Contributor either alone and/or in combination with
-its Contributor Version (or portions of such
-combination), to make, use, sell, offer for sale,
-have made, and/or otherwise dispose of: (1)
-Modifications made by that Contributor (or portions
-thereof); and (2) the combination of Modifications
-made by that Contributor with its Contributor Version
-(or portions of such combination).
-
-(c) The licenses granted in Sections 2.2(a) and
-2.2(b) are effective on the date Contributor first
-distributes or otherwise makes the Modifications
-available to a third party.
-
-(d) Notwithstanding Section 2.2(b) above, no patent
-license is granted: (1) for any code that Contributor
-has deleted from the Contributor Version; (2) for
-infringements caused by: (i) third party
-modifications of Contributor Version, or (ii) the
-combination of Modifications made by that Contributor
-with other software (except as part of the
-Contributor Version) or other devices; or (3) under
-Patent Claims infringed by Covered Software in the
-absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-
-Any Covered Software that You distribute or otherwise make
-available in Executable form must also be made available in
-Source Code form and that Source Code form must be
-distributed only under the terms of this License. You must
-include a copy of this License with every copy of the
-Source Code form of the Covered Software You distribute or
-otherwise make available. You must inform recipients of any
-such Covered Software in Executable form as to how they can
-obtain such Covered Software in Source Code form in a
-reasonable manner on or through a medium customarily used
-for software exchange.
-
-3.2. Modifications.
-
-The Modifications that You create or to which You
-contribute are governed by the terms of this License. You
-represent that You believe Your Modifications are Your
-original creation(s) and/or You have sufficient rights to
-grant the rights conveyed by this License.
-
-3.3. Required Notices.
-
-You must include a notice in each of Your Modifications
-that identifies You as the Contributor of the Modification.
-You may not remove or alter any copyright, patent or
-trademark notices contained within the Covered Software, or
-any notices of licensing or any descriptive text giving
-attribution to any Contributor or the Initial Developer.
-
-3.4. Application of Additional Terms.
-
-You may not offer or impose any terms on any Covered
-Software in Source Code form that alters or restricts the
-applicable version of this License or the recipients'
-rights hereunder. You may choose to offer, and to charge a
-fee for, warranty, support, indemnity or liability
-obligations to one or more recipients of Covered Software.
-However, you may do so only on Your own behalf, and not on
-behalf of the Initial Developer or any Contributor. You
-must make it absolutely clear that any such warranty,
-support, indemnity or liability obligation is offered by
-You alone, and You hereby agree to indemnify the Initial
-Developer and every Contributor for any liability incurred
-by the Initial Developer or such Contributor as a result of
-warranty, support, indemnity or liability terms You offer.
-
-3.5. Distribution of Executable Versions.
-
-You may distribute the Executable form of the Covered
-Software under the terms of this License or under the terms
-of a license of Your choice, which may contain terms
-different from this License, provided that You are in
-compliance with the terms of this License and that the
-license for the Executable form does not attempt to limit
-or alter the recipient's rights in the Source Code form
-from the rights set forth in this License. If You
-distribute the Covered Software in Executable form under a
-different license, You must make it absolutely clear that
-any terms which differ from this License are offered by You
-alone, not by the Initial Developer or Contributor. You
-hereby agree to indemnify the Initial Developer and every
-Contributor for any liability incurred by the Initial
-Developer or such Contributor as a result of any such terms
-You offer.
-
-3.6. Larger Works.
-
-You may create a Larger Work by combining Covered Software
-with other code not governed by the terms of this License
-and distribute the Larger Work as a single product. In such
-a case, You must make sure the requirements of this License
-are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-
-Sun Microsystems, Inc. is the initial license steward and
-may publish revised and/or new versions of this License
-from time to time. Each version will be given a
-distinguishing version number. Except as provided in
-Section 4.3, no one other than the license steward has the
-right to modify this License.
-
-4.2. Effect of New Versions.
-
-You may always continue to use, distribute or otherwise
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. If the Initial Developer includes a
-notice in the Original Software prohibiting it from being
-distributed or otherwise made available under any
-subsequent version of the License, You must distribute and
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. Otherwise, You may also choose to
-use, distribute or otherwise make the Covered Software
-available under the terms of any subsequent version of the
-License published by the license steward.
-
-4.3. Modified Versions.
-
-When You are an Initial Developer and You want to create a
-new license for Your Original Software, You may create and
-use a modified version of this License if You: (a) rename
-the license and remove any references to the name of the
-license steward (except to note that the license differs
-from this License); and (b) otherwise make it clear that
-the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
-BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
-SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
-PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
-COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
-INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
-ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
-WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
-DISCLAIMER.
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will
-terminate automatically if You fail to comply with terms
-herein and fail to cure such breach within 30 days of
-becoming aware of the breach. Provisions which, by their
-nature, must remain in effect beyond the termination of
-this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding
-declaratory judgment actions) against Initial Developer or
-a Contributor (the Initial Developer or Contributor against
-whom You assert such claim is referred to as "Participant")
-alleging that the Participant Software (meaning the
-Contributor Version where the Participant is a Contributor
-or the Original Software where the Participant is the
-Initial Developer) directly or indirectly infringes any
-patent, then any and all rights granted directly or
-indirectly to You by such Participant, the Initial
-Developer (if the Initial Developer is not the Participant)
-and all Contributors under Sections 2.1 and/or 2.2 of this
-License shall, upon 60 days notice from Participant
-terminate prospectively and automatically at the expiration
-of such 60 day notice period, unless if within such 60 day
-period You withdraw Your claim with respect to the
-Participant Software against such Participant either
-unilaterally or pursuant to a written agreement with
-Participant.
-
-6.3. In the event of termination under Sections 6.1 or 6.2
-above, all end user licenses that have been validly granted
-by You or any distributor hereunder prior to termination
-(excluding licenses granted to You by any distributor)
-shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
-INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
-COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
-LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
-CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
-LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
-STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
-INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
-APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
-NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
-APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a "commercial item," as that term is
-defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
-computer software" (as that term is defined at 48 C.F.R. ¤
-252.227-7014(a)(1)) and "commercial computer software
-documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
-1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
-through 227.7202-4 (June 1995), all U.S. Government End Users
-acquire Covered Software with only those rights set forth herein.
-This U.S. Government Rights clause is in lieu of, and supersedes,
-any other FAR, DFAR, or other clause or provision that addresses
-Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the
-extent necessary to make it enforceable. This License shall be
-governed by the law of the jurisdiction specified in a notice
-contained within the Original Software (except to the extent
-applicable law, if any, provides otherwise), excluding such
-jurisdiction's conflict-of-law provisions. Any litigation
-relating to this License shall be subject to the jurisdiction of
-the courts located in the jurisdiction and venue specified in a
-notice contained within the Original Software, with the losing
-party responsible for costs, including, without limitation, court
-costs and reasonable attorneys' fees and expenses. The
-application of the United Nations Convention on Contracts for the
-International Sale of Goods is expressly excluded. Any law or
-regulation which provides that the language of a contract shall
-be construed against the drafter shall not apply to this License.
-You agree that You alone are responsible for compliance with the
-United States export administration regulations (and the export
-control laws and regulation of any other countries) when You use,
-distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is
-responsible for claims and damages arising, directly or
-indirectly, out of its utilization of rights under this License
-and You agree to work with Initial Developer and Contributors to
-distribute such responsibility on an equitable basis. Nothing
-herein is intended or shall be deemed to constitute any admission
-of liability.
-
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>README</title>
- </head>
- <body>
- <h2>README</h2>
- <h3>WADL v. 1.1-SNAPSHOT</h3>
- <p>
- WADL is designed to provide a machine process-able description of
- HTTP-based Web applications. To date such applications have
- been mainly described using a combination of textual description
- and XML schema, WADL aims to provide a machine process-able
- description of such applications.
- </p>
- <p>
- This distribution contains the following files:
- </p>
- <dl>
- <dt><code>./bin</code></dt>
- <dd>Scripts for running the commandline tool.</dd>
- <dt><code>./lib</code></dt>
- <dd>The libraries required to run the commandline tools and the Ant task.</dd>
- <dt><code>./samples</code></dt>
- <dd>Some examples, showing how to use the different tools provided.</dd>
- </dl>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-README
-
- WADL v. 1.1-SNAPSHOT
-
- WADL is designed to provide a machine process-able description of
- HTTP-based Web applications. To date such applications have
- been mainly described using a combination of textual description
- and XML schema, WADL aims to provide a machine process-able
- description of such applications.
-
- This distribution contains the following files:
-
- ./bin
- Scripts for running the commandline tool.
-
- ./lib
- The libraries required to run the commandline tools and the Ant
- task.
-
- ./samples
- Some examples, showing how to use the different tools provided.
+++ /dev/null
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# The contents of this file are subject to the terms
-# of the Common Development and Distribution License
-# (the "License"). You may not use this file except
-# in compliance with the License.
-
-# You can obtain a copy of the license at
-# http://www.opensource.org/licenses/cddl1.php
-# See the License for the specific language governing
-# permissions and limitations under the License.
-# ----------------------------------------------------------------------------
-
-if [ -f /etc/wadlrc ] ; then
- . /etc/wadlrc
-fi
-
-if [ -f "$HOME/.wadlrc" ] ; then
- . "$HOME/.wadlrc"
-fi
-
-# OS specific support. $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- Darwin*) darwin=true
- if [ -z "$JAVA_VERSION" ] ; then
- JAVA_VERSION="CurrentJDK"
- else
- echo "Using Java version: $JAVA_VERSION"
- fi
- if [ -z "$JAVA_HOME" ] ; then
- JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
- fi
- ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
- if [ -e /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
-fi
-
-if [ -z "$WADL_HOME" ] ; then
- # try to find WADL
- if [ -d /opt/wadl ] ; then
- WADL_HOME=/opt/wadl
- fi
-
- if [ -d "$HOME/wadl" ] ; then
- WADL_HOME="$HOME/wadl"
- fi
-
- ## resolve links - $0 may be a link to wadl's home
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname "$PRG"`/$link"
- fi
- done
-
- saveddir=`pwd`
-
- WADL_HOME=`dirname "$PRG"`/..
-
- # make it fully qualified
- WADL_HOME=`cd "$WADL_HOME" && pwd`
-
- cd "$saveddir"
- # echo Using wadl at $WADL_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
- [ -n "$WADL_HOME" ] &&
- WADL_HOME=`cygpath --unix "$WADL_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-if [ -z "$JAVACMD" ] ; then
- if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD=java
- fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
- echo "Error: JAVA_HOME is not defined correctly."
- echo " We cannot execute $JAVACMD"
- exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
- echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.classworlds.Launcher
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
- [ -n "$WADL_HOME" ] &&
- WADL_HOME=`cygpath --path --windows "$WADL_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- [ -n "$HOME" ] &&
- HOME=`cygpath --path --windows "$HOME"`
-fi
-
-exec "$JAVACMD" \
- $WADL_OPTS \
- "-Dwadl.home=${WADL_HOME}" \
- -jar ${WADL_HOME}/lib/wadl-cmdline-1.0-SNAPSHOT.jar \
- "$@"
-
+++ /dev/null
-@REM ----------------------------------------------------------------------------\r
-@REM The contents of this file are subject to the terms\r
-@REM of the Common Development and Distribution License\r
-@REM (the "License"). You may not use this file except\r
-@REM in compliance with the License.\r
-@REM \r
-@REM You can obtain a copy of the license at\r
-@REM http://www.opensource.org/licenses/cddl1.php\r
-@REM See the License for the specific language governing\r
-@REM permissions and limitations under the License.\r
-\r
-@REM ----------------------------------------------------------------------------\r
-@REM \r
-\r
-@REM ----------------------------------------------------------------------------\r
-@REM Wadl2java Start Up Batch script\r
-@REM\r
-@REM Required ENV vars:\r
-@REM JAVA_HOME - location of a JDK home dir\r
-@REM\r
-@REM Optional ENV vars\r
-@REM WADL_HOME - location of wadl's installed home dir\r
-@REM WADL_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands\r
-@REM WADL_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending\r
-@REM WADL_OPTS - parameters passed to the Java VM when running Wadl2java\r
-@REM e.g. to debug Wadl2java itself, use\r
-@REM set WADL_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000\r
-@REM ----------------------------------------------------------------------------\r
-\r
-@REM Begin all REM lines with '@' in case WADL_BATCH_ECHO is 'on'\r
-@echo off\r
-@REM enable echoing my setting WADL_BATCH_ECHO to 'on'\r
-@if "%WADL_BATCH_ECHO%" == "on" echo %WADL_BATCH_ECHO%\r
-\r
-@REM Execute a user defined script before this one\r
-if exist "%HOME%\wadlrc_pre.bat" call "%HOME%\wadlrc_pre.bat"\r
-\r
-set ERROR_CODE=0\r
-\r
-@REM set local scope for the variables with windows NT shell\r
-if "%OS%"=="Windows_NT" @setlocal\r
-\r
-@REM ==== START VALIDATION ====\r
-if not "%JAVA_HOME%" == "" goto OkJHome\r
-\r
-echo.\r
-echo ERROR: JAVA_HOME not found in your environment.\r
-echo Please set the JAVA_HOME variable in your environment to match the\r
-echo location of your Java installation\r
-echo.\r
-goto error\r
-\r
-:OkJHome\r
-if exist "%JAVA_HOME%\bin\java.exe" goto chkMHome\r
-\r
-echo.\r
-echo ERROR: JAVA_HOME is set to an invalid directory.\r
-echo JAVA_HOME = %JAVA_HOME%\r
-echo Please set the JAVA_HOME variable in your environment to match the\r
-echo location of your Java installation\r
-echo.\r
-goto error\r
-\r
-:chkMHome\r
-if not "%WADL_HOME%"=="" goto valMHome\r
-\r
-if "%OS%"=="Windows_NT" SET WADL_HOME=%~dp0\..\r
-if not "%WADL_HOME%"=="" goto valMHome\r
-\r
-echo.\r
-echo ERROR: WADL_HOME not found in your environment.\r
-echo Please set the WADL_HOME variable in your environment to match the\r
-echo location of the Wadl2java installation\r
-echo.\r
-goto error\r
-\r
-:valMHome\r
-if exist "%WADL_HOME%\bin\wadl2java.bat" goto init\r
-\r
-echo.\r
-echo ERROR: WADL_HOME is set to an invalid directory.\r
-echo WADL_HOME = %WADL_HOME%\r
-echo Please set the WADL_HOME variable in your environment to match the\r
-echo location of the Wadl installation\r
-echo.\r
-goto error\r
-@REM ==== END VALIDATION ====\r
-\r
-:init\r
-@REM Decide how to startup depending on the version of windows\r
-\r
-@REM -- Win98ME\r
-if NOT "%OS%"=="Windows_NT" goto Win9xArg\r
-\r
-@REM -- 4NT shell\r
-if "%eval[2+2]" == "4" goto 4NTArgs\r
-\r
-@REM -- Regular WinNT shell\r
-set WADL_CMD_LINE_ARGS=%*\r
-goto endInit\r
-\r
-@REM The 4NT Shell from jp software\r
-:4NTArgs\r
-set WADL_CMD_LINE_ARGS=%$\r
-goto endInit\r
-\r
-:Win9xArg\r
-@REM Slurp the command line arguments. This loop allows for an unlimited number\r
-@REM of agruments (up to the command line limit, anyway).\r
-set WADL_CMD_LINE_ARGS=\r
-:Win9xApp\r
-if %1a==a goto endInit\r
-set WADL_CMD_LINE_ARGS=%WADL_CMD_LINE_ARGS% %1\r
-shift\r
-goto Win9xApp\r
-\r
-@REM Reaching here means variables are defined and arguments have been captured\r
-:endInit\r
-SET WADL_JAVA_EXE="%JAVA_HOME%\bin\java.exe"\r
-\r
-@REM Start Wadl2java\r
-%WADL_JAVA_EXE% %WADL_OPTS% "-Dwadl.home=%WADL_HOME%" -jar "%WADL_HOME%\lib\wadl-cmdline-1.1-SNAPSHOT.jar" %WADL_CMD_LINE_ARGS%\r
-if ERRORLEVEL 1 goto error\r
-goto end\r
-\r
-:error\r
-if "%OS%"=="Windows_NT" @endlocal\r
-set ERROR_CODE=1\r
-\r
-:end\r
-@REM set local scope for the variables with windows NT shell\r
-if "%OS%"=="Windows_NT" goto endNT\r
-\r
-@REM For old DOS remove the set variables from ENV - we assume they were not set\r
-@REM before we started - at least we don't leave any baggage around\r
-set WADL_JAVA_EXE=\r
-set WADL_CMD_LINE_ARGS=\r
-goto postExec\r
-\r
-:endNT\r
-@endlocal\r
-\r
-:postExec\r
-if exist "%HOME%\wadlrc_post.bat" call "%HOME%\wadlrc_post.bat"\r
-@REM pause the batch file if WADL_BATCH_PAUSE is set to 'on'\r
-if "%WADL_BATCH_PAUSE%" == "on" pause\r
-\r
-if "%WADL_TERMINATE_CMD%" == "on" exit %ERROR_CODE%\r
-\r
-exit /B %ERROR_CODE%\r
-\r
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>README</title>
- </head>
- <body>
- <h2>README</h2>
- <p>
- Each of the examples in this directory documents a way to
- convert a WADL file to a collection of Java sources.
- </p>
- <dl>
- <dt><code>./ant</code></dt>
- <dd>
- Convert a WADL file to Java sources using the Ant task.
- </dd>
- </dl>
- <dl>
- <dt><code>./maven</code></dt>
- <dd>
- Convert a WADL file to Java sources using the Maven 2
- plugin. Note that the plugin will actually be downloaded from
- the Maven repository. The plugin itself is not shipping as
- part of this distribution.
- </dd>
- </dl>
- <dl>
- <dt><code>./cmdline</code></dt>
- <dd>
- Convert a WADL file to Java sources using the commandline tool
- found in the <code>bin</code> directory in this distribution.
- </dd>
- </dl>
- <dl>
- <dt><code>./shared</code></dt>
- <dd>
- The WADL file and schemas used as input in each of these
- examples.
- </dd>
- </dl>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-README
-
- Each of the examples in this directory documents a way to convert a WADL
- file to a collection of Java sources.
-
- ./ant
- Convert a WADL file to Java sources using the Ant task.
-
- ./maven
- Convert a WADL file to Java sources using the Maven 2 plugin. Note
- that the plugin will actually be downloaded from the Maven
- repository. The plugin itself is not shipping as part of this
- distribution.
-
- ./cmdline
- Convert a WADL file to Java sources using the commandline tool
- found in the bin directory in this distribution.
-
- ./shared
- The WADL file and schemas used as input in each of these examples.
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-The contents of this file are subject to the terms
-of the Common Development and Distribution License
-(the "License"). You may not use this file except
-in compliance with the License.
-
-You can obtain a copy of the license at
-http://www.opensource.org/licenses/cddl1.php
-See the License for the specific language governing
-permissions and limitations under the License.
--->
-<project name="wadl2java-yahoo" default="generate-sources" basedir=".">
-
- <description>Builds stubs for accessing Yahoo Search service.</description>
-
- <taskdef name="wjc"
- classname="org.jvnet.ws.wadl2java.WJCTask">
- <classpath>
- <fileset dir="${basedir}/../../lib" includes="*.jar"
- excludes="wadl-cmdline*.jar"/>
- </classpath>
- </taskdef>
-
- <target name="generate-sources">
- <echo message="Compiling the description..." />
- <mkdir dir="gen-src"/>
- <wjc description="../share/YahooSearch.wadl"
- package="com.yahoo.search"
- autoSchemaPackage="true"
- target="gen-src">
- <customizations dir="${basedir}/../share"
- includes="binding.xjb" />
- <produces dir="gen-src"
- includes="**/*.java" />
- <depends dir="${basedir}/../share"
- includes="*.xsd"/>
- <depends dir="."
- includes="build.xml"/>
- </wjc>
- </target>
-
-</project>
+++ /dev/null
-#!/bin/sh
-
-#
-# An example showing how to use the commandline tools included in this
-# package.
-#
-
-mkdir -p ./gen-src
-
-../../bin/wadl2java \
- -o ./gen-src \
- -p com.yahoo.search \
- -c ../share/binding.xjb \
- ../share/YahooSearch.wadl
+++ /dev/null
-#\r
-# An example showing how to use the commandline tools included in this\r
-# package.\r
-#\r
-\r
-mkdir .\gen-src\r
-\r
-..\..\bin\wadl2java.bat -o ./gen-src -p com.yahoo.search -c ../share/binding.xjb ../share/YahooSearch.wadl\r
+++ /dev/null
-<?xml version="1.0"?>
-<project>
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.yahoo.search</groupId>
- <artifactId>search-api</artifactId>
- <version>1.1-SNAPSHOT</version>
- <name>Yahoo Search API</name>
- <repositories>
- <repository>
- <id>wadl-repository</id>
- <name>WADL Maven Repository</name>
- <url>https://wadl.dev.java.net/nonav/repository/</url>
- </repository>
- <repository>
- <id>maven2-repository.dev.java.net</id>
- <name>Java.net Repository for Maven</name>
- <url>http://download.java.net/maven/2/</url>
- </repository>
- <repository>
- <id>wadl-snapshots</id>
- <name>WADL Snapshots Repository</name>
- <url>https://wadl.dev.java.net/nonav/snapshots</url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>wadl-snapshots</id>
- <name>WADL Snapshots Repository</name>
- <url>https://wadl.dev.java.net/nonav/snapshots</url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </pluginRepository>
- </pluginRepositories>
- <dependencies>
- <dependency>
- <groupId>org.jvnet.ws.wadl</groupId>
- <artifactId>wadl-core</artifactId>
- <version>1.1-SNAPSHOT</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.jvnet.ws.wadl</groupId>
- <artifactId>wadl-maven-plugin</artifactId>
- <version>1.1-SNAPSHOT</version>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <sourceDirectory>../share</sourceDirectory>
- <packageName>com.yahoo.search</packageName>
- <autopackaging>true</autopackaging>
- <customizations>
- <customization>../share/binding.xjb</customization>
- </customizations>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-The contents of this file are subject to the terms
-of the Common Development and Distribution License
-(the "License"). You may not use this file except
-in compliance with the License.
-
-You can obtain a copy of the license at
-http://www.opensource.org/licenses/cddl1.php
-See the License for the specific language governing
-permissions and limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:yahoo:api" elementFormDefault="qualified">
- <xs:element name="Error" >
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element name="Message"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-</xs:schema>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" ?>
-<!--
-The contents of this file are subject to the terms
-of the Common Development and Distribution License
-(the "License"). You may not use this file except
-in compliance with the License.
-
-You can obtain a copy of the license at
-http://www.opensource.org/licenses/cddl1.php
-See the License for the specific language governing
-permissions and limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="urn:yahoo:yn"
- xmlns="urn:yahoo:yn"
- elementFormDefault="qualified">
-
- <xs:element name="ResultSet">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Result" type="ResultType" minOccurs="0" maxOccurs="50" />
- </xs:sequence>
- <xs:attribute name="totalResultsAvailable" type="xs:integer" />
- <xs:attribute name="totalResultsReturned" type="xs:integer" />
- <xs:attribute name="firstResultPosition" type="xs:integer" />
- </xs:complexType>
- </xs:element>
-
- <xs:complexType name="ResultType">
- <xs:sequence>
- <xs:element name="Title" type="xs:string" />
- <xs:element name="Summary" type="xs:string" />
- <xs:element name="Url" type="xs:string" />
- <xs:element name="ClickUrl" type="xs:string" />
- <xs:element name="NewsSource" type="xs:string" />
- <xs:element name="NewsSourceUrl" type="xs:string" />
- <xs:element name="Language" type="xs:string" />
- <xs:element name="PublishDate" type="xs:string" />
- <xs:element name="ModificationDate" type="xs:string" minOccurs="0" />
- <xs:element name="Thumbnail" type="ImageType" minOccurs="0" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="ImageType">
- <xs:sequence>
- <xs:element name="Url" type="xs:string" />
- <xs:element name="Height" type="xs:integer" minOccurs="0" />
- <xs:element name="Width" type="xs:integer" minOccurs="0" />
- </xs:sequence>
- </xs:complexType>
-
-</xs:schema>
-<!-- ws02.search.re2.yahoo.com compressed/chunked Tue Oct 18 13:12:21 PDT 2005 -->
+++ /dev/null
-<?xml version="1.0"?>
-<!--
-The contents of this file are subject to the terms
-of the Common Development and Distribution License
-(the "License"). You may not use this file except
-in compliance with the License.
-
-You can obtain a copy of the license at
-http://www.opensource.org/licenses/cddl1.php
-See the License for the specific language governing
-permissions and limitations under the License.
--->
-<application xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:yn="urn:yahoo:yn"
- xmlns:ya="urn:yahoo:api"
- xmlns:html="http://www.w3.org/1999/xhtml"
- xmlns="http://wadl.dev.java.net/2009/02">
-
- <grammars>
- <include href="NewsSearchResponse.xsd"/>
- <include href="NewsSearchError.xsd"/>
- </grammars>
-
- <resources base="http://api.search.yahoo.com/NewsSearchService/V1/">
- <resource path="newsSearch">
- <doc xml:lang="en" title="Yahoo News Search Service">
- The <html:i>Yahoo News Search</html:i> service provides online searching of news
- stories from around the world.
- </doc>
- <param name="appid" type="xsd:string" required="true" style="query">
- <doc>The application ID. See <html:a href="http://developer.yahoo.com/faq/index.html#appid">Application IDs</html:a> for more information.</doc>
- </param>
- <method href="#search"/>
- </resource>
- </resources>
-
- <method name="GET" id="search">
- <doc xml:lang="en" title="Search news stories by keyword"/>
- <request>
- <param name="query" type="xsd:string" required="true" style="query">
- <doc xml:lang="en" title="Space separated keywords to search for"/>
- </param>
- <param name="type" type="xsd:string" default="all" style="query">
- <doc xml:lang="en" title="Keyword matching"/>
- <option value="all">
- <doc>All query terms.</doc>
- </option>
- <option value="any">
- <doc>Any query terms.</doc>
- </option>
- <option value="phrase">
- <doc>Query terms as a phrase.</doc>
- </option>
- </param>
- <param name="results" type="xsd:int" default="10" style="query">
- <doc xml:lang="en" title="Number of results"/>
- </param>
- <param name="start" type="xsd:int" default="1" style="query">
- <doc xml:lang="en" title="Index of first result"/>
- </param>
- <param name="sort" type="xsd:string" default="rank" style="query">
- <doc xml:lang="en" title="Sort by date or rank"/>
- <option value="rank"/>
- <option value="date"/>
- </param>
- <param name="language" type="xsd:string" style="query">
- <doc xml:lang="en" title="Language filter, omit for any language"/>
- </param>
- <param name="output" type="xsd:string" default="xml" style="query">
- <doc>The format for the output. If <html:em>json</html:em> is requested, the results will be returned in <html:a href="http://developer.yahoo.com/common/json.html">JSON</html:a> format. If <html:em>php</html:em> is requested, the results will be returned in <html:a href="http://developer.yahoo.com/common/phpserial.html">Serialized PHP</html:a> format.</doc>
- <option value="xml"/>
- <option value="json"/>
- <option value="php"/>
- </param>
- <param name="callback" type="xsd:string" style="query">
- <doc>The name of the callback function to wrap around the JSON data. The following characters are allowed: A-Z a-z 0-9 . [] and _. If output=json has not been requested, this parameter has no effect. More information on the callback can be found in the <html:a href="http://developer.yahoo.com/common/json.html#callbackparam">Yahoo! Developer Network JSON Documentation</html:a>.</doc>
- </param>
- </request>
- <response status="200">
- <representation mediaType="application/xml" element="yn:ResultSet">
- <doc xml:lang="en" title="A list of news items matching the query"/>
- </representation>
- </response>
- <response status="400">
- <representation id="SearchError" mediaType="application/xml"
- element="ya:Error"/>
- </response>
- </method>
-
-</application>
+++ /dev/null
-<jxb:bindings version="2.0"
- xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- schemaLocation="NewsSearchResponse.xsd" >
- <jxb:bindings node="//xs:complexType[@name='ResultType']">
- <jxb:class name="Result"/>
- </jxb:bindings>
- <jxb:bindings node="//xs:element[@name='Result']">
- <jxb:property name="ResultList"/>
- </jxb:bindings>
-</jxb:bindings>
\ No newline at end of file
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * bstefanescu
- *
- * $Id$
- */
-
-package org.collectionspace.services.nuxeo;
-
-/**
- * Listen to connection events
- *
- * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
- *
- */
-public interface ConnectionListener {
-
- /**
- * The client connected to a server.
- *
- * @param client the client
- */
- void connected(NuxeoClient client);
-
- /**
- * The client disconnected.
- *
- * @param client the client
- */
- void disconnected(NuxeoClient client);
-
- /**
- * The client authentication failed against the remote server.
- *
- * @param client the client
- */
- boolean authenticationFailed(NuxeoClient client);
-
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * bstefanescu
- *
- * $Id$
- */
-
-package org.collectionspace.services.nuxeo;
-
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-import org.nuxeo.runtime.api.Framework;
-
-/**
- * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
- *
- */
-public class DefaultLoginHandler implements LoginHandler {
-
- private LoginContext lc;
-
- private String username;
- private char[] password;
-
- public DefaultLoginHandler() {
- }
-
- public DefaultLoginHandler(String username, String password) {
- this(username, password.toCharArray());
- }
-
- public DefaultLoginHandler(String username, char[] password) {
- this.username = username;
- this.password = password;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public void setPassword(char[] password) {
- this.password = password;
- }
-
- public void setPassword(String password) {
- this.password = password.toCharArray();
- }
-
- public char[] getPassword() {
- return password;
- }
-
- public String getUsername() {
- return username;
- }
-
- public synchronized LoginContext getLoginContext() {
- return lc;
- }
-
- public synchronized LoginContext login() throws LoginException {
- if (username == null) {
- lc = Framework.login();
- } else {
- lc = Framework.login(username, password);
- }
- return lc;
- }
-
- public synchronized void logout() throws LoginException {
- if (lc != null) {
- lc.logout();
- }
- }
-
- public synchronized void retryLogin() throws LoginException {
- if (lc != null) {
- lc.logout();
- }
- login();
- }
-
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * bstefanescu
- *
- * $Id$
- */
-
-package org.collectionspace.services.nuxeo;
-
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-/**
- * Manages user login and current user session.
- *
- * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
- */
-public interface LoginHandler {
-
- LoginContext login() throws LoginException;
-
- void logout() throws LoginException;
-
- LoginContext getLoginContext();
-
- void retryLogin() throws LoginException;
-
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2008 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * bstefanescu
- */
-package org.collectionspace.services.nuxeo;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.nuxeo.common.Environment;
-import org.nuxeo.osgi.BundleFile;
-import org.nuxeo.osgi.BundleImpl;
-import org.nuxeo.osgi.DirectoryBundleFile;
-import org.nuxeo.osgi.JarBundleFile;
-import org.nuxeo.osgi.OSGiAdapter;
-import org.osgi.framework.BundleException;
-
-/**
- * Nuxeo Runtime launcher.
- *
- * This launcher assume all bundles are already on the classpath.
- *
- *
- * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
- *
- */
-public class NuxeoApp {
-
- protected OSGiAdapter osgi;
- protected final ClassLoader loader;
- protected final Environment env;
-
- public static ClassLoader getDefaultClassLoader() {
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- return cl == null ? NuxeoApp.class.getClassLoader() : cl;
- }
-
- public NuxeoApp() {
- this (new File("."), getDefaultClassLoader());
- }
-
- public NuxeoApp(File home) {
- this (home, getDefaultClassLoader());
- }
-
- public NuxeoApp(File home, ClassLoader loader) {
- this.loader = loader;
- env = new Environment(home);
- }
-
- public Environment getEnvironment() {
- return this.env;
- }
-
- public synchronized void deployBundles(Collection<File> files) throws BundleException, IOException {
- if (!isStarted()) {
- throw new IllegalStateException("Framework not started");
- }
- for (File file : files) {
- deployBundle(file);
- }
- }
-
- public synchronized void deployBundle(File file) throws BundleException, IOException {
- if (!isStarted()) {
- throw new IllegalStateException("Framework not started");
- }
- BundleFile bf = file.isDirectory() ? new DirectoryBundleFile(file) : new JarBundleFile(file);
- osgi.install(new BundleImpl(osgi, bf, loader));
- System.out.println(">>>NuxeoApp:deployed bundle: " + file.getName());
- }
-
- public synchronized void start() {
- if (osgi != null) {
- //throw new IllegalStateException("Nuxeo Runtime already started");
- //sd: why throw exception?
- return;
- }
- osgi = new OSGiAdapter(env.getHome(), env.getData(), env.getProperties());
- }
-
- public synchronized boolean isStarted() {
- return osgi != null;
- }
-
- public synchronized OSGiAdapter getOsgi() {
- return osgi;
- }
-
-
- public synchronized void shutdown() throws IOException {
- if (osgi == null) {
- throw new IllegalStateException("Nuxeo Runtime not started");
- }
- osgi.shutdown();
- osgi = null;
- }
-
- public static Collection<File> getBundleFiles(File baseDir, String bundles, String delim) throws IOException {
- LinkedHashSet<File> result = new LinkedHashSet<File>();
- StringTokenizer tokenizer = new StringTokenizer(bundles, delim == null ? " \t\n\r\f" : delim);
- while (tokenizer.hasMoreTokens()) {
- String tok = tokenizer.nextToken();
- List<File> files = expandFiles(baseDir, tok);
- for (File file : files) {
- result.add(file.getCanonicalFile());
- }
- }
- return result;
- }
-
- public static List<File> expandFiles(File baseDir, String line) {
- int p = line.lastIndexOf("/");
- String fileName = null;
- if (p > -1) {
- fileName = line.substring(p+1);
- baseDir = new File(baseDir, line.substring(0, p));
- } else {
- fileName = line;
- }
- p = fileName.indexOf("*");
- if (p == -1) {
- return Collections.singletonList(new File(baseDir, fileName));
- } else if (fileName.length() == 0) {
- return Arrays.asList(baseDir.listFiles());
- } else if (p == 0) {
- String suffix= fileName.substring(p+1);
- ArrayList<File> result = new ArrayList<File>();
- for (String name : baseDir.list()) {
- if (name.endsWith(suffix)) {
- result.add(new File(baseDir, name));
- }
- }
- return result;
- } else if (p == fileName.length()-1) {
- String prefix= fileName.substring(0, p);
- ArrayList<File> result = new ArrayList<File>();
- for (String name : baseDir.list()) {
- if (name.startsWith(prefix)) {
- result.add(new File(baseDir, name));
- }
- }
- return result;
- } else {
- String prefix= fileName.substring(0, p);
- String suffix= fileName.substring(p+1);
- ArrayList<File> result = new ArrayList<File>();
- for (String name : baseDir.list()) {
- if (name.startsWith(prefix) && name.endsWith(suffix)) {
- result.add(new File(baseDir, name));
- }
- }
- return result;
- }
- }
-
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * bstefanescu
- *
- * $Id$
- */
-package org.collectionspace.services.nuxeo;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.LoginException;
-
-import org.jboss.remoting.InvokerLocator;
-import org.nuxeo.common.collections.ListenerList;
-import org.nuxeo.ecm.core.api.repository.Repository;
-import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
-import org.nuxeo.ecm.core.api.repository.RepositoryInstanceHandler;
-import org.nuxeo.ecm.core.api.repository.RepositoryManager;
-import org.nuxeo.ecm.core.schema.SchemaManager;
-import org.nuxeo.ecm.core.schema.SchemaManagerImpl;
-import org.nuxeo.ecm.core.schema.TypeProvider;
-import org.nuxeo.runtime.api.Framework;
-import org.nuxeo.runtime.api.ServiceDescriptor;
-import org.nuxeo.runtime.api.ServiceManager;
-import org.nuxeo.runtime.api.login.LoginComponent;
-import org.nuxeo.runtime.api.login.LoginService;
-import org.nuxeo.runtime.api.login.SecurityDomain;
-import org.nuxeo.runtime.config.AutoConfigurationService;
-import org.nuxeo.runtime.remoting.RemotingService;
-import org.nuxeo.runtime.services.streaming.StreamingService;
-
-/**
- * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
- *
- */
-public final class NuxeoClient {
-
- private LoginHandler loginHandler;
- private final List<RepositoryInstance> repositoryInstances;
- private final ListenerList connectionListeners;
- private InvokerLocator locator;
- private String serverName;
- private final AutoConfigurationService cfg;
- private RepositoryManager repositoryMgr;
- private boolean multiThreadedLogin = false;
- private static final NuxeoClient instance = new NuxeoClient();
-
- private NuxeoClient() {
- connectionListeners = new ListenerList();
- cfg = new AutoConfigurationService();
- loginHandler = loginHandler == null ? new DefaultLoginHandler() : loginHandler;
- repositoryInstances = new Vector<RepositoryInstance>();
- }
-
- public static NuxeoClient getInstance() {
- return instance;
- }
-
- public void setMultiThreadedLogin(boolean useMultiThreadedLogin) {
- multiThreadedLogin = useMultiThreadedLogin;
- }
-
- public boolean getMultiThreadedLogin() {
- return multiThreadedLogin;
- }
-
- public synchronized void connect(String locator) throws Exception {
- if(this.locator != null){
- throw new IllegalStateException("Client is already connected");
- }
- doConnect(AutoConfigurationService.createLocator(locator));
- }
-
- public synchronized void connect(InvokerLocator locator) throws Exception {
- if(this.locator != null){
- throw new IllegalStateException("Client is already connected");
- }
- doConnect(locator);
- }
-
- public synchronized void connect(String host, int port) throws Exception {
- if(locator != null){
- throw new IllegalStateException("Client is already connected");
- }
- doConnect(AutoConfigurationService.createLocator(host, port));
- }
-
- public synchronized void forceConnect(InvokerLocator locator) throws Exception {
- if(this.locator != null){
- disconnect();
- }
- doConnect(locator);
- }
-
- public synchronized void forceConnect(String locator) throws Exception {
- if(this.locator != null){
- disconnect();
- }
- doConnect(AutoConfigurationService.createLocator(locator));
- }
-
- public synchronized void forceConnect(String host, int port) throws Exception {
- if(locator != null){
- disconnect();
- }
- doConnect(AutoConfigurationService.createLocator(host, port));
- }
-
- public synchronized void tryConnect(String host, int port) throws Exception {
- if(locator != null){
- return; // do nothing
- }
- doConnect(AutoConfigurationService.createLocator(host, port));
- }
-
- public synchronized void tryConnect(String url) throws Exception {
- if(locator != null){
- return; // do nothing
- }
- doConnect(AutoConfigurationService.createLocator(url));
- }
-
- public synchronized void tryConnect(InvokerLocator locator) throws Exception {
- if(this.locator != null){
- return; // do nothing
- }
- doConnect(locator);
- }
-
- private void doConnect(InvokerLocator locator) throws Exception {
- this.locator = locator;
- try{
- cfg.load(locator);
- // FIXME TODO workaround to work with nxruntime core 1.3.3 --------------
- String newPort = Framework.getProperty("org.nuxeo.runtime.1.3.3.streaming.port");
- System.out.println(">>>NuxeoClient:newPort=" + newPort);//sd
- if(newPort != null){
- StreamingService streamingService = (StreamingService) Framework.getRuntime().getComponent(
- StreamingService.NAME);
- // streaming config
- String oldLocator = streamingService.getServerLocator();
- int p = oldLocator.lastIndexOf(':');
- if(p > -1){
- String withoutPort = oldLocator.substring(0, p);
- String serverLocator = withoutPort + ":" + newPort;
- streamingService.stopManager();
- streamingService.setServerLocator(serverLocator);
- streamingService.setServer(false);
- streamingService.startManager();
- }
- }
- System.out.println(">>>NuxeoClient:pre schemaRemotingWorkaround");//sd
- // FIXME TODO workaround for remote services -------------------------------
- schemaRemotingWorkaround(locator.getHost());
- System.out.println(">>>NuxeoClient:post schemaRemotingWorkaround");//sd
-
-
- // workaround for client login configuration - we need to make it not multi threaded
- // TODO put an option for this in NuxeoClient
- if(!multiThreadedLogin){
- LoginService ls = Framework.getService(LoginService.class);
- SecurityDomain sysDomain = ls.getSecurityDomain(LoginComponent.SYSTEM_LOGIN);
- SecurityDomain clientDomain = ls.getSecurityDomain(LoginComponent.CLIENT_LOGIN);
- adaptClientSecurityDomain(sysDomain);
- adaptClientSecurityDomain(clientDomain);
- }
- // ----------------
- login();
- System.out.println("NuxeoClient: login");
- }catch(Exception e){
- this.locator = null;
- throw e;
- }
- fireConnected(this);
- }
-
- public static void adaptClientSecurityDomain(SecurityDomain sd) {
- AppConfigurationEntry[] entries = sd.getAppConfigurationEntries();
- if(entries != null){
- for(int i = 0; i < entries.length; i++){
- AppConfigurationEntry entry = entries[i];
- if("org.jboss.security.ClientLoginModule".equals(entry.getLoginModuleName())){
- Map<String, ?> opts = entry.getOptions();
- Map<String, Object> newOpts = new HashMap<String, Object>(opts);
- newOpts.put("multi-threaded", "false");
- entries[i] = new AppConfigurationEntry(entry.getLoginModuleName(),
- entry.getControlFlag(), entry.getOptions());
- }
- }
- }
- }
-
- /**
- * Workaround for being able to load schemas from remote
- * TODO integrate this in core
- * FIXME integrate this in core
- */
- private static void schemaRemotingWorkaround(String host) throws Exception {
- ServiceManager serviceManager = Framework.getLocalService(ServiceManager.class);
- ServiceDescriptor sd = new ServiceDescriptor(TypeProvider.class, "core");
- sd.setLocator("%TypeProviderBean");
- serviceManager.registerService(sd);
- TypeProvider typeProvider = Framework.getService(TypeProvider.class);
- SchemaManager schemaMgr = Framework.getLocalService(SchemaManager.class);
- ((SchemaManagerImpl) schemaMgr).importTypes(typeProvider);
- }
-
- public synchronized void disconnect() throws Exception {
- if(locator == null){
- throw new IllegalStateException("Client is not connected");
- }
- doDisconnect();
- }
-
- public synchronized void tryDisconnect() throws Exception {
- if(locator == null){
- return; // do nothing
- }
- doDisconnect();
- }
-
- private void doDisconnect() throws Exception {
- locator = null;
- serverName = null;
- // close repository sessions if any
- Iterator<RepositoryInstance> it = repositoryInstances.iterator();
- while(it.hasNext()){
- RepositoryInstance repo = it.next();
- try{
- repo.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- it.remove();
- }
- // logout
- logout();
- repositoryMgr = null;
- fireDisconnected(this);
- }
-
- public synchronized void reconnect() throws Exception {
- if(locator == null){
- throw new IllegalStateException("Client is not connected");
- }
- InvokerLocator locator = this.locator;
- disconnect();
- connect(locator);
- }
-
- public AutoConfigurationService getConfigurationService() {
- return cfg;
- }
-
- public synchronized String getServerName() {
- if(locator == null){
- throw new IllegalStateException("Client is not connected");
- }
- if(serverName == null){
- if(cfg == null){ // compatibility
- serverName = RemotingService.ping(locator.getHost(), locator.getPort());
- }else{
- serverName = cfg.getServerConfiguration().getProductInfo();
- }
- }
- return serverName;
- }
-
- public synchronized boolean isConnected() {
- return locator != null;
- }
-
- public String getServerHost() {
- if(locator == null){
- throw new IllegalStateException("Client is not connected");
- }
- return locator.getHost();
- }
-
- public int getServerPort() {
- if(locator == null){
- throw new IllegalStateException("Client is not connected");
- }
- return locator.getPort();
- }
-
- public InvokerLocator getLocator() {
- return locator;
- }
-
- public synchronized LoginHandler getLoginHandler() {
- return loginHandler;
- }
-
- public synchronized void setLoginHandler(LoginHandler loginHandler) {
- this.loginHandler = loginHandler;
- }
-
- public synchronized void login() throws LoginException {
- if(loginHandler != null){
- loginHandler.login();
- }
- }
-
- public synchronized void logout() throws LoginException {
- if(loginHandler != null){
- loginHandler.logout();
- }
- }
-
- public RepositoryManager getRepositoryManager() throws Exception {
- if(repositoryMgr == null){
- repositoryMgr = Framework.getService(RepositoryManager.class);
- }
- return repositoryMgr;
- }
-
- /**
- * Gets the repositories available on the connected server.
- *
- * @return the repositories
- */
- public Repository[] getRepositories() throws Exception {
- Collection<Repository> repos = getRepositoryManager().getRepositories();
- return repos.toArray(new Repository[repos.size()]);
- }
-
- public Repository getDefaultRepository() throws Exception {
- return getRepositoryManager().getDefaultRepository();
- }
-
- public Repository getRepository(String name) throws Exception {
- return getRepositoryManager().getRepository(name);
- }
-
- public RepositoryInstance openRepository() throws Exception {
- Repository repository = getRepositoryManager().getDefaultRepository();
- RepositoryInstance repo = newRepositoryInstance(repository);
- repositoryInstances.add(repo);
- return repo;
- }
-
- public RepositoryInstance openRepository(String name) throws Exception {
- Repository repository = getRepositoryManager().getRepository(name);
- RepositoryInstance repo = newRepositoryInstance(repository);
- repositoryInstances.add(repo);
- return repo;
- }
-
- public void releaseRepository(RepositoryInstance repo) throws Exception {
- try{
- repo.close();
- }finally{
- repositoryInstances.remove(repo);
- }
- }
-
- public RepositoryInstance[] getRepositoryInstances() {
- return repositoryInstances.toArray(new RepositoryInstance[repositoryInstances.size()]);
- }
-
- public static RepositoryInstance newRepositoryInstance(Repository repository) {
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- if(cl == null){
- cl = NuxeoClient.class.getClassLoader();
- }
- return new RepositoryInstanceHandler(repository).getProxy();
- }
-
- public void addConnectionListener(ConnectionListener listener) {
- connectionListeners.add(listener);
- }
-
- public void removeConnectionListener(ConnectionListener listener) {
- connectionListeners.remove(listener);
- }
-
- private void fireDisconnected(NuxeoClient client) {
- Object[] listeners = connectionListeners.getListeners();
- for(Object listener : listeners){
- ((ConnectionListener) listener).disconnected(client);
- }
- }
-
- private void fireConnected(NuxeoClient client) {
- Object[] listeners = connectionListeners.getListeners();
- for(Object listener : listeners){
- ((ConnectionListener) listener).connected(client);
- }
- }
-}
+++ /dev/null
-# Example for Windows
-jboss.dir=c:/dev/jboss-4.2.3.GA
-# Example for Unix
-#jboss.dir=/opt/jboss
-
-# Which JBoss server config to use
-jboss.config=default
-
-# nuxeo deployment
-jboss.nuxeo.ear.dir=${jboss.dir}/server/${jboss.config}/deploy/nuxeo.ear
-
-
-# additional command line parameters for mvn commands
-# e.g. to work offline:
-#mvn.opts=-o
+++ /dev/null
-<?xml version="1.0"?>
-<project name="nuxeo cs" default="all" basedir=".">
-
- <property file="build.properties" />
- <property name="cs.nuxeo.jar" value="nuxeo-platform-cs-5.2-SNAPSHOT.jar"/>
-
- <target name="all" description="all">
- <delete file="${jboss.nuxeo.ear.dir}/system/${cs.nuxeo.jar}"/>
- <copy todir="${jboss.nuxeo.ear.dir}/system">
- <fileset file="${basedir}/target/${cs.nuxeo.jar}" />
- </copy>
- </target>
-
-</project>
+++ /dev/null
-<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.nuxeo.ecm.platform</groupId>
- <artifactId>nuxeo-platform-parent</artifactId>
- <version>5.2-SNAPSHOT</version>
- </parent>
-
- <artifactId>nuxeo-platform-cs</artifactId>
- <packaging>jar</packaging>
- <name>jaxrs-nuxeo extensions</name>
- <description>
- Nuxeo Enterprise Platform: jaxrs-nuxeo extensions
- </description>
-
- <dependencies>
- <dependency>
- <groupId>org.nuxeo.ecm.core</groupId>
- <artifactId>nuxeo-core-schema</artifactId>
- </dependency>
- <dependency>
- <groupId>org.nuxeo.ecm.platform</groupId>
- <artifactId>nuxeo-platform-types-core</artifactId>
- </dependency>
- </dependencies>
-
-</project>
+++ /dev/null
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 1
-Bundle-Name: NuxeoCS
-Bundle-SymbolicName: org.collectionspace.hello;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Localization: plugin
-Bundle-Vendor: Nuxeo
-Require-Bundle: org.nuxeo.runtime,
- org.nuxeo.ecm.core.api,
- org.nuxeo.ecm.core,
- org.nuxeo.ecm.core.api,
- org.nuxeo.ecm.platform.types.api,
- org.nuxeo.ecm.platform.versioning.api,
- org.nuxeo.ecm.platform.ui,
- org.nuxeo.ecm.platform.forms.layout.client,
- org.nuxeo.ecm.platform.publishing.api,
- org.nuxeo.ecm.platform.ws
-Provide-Package: org.collectionspace.hello
-Nuxeo-Component: OSGI-INF/core-types-contrib.xml,
- OSGI-INF/ecm-types-contrib.xml,
- OSGI-INF/layouts-contrib.xml
-
+++ /dev/null
-<?xml version="1.0"?>
-<component name="org.collectionspace.hello.coreTypes">
- <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
- <schema name="hello" prefix="hello" src="schemas/hello.xsd"/>
- </extension>
- <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
- <doctype name="Hello" extends="Document">
- <schema name="common"/>
- <schema name="dublincore"/>
- <schema name="hello"/>
- </doctype>
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0"?>
-<fragment>
-
- <extension target="application#MODULE">
- <module>
- <ejb>${bundle.fileName}</ejb>
- </module>
-
- <module>
- <web>
- <web-uri>nuxeo.war</web-uri>
- <context-root>/nuxeo</context-root>
- </web>
- </module>
- </extension>
-
- <!-- uncomment that to enable tomcat based auth
- <extension target="web#LOGIN-CONFIG">
- <login-config>
- <auth-method>FORM</auth-method>
- <realm-name>nuxeo.ecm</realm-name>
- <form-login-config>
- <form-login-page>/login.jsp</form-login-page>
- <form-error-page>/login.jsp?loginFailed=true</form-error-page>
- </form-login-config>
- </login-config>
- </extension>
- -->
-
- <extension target="web#FILTER-MAPPING">
-
- <!-- Seam Context Filter is declared in org.nuxeo.ecm.platform.ui.web
- deployment fragment -->
-
- <filter-mapping>
- <filter-name>Seam Context Filter</filter-name>
- <url-pattern>/ws/FileManageWS</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>Seam Context Filter</filter-name>
- <url-pattern>/DocumentManagerWS</url-pattern>
- </filter-mapping>
- </extension>
-
- <extension target="web#SERVLET">
- </extension>
-
- <extension target="web#SERVLET-MAPPING">
- </extension>
-
- <extension target="pages#PAGES">
- <!-- This calls a method which load the Workspace logo -->
- <page view-id="/showLogo.xhtml" action="#{logoHelper.getLogo}"/>
-
- <!-- Bind URL to the Document URL resolver-->
- <page view-id="/getDocument.xhtml"
- action="#{navigationContext.navigateToURL}">
- </page>
-
- <page view-id="/nxliveedit.xhtml" action="#{liveEditHelper.getBootstrap()}"/>
-
- <!-- Bind URL to the Parallele conversation Document URL resolver-->
- <page view-id="/parallele.xhtml"
- action="#{paralleleNavigationHelper.navigateToURL}">
- </page>
-
- <!-- Post login and 'home' view handler -->
- <page view-id="/nxstartup.xhtml"
- action="#{startupHelper.initDomainAndFindStartupPage('Default domain', 'view')}"/>
-
- <!-- To redirect to the user dashboard instead, use instead:
-
- <page view-id="/nxstartup.xhtml"
- action="#{startupHelper.initDomainAndFindStartupPage('Default domain', 'user_dashboard')}" />
- -->
-
- <!-- config for workspace management
- = give a description for each viewId
- -->
-
- <page view-id="/view_domains.xhtml">
- #{currentServerLocation.name}/#{currentTabAction.label}
- </page>
-
- <page view-id="/select_document_type.faces.xhtml">
- Create new document in #{currentDocument.name}
- </page>
-
- <page view-id="/create_document.faces.xhtml">
- Create new document in #{currentDocument.name}
- </page>
-
- <page view-id="/user_dashboard.xhtml">
- breadcrumb=command.user_dashboard
- </page>
-
- <page view-id="/view_users.xhtml">
- breadcrumb=command.manageMembers
- </page>
-
- <page view-id="/view_many_users.xhtml">
- breadcrumb=command.manageMembers
- </page>
-
- <page view-id="/view_vocabularies.xhtml">
- breadcrumb=title.vocabularies
- </page>
-
- <page view-id="/search/search_form.xhtml">
- breadcrumb=command.advancedSearch
- </page>
- </extension>
-
- <extension target="faces-config#APPLICATION">
- <locale-config>
- <default-locale>en</default-locale>
- <supported-locale>en_GB</supported-locale>
- <supported-locale>en_US</supported-locale>
- <supported-locale>fr</supported-locale>
- <supported-locale>de</supported-locale>
- <supported-locale>es</supported-locale>
- <supported-locale>it</supported-locale>
- <supported-locale>ar</supported-locale>
- <supported-locale>ru</supported-locale>
- <supported-locale>ja</supported-locale>
- <supported-locale>vn</supported-locale>
- </locale-config>
-
- <message-bundle>messages</message-bundle>
- </extension>
-
- <extension target="components#PAGEFLOW">
- <value>config/addWorkspace.jpdl.xml</value>
- </extension>
-
- <extension target="faces-config#NAVIGATION">
- <!-- generic pages -->
- <navigation-case>
- <from-outcome>generic_error_page</from-outcome>
- <to-view-id>/generic_error_page.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>generic_message_page</from-outcome>
- <to-view-id>/generic_message_page.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>home</from-outcome>
- <to-view-id>/nxstartup.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_login</from-outcome>
- <to-view-id>/login.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_logout</from-outcome>
- <to-view-id>/logout.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_servers</from-outcome>
- <to-view-id>/view_servers.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- pages for document actions -->
-
- <navigation-case>
- <from-outcome>view_domains</from-outcome>
- <to-view-id>/view_domains.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>select_document_type</from-outcome>
- <to-view-id>/select_document_type.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_document</from-outcome>
- <to-view-id>/create_document.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_document</from-outcome>
- <to-view-id>/edit_document.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_documents</from-outcome>
- <to-view-id>/view_documents.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_file</from-outcome>
- <to-view-id>/create_file.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_workspace_wizard</from-outcome>
- <to-view-id>/createWorkspaceWizard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>send_email</from-outcome>
- <to-view-id>/document_email.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use view_documents instead -->
- <navigation-case>
- <from-outcome>view_workspaces</from-outcome>
- <to-view-id>/view_workspaces.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use create_document instead -->
- <navigation-case>
- <from-outcome>create_domain</from-outcome>
- <to-view-id>/create_domain.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use edit_document instead -->
- <navigation-case>
- <from-outcome>edit_domain</from-outcome>
- <to-view-id>/edit_domain.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use create_document instead -->
- <navigation-case>
- <from-outcome>create_workspace</from-outcome>
- <to-view-id>/create_workspace.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use edit_document instead -->
- <navigation-case>
- <from-outcome>edit_workspace</from-outcome>
- <to-view-id>/edit_workspace.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- users ang groups -->
-
- <navigation-case>
- <from-outcome>members_management</from-outcome>
- <to-view-id>/members_management.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_users</from-outcome>
- <to-view-id>/view_users.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_many_users</from-outcome>
- <to-view-id>/view_many_users.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_user</from-outcome>
- <to-view-id>/edit_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_user_password</from-outcome>
- <to-view-id>/edit_user_password.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_user</from-outcome>
- <to-view-id>/view_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_user</from-outcome>
- <to-view-id>/create_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_groups</from-outcome>
- <to-view-id>/view_groups.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_group</from-outcome>
- <to-view-id>/view_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_group</from-outcome>
- <to-view-id>/edit_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_group</from-outcome>
- <to-view-id>/create_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_vocabularies</from-outcome>
- <to-view-id>/view_vocabularies.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_vocabulary</from-outcome>
- <to-view-id>/view_vocabulary.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- search -->
-
- <navigation-case>
- <from-outcome>search_form</from-outcome>
- <to-view-id>/search/search_form.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_nxql</from-outcome>
- <to-view-id>/search/search_results_nxql.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_advanced</from-outcome>
- <to-view-id>
- /search/search_results_advanced.xhtml
- </to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_simple</from-outcome>
- <to-view-id>/search/search_results_simple.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- miscellaneaous -->
-
- <navigation-case>
- <from-outcome>clipboard</from-outcome>
- <to-view-id>/incl/clipboard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_dashboard</from-outcome>
- <to-view-id>/user_dashboard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>select_workspace_template</from-outcome>
- <to-view-id>/select_workspace_template.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>pdf_generation_error</from-outcome>
- <to-view-id>/pdf_generation_error.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>mass_edit</from-outcome>
- <to-view-id>/massedit_documents.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>mass_edit_confirm</from-outcome>
- <to-view-id>/massedit_documents_preview.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
- </extension>
-
-</fragment>
-
+++ /dev/null
-<?xml version="1.0"?>
-<component name="org.collectionspace.hello.ecm.types">
- <extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
- <type id="Hello" coretype="Hello">
- <label>org.collectionspace.hello</label>
- <!--icon>/icons/file.gif</icon-->
- <default-view>view_documents</default-view>
-
- <layouts mode="any">
- <layout>heading</layout>
- <layout>hello</layout>
- </layouts>
- <!--layout>
- <widget jsfcomponent="h:inputText"
- schemaname="dublincore" fieldname="title"
- required="true" />
- <widget jsfcomponent="h:inputTextarea"
- schemaname="dublincore" fieldname="description" />
- <widget jsfcomponent="h:inputText"
- schemaname="Hello" fieldname="person:firstName" />
- <widget jsfcomponent="h:inputText"
- schemaname="Hello" fieldname="person:lastName" />
- </layout-->
- </type>
- <type id="Folder" coretype="Folder">
- <subtypes>
- <type>Hello</type>
- </subtypes>
- </type>
- <type id="Workspace" coretype="Workspace">
- <subtypes>
- <type>Hello</type>
- </subtypes>
- </type>
-
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0"?>
-
-<component name="org.collectionspace.hello.layouts.webapp">
-
- <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
- point="layouts">
-
- <layout name="hello">
- <templates>
- <template mode="any">/layouts/layout_default_template.xhtml</template>
- </templates>
- <rows>
- <row><widget>cid</widget></row>
- <row><widget>cversion</widget></row>
- <row><widget>firstname</widget></row>
- <row><widget>lastname</widget></row>
- <row><widget>street</widget></row>
- <row><widget>city</widget></row>
- <row><widget>state</widget></row>
- <row><widget>zip</widget></row>
- <row><widget>country</widget></row>
- </rows>
- <widget name="cid" type="text">
- <labels>
- <label mode="any">cid</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">cid</field>
- </fields>
- <widgetModes>
- <!-- not shown in create mode -->
- <mode value="create">hidden</mode>
- </widgetModes>
- <properties widgetMode="edit">
- <!-- required in widget mode edit -->
- <property name="required">true</property>
- </properties>
- <properties mode="view">
- <!-- property applying in view mode -->
- <property name="styleClass">cssClass</property>
- </properties>
- </widget>
- <widget name="cversion" type="text">
- <labels>
- <label mode="any">cversion</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">cversion</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
-
- <widget name="firstname" type="text">
- <labels>
- <label mode="any">firstName</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">firstName</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="lastname" type="text">
- <labels>
- <label mode="any">lastName</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">lastName</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="street" type="text">
- <labels>
- <label mode="any">street</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">street</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="city" type="text">
- <labels>
- <label mode="any">city</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">city</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="state" type="text">
- <labels>
- <label mode="any">state</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">state</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="zip" type="text">
- <labels>
- <label mode="any">zip</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">zip</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="country" type="text">
- <labels>
- <label mode="any">country</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">country</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
-
- </layout>
-
-
- </extension>
-
-</component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello/"
- xmlns="http://collectionspace.org/hello/"
- targetNamespace="http://collectionspace.org/hello/"
- version="0.1"
->
- <!--xs:element name="person">
- <xs:complexType>
-
- <xs:sequence-->
- <xs:element name="firstName" type="xs:string"
- minOccurs="1" />
- <xs:element name="lastName" type="xs:string"
- minOccurs="1" />
- <xs:element name="street" type="xs:string"
- minOccurs="1" />
- <xs:element name="city" type="xs:string"
- minOccurs="1" />
- <xs:element name="state" type="xs:string"
- minOccurs="1" />
- <xs:element name="zip" type="xs:string"
- minOccurs="1" />
- <xs:element name="country" type="xs:string"
- minOccurs="1" />
-
- <xs:element name="cid" type="xs:string"
- minOccurs="1" />
- <xs:element name="cversion" type="xs:string"
- minOccurs="1" />
- <!--/xs:sequence>
- <xs:attribute name="cid" type="xs:long" />
- <xs:attribute name="cversion" type="xs:int" />
-
- </xs:complexType>
- </xs:element-->
-
-
-</xs:schema>
-
+++ /dev/null
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 1
-Bundle-Name: NuxeoCS
-Bundle-SymbolicName: org.collectionspace.hello;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Localization: plugin
-Bundle-Vendor: Nuxeo
-Require-Bundle: org.nuxeo.runtime,
- org.nuxeo.ecm.core.api,
- org.nuxeo.ecm.core,
- org.nuxeo.ecm.core.api,
- org.nuxeo.ecm.platform.types.api,
- org.nuxeo.ecm.platform.versioning.api,
- org.nuxeo.ecm.platform.ui,
- org.nuxeo.ecm.platform.forms.layout.client,
- org.nuxeo.ecm.platform.publishing.api,
- org.nuxeo.ecm.platform.ws
-Provide-Package: org.collectionspace.hello
-Nuxeo-Component: OSGI-INF/core-types-contrib.xml,
- OSGI-INF/ecm-types-contrib.xml,
- OSGI-INF/layouts-contrib.xml
-
+++ /dev/null
-<?xml version="1.0"?>
-<component name="org.collectionspace.hello.coreTypes">
- <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
- <schema name="hello" prefix="hello" src="schemas/hello.xsd"/>
- </extension>
- <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
- <doctype name="Hello" extends="Document">
- <schema name="common"/>
- <schema name="dublincore"/>
- <schema name="hello"/>
- </doctype>
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0"?>
-<fragment>
-
- <extension target="application#MODULE">
- <module>
- <ejb>${bundle.fileName}</ejb>
- </module>
-
- <module>
- <web>
- <web-uri>nuxeo.war</web-uri>
- <context-root>/nuxeo</context-root>
- </web>
- </module>
- </extension>
-
- <!-- uncomment that to enable tomcat based auth
- <extension target="web#LOGIN-CONFIG">
- <login-config>
- <auth-method>FORM</auth-method>
- <realm-name>nuxeo.ecm</realm-name>
- <form-login-config>
- <form-login-page>/login.jsp</form-login-page>
- <form-error-page>/login.jsp?loginFailed=true</form-error-page>
- </form-login-config>
- </login-config>
- </extension>
- -->
-
- <extension target="web#FILTER-MAPPING">
-
- <!-- Seam Context Filter is declared in org.nuxeo.ecm.platform.ui.web
- deployment fragment -->
-
- <filter-mapping>
- <filter-name>Seam Context Filter</filter-name>
- <url-pattern>/ws/FileManageWS</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>Seam Context Filter</filter-name>
- <url-pattern>/DocumentManagerWS</url-pattern>
- </filter-mapping>
- </extension>
-
- <extension target="web#SERVLET">
- </extension>
-
- <extension target="web#SERVLET-MAPPING">
- </extension>
-
- <extension target="pages#PAGES">
- <!-- This calls a method which load the Workspace logo -->
- <page view-id="/showLogo.xhtml" action="#{logoHelper.getLogo}"/>
-
- <!-- Bind URL to the Document URL resolver-->
- <page view-id="/getDocument.xhtml"
- action="#{navigationContext.navigateToURL}">
- </page>
-
- <page view-id="/nxliveedit.xhtml" action="#{liveEditHelper.getBootstrap()}"/>
-
- <!-- Bind URL to the Parallele conversation Document URL resolver-->
- <page view-id="/parallele.xhtml"
- action="#{paralleleNavigationHelper.navigateToURL}">
- </page>
-
- <!-- Post login and 'home' view handler -->
- <page view-id="/nxstartup.xhtml"
- action="#{startupHelper.initDomainAndFindStartupPage('Default domain', 'view')}"/>
-
- <!-- To redirect to the user dashboard instead, use instead:
-
- <page view-id="/nxstartup.xhtml"
- action="#{startupHelper.initDomainAndFindStartupPage('Default domain', 'user_dashboard')}" />
- -->
-
- <!-- config for workspace management
- = give a description for each viewId
- -->
-
- <page view-id="/view_domains.xhtml">
- #{currentServerLocation.name}/#{currentTabAction.label}
- </page>
-
- <page view-id="/select_document_type.faces.xhtml">
- Create new document in #{currentDocument.name}
- </page>
-
- <page view-id="/create_document.faces.xhtml">
- Create new document in #{currentDocument.name}
- </page>
-
- <page view-id="/user_dashboard.xhtml">
- breadcrumb=command.user_dashboard
- </page>
-
- <page view-id="/view_users.xhtml">
- breadcrumb=command.manageMembers
- </page>
-
- <page view-id="/view_many_users.xhtml">
- breadcrumb=command.manageMembers
- </page>
-
- <page view-id="/view_vocabularies.xhtml">
- breadcrumb=title.vocabularies
- </page>
-
- <page view-id="/search/search_form.xhtml">
- breadcrumb=command.advancedSearch
- </page>
- </extension>
-
- <extension target="faces-config#APPLICATION">
- <locale-config>
- <default-locale>en</default-locale>
- <supported-locale>en_GB</supported-locale>
- <supported-locale>en_US</supported-locale>
- <supported-locale>fr</supported-locale>
- <supported-locale>de</supported-locale>
- <supported-locale>es</supported-locale>
- <supported-locale>it</supported-locale>
- <supported-locale>ar</supported-locale>
- <supported-locale>ru</supported-locale>
- <supported-locale>ja</supported-locale>
- <supported-locale>vn</supported-locale>
- </locale-config>
-
- <message-bundle>messages</message-bundle>
- </extension>
-
- <extension target="components#PAGEFLOW">
- <value>config/addWorkspace.jpdl.xml</value>
- </extension>
-
- <extension target="faces-config#NAVIGATION">
- <!-- generic pages -->
- <navigation-case>
- <from-outcome>generic_error_page</from-outcome>
- <to-view-id>/generic_error_page.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>generic_message_page</from-outcome>
- <to-view-id>/generic_message_page.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>home</from-outcome>
- <to-view-id>/nxstartup.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_login</from-outcome>
- <to-view-id>/login.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_logout</from-outcome>
- <to-view-id>/logout.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_servers</from-outcome>
- <to-view-id>/view_servers.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- pages for document actions -->
-
- <navigation-case>
- <from-outcome>view_domains</from-outcome>
- <to-view-id>/view_domains.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>select_document_type</from-outcome>
- <to-view-id>/select_document_type.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_document</from-outcome>
- <to-view-id>/create_document.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_document</from-outcome>
- <to-view-id>/edit_document.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_documents</from-outcome>
- <to-view-id>/view_documents.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_file</from-outcome>
- <to-view-id>/create_file.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_workspace_wizard</from-outcome>
- <to-view-id>/createWorkspaceWizard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>send_email</from-outcome>
- <to-view-id>/document_email.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use view_documents instead -->
- <navigation-case>
- <from-outcome>view_workspaces</from-outcome>
- <to-view-id>/view_workspaces.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use create_document instead -->
- <navigation-case>
- <from-outcome>create_domain</from-outcome>
- <to-view-id>/create_domain.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use edit_document instead -->
- <navigation-case>
- <from-outcome>edit_domain</from-outcome>
- <to-view-id>/edit_domain.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use create_document instead -->
- <navigation-case>
- <from-outcome>create_workspace</from-outcome>
- <to-view-id>/create_workspace.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- AT: BBB, use edit_document instead -->
- <navigation-case>
- <from-outcome>edit_workspace</from-outcome>
- <to-view-id>/edit_workspace.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- users ang groups -->
-
- <navigation-case>
- <from-outcome>members_management</from-outcome>
- <to-view-id>/members_management.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_users</from-outcome>
- <to-view-id>/view_users.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_many_users</from-outcome>
- <to-view-id>/view_many_users.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_user</from-outcome>
- <to-view-id>/edit_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_user_password</from-outcome>
- <to-view-id>/edit_user_password.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_user</from-outcome>
- <to-view-id>/view_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_user</from-outcome>
- <to-view-id>/create_user.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_groups</from-outcome>
- <to-view-id>/view_groups.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_group</from-outcome>
- <to-view-id>/view_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>edit_group</from-outcome>
- <to-view-id>/edit_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>create_group</from-outcome>
- <to-view-id>/create_group.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_vocabularies</from-outcome>
- <to-view-id>/view_vocabularies.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>view_vocabulary</from-outcome>
- <to-view-id>/view_vocabulary.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- search -->
-
- <navigation-case>
- <from-outcome>search_form</from-outcome>
- <to-view-id>/search/search_form.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_nxql</from-outcome>
- <to-view-id>/search/search_results_nxql.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_advanced</from-outcome>
- <to-view-id>
- /search/search_results_advanced.xhtml
- </to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>search_results_simple</from-outcome>
- <to-view-id>/search/search_results_simple.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <!-- miscellaneaous -->
-
- <navigation-case>
- <from-outcome>clipboard</from-outcome>
- <to-view-id>/incl/clipboard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>user_dashboard</from-outcome>
- <to-view-id>/user_dashboard.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>select_workspace_template</from-outcome>
- <to-view-id>/select_workspace_template.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>pdf_generation_error</from-outcome>
- <to-view-id>/pdf_generation_error.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>mass_edit</from-outcome>
- <to-view-id>/massedit_documents.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
-
- <navigation-case>
- <from-outcome>mass_edit_confirm</from-outcome>
- <to-view-id>/massedit_documents_preview.xhtml</to-view-id>
- <redirect/>
- </navigation-case>
- </extension>
-
-</fragment>
-
+++ /dev/null
-<?xml version="1.0"?>
-<component name="org.collectionspace.hello.ecm.types">
- <extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
- <type id="Hello" coretype="Hello">
- <label>org.collectionspace.hello</label>
- <!--icon>/icons/file.gif</icon-->
- <default-view>view_documents</default-view>
-
- <layouts mode="any">
- <layout>heading</layout>
- <layout>hello</layout>
- </layouts>
- <!--layout>
- <widget jsfcomponent="h:inputText"
- schemaname="dublincore" fieldname="title"
- required="true" />
- <widget jsfcomponent="h:inputTextarea"
- schemaname="dublincore" fieldname="description" />
- <widget jsfcomponent="h:inputText"
- schemaname="Hello" fieldname="person:firstName" />
- <widget jsfcomponent="h:inputText"
- schemaname="Hello" fieldname="person:lastName" />
- </layout-->
- </type>
- <type id="Folder" coretype="Folder">
- <subtypes>
- <type>Hello</type>
- </subtypes>
- </type>
- <type id="Workspace" coretype="Workspace">
- <subtypes>
- <type>Hello</type>
- </subtypes>
- </type>
-
- </extension>
-</component>
+++ /dev/null
-<?xml version="1.0"?>
-
-<component name="org.collectionspace.hello.layouts.webapp">
-
- <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
- point="layouts">
-
- <layout name="hello">
- <templates>
- <template mode="any">/layouts/layout_default_template.xhtml</template>
- </templates>
- <rows>
- <row><widget>cid</widget></row>
- <row><widget>cversion</widget></row>
- <row><widget>firstname</widget></row>
- <row><widget>lastname</widget></row>
- <row><widget>street</widget></row>
- <row><widget>city</widget></row>
- <row><widget>state</widget></row>
- <row><widget>zip</widget></row>
- <row><widget>country</widget></row>
- </rows>
- <widget name="cid" type="text">
- <labels>
- <label mode="any">cid</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">cid</field>
- </fields>
- <widgetModes>
- <!-- not shown in create mode -->
- <mode value="create">hidden</mode>
- </widgetModes>
- <properties widgetMode="edit">
- <!-- required in widget mode edit -->
- <property name="required">true</property>
- </properties>
- <properties mode="view">
- <!-- property applying in view mode -->
- <property name="styleClass">cssClass</property>
- </properties>
- </widget>
- <widget name="cversion" type="text">
- <labels>
- <label mode="any">cversion</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">cversion</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
-
- <widget name="firstname" type="text">
- <labels>
- <label mode="any">firstName</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">firstName</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="lastname" type="text">
- <labels>
- <label mode="any">lastName</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">lastName</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="street" type="text">
- <labels>
- <label mode="any">street</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">street</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="city" type="text">
- <labels>
- <label mode="any">city</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">city</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="state" type="text">
- <labels>
- <label mode="any">state</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">state</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="zip" type="text">
- <labels>
- <label mode="any">zip</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">zip</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
- <widget name="country" type="text">
- <labels>
- <label mode="any">country</label>
- </labels>
- <translated>true</translated>
- <fields>
- <field schema="hello">country</field>
- </fields>
- <properties widgetMode="edit">
- <property name="styleClass">dataInputText</property>
- </properties>
-
- </widget>
-
- </layout>
-
-
- </extension>
-
-</component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello/"
- xmlns="http://collectionspace.org/hello/"
- targetNamespace="http://collectionspace.org/hello/"
- version="0.1"
->
- <!--xs:element name="person">
- <xs:complexType>
-
- <xs:sequence-->
- <xs:element name="firstName" type="xs:string"
- minOccurs="1" />
- <xs:element name="lastName" type="xs:string"
- minOccurs="1" />
- <xs:element name="street" type="xs:string"
- minOccurs="1" />
- <xs:element name="city" type="xs:string"
- minOccurs="1" />
- <xs:element name="state" type="xs:string"
- minOccurs="1" />
- <xs:element name="zip" type="xs:string"
- minOccurs="1" />
- <xs:element name="country" type="xs:string"
- minOccurs="1" />
-
- <xs:element name="cid" type="xs:string"
- minOccurs="1" />
- <xs:element name="cversion" type="xs:string"
- minOccurs="1" />
- <!--/xs:sequence>
- <xs:attribute name="cid" type="xs:long" />
- <xs:attribute name="cversion" type="xs:int" />
-
- </xs:complexType>
- </xs:element-->
-
-
-</xs:schema>
-
+++ /dev/null
-#Generated by Maven\r
-#Fri Apr 17 14:17:59 PDT 2009\r
-version=5.2-SNAPSHOT\r
-groupId=org.nuxeo.ecm.platform\r
-artifactId=nuxeo-platform-cs\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- \r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>jaxrs-prototype</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-client</artifactId>\r
- <packaging>jar</packaging>\r
- <version>0.1</version>\r
- <name>jaxrs-client</name>\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.testng</groupId>\r
- <artifactId>testng</artifactId>\r
- <version>5.6</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-api</artifactId>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-log4j12</artifactId>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <!-- filter out unwanted jars -->\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-multipart-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-httpclient</groupId>\r
- <artifactId>commons-httpclient</artifactId>\r
- </dependency>\r
- </dependencies>\r
- <build>\r
- <plugins>\r
- <plugin>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <version>2.0.2</version>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A IdentifierClient.
-
- * @version $Revision:$
- */
-public class IdentifierClient {
-
- /**
- *
- */
- private static final IdentifierClient instance = new IdentifierClient();
- /**
- *
- */
- private IdentifierProxy identifierProxy;
-
- /**
- *
- * Create a new IdentifierClient.
- *
- */
- private IdentifierClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- identifierProxy = ProxyFactory.create(IdentifierProxy.class, "http://localhost:8080/helloworld/cspace");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static IdentifierClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.IdentifierProxy#getIdentifier(java.lang.Long)
- */
- public ClientResponse<Identifier> getIdentifier(Long id) {
- return identifierProxy.getIdentifier(id);
- }
-
- /**
- * @param identifier
- * @return
- * @see org.collectionspace.hello.client.IdentifierProxy#createIdentifier(org.collectionspace.hello.client.entity.Identifier)
- */
- public ClientResponse<Response> createIdentifier(Identifier identifier) {
- return identifierProxy.createIdentifier(identifier);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/identifiers/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface IdentifierProxy {
-
- /**
- * @param id
- * @return
- */
- @GET
- @Path("/{id}")
- ClientResponse<Identifier> getIdentifier(@PathParam("id") Long id);
-
- @POST
- ClientResponse<Response> createIdentifier(Identifier so);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonClient.
-
- * @version $Revision:$
- */
-public class PersonClient {
-
- /**
- *
- */
- private static final PersonClient instance = new PersonClient();
- /**
- *
- */
- private PersonProxy personProxy;
-
- /**
- *
- * Create a new PersonClient.
- *
- */
- private PersonClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- personProxy = ProxyFactory.create(PersonProxy.class, "http://localhost:8080/helloworld/cspace");
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static PersonClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#getPerson()
- */
- public ClientResponse<Persons> getPersons() {
- return personProxy.getPersons();
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#getPerson(java.lang.Long)
- */
- public ClientResponse<Person> getPerson(Long id) {
- return personProxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#createPerson(org.collectionspace.hello.client.entity.Person)
- */
- public ClientResponse<Response> createPerson(Person person) {
- return personProxy.createPerson(person);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#updatePerson(java.lang.Long, org.collectionspace.hello.client.entity.Person)
- */
- public ClientResponse<Person> updatePerson(Long id, Person person) {
- return personProxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(Long id) {
- return personProxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/persons/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface PersonProxy {
-
- @GET
- ClientResponse<Persons> getPersons();
-
- @GET
- @Path("/{id}")
- ClientResponse<Person> getPerson(@PathParam("id") Long id);
-
- @POST
- ClientResponse<Response> createPerson(Person so);
-
- @PUT
- @Path("/{id}")
- ClientResponse<Person> updatePerson(@PathParam("id") Long id, Person so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") Long id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import org.collectionspace.hello.client.*;
-import java.util.ArrayList;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A IdentifierServiceTest.
- *
- * @version $Revision:$
- */
-public class IdentifierServiceTest {
-
- private IdentifierClient identifierClient = IdentifierClient.getInstance();
- private Long id = 0L;
-
- @Test
- public void createIdentifier() {
- Identifier identifier = new Identifier();
- identifier.setNamespace("org.bnhm");
- ClientResponse<Response> res = identifierClient.createIdentifier(identifier);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- id = extractId(res);
- }
-
- @Test(dependsOnMethods = {"createIdentifier"})
- public void getIdentifier() {
- Identifier i = identifierClient.getIdentifier(id).getEntity();
- verbose("got Identifier", i);
- }
-
- private Long extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- verbose("id=" + segments[segments.length - 1]);
- return Long.valueOf(segments[segments.length - 1]);
- }
-
- private void verbose(String msg) {
- System.out.println("IdentifierServiceTest : " + msg);
- }
-
- private void verbose(String msg, Identifier p) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), Identifier.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons;
-import org.collectionspace.hello.client.PersonClient;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A PersonServiceTest.
- *
- * @version $Revision:$
- */
-public class PersonServiceTest {
-
- private PersonClient personClient = PersonClient.getInstance();
- private Long updateId = 0L;
-
- @Test
- public void createPerson() {
- Person person = createPerson("Chris", "Hoffman");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createPersons() {
- Person person = createPerson("Aron", "Roberts");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- person = createPerson("Dan", "Sheppard");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() {
- Person touPerson = personClient.getPerson(updateId).getEntity();
- verbose("got person to update", touPerson, Person.class);
- touPerson.setFirstName("Richard");
- touPerson.setLastName("Millet");
- int initialVersion = touPerson.getVersion();
- Person uPerson = personClient.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, Person.class);
- Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Richard");
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void getPersons() {
- //the resource method is expected to return at least an empty list
- Persons persons = personClient.getPersons().getEntity();
- List<Persons.PersonListItem> list = persons.getPersonListItem();
- int i = 0;
- for (Persons.PersonListItem pli : list) {
- verbose("getPersons: list-item[" + i + "] firstName=" + pli.getFirstName());
- verbose("getPersons: list-item[" + i + "] lastName=" + pli.getLastName());
- verbose("getPersons: list-item[" + i + "] uri=" + pli.getUri());
- i++;
- }
- }
-
-
- @Test
- public void getNonExistingPerson() {
- ClientResponse<Person> res = personClient.getPerson(999L);
-
- Response.Status status = res.getResponseStatus();
- verbose(this.getClass().getName() + ": " +
- "getNonExistingPerson: Status: code=" + status.getStatusCode() +
- " message=" + status.toString());
- verbose("getNonExistingPerson: Metadata:");
- verboseMap(res.getMetadata());
- verbose("getNonExistingPerson: Headers:");
- verboseMap(res.getHeaders());
- if (status.equals(Response.Status.NOT_FOUND)) {
- String msg = res.getEntity(String.class, String.class);
- verbose("getNonExistingPerson: error message=" + msg);
- }
- }
-
- @Test(dependsOnMethods = {"updatePerson"})
- public void updateWrongPerson() {
- Person touPerson = personClient.getPerson(updateId).getEntity();
- verbose("updateWrongPerson: got person to update", touPerson, Person.class);
- touPerson.setFirstName("Richard");
- touPerson.setLastName("Millet");
- //use non existing person to update
- ClientResponse<Person> res = personClient.updatePerson(9999L, touPerson);
- if (res.getResponseStatus().equals(Response.Status.NOT_FOUND)) {
- verbose("updateWrongPerson: Status=" + res.getResponseStatus().toString());
- String msg = res.getEntity(String.class, String.class);
- verbose("updateWrongPerson: application error message=" + msg);
- }
- }
-
-
- @Test(dependsOnMethods = {"updateWrongPerson"})
- public void deletePerson() {
- ClientResponse<Response> res = personClient.deletePerson(updateId);
- verbose("deletePerson: id=" + updateId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private Person createPerson(String firstName, String lastName) {
- Person person = new Person();
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- return person;
- }
-
- private Long extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- verbose("id=" + segments[segments.length - 1]);
- return Long.valueOf(segments[segments.length - 1]);
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try {
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- //m.marshal(new JAXBElement(new QName("uri", "local"), Person.class, p), System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for (Object entry : map.entrySet()) {
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
-
- <appender name="unit-tests"
- class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="./target/unit-tests.log" />
- <param name="MaxFileSize" value="10240KB" />
- <param name="MaxBackupIndex" value="6" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
- <logger name="org.apache.commons.httpclient" additivity="false">
- <level value="warn" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <logger name="httpclient.wire" additivity="false">
- <level value="info" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <root>
- <priority value="debug" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </root>
-
-</log4j:configuration>
-
-
-
-
+++ /dev/null
-<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="javaee-addressbook-client">
- <test verbose="2" name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest" annotations="JDK">
- <classes>
- <class name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest"/>
- </classes>
- </test>
-</suite>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
- <parent>
- <artifactId>jaxrs-prototype</artifactId>
- <groupId>org.collectionspace.hello.services</groupId>
- <version>0.1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.hello.services</groupId>
- <artifactId>jaxrs-jaxb</artifactId>
- <version>0.1</version>
- <name>jaxrs-jaxb</name>
- <dependencies>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.0.2</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2-commons</groupId>
- <artifactId>property-listener-injector</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.jaxb2_commons</groupId>
- <artifactId>runtime</artifactId>
- <version>0.4.1.4</version>
- </dependency>
- </dependencies>
- <build>
- <defaultGoal>install</defaultGoal>
- <plugins>
- <plugin>
- <groupId>org.jvnet.jaxb2.maven2</groupId>
- <artifactId>maven-jaxb2-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.2</version>
- </dependency>
- </dependencies>
- <configuration>
- <args>
- <arg>-XtoString</arg>
- <arg>-Xinject-listener-code</arg>
- </args>
- <includeSchemas>
- <includeSchema>**/*.xsd</includeSchema>
- <includeSchema>**/*.dtd</includeSchema>
- </includeSchemas>
- <plugins>
- <plugin>
- <groupId>
- org.jvnet.jaxb2_commons
- </groupId>
- <artifactId>basic</artifactId>
- <version>0.4.1</version>
- </plugin>
- <plugin>
- <groupId>
- org.jvnet.jaxb2-commons
- </groupId>
- <artifactId>
- property-listener-injector
- </artifactId>
- <version>1.0</version>
- </plugin>
-
- </plugins>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-/**\r
- * \r
- */\r
-package org.collectionspace.hello.services;\r
-\r
-/**\r
- * @author remillet\r
- *\r
- */\r
-public interface CollectionObjectJAXBSchema {\r
- final static String OBJECT_NUMBER = "objectNumber";\r
- final static String OTHER_NUMBER = "otherNumber";\r
- final static String BRIEF_DESCRIPTION = "briefDescription";\r
- final static String COMMENTS = "comments";\r
- final static String DIST_FEATURES = "distFeatures";\r
- final static String OBJECT_NAME = "objectName";\r
- final static String RESPONSIBLE_DEPT = "responsibleDept";\r
- final static String TITLE = "title";\r
-}\r
-\r
-\r
+++ /dev/null
-package org.collectionspace.hello.services;\r
-\r
-public interface CollectionObjectListItemJAXBSchema {\r
- final static String OBJECT_NUMBER = "objectNumber";\r
- final static String CSID = "csid";\r
- final static String URI = "url";\r
-}\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/hello"
- xmlns="http://collectionspace.org/hello"
- targetNamespace="http://collectionspace.org/hello"
- version="0.1"
->
-
-<!-- avoid XmlRootElement nightnmare, see http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html-->
- <xs:element name="person">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="firstName" type="xs:string"
- minOccurs="1" />
- <xs:element name="lastName" type="xs:string"
- minOccurs="1" />
- <xs:element name="street" type="xs:string"
- minOccurs="1" />
- <xs:element name="city" type="xs:string"
- minOccurs="1" />
- <xs:element name="state" type="xs:string"
- minOccurs="1" />
- <xs:element name="zip" type="xs:string"
- minOccurs="1" />
- <xs:element name="country" type="xs:string"
- minOccurs="1" />
- </xs:sequence>
- <xs:attribute name="id" type="xs:long" />
- <xs:attribute name="version" type="xs:int" />
-
- </xs:complexType>
- </xs:element>
-
-
- <!-- person short is returned by getPersons method -->
- <xs:element name="persons">
- <xs:complexType>
- <xs:sequence>
-
- <!-- person list item is returned by getPersons method -->
- <xs:element name="person-list-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="firstName" type="xs:string"
- minOccurs="1" />
- <xs:element name="lastName" type="xs:string"
- minOccurs="1" />
- <!-- uri to retrive person details -->
- <xs:element name="uri" type="xs:anyURI"
- minOccurs="1" />
- <xs:element name="id" type="xs:long"
- minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
-<!-- person-nuxeo uses both id and version as string -->
- <xs:element name="person-nuxeo">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="id" type="xs:string" minOccurs="1" />
- <xs:element name="version" type="xs:string" minOccurs="1" />
- <xs:element name="firstName" type="xs:string" minOccurs="1" />
- <xs:element name="lastName" type="xs:string" minOccurs="1" />
- <xs:element name="street" type="xs:string" minOccurs="1" />
- <xs:element name="city" type="xs:string" minOccurs="1" />
- <xs:element name="state" type="xs:string" minOccurs="1" />
- <xs:element name="zip" type="xs:string" minOccurs="1" />
- <xs:element name="country" type="xs:string" minOccurs="1" />
- </xs:sequence>
-
- </xs:complexType>
- </xs:element>
-
-
- <!-- people as in nuxeo repository -->
- <xs:element name="people">
- <xs:complexType>
- <xs:sequence>
-
- <xs:element name="people-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="title" type="xs:string"
- minOccurs="1" />
- <!-- uri to retrive person details -->
- <xs:element name="uri" type="xs:anyURI"
- minOccurs="1" />
- <xs:element name="id" type="xs:string"
- minOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="identifier">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="namespace" type="xs:string"
- minOccurs="1" />
- <xs:element name="value" type="xs:string"
- minOccurs="0" />
- </xs:sequence>
- <xs:attribute name="id" type="xs:long" />
- <xs:attribute name="version" type="xs:int" />
-
- </xs:complexType>
- </xs:element>
-
-
-</xs:schema>
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://collectionspace.org/world"
- xmlns="http://collectionspace.org/world"
- targetNamespace="http://collectionspace.org/world"
- version="0.1"
->
- <xs:element name="dublincore-nuxeo">
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="title" type="xs:string" minOccurs="1" />
- <xs:element name="description" type="xs:string" minOccurs="1" />
- <xs:element name="subject" type="xs:string" minOccurs="1" />
- <xs:element name="identifier" type="xs:string" minOccurs="1" />
- <xs:element name="language" type="xs:string" minOccurs="1" />
- </xs:sequence>
-
- </xs:complexType>
- </xs:element>
-
-</xs:schema>
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- \r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>jaxrs-prototype</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-nuxeo-client</artifactId>\r
- <packaging>jar</packaging>\r
- <version>0.1</version>\r
- <name>jaxrs-nuxeo-client</name>\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.testng</groupId>\r
- <artifactId>testng</artifactId>\r
- <version>5.6</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-api</artifactId>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-log4j12</artifactId>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <!-- filter out unwanted jars -->\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-multipart-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-httpclient</groupId>\r
- <artifactId>commons-httpclient</artifactId>\r
- </dependency>\r
- </dependencies>\r
- <build>\r
- <plugins>\r
- <plugin>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <version>2.0.2</version>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.client;\r
-\r
-import java.util.*;\r
-\r
-public abstract class CollectionSpaceClient {\r
- static final String URL_PROPERTY = "org.collectionspace.url";\r
- /*\r
- static final String URL_PROPERTY_SCHEME = "org.collectionspace.url.schme";\r
- static final String URL_PROPERTY_HOST = "org.collectionspace.url.host";\r
- static final String URL_PROPERTY_PORT = "org.collectionspace.url.port";\r
- static final String URL_PROPERTY_CONTEXT = "org.collectionspace.url.context";\r
- */\r
- \r
- private static final String SCHEME = "http";\r
- private static final String HOST = "localhost";\r
- private static final String PORT = "8180";\r
- private static final String URI = "/helloworld/cspace-nuxeo";\r
- private static final String URL = SCHEME + "://" +\r
- HOST + ":" +\r
- PORT +\r
- URI;\r
- private String collectionSpaceURL = null;\r
- \r
- \r
- String getURL() {\r
- String result = collectionSpaceURL;\r
- \r
- if (collectionSpaceURL == null) {\r
- result = collectionSpaceURL = System.getProperty(URL_PROPERTY, URL);\r
- }\r
- \r
- return result;\r
- }\r
-}\r
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonNuxeoClient.
-
- * @version $Revision:$
- */
-public class MultipartClient extends CollectionSpaceClient {
-
- /**
- *
- */
- private static final MultipartClient instance = new MultipartClient();
- /**
- *
- */
- private MultipartProxy multipartProxy;
-
- /**
- *
- * Create a new PersonNuxeoClient.
- *
- */
- private MultipartClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- multipartProxy = ProxyFactory.create(MultipartProxy.class, getURL());
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static MultipartClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#getPerson(java.lang.String)
- */
- public ClientResponse<MultipartFormDataInput> getPerson(String id) {
- return multipartProxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#createPerson(org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<Response> createPerson(MultipartFormDataOutput multipartPerson) {
- return multipartProxy.createPerson(multipartPerson);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#updatePerson(java.lang.Long, org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<PersonNuxeo> updatePerson(String id, PersonNuxeo person) {
- return multipartProxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(String id) {
- return multipartProxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-
-/**
- * @version $Revision:$
- */
-@Path("/multipart/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface MultipartProxy {
-
-
- @GET
- @Path("/{id}")
- @Produces("multipart/form-data")
- ClientResponse<MultipartFormDataInput> getPerson(@PathParam("id") String id);
-
- @POST
- @Consumes("multipart/form-data")
- ClientResponse<Response> createPerson(MultipartFormDataOutput multipartPerson);
-
- @PUT
- @Path("/{id}")
- ClientResponse<PersonNuxeo> updatePerson(@PathParam("id") String id, PersonNuxeo so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") String id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonNuxeoClient.
-
- * @version $Revision:$
- */
-public class MultischemaClient extends CollectionSpaceClient {
-
- /**
- *
- */
- private static final MultischemaClient instance = new MultischemaClient();
- /**
- *
- */
- private MultischemaProxy proxy;
-
- /**
- *
- * Create a new PersonNuxeoClient.
- *
- */
- private MultischemaClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- proxy = ProxyFactory.create(MultischemaProxy.class, getURL());
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static MultischemaClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#getPerson(java.lang.String)
- */
- public ClientResponse<MultipartFormDataInput> getPerson(String id) {
- return proxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#createPerson(org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<Response> createPerson(MultipartFormDataOutput multipartPerson) {
- return proxy.createPerson(multipartPerson);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#updatePerson(java.lang.Long, org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<PersonNuxeo> updatePerson(String id, PersonNuxeo person) {
- return proxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(String id) {
- return proxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-
-/**
- * @version $Revision:$
- */
-@Path("/multischema/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface MultischemaProxy {
-
-
- @GET
- @Path("/{id}")
- @Produces("multipart/form-data")
- ClientResponse<MultipartFormDataInput> getPerson(@PathParam("id") String id);
-
- @POST
- @Consumes("multipart/form-data")
- ClientResponse<Response> createPerson(MultipartFormDataOutput multipartPerson);
-
- @PUT
- @Path("/{id}")
- ClientResponse<PersonNuxeo> updatePerson(@PathParam("id") String id, PersonNuxeo so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") String id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ProxyFactory;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
-
-/**
- * A PersonNuxeoClient.
-
- * @version $Revision:$
- */
-public class PersonNuxeoClient extends CollectionSpaceClient {
-
- /**
- *
- */
- private static final PersonNuxeoClient instance = new PersonNuxeoClient();
- /**
- *
- */
- private PersonNuxeoProxy personProxy;
-
- /**
- *
- * Create a new PersonNuxeoClient.
- *
- */
- private PersonNuxeoClient() {
- ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
- RegisterBuiltin.register(factory);
- personProxy = ProxyFactory.create(PersonNuxeoProxy.class, getURL());
- }
-
- /**
- * FIXME Comment this
- *
- * @return
- */
- public static PersonNuxeoClient getInstance() {
- return instance;
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#getPerson()
- */
- public ClientResponse<People> getPeople() {
- return personProxy.getPeople();
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#getPerson(java.lang.String)
- */
- public ClientResponse<PersonNuxeo> getPerson(String id) {
- return personProxy.getPerson(id);
- }
-
- /**
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#createPerson(org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<Response> createPerson(PersonNuxeo person) {
- return personProxy.createPerson(person);
- }
-
- /**
- * @param id
- * @param person
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#updatePerson(java.lang.Long, org.collectionspace.hello.PersonNuxeo)
- */
- public ClientResponse<PersonNuxeo> updatePerson(String id, PersonNuxeo person) {
- return personProxy.updatePerson(id, person);
- }
-
- /**
- * @param id
- * @return
- * @see org.collectionspace.hello.client.PersonNuxeoProxy#deletePerson(java.lang.Long)
- */
- public ClientResponse<Response> deletePerson(String id) {
- return personProxy.deletePerson(id);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.jboss.resteasy.client.ClientResponse;
-
-/**
- * @version $Revision:$
- */
-@Path("/persons/")
-@Produces({"application/xml"})
-@Consumes({"application/xml"})
-public interface PersonNuxeoProxy {
-
- @GET
- ClientResponse<People> getPeople();
-
- @GET
- @Path("/{id}")
- ClientResponse<PersonNuxeo> getPerson(@PathParam("id") String id);
-
- @POST
- ClientResponse<Response> createPerson(PersonNuxeo so);
-
- @PUT
- @Path("/{id}")
- ClientResponse<PersonNuxeo> updatePerson(@PathParam("id") String id, PersonNuxeo so);
-
- @DELETE
- @Path("/{id}")
- ClientResponse<Response> deletePerson(@PathParam("id") String id);
-}
\ No newline at end of file
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.client.MultipartClient;
-import org.collectionspace.world.DublincoreNuxeo;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A MultipartTest.
- *
- * @version $Revision:$
- */
-public class MultipartServiceTest {
-
- private MultipartClient multipartClient = MultipartClient.getInstance();
- private String updateId = "";
- private String deleteId = "";
-
- @Test
- public void createPerson() {
- MultipartFormDataOutput multipartPerson = createPerson("Mr.", "Chris", "Hoffman");
- ClientResponse<Response> res = multipartClient.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createTeam() {
- MultipartFormDataOutput multipartPerson = createPerson("Mr.", "Sanjay", "Dalal");
- ClientResponse<Response> res = multipartClient.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- deleteId = extractId(res);
-
- multipartPerson = createPerson("Mr.", "Aron", "Roberts");
- res = multipartClient.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- multipartPerson = createPerson("Mr.", "Richard", "Millet");
- res = multipartClient.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() throws Exception {
- MultipartFormDataInput mdip = multipartClient.getPerson(updateId).getEntity();
- PersonNuxeo touPerson = mdip.getFormDataPart("hello", PersonNuxeo.class, null);
- touPerson.setId(updateId);
- verbose("got person to update", touPerson, PersonNuxeo.class);
- touPerson.setFirstName("Patrick");
- touPerson.setLastName("Schmitz");
- PersonNuxeo uPerson = multipartClient.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, PersonNuxeo.class);
- //Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Patrick");
- }
-
- @Test(dependsOnMethods = {"createTeam"})
- public void deletePerson() {
- ClientResponse<Response> res = multipartClient.deletePerson(deleteId);
- verbose("deletePerson: id=" + deleteId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private MultipartFormDataOutput createPerson(String title, String firstName, String lastName) {
- PersonNuxeo person = new PersonNuxeo();
-
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- person.setVersion("1.0");
-
- DublincoreNuxeo dublin = new DublincoreNuxeo();
- dublin.setTitle(title);
- MultipartFormDataOutput multipartPerson = new MultipartFormDataOutput();
- multipartPerson.addFormData("hello", person, MediaType.APPLICATION_XML_TYPE);
- multipartPerson.addFormData("dublincore", dublin, MediaType.APPLICATION_XML_TYPE);
- return multipartPerson;
- }
-
- private String extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- String id = segments[segments.length - 1];
- verbose("extractId: id=" + id);
- return id;
- }
-
- private void verbose(String msg) {
- System.out.println("MultipartServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for(Object entry : map.entrySet()){
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.client.MultischemaClient;
-import org.collectionspace.world.DublincoreNuxeo;
-import org.jboss.resteasy.client.ClientResponse;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A MultipartTest.
- *
- * @version $Revision:$
- */
-public class MultischemaServiceTest {
-
- private MultischemaClient client = MultischemaClient.getInstance();
- private String updateId = "";
- private String deleteId = "";
- final Logger logger = LoggerFactory.getLogger(MultischemaServiceTest.class);
- @Test
- public void createPerson() {
- MultipartFormDataOutput multipartPerson = createPerson("Mr.", "Chris", "Hoffman");
- ClientResponse<Response> res = client.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createTeam() {
- MultipartFormDataOutput multipartPerson = createPerson("Mr.", "Sanjay", "Dalal");
- ClientResponse<Response> res = client.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- deleteId = extractId(res);
-
- multipartPerson = createPerson("Mr.", "Aron", "Roberts");
- res = client.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- multipartPerson = createPerson("Mr.", "Richard", "Millet");
- res = client.createPerson(multipartPerson);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() throws Exception {
- MultipartFormDataInput mdip = client.getPerson(updateId).getEntity();
- PersonNuxeo touPerson = mdip.getFormDataPart("hello", PersonNuxeo.class, null);
- touPerson.setId(updateId);
- verbose("got person to update", touPerson, PersonNuxeo.class);
- touPerson.setFirstName("Patrick");
- touPerson.setLastName("Schmitz");
- PersonNuxeo uPerson = client.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, PersonNuxeo.class);
- //Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Patrick");
- }
-
- @Test(dependsOnMethods = {"createTeam"})
- public void deletePerson() {
- ClientResponse<Response> res = client.deletePerson(deleteId);
- verbose("deletePerson: id=" + deleteId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private MultipartFormDataOutput createPerson(String title, String firstName, String lastName) {
- PersonNuxeo person = new PersonNuxeo();
-
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- person.setVersion("1.0");
-
- DublincoreNuxeo dublin = new DublincoreNuxeo();
- dublin.setTitle(title);
- MultipartFormDataOutput multipartPerson = new MultipartFormDataOutput();
- multipartPerson.addFormData("hello", person, MediaType.APPLICATION_XML_TYPE);
- multipartPerson.addFormData("dublincore", dublin, MediaType.APPLICATION_XML_TYPE);
- return multipartPerson;
- }
-
- private String extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- String id = segments[segments.length - 1];
- verbose("extractId: id=" + id);
- return id;
- }
-
- private void verbose(String msg) {
- logger.info(msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
-}
+++ /dev/null
-package org.collectionspace.hello.client.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.PersonNuxeo;
-import org.collectionspace.hello.People;
-import org.collectionspace.hello.client.PersonNuxeoClient;
-import org.jboss.resteasy.client.ClientResponse;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * A PersonNuxeoServiceTest.
- *
- * @version $Revision:$
- */
-public class PersonNuxeoServiceTest {
-
- private PersonNuxeoClient personClient = PersonNuxeoClient.getInstance();
- private String updateId = "";
- private String deleteId = "";
-
- @Test
- public void createPerson() {
- PersonNuxeo person = createPerson("Chris", "Hoffman");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- //store updateId locally
- updateId = extractId(res);
- }
-
- @Test
- public void createTeam() {
- PersonNuxeo person = createPerson("Sanjay", "Dalal");
- ClientResponse<Response> res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
- deleteId = extractId(res);
-
- person = createPerson("Aron", "Roberts");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- person = createPerson("Richard", "Millet");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- person = createPerson("Megan", "Forbes");
- person.setCity("NewYork");
- person.setState("NY");
- person.setZip("01234");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- person = createPerson("Carl", "Goodman");
- person.setCity("NewYork");
- person.setState("NY");
- person.setZip("01234");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- person = createPerson("Dan", "Sheppard");
- person.setCity("Cambridge");
- person.setState("ZZ");
- person.setCountry("UK");
- person.setZip("UK-01234");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- person = createPerson("Colin", "Clark");
- person.setCity("Toranto");
- person.setState("ON");
- person.setCountry("CA");
- person.setZip("CA-01234");
- res = personClient.createPerson(person);
- Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
-
- }
-
- @Test(dependsOnMethods = {"createPerson"})
- public void updatePerson() {
- PersonNuxeo touPerson = personClient.getPerson(updateId).getEntity();
- touPerson.setId(updateId);
- verbose("got person to update", touPerson, PersonNuxeo.class);
- touPerson.setFirstName("Patrick");
- touPerson.setLastName("Schmitz");
- PersonNuxeo uPerson = personClient.updatePerson(updateId, touPerson).getEntity();
- verbose("updated person", uPerson, PersonNuxeo.class);
- //Assert.assertNotSame(uPerson.getVersion(), initialVersion);
- Assert.assertEquals(uPerson.getFirstName(), "Patrick");
- }
-
- @Test(dependsOnMethods = {"createTeam"})
- public void getPeople() {
- //the resource method is expected to return at least an empty list
- People people = personClient.getPeople().getEntity();
- List<People.PeopleItem> list = people.getPeopleItem();
- int i = 0;
- for(People.PeopleItem pli : list){
- verbose("getPeople: list-item[" + i + "] title=" + pli.getTitle());
- verbose("getPeople: list-item[" + i + "] id=" + pli.getId());
- verbose("getPeople: list-item[" + i + "] uri=" + pli.getUri());
- i++;
- }
- }
-
- @Test(dependsOnMethods = {"updatePerson"})
- public void deletePerson() {
- ClientResponse<Response> res = personClient.deletePerson(deleteId);
- verbose("deletePerson: id=" + deleteId);
- verbose("deletePerson: status = " + res.getStatus());
- Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
- }
-
- private PersonNuxeo createPerson(String firstName, String lastName) {
- PersonNuxeo person = new PersonNuxeo();
- person.setFirstName(firstName);
- person.setLastName(lastName);
- person.setStreet("2195 Hearst Ave.");
- person.setCity("Berkeley");
- person.setState("CA");
- person.setZip("94704");
- person.setCountry("US");
- person.setVersion("1.0");
- return person;
- }
-
- private String extractId(ClientResponse<Response> res) {
- MultivaluedMap mvm = res.getMetadata();
- String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
- String[] segments = uri.split("/");
- String id = segments[segments.length - 1];
- verbose("extractId: id=" + id);
- return id;
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceTest : " + msg);
- }
-
- private void verbose(String msg, Object o, Class clazz) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(clazz);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(o, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
- private void verboseMap(MultivaluedMap map) {
- for(Object entry : map.entrySet()){
- MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
- verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());
- }
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
-
- <appender name="unit-tests"
- class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="./target/unit-tests.log" />
- <param name="MaxFileSize" value="10240KB" />
- <param name="MaxBackupIndex" value="6" />
- <layout class="org.apache.log4j.TTCCLayout">
- <param name="DateFormat" value="ISO8601" />
- </layout>
- </appender>
-
- <logger name="org.apache.commons.httpclient" additivity="false">
- <level value="warn" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <logger name="httpclient.wire" additivity="false">
- <level value="info" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </logger>
-
- <root>
- <priority value="debug" />
- <appender-ref ref="console" />
- <appender-ref ref="unit-tests" />
- </root>
-
-</log4j:configuration>
-
-
-
-
+++ /dev/null
-<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="javaee-addressbook-client">
- <test verbose="2" name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest" annotations="JDK">
- <classes>
- <class name="org.jboss.resteasy.examples.addressbook.client.AddressBookTest"/>
- </classes>
- </test>
-</suite>
+++ /dev/null
-Helloworld service interfacing with Nuxeo repository through Nuxeo
-REST apis.
-
-System Requirements:
-====================
-- Maven 2.0.9 or higher
-- Nuxeo CollectionSpace Extensions
-
-Building the project:
-====================
-In root directoy...
-1. customize build.properties for your environment
-2. mvn clean package
-3. ant
+++ /dev/null
-jboss.dir=C:/dev/jboss-4.2.3.GA\r
-jboss.client.dir=${jboss.dir}/client\r
-nuxeo.dir=${jboss.dir}/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.dir=file:///C:/dev/jboss-4.2.3.GA/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.client.dir=file:///C:/dev/nuxeo/nuxeo-core/nuxeo-core-client/target\r
+++ /dev/null
-<?xml version="1.0"?>
-<project name="helloworld" default="deploy" basedir=".">
-
- <property file="build.properties" />
-
-
- <target name="deploy" description="Deploy">
- <copy todir="${jboss.dir}/server/default/deploy">
- <fileset file="${basedir}/target/helloworld.war" />
- </copy>
- </target>
-
-</project>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' ?>\r
-\r
-<!-- The JBoss specific elements used to integrate the servlet 2.4 web.xml\r
-elements into a JBoss deployment. This version applies to the JBoss 4.2.x\r
-releases.\r
-\r
-$Id: jboss-web_4_0.dtd 60134 2007-01-31 13:14:47Z thomas.diesler@jboss.com $\r
-\r
- <!DOCTYPE jboss-web PUBLIC\r
- "-//JBoss//DTD Web Application 4.2//EN"\r
- "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">\r
--->\r
-\r
-<!ENTITY % service-ref PUBLIC\r
- "-//JBoss//DTD Web Service Reference 4.2//EN"\r
- "http://www.jboss.org/j2ee/dtd/service-ref_4_2.dtd">\r
- \r
-%service-ref;\r
-\r
-<!-- The jboss-web element is the root element.\r
--->\r
-<!ELEMENT jboss-web (class-loading?, security-domain?, jacc-star-role-allow?, context-root?,\r
- virtual-host*, use-session-cookies?, replication-config?, resource-env-ref*,\r
- resource-ref*, security-role*, ejb-ref*, ejb-local-ref*, \r
- message-destination-ref*, message-destination*, \r
- webservice-description*, service-ref*, depends*, servlet*, authenticators*)>\r
-\r
-<!-- The class-loading element allows one to override the default class\r
-loading behavior of the web container. You can specify the\r
-Examples:\r
- <class-loading java2ClassLoadingCompliance='false'/>\r
-\r
- <class-loading java2ClassLoadingCompliance='false'>\r
- <loader-repository loaderRepositoryClass='dot.com.LoaderRepository'>\r
- ...\r
- </loader-repository>\r
- </class-loading>\r
--->\r
-<!ELEMENT class-loading (loader-repository?)>\r
-<!-- The java2ClassLoadingCompliance attribute indicates if the normal Java2\r
-parent first class loading model should be used over the servlet 2.3 web\r
-container first model.\r
--->\r
-<!ATTLIST class-loading java2ClassLoadingCompliance CDATA #IMPLIED>\r
-\r
-<!-- The loader-repository specifies the name of the UnifiedLoaderRepository\r
- MBean to use for the ear to provide ear level scoping of classes deployed\r
- in the ear. It is a unique JMX ObjectName string. It may also specify\r
- an arbitrary configuration by including a loader-repository-config element.\r
-\r
-Examples:\r
- <class-loading>\r
- <loader-repository>jboss.test:loader=cts-cmp2v1-sar.ear</loader-repository>\r
- </class-loading>\r
-\r
- <class-loading java2ClassLoadingCompliance='false'>\r
- <loader-repository loaderRepositoryClass='dot.com.LoaderRepository'>\r
- dot.com:loader=unique-archive-name\r
- <loader-repository-config configParserClass='dot.com.LoaderParser'>\r
- java2ParentDelegaton=true\r
- </loader-repository-config>\r
- </loader-repository>\r
- </class-loading>\r
--->\r
-<!ELEMENT loader-repository (#PCDATA | loader-repository-config)*>\r
-<!-- The loaderRepositoryClass attribute gives the classname of the\r
-org.jboss.mx.loading.LoaderRepository implementation.\r
--->\r
-<!ATTLIST loader-repository loaderRepositoryClass CDATA #IMPLIED>\r
-\r
-<!-- The loader-repository-config element specifies any arbitrary configuration\r
-fragment for use in configuring the loader-repository instance. The actual\r
-content of this element is specific to the loaderRepositoryClass and the\r
-code parsing the element.\r
--->\r
-<!ELEMENT loader-repository-config (#PCDATA)>\r
-<!-- The configParserClass attribute gives the classname of the\r
-org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfigParser\r
-implementation to use to parse the loader-repository-config content.\r
--->\r
-<!ATTLIST loader-repository-config configParserClass CDATA #IMPLIED>\r
-\r
-<!-- The context-root element specifies the context root of a web\r
-application. This is normally specified at the ear level using the standard\r
-J2EE application.xml descriptor, but it may be given here for standalone wars.\r
-This should not override the application.xml level specification.\r
--->\r
-<!ELEMENT context-root (#PCDATA)>\r
-
-<!-- (JBAS-1824) The jacc-star-role-allow element specifies whether the
-jacc permission generating agent in the web layer needs to generate a
-WebResourcePermission(url,null) permission such that the jacc provider can
-make a decision as to bypass authorization or not.
--->
-<!ELEMENT jacc-star-role-allow (#PCDATA)>
-\r
-<!-- The security-domain element allows one to specify a module wide\r
-security manager domain. It specifies the JNDI name of the security\r
-manager that implements the org.jboss.security.AuthenticationManager and\r
-org.jboss.security.RealmMapping interfaces for the domain.\r
--->\r
-<!ELEMENT security-domain (#PCDATA)>\r
-\r
-<!-- The flushOnSessionInvalidation attribute is a boolean indicating whether\r
-the associated security domain cache should be flushed when the web session is\r
-invalidated. If true, the security manager service \r
-flushAuthenticationCache(String, java.security.Principal) is called when the\r
-session is seen to be invalid due to expiration or explicit invalidation.\r
--->\r
-<!ATTLIST security-domain flushOnSessionInvalidation (true|false) 'false'>\r
-\r
-<!-- The virtual-host element allows one to specify which virtual host the war\r
-should be deployed to. Example, to specify that a war should be deployed to the\r
-www.jboss-store.org virtual host add the following virtual-host element:\r
- <virtual-host>www.jboss-store.org</virtual-host>\r
--->\r
-<!ELEMENT virtual-host (#PCDATA)>\r
-\r
-<!--The resource-env-ref element maps from the servlet ENC relative name\r
-of the resource-env-ref to the deployment environment JNDI name of\r
-the administered object resource.\r
-Example:\r
- <resource-env-ref>\r
- <resource-env-ref-name>jms/NewsTopic</resource-env-ref-name>\r
- <jndi-name>topic/NewsTopic</jndi-name>\r
- </resource-env-ref>\r
--->\r
-<!ELEMENT resource-env-ref (resource-env-ref-name , jndi-name)>\r
-\r
-<!-- The resource-env-ref-name specifies the name of the web.xml\r
-resource-env-ref-name element which this mapping applies.\r
--->\r
-<!ELEMENT resource-env-ref-name (#PCDATA)>\r
-\r
-<!--The resource-ref element maps from the servlet ENC relative name\r
-of the resource-ref to the deployment environment JNDI name of\r
-the resource manager connection factory.\r
-Example:\r
- <resource-ref>\r
- <res-ref-name>jdbc/TheDataSource</res-ref-name>\r
- <jndi-name>java:/DefaultDS</jndi-name>\r
- </resource-ref>\r
-\r
- <resource-ref>\r
- <res-ref-name>jdbc/TheDataSource</res-ref-name>\r
- <res-url>http://x.y.z</res-url>\r
- </resource-ref>\r
--->\r
-<!ELEMENT resource-ref (res-ref-name , (jndi-name | res-url))>\r
-\r
-<!-- The res-ref-name specifies the name of the web.xml res-ref-name element\r
-which this mapping applies.\r
--->\r
-<!ELEMENT res-ref-name (#PCDATA)>\r
-\r
-<!--\r
- The security-role element contains the definition of a security role.\r
- The definition consists of an the security role name and principal name element(s).\r
-\r
-Used in: jboss-web\r
-\r
-Example:\r
- <security-role>\r
- <role-name>Manager</role-name>\r
- <principal-name>j2ee</principal-name>\r
- <principal-name>javajoe</principal-name>\r
- </security-role>\r
--->\r
-<!ELEMENT security-role (role-name, principal-name+)>\r
-\r
-<!--\r
- The role-name element is the name of the role.\r
-\r
- Used in: security-role\r
--->\r
-<!ELEMENT role-name (#PCDATA)>\r
-\r
-<!--\r
- The principal-name element is the name of the principal that is mapped\r
- to the assembly role-name.\r
-\r
- Used in: security-role\r
--->\r
-<!ELEMENT principal-name (#PCDATA)>\r
-\r
-<!-- The ejb-ref element maps from the servlet ENC relative name\r
-of the ejb reference to the deployment environment JNDI name of\r
-the bean.\r
-Example:\r
- <ejb-ref>\r
- <ejb-ref-name>ejb/Bean0</ejb-ref-name>\r
- <jndi-name>deployed/ejbs/Bean0</jndi-name>\r
- </ejb-ref>\r
--->\r
-<!ELEMENT ejb-ref (ejb-ref-name , jndi-name)>\r
-\r
-<!-- The ejb-local-ref element maps from the servlet ENC relative name\r
-of the ejb local reference to the deployment environment JNDI name of\r
-the bean.\r
-Example:\r
- <ejb-local-ref>\r
- <ejb-ref-name>ejb/Bean0</ejb-ref-name>\r
- <local-jndi-name>deployed/ejbs/Bean0</local-jndi-name>\r
- </ejb-local-ref>\r
--->\r
-<!ELEMENT ejb-local-ref (ejb-ref-name , (local-jndi-name|jndi-name))>\r
-\r
-<!-- The ejb-ref-name element gives the ENC relative name used\r
-in the web.xml ejb-ref-name element.\r
-\r
-Used in: ejb-ref\r
--->\r
-<!ELEMENT ejb-ref-name (#PCDATA)>\r
-\r
-<!-- The jndi-name element specifies the JNDI name of the deployed\r
-object to which the servlet ENC binding will link to via a JNDI\r
-LinkRef.\r
-\r
-Used in: resource-ref, resource-env-ref, ejb-ref, \r
- message-destination-ref, message-destination\r
--->\r
-<!ELEMENT jndi-name (#PCDATA)>\r
-\r
-<!--\r
- The JNDI name under with the local home interface should be bound\r
-\r
- Used in: ejb-local-ref\r
--->\r
-<!ELEMENT local-jndi-name (#PCDATA)>\r
-\r
-<!-- The res-url element value is a URL string for a resource-ref of\r
-res-type = java.net.URL. Using a res-url creates a binding of the URL\r
-instance under the java:comp/env. If you want to link to another binding\r
-of a URL, you can use the jndi-name to do so.\r
-\r
-// Binds the URL(http://x.y.z) under java:comp/env/jdbc/XYZHome\r
-<resource-ref>\r
- <res-ref-name>jdbc/XYZHome</res-ref-name>\r
- <res-url>http://x.y.z</res-url>\r
-</resource-ref>\r
-// Binds a link to urls/XYZHomePage under java:comp/env/jdbc/XYZHome\r
-<resource-ref>\r
- <res-ref-name>jdbc/XYZHome</res-ref-name>\r
- <res-url>urls/XYZHomePage</res-url>\r
-</resource-ref>\r
-\r
- Used in: resource-ref\r
--->\r
-<!ELEMENT res-url (#PCDATA)>\r
-\r
-<!--\r
- The message-destination-ref element is used to configure the\r
- jndi-name for a message-destination-ref in ejb-jar.xml\r
-\r
- Used in: jboss-web\r
--->\r
-<!ELEMENT message-destination-ref (message-destination-ref-name, jndi-name)>\r
-\r
-<!--\r
- The message-destination-ref-name element identifies the\r
- message-destination-ref. It must match the name in ejb-jar.xml\r
-\r
- Used in: message-destination-ref\r
--->\r
-<!ELEMENT message-destination-ref-name (#PCDATA)>\r
-\r
-<!--\r
- The message-destination element is used to configure the\r
- jndi-name for a message-destination in ejb-jar.xml\r
-\r
- Used in: jboss-web\r
--->\r
-<!ELEMENT message-destination (message-destination-name, jndi-name)>\r
-\r
-<!--\r
- The message-destination-name element identifies the\r
- message-destination. It must match the name in ejb-jar.xml\r
-\r
- Used in: message-destination\r
--->\r
-<!ELEMENT message-destination-name (#PCDATA)>\r
-\r
-<!-- The depends element gives a JMX ObjectName of a service on which the\r
-container or ejb depends.\r
--->\r
-<!ELEMENT depends (#PCDATA)>\r
-\r
-<!-- The use-session-cookies element controls wether this context uses session cookies\r
- or not.\r
-\r
-Example:\r
- <use-session-cookies>true</use-session-cookies>\r
--->\r
-<!ELEMENT use-session-cookies (#PCDATA)>\r
-\r
-\r
-<!--\r
- HTTP Session clustering configuration (optional tags)\r
--->\r
-<!ELEMENT replication-config (replication-trigger?, replication-granularity, replication-field-batch-mode?)>\r
-\r
-<!--\r
- Clustering only: Determines when the container should consider that a session\r
- must be replicated accross the cluster.\r
- Possible values are:\r
- 1 - "SET_AND_GET"\r
- 2 - "SET_AND_NON_PRIMITIVE_GET" (default value)\r
- 3 - "SET"\r
-\r
- The first option is conservative but not optimal (performance-wise): it will replicate the\r
- session even if its content has not been modified but simply accessed. There is no deterministic\r
- way to know if the content of an attribute is not itself modified. Consequently, by default, no\r
- hypothesis can be done. It is up to the developer to tell us if we can trust this policy.\r
-\r
- The second option is conservative but will only replicate if a non-primitive Object has been\r
- accessed (Integer, Long, String, etc. which are immutables). It is the default value.\r
-\r
- The third option considers that the developer will explicitely call setAttribute on the session\r
- if it has to be replicated.\r
-\r
-Examples:\r
- <replication-trigger>SET_AND_GET</replication-trigger>\r
- or\r
- <replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>\r
- or\r
- <replication-trigger>SET</replication-trigger>\r
--->\r
-<!ELEMENT replication-trigger (#PCDATA)>\r
-\r
-<!--\r
- Clustering only: Determines the session replication granularity level.\r
- Possible values are:\r
- 1 - "SESSION" (default)\r
- 2 - "ATTRIBUTE"\r
- 3 - "FIELD"\r
-\r
- The first option indicates that replication is done per session instance, i.e. when\r
- the session is considered modified, the whole session object will be serialized\r
- and replicated. This is the preferred policy when the sessions are generally small.\r
-\r
- The second option indicates that replication is performed only for the the dirty\r
- attributes in the session, plus some session data, like lastAccessTime. For sessions\r
- carrying large amounts of data, parts of which are infrequently accessed,\r
- this option can increase replication performance.\r
- \r
-Examples:\r
- <replication-granularity>SESSION</replication-granularity>\r
- or\r
- <replication-granularity>ATTRIBUTE</replication-granularity>\r
--->\r
-<!ELEMENT replication-granularity (#PCDATA)>\r
-\r
-<!--\r
- Determine whether to batch the replication when the granularity level is set to FIELD.\r
- Default is true.\r
-\r
- If this is set to TRUE, that means we will replicate the pojo changes only during the\r
- http request is finished. To use this, the JBossCacheAop transaction manager class will\r
- need to be configured as BatchModeTransactionManager such that a user can still have\r
- UserTransaction inside the http request. However, note that the cache will not particiapte\r
- in the UserTransaction in this case.\r
-\r
- If you want cache to participate in the UserTransaction, you can configure the transaction\r
- manager class to JBossTransactionManager and set this option to FALSE. The result is for\r
- those session attribute changes that are not under transaction will replicate instantaneously,\r
- while those particiate under transaction will replicate only when the transaction is\r
- completed.\r
-\r
-Examples:\r
- <replication-field-batch-mode>TRUE</replication-field-batch-mode>\r
- or\r
- <replication-field-batch-mode>FALSE</replication-field-batch-mode>\r
--->\r
-<!ELEMENT replication-field-batch-mode (true|false)>\r
-\r
-<!--\r
-Runtime information about a web service.\r
-\r
-wsdl-publish-location is optionally used to specify\r
-where the final wsdl and any dependent files should be stored. This location\r
-resides on the file system from which deployment is initiated.\r
-\r
--->\r
-<!ELEMENT webservice-description ( webservice-description-name, config-name?, config-file?, wsdl-publish-location? )>\r
-\r
-<!--\r
-Unique name of a webservice within a module\r
--->\r
-<!ELEMENT webservice-description-name ( #PCDATA )>\r
-\r
-<!--\r
-file: URL of a directory to which a web-service-description's wsdl should be\r
-published during deployment. Any required files will be published to this\r
-directory, preserving their location relative to the module-specific\r
-wsdl directory(META-INF/wsdl or WEB-INF/wsdl).\r
-\r
-Example :\r
-\r
- For an ejb.jar whose webservices.xml wsdl-file element contains\r
- META-INF/wsdl/a/Foo.wsdl\r
-\r
- <wsdl-publish-location>file:/home/user1/publish\r
- </wsdl-publish-location>\r
-\r
- The final wsdl will be stored in /home/user1/publish/a/Foo.wsdl\r
-\r
--->\r
-<!ELEMENT wsdl-publish-location ( #PCDATA )>\r
-\r
-<!-- The servlet element specifies servlet specific bindings. Currently this\r
-is only the run-as principal identity.\r
-\r
- Used in: jboss-web\r
--->\r
-<!ELEMENT servlet (servlet-name, run-as-principal?)>\r
-\r
-<!-- The servlet-name maps from the web.xml servlet/servlet-name to the\r
-jboss-web/servlet/servlet-name.\r
- Used in: servlet\r
--->\r
-<!ELEMENT servlet-name ( #PCDATA )>\r
-\r
-<!--\r
- The run-as-principal element specifies whether a specific run-as identity is\r
- to be used. If there is a run-as role defined for a servlet, there can also\r
- be a run-as-principal defined here. If you don't define a run-as principal\r
- the callee will see ctx.getUserPrincipal() == 'anonymous'\r
-\r
- Used in: servlet\r
--->\r
-<!ELEMENT run-as-principal ( #PCDATA )>\r
-\r
-<!--\r
- Customize the tomcat authenticators at the context or web-app level.\r
- These are keyed in by http-auth method specified in login-config in web.xml\r
- \r
- <authenticators>\r
- <authenticator>\r
- <key>BASIC</key>\r
- <value>org.apache.catalina.authenticator.BasicAuthenticator</value>\r
- </authenticator>\r
- <authenticator>\r
- <key>CLIENT-CERT</key>\r
- <value>org.apache.catalina.authenticator.SSLAuthenticator</value>\r
- </authenticator>\r
- <authenticator>\r
- <key>DIGEST</key>\r
- <value>org.apache.catalina.authenticator.DigestAuthenticator</value>\r
- </authenticator>\r
- <authenticator>\r
- <key>FORM</key>\r
- <value>org.apache.catalina.authenticator.FormAuthenticator</value>\r
- </authenticator>\r
- <authenticator>\r
- <key>NONE</key>\r
- <value>org.apache.catalina.authenticator.NonLoginAuthenticator</value>\r
- </authenticator>\r
- </authenticators> \r
--->\r
-\r
-<!ELEMENT authenticators (authenticator+)>\r
-<!ELEMENT authenticator ( key, value )>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- <netbeans.hint.useExternalMaven>false</netbeans.hint.useExternalMaven>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>test</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>build</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>install</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>clean</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>run</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>debug</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- <netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>\r
- </properties>\r
- </action>\r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>jaxrs-prototype</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-nuxeo-javaapi-service</artifactId>\r
- <packaging>war</packaging>\r
- <version>0.1</version>\r
- <name>jaxrs-nuxeo-javaapi-service</name>\r
-\r
- <repositories>\r
- <repository>\r
- <id>java.net</id>\r
- <url>http://download.java.net/maven/1</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven repo</id>\r
- <name>maven repo</name>\r
- <url>http://repo1.maven.org/maven2/</url>\r
- </repository>\r
- <!-- For resteasy -->\r
-\r
- <repository>\r
- <id>jboss</id>\r
- <name>jboss repo</name>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>mojo</id>\r
- <name>mojo repo</name>\r
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>\r
- </repository>\r
-\r
- <!--repository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </repository>\r
- <repository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </repository-->\r
-\r
-\r
- </repositories>\r
-\r
- <pluginRepositories>\r
- <pluginRepository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <name>Nuxeo virtual release repository</name>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <name>Nuxeo virtual snapshot repository</name>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </pluginRepository>\r
- </pluginRepositories>\r
-\r
-\r
- <properties>\r
- <jboss.version>4.2.3.GA</jboss.version>\r
- <jboss.ejb.version>3.0</jboss.ejb.version>\r
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
- <apacheds.version>1.5.1</apacheds.version>\r
- <apachedshared.version>0.9.7</apachedshared.version>\r
- <nuxeo.version.5.2>5.2-SNAPSHOT</nuxeo.version.5.2>\r
- <nuxeo.version.1.5>1.5-SNAPSHOT</nuxeo.version.1.5>\r
- </properties>\r
-\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-multipart-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>4.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-api</artifactId>\r
- <version>1.5.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-log4j12</artifactId>\r
- <version>1.5.2</version>\r
- </dependency>\r
- <!-- javax -->\r
- <dependency>\r
- <groupId>javax.servlet</groupId>\r
- <artifactId>servlet-api</artifactId>\r
- <version>2.5</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- \r
- <dependency>\r
- <groupId>javax.security</groupId>\r
- <artifactId>jaas</artifactId>\r
- <version>1.0.01</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <!-- dom -->\r
- <dependency>\r
- <groupId>dom4j</groupId>\r
- <artifactId>dom4j</artifactId>\r
- <version>1.6.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- \r
- <!-- jboss -->\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-remoting</artifactId>\r
- <version>2.2.2.SP8</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- \r
- <!-- nuxeo -->\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.common</groupId>\r
- <artifactId>nuxeo-common</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.runtime</groupId>\r
- <artifactId>nuxeo-runtime</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-api</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-client</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-query</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-schema</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-io</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-facade</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.runtime</groupId>\r
- <artifactId>nuxeo-runtime-osgi</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.osgi</groupId>\r
- <artifactId>osgi-core</artifactId>\r
- <version>4.1</version>\r
- </dependency>\r
-\r
-\r
- </dependencies>\r
- \r
- <build>\r
- <finalName>helloworld</finalName>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.codehaus.mojo</groupId>\r
- <artifactId>jboss-maven-plugin</artifactId>\r
- <configuration>\r
- <jbossHome>${jboss.dir}</jbossHome>\r
- <port>8180</port>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>jboss-undeploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>undeploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>jboss-deploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
-\r
- </executions>\r
- </plugin>\r
-\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <configuration></configuration>\r
- <executions>\r
- <execution>\r
- <id>surefire-it</id>\r
- <phase>integration-test</phase>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- <configuration>\r
- <skip>false</skip>\r
- </configuration>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
-
-public class CollectionSpaceApplication extends Application {
-
- private Set<Object> singletons = new HashSet<Object>();
- private Set<Class<?>> empty = new HashSet<Class<?>>();
-
- public CollectionSpaceApplication() {
- singletons.add(new MultischemaResource());
- }
-
- @Override
- public Set<Class<?>> getClasses() {
- return empty;
- }
-
- @Override
- public Set<Object> getSingletons() {
- return singletons;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;\r
-\r
-\r
-public abstract class CollectionSpaceResource {\r
- //replace WORKSPACE_UID for resource workspace\r
- static String CS_COLLECTIONOBJECT_WORKSPACE_UID = "5a37d40f-59c4-4d15-93ad-e0e6a0c33587";\r
- //sanjay 6c7881fe-54c5-486e-b144-a025dee3a484\r
- //demo eae0d7b6-580a-45a3-a0f3-e25e980e03bb\r
- static String CS_PERSON_WORKSPACE_UID = "6c7881fe-54c5-486e-b144-a025dee3a484";\r
- \r
- //replace host if not running on localhost\r
- //static String CS_NUXEO_HOST = "173.45.234.217";\r
- static String CS_NUXEO_HOST = "localhost";\r
- static String CS_NUXEO_URI = "http://" + CS_NUXEO_HOST + ":8080/nuxeo";\r
-\r
-}\r
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Iterator;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
-import org.collectionspace.hello.PersonNuxeo;
-
-import org.collectionspace.services.nuxeo.NuxeoConnector;
-import org.collectionspace.world.DublincoreNuxeo;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-
-
-import org.nuxeo.common.utils.IdUtils;
-import org.nuxeo.ecm.core.api.DocumentModel;
-
-
-import org.nuxeo.ecm.core.api.DocumentRef;
-import org.nuxeo.ecm.core.api.IdRef;
-import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
-import org.nuxeo.ecm.core.client.NuxeoClient;
-import org.nuxeo.ecm.core.io.DocumentPipe;
-import org.nuxeo.ecm.core.io.DocumentReader;
-import org.nuxeo.ecm.core.io.DocumentWriter;
-import org.nuxeo.ecm.core.io.impl.DocumentPipeImpl;
-import org.nuxeo.ecm.core.io.impl.plugins.SingleDocumentReader;
-import org.nuxeo.ecm.core.io.impl.plugins.XMLDocumentWriter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/multischema")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class MultischemaResource extends CollectionSpaceResource {
-
- final Logger logger = LoggerFactory.getLogger(MultischemaResource.class);
-
- public MultischemaResource() {
- }
-
- @POST
- @Consumes("multipart/form-data")
- public Response createPerson(MultipartFormDataInput multipart) {
-
- PersonNuxeo personPart = new PersonNuxeo();
- DublincoreNuxeo dcPart = new DublincoreNuxeo();
-
- RepositoryInstance repoSession = null;
- try{
- if(multipart.getFormData().containsKey("dublincore")){
- dcPart = multipart.getFormDataPart("dublincore", DublincoreNuxeo.class, null);
- }
- if(multipart.getFormData().containsKey("hello")){
- personPart = multipart.getFormDataPart("hello", PersonNuxeo.class, null);
- }
-
- repoSession = getRepositorySession();
- DocumentRef nuxeoWspace = new IdRef(CS_PERSON_WORKSPACE_UID);
- DocumentModel wspacePeople = repoSession.getDocument(nuxeoWspace);
- String wspacePath = wspacePeople.getPathAsString();
- String docType = "Hello";
- String id = IdUtils.generateId("New " + docType);
- //create document model
- DocumentModel helloDoc = repoSession.createDocumentModel(wspacePath, id, docType);
- fillDocument(personPart, helloDoc);
- //create document with documentmodel
- helloDoc = repoSession.createDocument(helloDoc);
- repoSession.save();
-
- personPart.setId(helloDoc.getId());
-
- }catch(Exception e){
- e.printStackTrace();
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }finally{
- if(repoSession != null){
- releaseRepositorySession(repoSession);
- }
- }
-
- if(logger.isDebugEnabled()){
- verboseObject("createPerson: person", PersonNuxeo.class, personPart);
- verboseObject("createPerson: dublincore", DublincoreNuxeo.class, dcPart);
- }
- UriBuilder path = UriBuilder.fromResource(MultischemaResource.class);
-
- path.path("" + personPart.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- @Produces("multipart/form-data")
- public MultipartFormDataOutput getPerson(
- @PathParam("id") String id) {
-
- PersonNuxeo personPart = new PersonNuxeo();
- DublincoreNuxeo dublinPart = new DublincoreNuxeo();
- MultipartFormDataOutput output = new MultipartFormDataOutput();
- RepositoryInstance repoSession = null;
-
- try{
- repoSession = getRepositorySession();
- DocumentRef helloDocRef = new IdRef(id);
- DocumentModel helloDoc = repoSession.getDocument(helloDocRef);
- if(helloDoc == null){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- Document doc = getDocument(repoSession, helloDoc);
- Element root = doc.getRootElement();
- //TODO: recognize schema thru namespace uri
- //Namespace ns = new Namespace("hello", "http://collectionspace.org/hello");
- Iterator<Element> siter = root.elementIterator("schema");
- while(siter.hasNext()){
-
- Element s = siter.next();
-
- //TODO: recognize schema thru namespace uri
- if("hello".equals(s.attribute("name").getValue())){
- personPart.setId(id);
- Element ele = s.element("cversion");
- if(ele != null){
- personPart.setVersion((String) ele.getData());
- }
- ele = s.element("firstName");
- if(ele != null){
- personPart.setFirstName((String) ele.getData());
- }
- ele = s.element("lastName");
- if(ele != null){
- personPart.setLastName((String) ele.getData());
- }
- ele = s.element("city");
- if(ele != null){
- personPart.setCity((String) ele.getData());
- }
- ele = s.element("state");
- if(ele != null){
- personPart.setState((String) ele.getData());
- }
- ele = s.element("zip");
- if(ele != null){
- personPart.setZip((String) ele.getData());
- }
- ele = s.element("country");
- if(ele != null){
- personPart.setCountry((String) ele.getData());
- }
- }else if("dublincore".equals(s.attribute("name").getValue())){
- Element ele = s.element("title");
- if(ele != null){
- dublinPart.setTitle((String) ele.getData());
- }
- }
- }//while
- if(logger.isDebugEnabled()){
- verboseObject("getPerson:hello:", PersonNuxeo.class, personPart);
- verboseObject("getPerson:dublincore:", DublincoreNuxeo.class, dublinPart);
- }
- output.addFormData("hello", personPart, MediaType.APPLICATION_XML_TYPE);
- output.addFormData("dublincore", dublinPart, MediaType.APPLICATION_XML_TYPE);
-
- }catch(Exception e){
- if(e instanceof WebApplicationException){
- throw (WebApplicationException) e;
- }
- if(logger.isDebugEnabled()){
- e.printStackTrace();
- }
- Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
- "Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }finally{
- if(repoSession != null){
- releaseRepositorySession(repoSession);
- }
- }
- return output;
- }
-
- @PUT
- @Path("{id}")
- public PersonNuxeo updatePerson(
- @PathParam("id") String id,
- PersonNuxeo personPart) {
- if(logger.isDebugEnabled()){
- verboseObject("updating person input", PersonNuxeo.class, personPart);
- }
- RepositoryInstance repoSession = null;
- try{
- repoSession = getRepositorySession();
- DocumentRef helloDocRef = new IdRef(id);
- DocumentModel helloDoc = repoSession.getDocument(helloDocRef);
- if(helloDoc == null){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- fillDocument(personPart, helloDoc);
- repoSession.saveDocument(helloDoc);
- repoSession.save();
- }catch(Exception e){
- if(e instanceof WebApplicationException){
- throw (WebApplicationException) e;
- }
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }finally{
- if(repoSession != null){
- releaseRepositorySession(repoSession);
- }
- }
- return personPart;
- }
-
- @DELETE
- @Path("{id}")
- public void deletePerson(@PathParam("id") String id) {
- if(logger.isDebugEnabled()){
- logger.debug("deleting person with id=" + id);
- }
- RepositoryInstance repoSession = null;
- try{
- repoSession = getRepositorySession();
- DocumentRef helloDocRef = new IdRef(id);
- repoSession.removeDocument(helloDocRef);
- repoSession.save();
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }finally{
- if(repoSession != null){
- releaseRepositorySession(repoSession);
- }
- }
- }
-
- private RepositoryInstance getRepositorySession() throws Exception {
- NuxeoConnector nuxeoConnector = NuxeoConnector.getInstance();
- nuxeoConnector.initialize();
- NuxeoClient client = nuxeoConnector.getClient();
- //FIXME: is it possible to reuse repository session?
- //Authentication failures happen while trying to reuse the session
- RepositoryInstance repoSession = client.openRepository();
- if(logger.isDebugEnabled()){
- logger.debug("getRepository() repository root: " +
- repoSession.getRootDocument());
- }
- return repoSession;
- }
-
- private void releaseRepositorySession(RepositoryInstance repoSession) {
- try{
- //release session
- NuxeoClient.getInstance().releaseRepository(repoSession);
- }catch(Exception e){
- logger.error("Could not close the repository session", e);
- //no need to throw this service specific exception
- }
- }
-
- private Document getDocument(RepositoryInstance repoSession, DocumentModel helloDoc)
- throws Exception {
- Document doc = null;
- DocumentWriter writer = null;
- DocumentReader reader = null;
- ByteArrayOutputStream baos = null;
- ByteArrayInputStream bais = null;
- try{
- baos = new ByteArrayOutputStream();
- //nuxeo io.impl begin
- reader = new SingleDocumentReader(repoSession, helloDoc);
- writer = new XMLDocumentWriter(baos);
- DocumentPipe pipe = new DocumentPipeImpl();
- //nuxeo io.impl end
- pipe.setReader(reader);
- pipe.setWriter(writer);
- pipe.run();
- bais = new ByteArrayInputStream(baos.toByteArray());
- SAXReader saxReader = new SAXReader();
- doc = saxReader.read(bais);
- }finally{
- if(reader != null){
- reader.close();
- }
- if(writer != null){
- writer.close();
- }
- try{
- if(bais != null){
- bais.close();
- }
- if(baos != null){
- baos.close();
- }
- }catch(IOException ioe){
- logger.error("Failed to close io streams with {}", ioe);
- throw new WebApplicationException();
- }
- }
- return doc;
- }
-
- private void fillDocument(PersonNuxeo p, DocumentModel helloDoc) throws Exception {
- if(p.getFirstName() != null){
- helloDoc.setPropertyValue("dublincore:title", p.getFirstName() + " " + p.getLastName());
- helloDoc.setPropertyValue("hello:firstName", p.getFirstName());
- }
- if(p.getLastName() != null){
- helloDoc.setPropertyValue("hello:lastName", p.getLastName());
- }
- if(p.getStreet() != null){
- helloDoc.setPropertyValue("hello:street", p.getStreet());
- }
- if(p.getCity() != null){
- helloDoc.setPropertyValue("hello:city", p.getCity());
- }
- if(p.getState() != null){
- helloDoc.setPropertyValue("hello:state", p.getState());
- }
- if(p.getZip() != null){
- helloDoc.setPropertyValue("hello:zip", p.getZip());
- }
- if(p.getCountry() != null){
- helloDoc.setPropertyValue("hello:country", p.getCountry());
- }
- }
-
- private void verboseObject(String msg, Class klass, Object obj) {
- try{
- if(logger.isDebugEnabled()){
- logger.debug(msg);
- }
- JAXBContext jc = JAXBContext.newInstance(klass);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
- m.marshal(obj, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.services.nuxeo;
-
-import java.io.File;
-import java.util.Collection;
-import org.nuxeo.ecm.core.client.NuxeoApp;
-import org.nuxeo.ecm.core.client.NuxeoClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * NuxeoConnector is a facade to Nuxeo remoting client
- * @author
- */
-public class NuxeoConnector {
- //FIXME: get port and host from configuration
- public static int NUXEO_PORT = 62474;
- public static String NUXEO_HOST = "localhost";
- private Logger logger = LoggerFactory.getLogger(NuxeoConnector.class);
- private static final NuxeoConnector self = new NuxeoConnector();
- private NuxeoApp app;
- private NuxeoClient client;
- volatile boolean initialized = false; //use volatile for lazy initialization in singleton
-
- private NuxeoConnector() {
- }
-
- public final static NuxeoConnector getInstance() {
- return self;
- }
-
- public void initialize() throws Exception {
-
- try{
- if(initialized == false){
- setProperties();
- app = new NuxeoApp();
- app.start();
- if(logger.isDebugEnabled()) {
- logger.debug("initialize() NuxeoApp started");
- }
- loadBundles();
- client = NuxeoClient.getInstance();
- initialized = true;
- }
- }catch(Exception e){
- if(logger.isDebugEnabled()){
- e.printStackTrace();
- }
- }
- }
-
- public void release() throws Exception {
- if(initialized == true) {
- client.disconnect();
- }
- }
-
- private void loadBundles() throws Exception {
- String bundles = "nuxeo-client/lib/nuxeo-runtime-*:nuxeo-client/lib/nuxeo-*";
- Collection<File> files = null;
- if(bundles != null){
- files = NuxeoApp.getBundleFiles(new File("."), bundles, ":");
- }
- if(logger.isDebugEnabled()){
- logger.debug("loadBundles(): deploying bundles: " + files);
- }
- if(files != null){
- app.deployBundles(files);
- }
- }
-
- private void setProperties() {
- System.setProperty("org.nuxeo.runtime.server.enabled", Boolean.FALSE.toString());
- System.setProperty("org.nuxeo.runtime.server.port", "" + NUXEO_PORT);
- System.setProperty("org.nuxeo.runtime.server.host", "127.0.0.1");
- //System.setProperty("org.nuxeo.runtime.1.3.3.streaming.port", "3233");
- System.setProperty("org.nuxeo.runtime.streaming.serverLocator", "socket://127.0.0.1:3233");
- System.setProperty("org.nuxeo.runtime.streaming.isServer", Boolean.FALSE.toString());
- System.setProperty("org.nuxeo.client.remote", Boolean.TRUE.toString());
- }
-
- public NuxeoClient getClient() throws Exception {
- if(initialized == true){
-// if(client.isConnected()){
-// return client;
-// }else{
- //authentication failure error comes when reusing the client
- //fore connect for now
- client.forceConnect(NUXEO_HOST, NUXEO_PORT);
- if(logger.isDebugEnabled()){
- logger.debug("getClient(): connection successful port=" + NUXEO_PORT);
- }
- return client;
-// }
- }
- String msg = "NuxeoConnector is not initialized!";
- logger.error(msg);
- throw new IllegalStateException(msg);
- }
-}
+++ /dev/null
-# Set root logger level to DEBUG and its only appender to CONSOLE.
-#log4j.rootLogger=INFO, CONSOLE, DEBUG
-log4j.rootLogger=INFO, FILE, CONSOLE
-
-# CONSOLE
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %-5p %C{1} : %m%n
-
-# FILE
-log4j.appender.FILE=org.apache.log4j.FileAppender
-log4j.appender.FILE.File=log/server.log
-log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
-log4j.appender.FILE.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %-5p %C{1} : %m%n
+++ /dev/null
-<?xml version="1.0"?>
-
-<component name="org.nuxeo.ecm.platform.login.LoginConfig" version="1.0">
- <documentation>
- Login modules used on JBoss
- @author Bogdan Stefanescu (bs@nuxeo.com)
- </documentation>
-
- <extension target="org.nuxeo.runtime.LoginComponent" point="domains">
-
- <domain name="nuxeo-system-login">
- <login-module code="org.nuxeo.runtime.api.login.SystemLoginModule" flag="required"/>
- <login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule" flag="required">
- <option name="password-stacking">true</option>
- <option name="multi-threaded">true</option>
- </login-module>
- </domain>
-
- <domain name="nuxeo-webengine">
- <login-module code = "org.nuxeo.ecm.platform.login.NuxeoLoginModule"
- flag = "required">
- <option name="principalClassName">org.nuxeo.ecm.platform.login.NuxeoPrincipal</option>
- <option name="useUserIdentificationInfoCB">true</option>
- </login-module>
- <!--login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule" flag="required">
- <option name="password-stacking">true</option>
- <option name="multi-threaded">true</option>
- </login-module-->
- </domain>
-
- </extension>
-
-</component>
\ No newline at end of file
+++ /dev/null
-
-<jboss-web>
- <!-- Uncomment the security-domain to enable security. You will
- need to edit the htmladaptor login configuration to setup the
- login modules used to authentication users.
- <security-domain>java:/jaas/jmx-console</security-domain>
- -->
- <!--class-loading >
- <loader-repository>
- org.nuxeo:loader=nuxeo.ear
- <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
- </loader-repository>
- </class-loading-->
-</jboss-web>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">\r
-<web-app>\r
- <display-name>HelloworldNuxeo</display-name>\r
-\r
-\r
- <context-param>\r
- <param-name>javax.ws.rs.Application</param-name>\r
- <param-value>org.collectionspace.hello.services.CollectionSpaceApplication</param-value>\r
- </context-param>\r
-\r
- <context-param>\r
- <param-name>resteasy.servlet.mapping.prefix</param-name>\r
- <param-value>/cspace-nuxeo</param-value>\r
- </context-param>\r
-\r
- <listener>\r
- <listener-class>\r
- org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\r
- </listener-class>\r
- </listener>\r
-\r
- <servlet>\r
- <servlet-name>Resteasy</servlet-name>\r
- <servlet-class>\r
- org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\r
- </servlet-class>\r
- </servlet>\r
-\r
- <servlet-mapping>\r
- <servlet-name>Resteasy</servlet-name>\r
- <url-pattern>/cspace-nuxeo/*</url-pattern>\r
- </servlet-mapping>\r
-\r
-</web-app>\r
+++ /dev/null
-Helloworld service interfacing with Nuxeo repository through Nuxeo
-REST apis.
-
-System Requirements:
-====================
-- Maven 2.0.9 or higher
-- Nuxeo CollectionSpace Extensions
-
-Building the project:
-====================
-In root directoy...
-1. customize build.properties for your environment
-2. mvn clean package
-3. ant
+++ /dev/null
-jboss.dir=C:/dev/jboss-4.2.3.GA\r
-nuxeo.dir=${jboss.dir}/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.dir=file:///C:/dev/jboss-4.2.3.GA/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.client.dir=file:///C:/dev/nuxeo/nuxeo-core/nuxeo-core-client/target\r
+++ /dev/null
-<?xml version="1.0"?>
-<project name="helloworld" default="deploy" basedir=".">
-
- <property file="build.properties" />
-
-
- <target name="deploy" description="Deploy">
- <copy todir="${jboss.dir}/server/default/deploy">
- <fileset file="${basedir}/target/helloworld.war" />
- </copy>
- </target>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- <netbeans.hint.useExternalMaven>false</netbeans.hint.useExternalMaven>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>test</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>build</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>install</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>clean</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>run</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>debug</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- <netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>\r
- </properties>\r
- </action>\r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>jaxrs-prototype</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-nuxeo-service</artifactId>\r
- <packaging>war</packaging>\r
- <version>0.1</version>\r
- <name>jaxrs-nuxeo-service</name>\r
-\r
- <repositories>\r
- <repository>\r
- <id>java.net</id>\r
- <url>http://download.java.net/maven/1</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven repo</id>\r
- <name>maven repo</name>\r
- <url>http://repo1.maven.org/maven2/</url>\r
- </repository>\r
- <!-- For resteasy -->\r
- <repository>\r
- <id>jboss</id>\r
- <name>jboss repo</name>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>mojo</id>\r
- <name>mojo repo</name>\r
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>\r
- </repository>\r
-\r
- <repository>\r
- <id>maven-restlet</id>\r
- <name>Public online Restlet repository</name>\r
- <url>http://maven.restlet.org</url>\r
- </repository>\r
- <repository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </repository>\r
- <repository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </repository>\r
-\r
-\r
- </repositories>\r
-\r
- <pluginRepositories>\r
- <pluginRepository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <name>Nuxeo virtual release repository</name>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <name>Nuxeo virtual snapshot repository</name>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </pluginRepository>\r
- </pluginRepositories>\r
-\r
-\r
- <properties>\r
- <jboss.version>4.2.3.GA</jboss.version>\r
- <jboss.ejb.version>3.0</jboss.ejb.version>\r
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
- <apacheds.version>1.5.1</apacheds.version>\r
- <apachedshared.version>0.9.7</apachedshared.version>\r
- <nuxeo.version.5.2>5.2-SNAPSHOT</nuxeo.version.5.2>\r
- <nuxeo.version.1.5>1.5-SNAPSHOT</nuxeo.version.1.5>\r
- </properties>\r
-\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-multipart-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>4.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
-\r
- <!-- javax -->\r
-\r
-\r
- <dependency>\r
- <groupId>javax.security</groupId>\r
- <artifactId>jaas</artifactId>\r
- <version>1.0.01</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>dom4j</groupId>\r
- <artifactId>dom4j</artifactId>\r
- <version>1.6.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- \r
- <!-- jboss -->\r
-\r
- <!-- nuxeo -->\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-api</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <exclusions>\r
- <exclusion>\r
- <artifactId>jboss-remoting</artifactId>\r
- <groupId>jboss</groupId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
-\r
-<!--\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-client</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
--->\r
-\r
- <dependency>\r
- <groupId>org.restlet</groupId>\r
- <artifactId>org.restlet</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.noelios.restlet</groupId>\r
- <artifactId>com.noelios.restlet.ext.httpclient</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.noelios.restlet</groupId>\r
- <artifactId>com.noelios.restlet</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>jaxen</groupId>\r
- <artifactId>jaxen</artifactId>\r
- <version>1.1.1</version>\r
- </dependency>\r
-\r
-\r
- </dependencies>\r
- \r
- <build>\r
- <finalName>helloworld</finalName>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.codehaus.mojo</groupId>\r
- <artifactId>jboss-maven-plugin</artifactId>\r
- <configuration>\r
- <jbossHome>${jboss.dir}</jbossHome>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>jboss-undeploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>undeploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>jboss-deploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
-\r
- </executions>\r
- </plugin>\r
-\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <configuration></configuration>\r
- <executions>\r
- <execution>\r
- <id>surefire-it</id>\r
- <phase>integration-test</phase>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- <configuration>\r
- <skip>false</skip>\r
- </configuration>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.services;\r
-\r
-import org.collectionspace.hello.services.nuxeo.NuxeoRESTClient;\r
-\r
-public abstract class CollectionSpaceResource {\r
- //replace WORKSPACE_UID for resource workspace\r
- static String CS_COLLECTIONOBJECT_WORKSPACE_UID = "5a37d40f-59c4-4d15-93ad-e0e6a0c33587";\r
- //sanjay 6c7881fe-54c5-486e-b144-a025dee3a484\r
- //demo eae0d7b6-580a-45a3-a0f3-e25e980e03bb\r
- static String CS_PERSON_WORKSPACE_UID = "6c7881fe-54c5-486e-b144-a025dee3a484";\r
- \r
- //replace host if not running on localhost\r
- //static String CS_NUXEO_HOST = "173.45.234.217";\r
- static String CS_NUXEO_HOST = "localhost";\r
- static String CS_NUXEO_URI = "http://" + CS_NUXEO_HOST + ":8080/nuxeo";\r
- \r
- NuxeoRESTClient getClient() {\r
- NuxeoRESTClient nxClient = new NuxeoRESTClient(CS_NUXEO_URI);\r
- nxClient.setAuthType(NuxeoRESTClient.AUTH_TYPE_BASIC);\r
- nxClient.setBasicAuthentication("Administrator", "Administrator");\r
- return nxClient;\r
- }\r
- \r
-}\r
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
-
-public class HelloworldNuxeoApplication extends Application {
-
- private Set<Object> singletons = new HashSet<Object>();
- private Set<Class<?>> empty = new HashSet<Class<?>>();
-
- public HelloworldNuxeoApplication() {
- singletons.add(new IdentifierResource());
- singletons.add(new PersonNuxeoResource());
- singletons.add(new MultipartResource());
- }
-
- @Override
- public Set<Class<?>> getClasses() {
- return empty;
- }
-
- @Override
- public Set<Object> getSingletons() {
- return singletons;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/identifiers")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class IdentifierResource {
-
- final Logger logger = LoggerFactory.getLogger(IdentifierResource.class);
- private Map<Long, Identifier> idDB = new ConcurrentHashMap<Long, Identifier>();
- private AtomicLong idCounter = new AtomicLong();
-
- public IdentifierResource() {
- // do nothing
- }
-
- @POST
- public Response createIdentifier(Identifier id) {
- if (id.getNamespace() == null) {
- id.setNamespace("edu.berkeley");
- }
- id.setId(idCounter.incrementAndGet());
- id.setVersion(1);
- UUID uuid = UUID.nameUUIDFromBytes(id.getNamespace().getBytes());
- id.setValue(uuid.toString());
- idDB.put(id.getId(), id);
- verbose("created Id", id);
- UriBuilder path = UriBuilder.fromResource(IdentifierResource.class);
- path.path("" + id.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public Identifier getIdentifier(@PathParam("id") Long id) {
- Identifier i = idDB.get(id);
- if (i == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "The requested ID was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get Id", i);
- return i;
- }
-
- private void verbose(String msg, Identifier id) {
- try {
- System.out.println("IdentifierResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(id, System.out);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.io.ByteArrayInputStream;
-import org.collectionspace.hello.services.nuxeo.NuxeoRESTClient;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import java.util.Map;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.*;
-
-import org.collectionspace.world.DublincoreNuxeo;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput;
-import org.restlet.resource.Representation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/multipart")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class MultipartResource extends CollectionSpaceResource {
-
- final Logger logger = LoggerFactory.getLogger(MultipartResource.class);
-
- public MultipartResource() {
- }
-
- @POST
- @Consumes("multipart/form-data")
- public Response createPerson(MultipartFormDataInput multipart) {
-
- PersonNuxeo p = new PersonNuxeo();
- DublincoreNuxeo dc = new DublincoreNuxeo();
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(CS_PERSON_WORKSPACE_UID);
- pathParams.add("createDocument");
- queryParams.put("docType", "Hello");
-
- try{
- if(multipart.getFormData().containsKey("dublincore")){
- dc = multipart.getFormDataPart("dublincore", DublincoreNuxeo.class, null);
- if(dc.getTitle() != null){
- queryParams.put("dublincore:title", dc.getTitle());
- }
- }
- if(multipart.getFormData().containsKey("hello")){
- p = multipart.getFormDataPart("hello", PersonNuxeo.class, null);
- queryParams.put("hello:cversion", Integer.valueOf(1).toString());
- if(p.getFirstName() != null){
- queryParams.put("hello:firstName", p.getFirstName());
- }
- if(p.getLastName() != null){
- queryParams.put("hello:lastName", p.getLastName());
- }
- if(p.getStreet() != null){
- queryParams.put("hello:street", p.getStreet());
- }
- if(p.getCity() != null){
- queryParams.put("hello:city", p.getCity());
- }
- if(p.getState() != null){
- queryParams.put("hello:state", p.getState());
- }
- if(p.getZip() != null){
- queryParams.put("hello:zip", p.getZip());
- }
- if(p.getCountry() != null){
- queryParams.put("hello:country", p.getCountry());
- }
- }
- ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
- Representation res = nxClient.post(pathParams, queryParams, bais);
-
- SAXReader reader = new SAXReader();
-
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- String id = (String) element.getData();
- p.setId(id);
- }
- }
- }catch(Exception e){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- verbosePerson("createPerson: person", p);
- verboseDublin("createPerson: dublincore", dc);
- UriBuilder path = UriBuilder.fromResource(MultipartResource.class);
- path.path("" + p.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- @Produces("multipart/form-data")
- public MultipartFormDataOutput getPerson(@PathParam("id") String id) {
-
- PersonNuxeo person = new PersonNuxeo();
- DublincoreNuxeo dublin = new DublincoreNuxeo();
- MultipartFormDataOutput output = new MultipartFormDataOutput();
-
- try{
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
-
- pathParams.add("default");
- pathParams.add(id);
- pathParams.add("export");
- queryParams.put("format", "XML");
-
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
-
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
-
- //TODO: recognize schema thru namespace uri
-// Namespace ns = new Namespace("hello", "http://collectionspace.org/hello");
- Iterator<Element> siter = root.elementIterator("schema");
- while(siter.hasNext()){
-
- Element s = siter.next();
-
- //TODO: recognize schema thru namespace uri
- if("hello".equals(s.attribute("name").getValue())){
- person.setId(id);
- Element ele = s.element("cversion");
- if(ele != null){
- person.setVersion((String) ele.getData());
- }
- ele = s.element("firstName");
- if(ele != null){
- person.setFirstName((String) ele.getData());
- }
- ele = s.element("lastName");
- if(ele != null){
- person.setLastName((String) ele.getData());
- }
- ele = s.element("city");
- if(ele != null){
- person.setCity((String) ele.getData());
- }
- ele = s.element("state");
- if(ele != null){
- person.setState((String) ele.getData());
- }
- ele = s.element("zip");
- if(ele != null){
- person.setZip((String) ele.getData());
- }
- ele = s.element("country");
- if(ele != null){
- person.setCountry((String) ele.getData());
- }
- }else if("dublincore".equals(s.attribute("name").getValue())){
- Element ele = s.element("title");
- if(ele != null){
- dublin.setTitle((String) ele.getData());
- }
- }
- }//while
- verbosePerson("getPerson:hello:", person);
- output.addFormData("hello", person, MediaType.APPLICATION_XML_TYPE);
- verboseDublin("getPerson:dublincore:", dublin);
- output.addFormData("dublincore", dublin, MediaType.APPLICATION_XML_TYPE);
-
- }catch(Exception e){
- e.printStackTrace();
- Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
- "Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if(person == null){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- return output;
- }
-
- @PUT
- @Path("{id}")
- public PersonNuxeo updatePerson(
- @PathParam("id") String id,
- PersonNuxeo update) {
-
- verbosePerson("updating person input", update);
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(update.getId());
- pathParams.add("updateDocumentRestlet");
- queryParams.put("dublincore:title", "change title");
- //todo: intelligent merge needed
- if(update.getFirstName() != null){
- queryParams.put("hello:firstName", update.getFirstName());
- }
-
- if(update.getLastName() != null){
- queryParams.put("hello:lastName", update.getLastName());
- }
-
- if(update.getFirstName() != null && update.getLastName() != null){
- queryParams.put("dublincore:title", update.getFirstName() + " " + update.getLastName());
- }
-
- if(update.getStreet() != null){
- queryParams.put("hello:street", update.getStreet());
- }
-
- if(update.getCity() != null){
- queryParams.put("hello:city", update.getCity());
- }
-
- if(update.getState() != null){
- queryParams.put("hello:state", update.getState());
- }
-
- if(update.getZip() != null){
- queryParams.put("hello:zip", update.getZip());
- }
-
- if(update.getCountry() != null){
- queryParams.put("hello:country", update.getCountry());
- }
-
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("updatePerson: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return update;
- }
-
- @DELETE
- @Path("{id}")
- public void deletePerson(@PathParam("id") String id) {
- verbose("deleting person with id=" + id);
- NuxeoRESTClient nxClient = getClient();
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(id);
- pathParams.add("deleteDocumentRestlet");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("deletePerson: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
-
- private void verbosePerson(String msg, PersonNuxeo person) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(
- PersonNuxeo.class);
-
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(person, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
-
- private void verboseDublin(String msg, DublincoreNuxeo dubin) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(
- DublincoreNuxeo.class);
-
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(dubin, System.out);
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
-
- private void verbose(String msg) {
- System.out.println("MultipartResource: " + msg);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.io.ByteArrayInputStream;
-import org.collectionspace.hello.services.nuxeo.NuxeoRESTClient;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import java.util.Map;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.*;
-
-
-import org.collectionspace.hello.People.PeopleItem;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.Namespace;
-import org.dom4j.io.SAXReader;
-import org.restlet.resource.Representation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/persons")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class PersonNuxeoResource extends CollectionSpaceResource {
-
- final Logger logger = LoggerFactory.getLogger(PersonNuxeoResource.class);
-
- public PersonNuxeoResource() {
- }
-
- @GET
- public People getPeople(@Context UriInfo ui) {
- People p = new People();
- try{
- List<People.PeopleItem> list = p.getPeopleItem();
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
-
- pathParams = Arrays.asList("default", CS_PERSON_WORKSPACE_UID, "browse");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- PeopleItem pli = new PeopleItem();
- pli.setTitle(element.attributeValue("title"));
- pli.setUri(element.attributeValue("url"));
- pli.setId(element.attributeValue("id"));
- list.add(pli);
- }
-
- }catch(Exception e){
- e.printStackTrace();
- }
- return p;
- }
-
- @POST
- public Response createPerson(PersonNuxeo p) {
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(CS_PERSON_WORKSPACE_UID);
- pathParams.add("createDocument");
- queryParams.put("docType", "Hello");
- queryParams.put("dublincore:title", p.getFirstName() + " " + p.getLastName());
- queryParams.put("hello:cversion", Integer.valueOf(1).toString());
- queryParams.put("hello:firstName", p.getFirstName());
- queryParams.put("hello:lastName", p.getLastName());
- queryParams.put("hello:street", p.getStreet());
- queryParams.put("hello:city", p.getCity());
- queryParams.put("hello:state", p.getState());
- queryParams.put("hello:zip", p.getZip());
- queryParams.put("hello:country", p.getCountry());
- ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
- Representation res = nxClient.post(pathParams, queryParams,bais);
-
- SAXReader reader = new SAXReader();
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- String id = (String) element.getData();
- p.setId(id);
- }
- }
- }catch(Exception e){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- verbose("created person", p);
- UriBuilder path = UriBuilder.fromResource(PersonNuxeoResource.class);
- path.path("" + p.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public PersonNuxeo getPerson(@PathParam("id") String id) {
-
- PersonNuxeo p = null;
- try{
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
-
- pathParams.add("default");
- pathParams.add(id);
- pathParams.add("export");
- queryParams.put("format", "XML");
-
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
-
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- p = new PersonNuxeo();
- //TODO: recognize schema thru namespace uri
-// Namespace ns = new Namespace("hello", "http://collectionspace.org/hello");
- Iterator<Element> siter = root.elementIterator("schema");
- while(siter.hasNext()){
-
- Element s = siter.next();
-
- //TODO: recognize schema thru namespace uri
- if("hello".equals(s.attribute("name").getValue())){
- p.setId(id);
- Element ele = s.element("cversion");
- if(ele != null){
- p.setVersion((String) ele.getData());
- }
- ele = s.element("firstName");
- if(ele != null){
- p.setFirstName((String) ele.getData());
- }
- ele = s.element("lastName");
- if(ele != null){
- p.setLastName((String) ele.getData());
- }
- ele = s.element("city");
- if(ele != null){
- p.setCity((String) ele.getData());
- }
- ele = s.element("state");
- if(ele != null){
- p.setState((String) ele.getData());
- }
- ele = s.element("zip");
- if(ele != null){
- p.setZip((String) ele.getData());
- }
- ele = s.element("country");
- if(ele != null){
- p.setCountry((String) ele.getData());
- }
- }
- }
-
- }catch(Exception e){
- e.printStackTrace();
- Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
- "Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if(p == null){
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get person", p);
- return p;
- }
-
- @PUT
- @Path("{id}")
- public PersonNuxeo updatePerson(
- @PathParam("id") String id,
- PersonNuxeo update) {
-
- verbose("updating person input", update);
-
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(update.getId());
- pathParams.add("updateDocumentRestlet");
- queryParams.put("dublincore:title", "change title");
- //todo: intelligent merge needed
- if(update.getFirstName() != null){
- queryParams.put("hello:firstName", update.getFirstName());
- }
-
- if(update.getLastName() != null){
- queryParams.put("hello:lastName", update.getLastName());
- }
-
- if(update.getFirstName() != null && update.getLastName() != null){
- queryParams.put("dublincore:title", update.getFirstName() + " " + update.getLastName());
- }
-
- if(update.getStreet() != null){
- queryParams.put("hello:street", update.getStreet());
- }
-
- if(update.getCity() != null){
- queryParams.put("hello:city", update.getCity());
- }
-
- if(update.getState() != null){
- queryParams.put("hello:state", update.getState());
- }
-
- if(update.getZip() != null){
- queryParams.put("hello:zip", update.getZip());
- }
-
- if(update.getCountry() != null){
- queryParams.put("hello:country", update.getCountry());
- }
-
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("updatePerson: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return update;
- }
-
- @DELETE
- @Path("{id}")
- public void deletePerson(@PathParam("id") String id) {
- verbose("deleting person with id=" + id);
- NuxeoRESTClient nxClient = getClient();
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- pathParams.add("default");
- pathParams.add(id);
- pathParams.add("deleteDocumentRestlet");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- String status = "";
- try{
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for(Iterator i = root.elementIterator(); i.hasNext();){
- Element element = (Element) i.next();
- if("docRef".equals(element.getName())){
- status = (String) element.getData();
- verbose("deletePerson: response=" + status);
- }
-
- }
- }catch(Exception e){
- //FIXME: NOT_FOUND?
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed ").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
-
- private void verbose(String msg, PersonNuxeo p) {
- try{
- verbose(msg);
- JAXBContext jc = JAXBContext.newInstance(
- PersonNuxeo.class);
-
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- } catch(Exception e){
- e.printStackTrace();
- }
-
- }
-
-// private void getQueryModel() throws IOException {
-// NuxeoRESTClient nxClient = getClient();
-//
-// List<String> pathParams = new ArrayList<String>();
-// Map<String, String> queryParams = new HashMap<String, String>();
-//
-// //query model for user documents
-// pathParams = Arrays.asList("execQueryModel", "USER_DOCUMENTS");
-// queryParams.put("QP1", "Administrator");
-// queryParams.put("format", "XML");
-//
-//
-// Representation res = nxClient.get(pathParams, queryParams);
-// String resStr = res.getText();
-// verbose("getQueryModel:" + resStr);
-//
-// }
-//
-// private void getVocabulary() throws IOException {
-// NuxeoRESTClient nxClient = getClient();
-//
-// List<String> pathParams = new ArrayList<String>();
-// Map<String, String> queryParams = new HashMap<String, String>();
-// //get vocabulary
-// pathParams = Arrays.asList("vocabulary", "continent_country");
-// queryParams.put("lang", "en");
-//
-// Representation res = nxClient.get(pathParams, queryParams);
-// String resStr = res.getText();
-// verbose("getVocabulary:" + resStr);
-//
-// }
-
- private void verbose(String msg) {
- System.out.println("PersonNuxeoResource: " + msg);
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.collectionspace.hello.services.nuxeo;
-
-
-import javax.security.auth.callback.Callback;
-
-/**
- * Copied from jbossx
- *
- * An implementation of Callback that simply obtains an Object to be used
- * as the authentication credential. Interpretation of the Object is up to
- * the LoginModules that validate the credential.
- *
- * @author Scott.Stark@jboss.org
- */
-public class NuxeoCallback implements Callback {
-
- private final String prompt;
-
- private Object credential;
-
- public NuxeoCallback() {
- this("");
- }
-
- public NuxeoCallback(String prompt) {
- this.prompt = prompt;
- }
-
- public String getPrompt() {
- return prompt;
- }
-
- public Object getCredential() {
- return credential;
- }
-
- public void setCredential(Object credential) {
- this.credential = credential;
- }
-
- public void clearCredential() {
- credential = null;
- }
-
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-/**
- * Copied from jbossx.
- *
- * @author Scott.Stark@jboss.org
- */
-public class NuxeoCallbackHandler implements CallbackHandler {
-
- private final String username;
- private char[] password;
- private final Object credential;
-
- /**
- * Initializes the UsernamePasswordHandler with the username and password to
- * use.
- *
- * @param username the user name
- * @param password the password for this user
- */
- public NuxeoCallbackHandler(String username, char[] password) {
- this.username = username;
- this.password = password;
- credential = password;
- }
-
- public NuxeoCallbackHandler(String username, Object credential) {
- this.username = username;
- this.credential = credential;
- if (credential instanceof char[]) {
- password = (char[]) credential;
- } else if (credential instanceof CharSequence) {
- password = credential.toString().toCharArray();
- }
- }
-
- /**
- * Sets any NameCallback name property to the instance username, sets any
- * PasswordCallback password property to the instance, and any password.
- *
- * @exception UnsupportedCallbackException,
- * thrown if any callback of type other than NameCallback or
- * PasswordCallback are seen.
- */
- public void handle(Callback[] callbacks)
- throws UnsupportedCallbackException {
- for (Callback c : callbacks) {
- if (c instanceof NameCallback) {
- NameCallback nc = (NameCallback) c;
- nc.setName(username);
- } else if (c instanceof PasswordCallback) {
- PasswordCallback pc = (PasswordCallback) c;
- if (password == null) {
- // We were given an opaque Object credential but a char[] is
- // requested?
- if (credential != null) {
- String tmp = credential.toString();
- password = tmp.toCharArray();
- }
- }
- pc.setPassword(password);
- } else if (c instanceof NuxeoCallback) {
- NuxeoCallback oc = (NuxeoCallback) c;
- oc.setCredential(credential);
- } else {
- throw new UnsupportedCallbackException(c,
- "Unrecognized Callback");
- }
- }
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
-
-public class NuxeoLoginConfiguration extends Configuration {
-
- private final Configuration parent;
- public static final String LOGIN_DOMAIN = "nuxeo-client-login";
-
- public NuxeoLoginConfiguration(Configuration parent) {
- this.parent = parent;
- }
-
- @Override
- public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
-
- if (LOGIN_DOMAIN.equals(name)) {
- AppConfigurationEntry[] entries = new AppConfigurationEntry[1];
-
- Map<String, Object> options = new HashMap<String, Object>();
-
- options.put("restore-login-identity", "True");
- options.put("multi-threaded", "True");
-
- entries[0] = new AppConfigurationEntry("org.jboss.security.ClientLoginModule", LoginModuleControlFlag.REQUIRED, options);
-
-
- return entries;
- } else {
- return parent.getAppConfigurationEntry(name);
- }
- }
-
- @Override
- public void refresh() {
- if (parent != null) {
- parent.refresh();
- }
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-public class NuxeoLoginContextFactory {
-
-
- private static boolean initDone=false;
-
- private static void initLoginConfig()
- {
- if (initDone)
- return;
-
- Configuration parentConfig = null;
- try {
- parentConfig = Configuration.getConfiguration();
- } catch (Exception e) {
- // do nothing - this can happen if default configuration provider is not correctly configured
- // for examnple FileConfig fails if no config file was defined
- }
- Configuration config = new NuxeoLoginConfiguration(parentConfig);
- Configuration.setConfiguration(config);
-
- initDone=true;
-
- }
-
-
- public static LoginContext getLoginContext(CallbackHandler handler) throws LoginException
- {
- initLoginConfig();
- return new LoginContext(NuxeoLoginConfiguration.LOGIN_DOMAIN, handler);
- }
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * Nuxeo - initial API and implementation
- *
- * $Id: JOOoConvertPluginImpl.java 18651 2007-05-13 20:28:53Z sfermigier $
- */
-package org.collectionspace.hello.services.nuxeo;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.Map;
-
-
-import org.restlet.Client;
-import org.restlet.data.ChallengeResponse;
-import org.restlet.data.ChallengeScheme;
-import org.restlet.data.Cookie;
-import org.restlet.data.Form;
-import org.restlet.data.MediaType;
-import org.restlet.data.Method;
-import org.restlet.data.Parameter;
-import org.restlet.data.Protocol;
-import org.restlet.data.Request;
-import org.restlet.resource.OutputRepresentation;
-import org.restlet.resource.Representation;
-import org.restlet.util.Series;
-
-public class NuxeoRESTClient {
-
- public static final int AUTH_TYPE_NONE = 0;
- public static final int AUTH_TYPE_BASIC = 1;
- public static final int AUTH_TYPE_SECRET = 2;
- protected String baseURL = "http://127.0.0.1:8080/nuxeo";
- protected String restPrefix = "restAPI";
- protected String davPrefix = "dav";
- protected List<Cookie> cookies;
- protected int authType = AUTH_TYPE_NONE;
- protected String userName;
- protected String password;
- protected String secretToken;
- protected Client restClient;
-
- public NuxeoRESTClient(String baseURL) {
- this.baseURL = baseURL;
- }
-
- public NuxeoRESTClient(String protocol, String serverIP, String serverPort) {
- this(protocol, serverIP, serverPort, "nuxeo");
- }
-
- public NuxeoRESTClient(String protocol, String serverIP, String serverPort,
- String servletPath) {
- StringBuffer sb = new StringBuffer();
- sb.append(protocol);
- sb.append("://");
- sb.append(serverIP);
- if (serverPort != null && !serverIP.equals("80")) {
- sb.append(':');
- sb.append(serverPort);
- }
- sb.append(servletPath);
- sb.append('/');
- baseURL = sb.toString();
- }
-
- public void setBasicAuthentication(String userName, String password) {
- authType = AUTH_TYPE_BASIC;
- this.userName = userName;
- this.password = password;
- }
-
- public void setSharedSecretAuthentication(String userName,
- String secretToken) {
- authType = AUTH_TYPE_SECRET;
- this.userName = userName;
- this.secretToken = secretToken;
- }
-
- public void setCookies(List<Cookie> cookies) {
- this.cookies = cookies;
- }
-
- public Representation post(List<String> pathParams,
- Map<String, String> queryParams, InputStream istream) {
- String path = "";
- StringBuffer pathBuffer = new StringBuffer();
-
- if (pathParams != null) {
- for (String p : pathParams) {
- pathBuffer.append(p);
- pathBuffer.append('/');
- }
- path = pathBuffer.toString();
- }
-
- return post(path, queryParams, istream);
- }
-
- public Representation post(String subPath,
- Map<String, String> queryParams, InputStream istream) {
- StringBuffer urlBuffer = new StringBuffer();
-
- if (subPath.startsWith("/")) {
- subPath = subPath.substring(1);
- }
- if (subPath.endsWith("/")) {
- subPath = subPath.substring(0, subPath.length() - 1);
- }
-
- urlBuffer.append(baseURL);
- urlBuffer.append('/');
- urlBuffer.append(restPrefix);
- urlBuffer.append('/');
- urlBuffer.append(subPath);
-
- if (queryParams != null) {
- urlBuffer.append('?');
-
- String qpValue = null;
- for (String qpName : queryParams.keySet()) {
- urlBuffer.append(qpName);
- urlBuffer.append('=');
- qpValue = queryParams.get(qpName);
- if (qpValue != null) {
- urlBuffer.append(qpValue.replaceAll(" ", "%20"));
- }
- urlBuffer.append('&');
- }
- }
-
- String completeURL = urlBuffer.toString();
- System.out.println("\nNuxeoRESTClient: calling " + completeURL);
- Request request = new Request(Method.POST, completeURL);
-
- setupAuth(request);
- setupCookies(request);
- final InputStream in = istream;
- request.setEntity(new OutputRepresentation(
- MediaType.MULTIPART_FORM_DATA) {
-
- @Override
- public void write(OutputStream outputStream) throws IOException {
- byte[] buffer = new byte[1024 * 64];
- int read;
- while ((read = in.read(buffer)) != -1) {
- outputStream.write(buffer, 0, read);
- }
-
- }
- });
-
- return getRestClient().handle(request).getEntity();
- }
-
- public Representation get(List<String> pathParams,
- Map<String, String> queryParams) {
- String path = "";
- StringBuffer pathBuffer = new StringBuffer();
-
- if (pathParams != null) {
- for (String p : pathParams) {
- pathBuffer.append(p);
- pathBuffer.append('/');
- }
- path = pathBuffer.toString();
- }
-
- return get(path, queryParams);
- }
-
- public Representation get(String subPath,
- Map<String, String> queryParams) {
- StringBuffer urlBuffer = new StringBuffer();
-
- if (subPath.startsWith("/")) {
- subPath = subPath.substring(1);
- }
- if (subPath.endsWith("/")) {
- subPath = subPath.substring(0, subPath.length() - 1);
- }
-
- urlBuffer.append(baseURL);
- urlBuffer.append('/');
- urlBuffer.append(restPrefix);
- urlBuffer.append('/');
- urlBuffer.append(subPath);
-
- if (queryParams != null) {
- urlBuffer.append('?');
- for (String qpName : queryParams.keySet()) {
- urlBuffer.append(qpName);
- urlBuffer.append('=');
- urlBuffer.append(queryParams.get(qpName).replaceAll(" ", "%20"));
- urlBuffer.append('&');
- }
- }
-
- String completeURL = urlBuffer.toString();
- System.out.println("\nNuxeoRESTClient: calling " + completeURL);
- Request request = new Request(Method.GET, completeURL);
- setupAuth(request);
- setupCookies(request);
-
- return getRestClient().handle(request).getEntity();
- }
-
- protected void setupAuth(Request request) {
-
- if (authType == AUTH_TYPE_BASIC) {
- ChallengeScheme scheme = ChallengeScheme.HTTP_BASIC;
- ChallengeResponse authentication = new ChallengeResponse(scheme,
- userName, password);
- request.setChallengeResponse(authentication);
-
- } else if (authType == AUTH_TYPE_SECRET) {
- Series<Parameter> additionnalHeaders = new Form();
-
- Map<String, String> securityHeaders = PortalSSOAuthenticationProvider.getHeaders(
- secretToken, userName);
-
- for (String hn : securityHeaders.keySet()) {
- additionnalHeaders.add(hn, securityHeaders.get(hn));
- }
-
- request.getAttributes().put("org.restlet.http.headers",
- additionnalHeaders);
- }
- }
-
- protected void setupCookies(Request request) {
- if (cookies != null) {
- request.getCookies().clear();
- for (Cookie cookie : cookies) {
- request.getCookies().add(cookie);
- }
- }
-
- }
-
- protected Client getRestClient() {
- if (restClient == null) {
- if (baseURL.startsWith("https")) {
- restClient = new Client(Protocol.HTTPS);
- } else {
- restClient = new Client(Protocol.HTTP);
- }
- }
-
- return restClient;
- }
-
- public int getAuthType() {
- return authType;
- }
-
- public void setAuthType(int authType) {
- this.authType = authType;
- }
-
- public String getDavPrefix() {
- return davPrefix;
- }
-
- public void setDavPrefix(String davPrefix) {
- this.davPrefix = davPrefix;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getRestPrefix() {
- return restPrefix;
- }
-
- public void setRestPrefix(String restPrefix) {
- this.restPrefix = restPrefix;
- }
-
- public String getSecretToken() {
- return secretToken;
- }
-
- public void setSecretToken(String secretToken) {
- this.secretToken = secretToken;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * Nuxeo - initial API and implementation
- *
- * $Id: JOOoConvertPluginImpl.java 18651 2007-05-13 20:28:53Z sfermigier $
- */
-
-package org.collectionspace.hello.services.nuxeo;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-
-import com.noelios.restlet.util.Base64;
-
-public class PortalSSOAuthenticationProvider {
-
- private static final String TOKEN_SEP = ":";
-
- private static final String TS_HEADER = "NX_TS";
-
- private static final String RANDOM_HEADER = "NX_RD";
-
- private static final String TOKEN_HEADER = "NX_TOKEN";
-
- private static final String USER_HEADER = "NX_USER";
-
- public static Map<String, String> getHeaders(String secretKey,
- String userName) {
-
- Map<String, String> headers = new HashMap<String, String>();
-
- Date timestamp = new Date();
- int randomData = new Random(timestamp.getTime()).nextInt();
-
- String clearToken = timestamp.getTime() + TOKEN_SEP + randomData
- + TOKEN_SEP + secretKey + TOKEN_SEP + userName;
-
- byte[] hashedToken;
-
- try {
- hashedToken = MessageDigest.getInstance("MD5").digest(
- clearToken.getBytes());
- } catch (NoSuchAlgorithmException e) {
- return null;
- }
-
- String base64HashedToken = Base64.encodeBytes(hashedToken);
-
- headers.put(TS_HEADER, String.valueOf(timestamp.getTime()));
- headers.put(RANDOM_HEADER, String.valueOf(randomData));
- headers.put(TOKEN_HEADER, base64HashedToken);
- headers.put(USER_HEADER, userName);
-
- return headers;
- }
-
-}
+++ /dev/null
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-java.naming.provider.url=jnp://localhost:1099
\ No newline at end of file
+++ /dev/null
-org.nuxeo.runtime.server.enabled=false
-org.nuxeo.runtime.streaming.isServer=false
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">\r
-<web-app>\r
- <display-name>HelloworldNuxeo</display-name>\r
-\r
- <context-param>\r
- <param-name>javax.ws.rs.Application</param-name>\r
- <param-value>org.collectionspace.hello.services.HelloworldNuxeoApplication</param-value>\r
- </context-param>\r
-\r
- <context-param>\r
- <param-name>resteasy.servlet.mapping.prefix</param-name>\r
- <param-value>/cspace-nuxeo</param-value>\r
- </context-param>\r
-\r
- <listener>\r
- <listener-class>\r
- org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\r
- </listener-class>\r
- </listener>\r
-\r
- <servlet>\r
- <servlet-name>Resteasy</servlet-name>\r
- <servlet-class>\r
- org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\r
- </servlet-class>\r
- </servlet>\r
-\r
- <servlet-mapping>\r
- <servlet-name>Resteasy</servlet-name>\r
- <url-pattern>/cspace-nuxeo/*</url-pattern>\r
- </servlet-mapping>\r
-\r
-</web-app>\r
+++ /dev/null
-
-This project is a simple example showing usage of @Path, @GET, PUT, POST, and @PathParam. It uses pure streaming
-output as well.
-
-System Requirements:
-====================
-- Maven 2.0.9 or higher
-
-Building the project:
-====================
-1. In root directoy
-
-mvn clean install
-
-This will build a WAR and run it with embedded Jetty
\ No newline at end of file
+++ /dev/null
-jboss.dir=C:/dev/jboss-4.2.3.GA
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0"?>
-<project name="helloworld" default="deploy" basedir=".">
-
- <property file="build.properties" />
-
-
- <target name="deploy" description="Deploy">
- <copy todir="${jboss.dir}/server/default/deploy">
- <fileset file="${basedir}/target/helloworld.war" />
- </copy>
- </target>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- <netbeans.hint.useExternalMaven>false</netbeans.hint.useExternalMaven>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>test</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>build</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>install</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>clean</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>run</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>debug</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- <netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>\r
- </properties>\r
- </action>\r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>jaxrs-prototype</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-service</artifactId>\r
- <packaging>war</packaging>\r
- <version>0.1</version>\r
- <name>jaxrs-service</name>\r
-\r
- <repositories>\r
- <repository>\r
- <id>java.net</id>\r
- <url>http://download.java.net/maven/1</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven repo</id>\r
- <name>maven repo</name>\r
- <url>http://repo1.maven.org/maven2/</url>\r
- </repository>\r
- <!-- For resteasy -->\r
- <repository>\r
- <id>jboss</id>\r
- <name>jboss repo</name>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>mojo</id>\r
- <name>mojo repo</name>\r
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>\r
- </repository>\r
- </repositories>\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>jaxrs-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <!-- filter out unwanted jars -->\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>4.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
- </dependencies>\r
- \r
- <build>\r
- <finalName>helloworld</finalName>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.codehaus.mojo</groupId>\r
- <artifactId>jboss-maven-plugin</artifactId>\r
- <configuration>\r
- <jbossHome>${jboss.dir}</jbossHome>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>jboss-undeploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>undeploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>jboss-deploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
-\r
- </executions>\r
- </plugin>\r
- <!--\r
- <plugin>\r
- <groupId>org.mortbay.jetty</groupId>\r
- <artifactId>maven-jetty-plugin</artifactId>\r
- <version>6.1.10</version>\r
- <configuration>\r
- \r
- <contextPath>/</contextPath>\r
- <scanIntervalSeconds>2</scanIntervalSeconds>\r
- <stopKey>foo</stopKey>\r
- <stopPort>9999</stopPort>\r
- <connectors>\r
- <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">\r
- <port>9095</port>\r
- <maxIdleTime>60000</maxIdleTime>\r
- </connector>\r
- </connectors>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>start-jetty</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>run</goal>\r
- </goals>\r
- <configuration>\r
- <scanIntervalSeconds>0</scanIntervalSeconds>\r
- <daemon>true</daemon>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>stop-jetty</id>\r
- <phase>post-integration-test</phase>\r
- <goals>\r
- <goal>stop</goal>\r
- </goals>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- -->\r
-\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <configuration>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>surefire-it</id>\r
- <phase>integration-test</phase>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- <configuration>\r
- <skip>false</skip>\r
- </configuration>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
-
-public class HelloworldApplication extends Application {
-
- private Set<Object> singletons = new HashSet<Object>();
- private Set<Class<?>> empty = new HashSet<Class<?>>();
-
- public HelloworldApplication() {
- singletons.add(new PersonResource());
- singletons.add(new IdentifierResource());
- }
-
- @Override
- public Set<Class<?>> getClasses() {
- return empty;
- }
-
- @Override
- public Set<Object> getSingletons() {
- return singletons;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Identifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/identifiers")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class IdentifierResource {
-
- final Logger logger = LoggerFactory.getLogger(IdentifierResource.class);
- private Map<Long, Identifier> idDB = new ConcurrentHashMap<Long, Identifier>();
- private AtomicLong idCounter = new AtomicLong();
-
- public IdentifierResource() {
- }
-
- @POST
- public Response createIdentifier(Identifier id) {
- if (id.getNamespace() == null) {
- id.setNamespace("edu.berkeley");
- }
- id.setId(idCounter.incrementAndGet());
- id.setVersion(1);
- UUID uuid = UUID.nameUUIDFromBytes(id.getNamespace().getBytes());
- id.setValue(uuid.toString());
- idDB.put(id.getId(), id);
- verbose("created Id", id);
- UriBuilder path = UriBuilder.fromResource(IdentifierResource.class);
- path.path("" + id.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public Identifier getIdentifier(@PathParam("id") Long id) {
- Identifier i = idDB.get(id);
- if (i == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "The requested ID was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get Id", i);
- return i;
- }
-
- private void verbose(String msg, Identifier id) {
- try {
- System.out.println("IdentifierResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(Identifier.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(id, System.out);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import java.net.URI;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.collectionspace.hello.Person;
-import org.collectionspace.hello.Persons.PersonListItem;
-import org.collectionspace.hello.Persons;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/persons")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class PersonResource {
-
- final Logger logger = LoggerFactory.getLogger(PersonResource.class);
- private Map<Long, Person> personDB = new ConcurrentHashMap<Long, Person>();
- private AtomicLong idCounter = new AtomicLong();
-
- public PersonResource() {
- }
-
- @POST
- public Response createPerson(Person p) {
- p.setId(idCounter.incrementAndGet());
- p.setVersion(1);
- personDB.put(p.getId(), p);
- verbose("created person", p);
- UriBuilder path = UriBuilder.fromResource(PersonResource.class);
- path.path("" + p.getId());
- Response response = Response.created(path.build()).build();
- return response;
- }
-
- @GET
- @Path("{id}")
- public Person getPerson(@PathParam("id") Long id) {
- Person p = personDB.get(id);
- if (p == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("get person", p);
- return p;
- }
-
- @PUT
- @Path("{id}")
- public Person updatePerson(@PathParam("id") Long id, Person update) {
- Person current = personDB.get(id);
- if (current == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed, the person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("update person input", update);
- //todo: intelligent merge needed
- current.setFirstName(update.getFirstName());
- current.setLastName(update.getLastName());
- current.setStreet(update.getStreet());
- current.setState(update.getState());
- current.setZip(update.getZip());
- current.setCountry(update.getCountry());
- current.setVersion(current.getVersion() + 1);
- verbose("update person output", current);
- return current;
- }
-
- @GET
- public Persons getPersons(@Context UriInfo ui) {
- Persons persons = new Persons();
- List<Persons.PersonListItem> list = persons.getPersonListItem();
- // builder starts with current URI and has appended path of getPerson method
- UriBuilder ub = ui.getAbsolutePathBuilder().path(this.getClass(), "getPerson");
- for (Person p : personDB.values()) {
- PersonListItem pli = new PersonListItem();
- pli.setFirstName(p.getFirstName());
- pli.setLastName(p.getLastName());
- pli.setId(p.getId());
- // builder has {id} variable that must be filled in for each customer
- URI uri = ub.build(p.getId());
- pli.setUri(uri.toString());
- list.add(pli);
- }
- return persons;
- }
-
- @DELETE
- @Path("{id}")
- public void deletePerson(@PathParam("id") Long id) {
- Person removed = personDB.remove(id);
- if (removed == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed, the person ID:" + id + ": was not found.").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- verbose("deleted person", removed);
- }
-
- private void verbose(String msg, Person p) {
- try {
- System.out.println("PersonResource : " + msg);
- JAXBContext jc = JAXBContext.newInstance(Person.class);
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
- Boolean.TRUE);
- m.marshal(p, System.out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-// @POST
-// @Consumes("application/xml")
-// public Response createPerson(InputStream is) {
-// Person p = readPerson(is);
-// p.setId(idCounter.incrementAndGet());
-// p.setVersion(1);
-// personDB.put(p.getId(), p);
-// try {
-// System.out.println("Created Person " + p.getId());
-// outputPerson(System.out, p);
-// } catch (IOException ioe) {
-// throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
-// }
-// return Response.created(URI.create("/persons/" + p.getId())).build();
-//
-// }
-//
-// @GET
-// @Path("{id}")
-// @Produces("application/xml")
-// public StreamingOutput getPerson(@PathParam("id") int id) {
-// final Person p = personDB.get(id);
-// if (p == null) {
-// throw new WebApplicationException(Response.Status.NOT_FOUND);
-// }
-// return new StreamingOutput() {
-//
-// public void write(OutputStream outputStream) throws IOException, WebApplicationException {
-// outputPerson(outputStream, p);
-// }
-// };
-// }
-//
-// @PUT
-// @Path("{id}")
-// @Consumes("application/xml")
-// @Produces("application/xml")
-// public StreamingOutput updatePerson(@PathParam("id") int id, InputStream is) {
-// Person update = readPerson(is);
-// Person current = personDB.get(id);
-// if (current == null) {
-// throw new WebApplicationException(Response.Status.NOT_FOUND);
-// }
-//
-// current.setFirstName(update.getFirstName());
-// current.setLastName(update.getLastName());
-// current.setStreet(update.getStreet());
-// current.setState(update.getState());
-// current.setZip(update.getZip());
-// current.setCountry(update.getCountry());
-// current.setVersion(current.getVersion() + 1);
-// final Person scurrent = current;
-// return new StreamingOutput() {
-//
-// public void write(OutputStream outputStream) throws IOException, WebApplicationException {
-// outputPerson(outputStream, scurrent);
-// }
-// };
-// }
-//
-// protected void outputPerson(OutputStream os, Person p) throws IOException {
-// PrintStream writer = new PrintStream(os);
-// writer.println("<Person id=\"" + p.getId() + "\" version=\"" + p.getVersion() + "\">");
-// writer.println(" <first-name>" + p.getFirstName() + "</first-name>");
-// writer.println(" <last-name>" + p.getLastName() + "</last-name>");
-// writer.println(" <street>" + p.getStreet() + "</street>");
-// writer.println(" <city>" + p.getCity() + "</city>");
-// writer.println(" <state>" + p.getState() + "</state>");
-// writer.println(" <zip>" + p.getZip() + "</zip>");
-// writer.println(" <country>" + p.getCountry() + "</country>");
-// writer.println("</Person>");
-// }
-//
-// protected Person readPerson(InputStream is) {
-// try {
-// DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-// Document doc = builder.parse(is);
-// Element root = doc.getDocumentElement();
-// Person p = new Person();
-// if (root.getAttribute("id") != null && !root.getAttribute("id").trim().equals("")) {
-// p.setId(Integer.valueOf(root.getAttribute("id")));
-// }
-// if (root.getAttribute("version") != null && !root.getAttribute("version").trim().equals("")) {
-// p.setVersion(Integer.valueOf(root.getAttribute("version")));
-// }
-// NodeList nodes = root.getChildNodes();
-// for (int i = 0; i < nodes.getLength(); i++) {
-// Element element = (Element) nodes.item(i);
-// if (element.getTagName().equals("first-name")) {
-// p.setFirstName(element.getTextContent());
-// } else if (element.getTagName().equals("last-name")) {
-// p.setLastName(element.getTextContent());
-// } else if (element.getTagName().equals("street")) {
-// p.setStreet(element.getTextContent());
-// } else if (element.getTagName().equals("city")) {
-// p.setCity(element.getTextContent());
-// } else if (element.getTagName().equals("state")) {
-// p.setState(element.getTextContent());
-// } else if (element.getTagName().equals("zip")) {
-// p.setZip(element.getTextContent());
-// } else if (element.getTagName().equals("country")) {
-// p.setCountry(element.getTextContent());
-// }
-// }
-// return p;
-// } catch (Exception e) {
-// throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
-// }
-// }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">\r
-<web-app>\r
- <display-name>Helloworld</display-name>\r
-\r
- <context-param>\r
- <param-name>javax.ws.rs.Application</param-name>\r
- <param-value>org.collectionspace.hello.services.HelloworldApplication</param-value>\r
- </context-param>\r
-\r
- <context-param>\r
- <param-name>resteasy.servlet.mapping.prefix</param-name>\r
- <param-value>/cspace</param-value>\r
- </context-param>\r
-\r
- <listener>\r
- <listener-class>\r
- org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\r
- </listener-class>\r
- </listener>\r
-\r
- <servlet>\r
- <servlet-name>Resteasy</servlet-name>\r
- <servlet-class>\r
- org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\r
- </servlet-class>\r
- </servlet>\r
-\r
- <servlet-mapping>\r
- <servlet-name>Resteasy</servlet-name>\r
- <url-pattern>/cspace/*</url-pattern>\r
- </servlet-mapping>\r
-\r
-</web-app>\r
+++ /dev/null
-package org.collectionspace.hello.test;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-/**
- * @version $Revision: 1 $
- */
-public class IdentifierServiceRawXmlTest {
-
- @Test
- public void testIdentifierResource() throws Exception {
- verbose("create a new Identifier");
- // Create a new object
- String newIdentifier = "<ns2:identifier xmlns:ns2=\"http://collectionspace.org/hello\">" +
- "<namespace>edu.stanford</namespace>" +
- "</ns2:identifier>";
-
- URL postUrl = new URL("http://localhost:8080/helloworld/cspace/identifiers");
- HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
- connection.setDoOutput(true);
- connection.setInstanceFollowRedirects(false);
- connection.setRequestMethod("POST");
- connection.setRequestProperty("Content-Type", "application/xml");
- OutputStream os = connection.getOutputStream();
- os.write(newIdentifier.getBytes());
- os.flush();
- Assert.assertEquals(HttpURLConnection.HTTP_CREATED, connection.getResponseCode());
- String createdUrl = connection.getHeaderField("Location");
- verbose("Location: " + createdUrl);
- connection.disconnect();
-
-
- // Get the new object
- verbose("get created Identifier");
- URL getUrl = new URL(createdUrl);
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
- verbose("Content-Type: " + connection.getContentType());
-
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- String line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- }
-
- private void verbose(String msg) {
- System.out.println("IdentifierServiceRawXmlTest : " + msg);
- }
-}
+++ /dev/null
-package org.collectionspace.hello.test;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-/**
- * @version $Revision: 1 $
- */
-public class PersonServiceRawXmlTest {
-
- @Test
- public void testPersonResource() throws Exception {
- verbose("create a new Person");
- // Create a new object
- String newPerson = "<ns2:person xmlns:ns2=\"http://collectionspace.org/hello\">" + "<firstName>John</firstName>" + "<lastName>Doe</lastName>" + "<street>2195 Hearst Ave</street>" + "<city>Berkeley</city>" + "<state>CA</state>" + "<zip>94504</zip>" + "<country>USA</country>" + "</ns2:person>";
-
- URL postUrl = new URL("http://localhost:8080/helloworld/cspace/persons");
- HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
- connection.setDoOutput(true);
- connection.setInstanceFollowRedirects(false);
- connection.setRequestMethod("POST");
- connection.setRequestProperty("Content-Type", "application/xml");
- OutputStream os = connection.getOutputStream();
- os.write(newPerson.getBytes());
- os.flush();
- Assert.assertEquals(HttpURLConnection.HTTP_CREATED, connection.getResponseCode());
- String createdUrl = connection.getHeaderField("Location");
- verbose("Location: " + createdUrl);
- connection.disconnect();
-
-
- // Get the new object
- verbose("get created Person");
- URL getUrl = new URL(createdUrl);
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
- verbose("Content-Type: " + connection.getContentType());
-
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- String line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- String updatePerson = "<ns2:person xmlns:ns2=\"http://collectionspace.org/hello\">" + "<firstName>Jane</firstName>" + "<lastName>Doe</lastName>" + "<street>1 University Ave</street>" + "<city>Berkeley</city>" + "<state>CA</state>" + "<zip>94504</zip>" + "<country>USA</country>" + "</ns2:person>";
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setDoOutput(true);
- connection.setRequestMethod("PUT");
- connection.setRequestProperty("Content-Type", "application/xml");
- os = connection.getOutputStream();
- os.write(updatePerson.getBytes());
- os.flush();
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
-
- // Show the update
- verbose("updated Person");
- connection = (HttpURLConnection) getUrl.openConnection();
- connection.setRequestMethod("GET");
-
- verbose("Content-Type: " + connection.getContentType());
- reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-
- line = reader.readLine();
- while (line != null) {
- verbose(line);
- line = reader.readLine();
- }
- Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
- connection.disconnect();
- }
-
- private void verbose(String msg) {
- System.out.println("PersonServiceRawXmlTest : " + msg);
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
-\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- <artifactId>jaxrs-prototype</artifactId>\r
- <packaging>pom</packaging>\r
- <name>jaxrs-prototype</name>\r
- <modules>\r
- <module>jaxrs-jaxb</module>\r
- <module>jaxrs-service</module>\r
- <module>jaxrs-client</module>\r
- <module>jaxrs-nuxeo-service</module>\r
- <module>jaxrs-nuxeo-client</module>\r
- <module>jaxrs-nuxeo-javaapi-service</module>\r
- </modules>\r
- <repositories>\r
- <repository>\r
- <id>jboss</id>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>sun</id>\r
- <url>http://download.java.net/maven/2</url>\r
- </repository>\r
- <repository>\r
- <id>java.net</id>\r
- <name>java.net Maven Repository</name>\r
- <url>https://maven-repository.dev.java.net/nonav/repository</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven2-repository.dev.java.net</id>\r
- <name>Java.net Maven 2 Repository</name>\r
- <url>http://download.java.net/maven/2</url>\r
- </repository>\r
- </repositories>\r
- <pluginRepositories>\r
-\r
- <pluginRepository>\r
- <id>java.net</id>\r
- <name>java.net Maven Repository</name>\r
- <url>https://maven-repository.dev.java.net/nonav/repository</url>\r
- <layout>legacy</layout>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>maven2-repository.dev.java.net</id>\r
- <name>Java.net Maven 2 Repository</name>\r
- <url>http://download.java.net/maven/2</url>\r
- </pluginRepository>\r
- </pluginRepositories>\r
-\r
- <build>\r
- <pluginManagement>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-site-plugin</artifactId>\r
- <configuration>\r
- <unzipCommand>/usr/bin/unzip -o > err.txt</unzipCommand>\r
- </configuration>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0.1</version>\r
- <configuration>\r
-\r
- <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>\r
- <archive>\r
- <manifest>\r
- <addClasspath>true</addClasspath>\r
-\r
- </manifest>\r
- </archive>\r
- </configuration>\r
- </plugin>\r
-\r
- </plugins>\r
- </pluginManagement>\r
- </build>\r
- <dependencyManagement>\r
- <dependencies>\r
- <dependency>\r
- <groupId>net.java.dev.jaxb2-commons</groupId>\r
- <artifactId>jaxb-fluent-api</artifactId>\r
- <version>2.0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.testng</groupId>\r
- <artifactId>testng</artifactId>\r
- <version>5.6</version>\r
- <scope>test</scope>\r
- <classifier>jdk15</classifier>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>jaxrs-api</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>net.java.dev.jaxb2-commons</groupId>\r
- <artifactId>jaxb-fluent-api</artifactId>\r
- <version>2.0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jvnet.jaxb2-commons</groupId>\r
- <artifactId>property-listener-injector</artifactId>\r
- <version>1.0</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jvnet.jaxb2_commons</groupId>\r
- <artifactId>runtime</artifactId>\r
- <version>0.4.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-httpclient</groupId>\r
- <artifactId>commons-httpclient</artifactId>\r
- <version>3.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.sun.xml.bind</groupId>\r
- <artifactId>jaxb-impl</artifactId>\r
- <version>2.1.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.testng</groupId>\r
- <artifactId>testng</artifactId>\r
- <version>5.6</version>\r
- <scope>test</scope>\r
- <classifier>jdk15</classifier>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-api</artifactId>\r
- <version>1.5.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-log4j12</artifactId>\r
- <version>1.5.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>mysql</groupId>\r
- <artifactId>mysql-connector-java</artifactId>\r
- <version>5.1.5</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.jgoodies</groupId>\r
- <artifactId>binding</artifactId>\r
- <version>2.0.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.jgoodies</groupId>\r
- <artifactId>forms</artifactId>\r
- <version>1.2.0</version>\r
- </dependency>\r
- </dependencies>\r
- </dependencyManagement>\r
-</project>\r
+++ /dev/null
-
-This project is a simple example showing usage of @Path, @GET, PUT, POST, and @PathParam. It uses pure streaming
-output as well.
-
-System Requirements:
-====================
-- Maven 2.0.9 or higher
-
-Building the project:
-====================
-1. In root directoy
-
-mvn clean install
-
-This will build a WAR and run it with embedded Jetty
\ No newline at end of file
+++ /dev/null
-jboss.dir=C:/dev/jboss-4.2.3.GA\r
-nuxeo.dir=${jboss.dir}/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.dir=file:///C:/dev/jboss-4.2.3.GA/server/default/deploy/nuxeo.ear/system\r
-nuxeo.local.repo.client.dir=file:///C:/dev/nuxeo/nuxeo-core/nuxeo-core-client/target\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<project-shared-configuration>\r
- <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->\r
- <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">\r
- <!--
-Properties that influence various parts of the IDE, especially code formatting and the like.
-You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
-That way multiple projects can share the same settings (useful for formatting rules for example).
-Any value defined here will override the pom.xml file value but is only applicable to the current project.
--->\r
- <org-netbeans-modules-editor-indent.CodeStyle.usedProfile>default</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>8</org-netbeans-modules-editor-indent.CodeStyle.project.tab-size>\r
- <org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>80</org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width>\r
- <netbeans.hint.useExternalMaven>false</netbeans.hint.useExternalMaven>\r
- </properties>\r
-</project-shared-configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<actions>\r
- <action>\r
- <actionName>test</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>build</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>install</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>clean</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- </goals>\r
- </action>\r
- <action>\r
- <actionName>rebuild</actionName>\r
- <packagings>\r
- <packaging>*</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>clean</goal>\r
- <goal>install</goal>\r
- </goals>\r
- <properties>\r
- <maven.test.skip>true</maven.test.skip>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>run</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- </properties>\r
- </action>\r
- <action>\r
- <actionName>debug</actionName>\r
- <packagings>\r
- <packaging>war</packaging>\r
- <packaging>ear</packaging>\r
- <packaging>ejb</packaging>\r
- </packagings>\r
- <goals>\r
- <goal>package</goal>\r
- </goals>\r
- <properties>\r
- \r
- <netbeans.deploy>true</netbeans.deploy>\r
- <netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>\r
- </properties>\r
- </action>\r
- </actions>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>helloworld</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-doc-service</artifactId>\r
- <packaging>war</packaging>\r
- <version>0.1</version>\r
- <name>Helloworld Document Service</name>\r
-\r
- <repositories>\r
- <repository>\r
- <id>java.net</id>\r
- <url>http://download.java.net/maven/1</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven repo</id>\r
- <name>maven repo</name>\r
- <url>http://repo1.maven.org/maven2/</url>\r
- </repository>\r
- <!-- For resteasy -->\r
- <repository>\r
- <id>jboss</id>\r
- <name>jboss repo</name>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>mojo</id>\r
- <name>mojo repo</name>\r
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>\r
- </repository>\r
- <repository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </repository>\r
- <repository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </repository>\r
-\r
-\r
- </repositories>\r
-\r
- <pluginRepositories>\r
- <pluginRepository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <name>Nuxeo virtual release repository</name>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <name>Nuxeo virtual snapshot repository</name>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </pluginRepository>\r
- </pluginRepositories>\r
-\r
-\r
- <properties>\r
- <jboss.version>4.2.3.GA</jboss.version>\r
- <jboss.ejb.version>3.0</jboss.ejb.version>\r
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
- <apacheds.version>1.5.1</apacheds.version>\r
- <apachedshared.version>0.9.7</apachedshared.version>\r
- <nuxeo.version.5.2>5.2-SNAPSHOT</nuxeo.version.5.2>\r
- <nuxeo.version.1.5>1.5-SNAPSHOT</nuxeo.version.1.5>\r
- </properties>\r
-\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <!-- filter out unwanted jars -->\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>4.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
-\r
- <!-- javax -->\r
-\r
-\r
- <dependency>\r
- <groupId>javax.ejb</groupId>\r
- <artifactId>ejb</artifactId>\r
- <version>3.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>javax.ejb</groupId>\r
- <artifactId>ejb-api</artifactId>\r
- <version>3.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>javax.annotation</groupId>\r
- <artifactId>jsr250-api</artifactId>\r
- <version>1.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <!--\r
- <dependency>\r
- <groupId>javax.el</groupId>\r
- <artifactId>el-api</artifactId>\r
- <version>unknown</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.el</groupId>\r
- <artifactId>el-ri</artifactId>\r
- <version>unknown</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.faces</groupId>\r
- <artifactId>jsf-api</artifactId>\r
- <version>1.2_09_jboss</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.faces</groupId>\r
- <artifactId>jsf-impl</artifactId>\r
- <version>1.2_09_jboss</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.jms</groupId>\r
- <artifactId>jms</artifactId>\r
- <version>1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.jws</groupId>\r
- <artifactId>jsr181</artifactId>\r
- <version>1.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.mail</groupId>\r
- <artifactId>mail</artifactId>\r
- <version>1.4</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.persistence</groupId>\r
- <artifactId>persistence</artifactId>\r
- <version>3.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.servlet.jsp</groupId>\r
- <artifactId>jsp-api</artifactId>\r
- <version>2.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.servlet</groupId>\r
- <artifactId>jstl</artifactId>\r
- <version>1.1.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.servlet</groupId>\r
- <artifactId>servlet-api</artifactId>\r
- <version>2.4</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.transaction</groupId>\r
- <artifactId>jta</artifactId>\r
- <version>1.0.1B</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.jcr</groupId>\r
- <artifactId>jcr</artifactId>\r
- <version>1.0.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.script</groupId>\r
- <artifactId>script-api</artifactId>\r
- <version>1.0</version>\r
- </dependency>\r
--->\r
- <dependency>\r
- <groupId>javax.security</groupId>\r
- <artifactId>jaas</artifactId>\r
- <version>1.0.01</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <!-- commons -->\r
- <!--\r
- <dependency>\r
- <groupId>commons-collections</groupId>\r
- <artifactId>commons-collections</artifactId>\r
- <version>3.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-fileupload</groupId>\r
- <artifactId>commons-fileupload</artifactId>\r
- <version>1.1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-io</groupId>\r
- <artifactId>commons-io</artifactId>\r
- <version>1.4</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-lang</groupId>\r
- <artifactId>commons-lang</artifactId>\r
- <version>2.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>commons-beanutils</groupId>\r
- <artifactId>commons-beanutils</artifactId>\r
- <version>1.6</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>commons-digester</groupId>\r
- <artifactId>commons-digester</artifactId>\r
- <version>1.8</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>commons-el</groupId>\r
- <artifactId>commons-el</artifactId>\r
- <version>1.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-logging</groupId>\r
- <artifactId>commons-logging</artifactId>\r
- <version>1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>commons-logging</groupId>\r
- <artifactId>commons-logging-api</artifactId>\r
- <version>1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-jexl</groupId>\r
- <artifactId>commons-jexl</artifactId>\r
- <version>1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- -->\r
- <!-- apache \r
- <dependency>\r
- <groupId>org.apache.derby</groupId>\r
- <artifactId>derby</artifactId>\r
- <version>10.4.1.3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.derby</groupId>\r
- <artifactId>derbyclient</artifactId>\r
- <version>10.4.1.3</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.lucene</groupId>\r
- <artifactId>lucene-core</artifactId>\r
- <version>2.3.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.lucene</groupId>\r
- <artifactId>lucene-analyzers</artifactId>\r
- <version>2.3.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.shared</groupId>\r
- <artifactId>shared-asn1</artifactId>\r
- <version>${apachedshared.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.shared</groupId>\r
- <artifactId>shared-ldap-constants</artifactId>\r
- <version>${apachedshared.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.poi</groupId>\r
- <artifactId>poi</artifactId>\r
- <version>3.0.2-FINAL</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.poi</groupId>\r
- <artifactId>poi-scratchpad</artifactId>\r
- <version>3.0.2-FINAL</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.jackrabbit</groupId>\r
- <artifactId>jackrabbit-text-extractors</artifactId>\r
- <version>1.5.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.shared</groupId>\r
- <artifactId>shared-ldap</artifactId>\r
- <version>${apachedshared.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.server</groupId>\r
- <artifactId>apacheds-protocol-shared</artifactId>\r
- <version>${apacheds.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.server</groupId>\r
- <artifactId>apacheds-core</artifactId>\r
- <version>${apacheds.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.server</groupId>\r
- <artifactId>apacheds-core-shared</artifactId>\r
- <version>${apacheds.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.directory.server</groupId>\r
- <artifactId>apacheds-bootstrap-partition</artifactId>\r
- <version>${apacheds.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>xerces</groupId>\r
- <artifactId>xmlParserAPIs</artifactId>\r
- <scope>provided</scope>\r
- <version>2.6.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>xml-apis</groupId>\r
- <artifactId>xml-apis</artifactId>\r
- <scope>provided</scope>\r
- <version>1.0.b2</version>\r
- </dependency>\r
- -->\r
- <!-- jboss -->\r
-\r
-\r
- <dependency>\r
- <groupId>dom4j</groupId>\r
- <artifactId>dom4j</artifactId>\r
- <version>1.6.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <!-- jboss (+ hibernate, richfaces...) >\r
- <dependency>\r
- <groupId>dom4j</groupId>\r
- <artifactId>dom4j</artifactId>\r
- <version>1.6.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jbpm.jbpm3</groupId>\r
- <artifactId>jbpm-jpdl</artifactId>\r
- <version>3.3.0.GA</version>\r
- </dependency>\r
- -->\r
- <!-- overrides jackrabbit version 1.4.5 specified by jbpm \r
- <dependency>\r
- <groupId>org.apache.jackrabbit</groupId>\r
- <artifactId>jackrabbit-core</artifactId>\r
- <version>1.5.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-annotations-ejb3</artifactId>\r
- <version>${jboss.ejb.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-aop-jdk50</artifactId>\r
- <version>1.4.0.SP1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-cache</artifactId>\r
- <version>1.4.0.BETA2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-cache-jdk50</artifactId>\r
- <version>1.4.0.SP1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>cglib-jboss</artifactId>\r
- <version>2.1.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-common</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-j2ee</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>javassist</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-jmx</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-remoting</artifactId>\r
- <version>2.2.2.SP1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.seam</groupId>\r
- <artifactId>jboss-seam</artifactId>\r
- <version>2.0.3.CR1-NX2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.seam</groupId>\r
- <artifactId>jboss-seam-remoting</artifactId>\r
- <version>2.0.3.CR1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.seam</groupId>\r
- <artifactId>jboss-seam-ui</artifactId>\r
- <version>2.0.3.CR1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.seam</groupId>\r
- <artifactId>jboss-seam-mail</artifactId>\r
- <version>2.0.3.CR1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.seam</groupId>\r
- <artifactId>jboss-seam-debug</artifactId>\r
- <version>2.0.3.CR1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.el</groupId>\r
- <artifactId>jboss-el</artifactId>\r
- <version>2.0.1.GA</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-serialization</artifactId>\r
- <version>1.0.3.GA</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jboss-system</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jbosssx</artifactId>\r
- <version>${jboss.version}</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jgroups</artifactId>\r
- <version>2.2.9</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jboss</groupId>\r
- <artifactId>jnp-client</artifactId>\r
- <version>4.0.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.hibernate</groupId>\r
- <artifactId>hibernate</artifactId>\r
- <version>3.2.0.ga</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.hibernate</groupId>\r
- <artifactId>hibernate-annotations</artifactId>\r
- <version>3.2.0.ga</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.hibernate</groupId>\r
- <artifactId>hibernate-entitymanager</artifactId>\r
- <version>3.2.0.ga</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.richfaces.framework</groupId>\r
- <artifactId>richfaces-api</artifactId>\r
- <scope>provided</scope>\r
- <version>3.2.1.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.richfaces.framework</groupId>\r
- <artifactId>richfaces-impl</artifactId>\r
- <scope>provided</scope>\r
- <version>3.2.1.GA-NX</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.richfaces.ui</groupId>\r
- <artifactId>richfaces-ui</artifactId>\r
- <scope>provided</scope>\r
- <version>3.2.1.GA</version>\r
- </dependency>\r
--->\r
- <!-- OpenOffice.org -->\r
- <!--\r
- <dependency>\r
- <groupId>org.openoffice</groupId>\r
- <artifactId>juh</artifactId>\r
- <version>2.2.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.openoffice</groupId>\r
- <artifactId>jurt</artifactId>\r
- <version>2.2.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.openoffice</groupId>\r
- <artifactId>ridl</artifactId>\r
- <version>2.2.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.openoffice</groupId>\r
- <artifactId>unoil</artifactId>\r
- <version>2.2.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.artofsolving</groupId>\r
- <artifactId>jodconverter</artifactId>\r
- <version>2.1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- -->\r
- <!-- others \r
- <dependency>\r
- <groupId>com.h2database</groupId>\r
- <artifactId>h2</artifactId>\r
- <version>1.1.104</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>cssparser</groupId>\r
- <artifactId>cssparser</artifactId>\r
- <version>0.9.4-fix</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.sun.facelets</groupId>\r
- <artifactId>jsf-facelets</artifactId>\r
- <version>1.1.11</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.freemarker</groupId>\r
- <artifactId>freemarker</artifactId>\r
- <version>2.3.11</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>concurrent</groupId>\r
- <artifactId>concurrent</artifactId>\r
- <version>1.3.4</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>hsqldb</groupId>\r
- <artifactId>hsqldb</artifactId>\r
- <version>1.8.0.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>log4j</groupId>\r
- <artifactId>log4j</artifactId>\r
- <version>1.2.13</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>3.8.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>opensymphony</groupId>\r
- <artifactId>quartz-all</artifactId>\r
- <version>1.5.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-api</artifactId>\r
- <version>1.3.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.slf4j</groupId>\r
- <artifactId>slf4j-log4j12</artifactId>\r
- <version>1.3.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>net.sf.ehcache</groupId>\r
- <artifactId>ehcache</artifactId>\r
- <version>1.2.3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>net.sf.json-lib</groupId>\r
- <artifactId>json-lib</artifactId>\r
- <version>2.2.1</version>\r
- <scope>provided</scope>\r
- <classifier>jdk15</classifier>\r
- </dependency>\r
- <dependency>\r
- <groupId>net.sf.ezmorph</groupId>\r
- <artifactId>ezmorph</artifactId>\r
- <version>0.9</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>net.sf.opencsv</groupId>\r
- <artifactId>opencsv</artifactId>\r
- <version>1.7</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.osgi</groupId>\r
- <artifactId>osgi-core</artifactId>\r
- <version>4.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>oro</groupId>\r
- <artifactId>oro</artifactId>\r
- <version>2.0.8</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- -->\r
- <!-- beanshell <dependency>\r
- <groupId>bsh</groupId>\r
- <artifactId>bsh</artifactId>\r
- <version>2.0b1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>taglibs</groupId>\r
- <artifactId>standard</artifactId>\r
- <version>1.1.2</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>antlr</groupId>\r
- <artifactId>antlr</artifactId>\r
- <version>2.7.7</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>postgresql</groupId>\r
- <artifactId>postgresql</artifactId>\r
- <version>8.2-507.jdbc3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>jmock</groupId>\r
- <artifactId>jmock</artifactId>\r
- <version>1.0.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>pdfbox</groupId>\r
- <artifactId>pdfbox</artifactId>\r
- <version>0.7.3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>bouncycastle</groupId>\r
- <artifactId>bcmail-jdk14</artifactId>\r
- <version>136</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>bouncycastle</groupId>\r
- <artifactId>bcprov-jdk14</artifactId>\r
- <version>136</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.fontbox</groupId>\r
- <artifactId>fontbox</artifactId>\r
- <version>0.1.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jempbox</groupId>\r
- <artifactId>jempbox</artifactId>\r
- <version>0.2.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.thoughtworks.xstream</groupId>\r
- <artifactId>xstream</artifactId>\r
- <version>1.1.3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.dojotoolkit</groupId>\r
- <artifactId>custom_rhino</artifactId>\r
- <version>0.4.3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>cglib</groupId>\r
- <artifactId>cglib-nodep</artifactId>\r
- <version>2.1_3</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-jexl</groupId>\r
- <artifactId>commons-jexl</artifactId>\r
- <version>1.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>xml-apis</groupId>\r
- <artifactId>xml-apis</artifactId>\r
- <scope>provided</scope>\r
- <version>1.0.b2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>xerces</groupId>\r
- <artifactId>xmlParserAPIs</artifactId>\r
- <scope>provided</scope>\r
- <version>2.6.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>jsr170</groupId>\r
- <artifactId>jcr</artifactId>\r
- <version>1.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.codehaus.groovy</groupId>\r
- <artifactId>groovy-all</artifactId>\r
- <version>1.5.7</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.codehaus.groovy</groupId>\r
- <artifactId>groovy</artifactId>\r
- <version>1.5.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.script</groupId>\r
- <artifactId>groovy-engine</artifactId>\r
- <version>1.0</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-jbossws-wrapper</artifactId>\r
- <version>4.0.5.GA</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
--->\r
-\r
-\r
-\r
- <!-- nuxeo -->\r
-\r
-\r
-\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-api</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
- \r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- </dependency>\r
- \r
- <!--\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.runtime</groupId>\r
- <artifactId>nuxeo-runtime</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- \r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-io</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-query</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-schema</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-web-common</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-ui-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-ui-web</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-directory-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-publishing-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-mimetype-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- <type>ejb</type>\r
- </dependency>\r
- \r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-actions-core</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- <type>ejb</type>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-types-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-url-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-filemanager-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-usermanager-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.platform</groupId>\r
- <artifactId>nuxeo-platform-search-api</artifactId>\r
- <version>${nuxeo.version.5.2}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
--->\r
-\r
- </dependencies>\r
- \r
- <build>\r
- <finalName>helloworld</finalName>\r
- <plugins>\r
- <!--plugin>\r
- <groupId>org.codehaus.mojo</groupId>\r
- <artifactId>jboss-maven-plugin</artifactId>\r
- <configuration>\r
- <jbossHome>${jboss.dir}</jbossHome>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>jboss-undeploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>undeploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>jboss-deploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
-\r
- </executions>\r
- </plugin-->\r
-\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <configuration></configuration>\r
- <executions>\r
- <execution>\r
- <id>surefire-it</id>\r
- <phase>integration-test</phase>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- <configuration>\r
- <skip>false</skip>\r
- </configuration>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <parent>\r
- <artifactId>helloworld</artifactId>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <version>0.1</version>\r
- </parent>\r
- <modelVersion>4.0.0</modelVersion>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-doc-service</artifactId>\r
- <packaging>war</packaging>\r
- <version>0.1</version>\r
- <name>Helloworld Document Service</name>\r
-\r
- <repositories>\r
- <repository>\r
- <id>java.net</id>\r
- <url>http://download.java.net/maven/1</url>\r
- <layout>legacy</layout>\r
- </repository>\r
- <repository>\r
- <id>maven repo</id>\r
- <name>maven repo</name>\r
- <url>http://repo1.maven.org/maven2/</url>\r
- </repository>\r
- <!-- For resteasy -->\r
- <repository>\r
- <id>jboss</id>\r
- <name>jboss repo</name>\r
- <url>http://repository.jboss.org/maven2</url>\r
- </repository>\r
- <repository>\r
- <id>mojo</id>\r
- <name>mojo repo</name>\r
- <url>http://svn.codehaus.org/mojo/trunk/mojo/jboss-maven-plugin</url>\r
- </repository>\r
-\r
- <repository>\r
- <id>maven-restlet</id>\r
- <name>Public online Restlet repository</name>\r
- <url>http://maven.restlet.org</url>\r
- </repository>\r
-\r
- <repository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </repository>\r
- <repository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </repository>\r
-\r
-\r
- </repositories>\r
-\r
- <pluginRepositories>\r
- <pluginRepository>\r
- <id>public</id>\r
- <url>http://maven.nuxeo.org/public</url>\r
- <name>Nuxeo virtual release repository</name>\r
- <releases>\r
- </releases>\r
- <snapshots>\r
- <enabled>false</enabled>\r
- </snapshots>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>public-snapshot</id>\r
- <url>http://maven.nuxeo.org/public-snapshot</url>\r
- <name>Nuxeo virtual snapshot repository</name>\r
- <releases>\r
- <enabled>false</enabled>\r
- </releases>\r
- <snapshots>\r
- </snapshots>\r
- </pluginRepository>\r
- </pluginRepositories>\r
-\r
-\r
- <properties>\r
- <jboss.version>4.2.3.GA</jboss.version>\r
- <jboss.ejb.version>3.0</jboss.ejb.version>\r
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
- <apacheds.version>1.5.1</apacheds.version>\r
- <apachedshared.version>0.9.7</apachedshared.version>\r
- <nuxeo.version.5.2>5.2-SNAPSHOT</nuxeo.version.5.2>\r
- <nuxeo.version.1.5>1.5-SNAPSHOT</nuxeo.version.1.5>\r
- </properties>\r
-\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.collectionspace.hello.services</groupId>\r
- <artifactId>helloworld-jaxb</artifactId>\r
- <version>0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxrs</artifactId>\r
- <version>1.0.2.GA</version>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>tjws</groupId>\r
- <artifactId>webserver</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.jboss.resteasy</groupId>\r
- <artifactId>resteasy-jaxb-provider</artifactId>\r
- <version>1.0.2.GA</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>junit</groupId>\r
- <artifactId>junit</artifactId>\r
- <version>4.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
-\r
- <!-- javax -->\r
-\r
-\r
- <dependency>\r
- <groupId>javax.security</groupId>\r
- <artifactId>jaas</artifactId>\r
- <version>1.0.01</version>\r
- <scope>provided</scope>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>dom4j</groupId>\r
- <artifactId>dom4j</artifactId>\r
- <version>1.6.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- \r
- <!-- jboss -->\r
-\r
- <!-- nuxeo -->\r
-\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-api</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- <exclusions>\r
- <exclusion>\r
- <artifactId>jboss-remoting</artifactId>\r
- <groupId>jboss</groupId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
-\r
-<!--\r
- <dependency>\r
- <groupId>org.nuxeo.ecm.core</groupId>\r
- <artifactId>nuxeo-core-client</artifactId>\r
- <version>${nuxeo.version.1.5}</version>\r
- </dependency>\r
--->\r
-\r
- <dependency>\r
- <groupId>org.restlet</groupId>\r
- <artifactId>org.restlet</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.noelios.restlet</groupId>\r
- <artifactId>com.noelios.restlet.ext.httpclient</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.noelios.restlet</groupId>\r
- <artifactId>com.noelios.restlet</artifactId>\r
- <version>1.0.7</version>\r
- </dependency>\r
-\r
- <dependency>\r
- <groupId>jaxen</groupId>\r
- <artifactId>jaxen</artifactId>\r
- <version>1.1.1</version>\r
- </dependency>\r
-\r
-\r
- </dependencies>\r
- \r
- <build>\r
- <finalName>helloworld</finalName>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.codehaus.mojo</groupId>\r
- <artifactId>jboss-maven-plugin</artifactId>\r
- <configuration>\r
- <jbossHome>${jboss.dir}</jbossHome>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>jboss-undeploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>undeploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>jboss-deploy</id>\r
- <phase>pre-integration-test</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- <configuration>\r
- <fileName>${basedir}/target/helloworld.war</fileName>\r
- </configuration>\r
- </execution>\r
-\r
- </executions>\r
- </plugin>\r
-\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <configuration></configuration>\r
- <executions>\r
- <execution>\r
- <id>surefire-it</id>\r
- <phase>integration-test</phase>\r
- <goals>\r
- <goal>test</goal>\r
- </goals>\r
- <configuration>\r
- <skip>false</skip>\r
- </configuration>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-war-plugin</artifactId>\r
- <version>2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-compiler-plugin</artifactId>\r
- <configuration>\r
- <source>1.5</source>\r
- <target>1.5</target>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
-</project>\r
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
-
-public class HelloworldDocApplication extends Application {
-
- private Set<Object> singletons = new HashSet<Object>();
- private Set<Class<?>> empty = new HashSet<Class<?>>();
-
- public HelloworldDocApplication() {
- singletons.add(new PersonDocResource());
- }
-
- @Override
- public Set<Class<?>> getClasses() {
- return empty;
- }
-
- @Override
- public Set<Object> getSingletons() {
- return singletons;
- }
-}
+++ /dev/null
-package org.collectionspace.hello.services;
-
-import org.collectionspace.hello.services.nuxeo.NuxeoRESTClient;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import java.util.Map;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriInfo;
-import org.collectionspace.hello.*;
-
-
-import org.collectionspace.hello.People.PeopleItem;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-import org.restlet.resource.Representation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Path("/persons")
-@Consumes("application/xml")
-@Produces("application/xml")
-public class PersonDocResource {
-
- final Logger logger = LoggerFactory.getLogger(PersonDocResource.class);
-
- public PersonDocResource() {
- }
-
- @GET
- public People getPeople(@Context UriInfo ui) {
- People p = new People();
- try {
- List<People.PeopleItem> list = p.getPeopleItem();
- NuxeoRESTClient nxClient = getClient();
-
- List<String> pathParams = new ArrayList<String>();
- Map<String, String> queryParams = new HashMap<String, String>();
- //browse default repository for People
- //For sanjay, People repository id is f084243e-4b81-42a1-9a05-518e974facbd
- pathParams = Arrays.asList("default", "f084243e-4b81-42a1-9a05-518e974facbd", "browse");
- Representation res = nxClient.get(pathParams, queryParams);
- SAXReader reader = new SAXReader();
- Document document = reader.read(res.getStream());
- Element root = document.getRootElement();
- for (Iterator i = root.elementIterator(); i.hasNext();) {
- Element element = (Element) i.next();
- PeopleItem pli = new PeopleItem();
- pli.setTitle(element.attributeValue("title"));
- pli.setUri(element.attributeValue("url"));
- pli.setId(element.attributeValue("id"));
- list.add(pli);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- return p;
- }
-
-
-// private void getQueryModel() throws IOException {
-// NuxeoRESTClient nxClient = getClient();
-//
-// List<String> pathParams = new ArrayList<String>();
-// Map<String, String> queryParams = new HashMap<String, String>();
-//
-// //query model for user documents
-// pathParams = Arrays.asList("execQueryModel", "USER_DOCUMENTS");
-// queryParams.put("QP1", "Administrator");
-// queryParams.put("format", "XML");
-//
-//
-// Representation res = nxClient.get(pathParams, queryParams);
-// String resStr = res.getText();
-// verbose("getQueryModel:" + resStr);
-//
-// }
-//
-// private void getVocabulary() throws IOException {
-// NuxeoRESTClient nxClient = getClient();
-//
-// List<String> pathParams = new ArrayList<String>();
-// Map<String, String> queryParams = new HashMap<String, String>();
-// //get vocabulary
-// pathParams = Arrays.asList("vocabulary", "continent_country");
-// queryParams.put("lang", "en");
-//
-// Representation res = nxClient.get(pathParams, queryParams);
-// String resStr = res.getText();
-// verbose("getVocabulary:" + resStr);
-//
-// }
- private NuxeoRESTClient getClient() {
- NuxeoRESTClient nxClient = new NuxeoRESTClient("http://127.0.0.1:8080/nuxeo");
- nxClient.setAuthType(NuxeoRESTClient.AUTH_TYPE_BASIC);
- nxClient.setBasicAuthentication("Administrator", "Administrator");
- return nxClient;
- }
-
- private void verbose(String msg) {
- System.out.println("PersonDocResource: " + msg);
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.collectionspace.hello.services.nuxeo;
-
-
-import javax.security.auth.callback.Callback;
-
-/**
- * Copied from jbossx
- *
- * An implementation of Callback that simply obtains an Object to be used
- * as the authentication credential. Interpretation of the Object is up to
- * the LoginModules that validate the credential.
- *
- * @author Scott.Stark@jboss.org
- */
-public class NuxeoCallback implements Callback {
-
- private final String prompt;
-
- private Object credential;
-
- public NuxeoCallback() {
- this("");
- }
-
- public NuxeoCallback(String prompt) {
- this.prompt = prompt;
- }
-
- public String getPrompt() {
- return prompt;
- }
-
- public Object getCredential() {
- return credential;
- }
-
- public void setCredential(Object credential) {
- this.credential = credential;
- }
-
- public void clearCredential() {
- credential = null;
- }
-
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-/**
- * Copied from jbossx.
- *
- * @author Scott.Stark@jboss.org
- */
-public class NuxeoCallbackHandler implements CallbackHandler {
-
- private final String username;
- private char[] password;
- private final Object credential;
-
- /**
- * Initializes the UsernamePasswordHandler with the username and password to
- * use.
- *
- * @param username the user name
- * @param password the password for this user
- */
- public NuxeoCallbackHandler(String username, char[] password) {
- this.username = username;
- this.password = password;
- credential = password;
- }
-
- public NuxeoCallbackHandler(String username, Object credential) {
- this.username = username;
- this.credential = credential;
- if (credential instanceof char[]) {
- password = (char[]) credential;
- } else if (credential instanceof CharSequence) {
- password = credential.toString().toCharArray();
- }
- }
-
- /**
- * Sets any NameCallback name property to the instance username, sets any
- * PasswordCallback password property to the instance, and any password.
- *
- * @exception UnsupportedCallbackException,
- * thrown if any callback of type other than NameCallback or
- * PasswordCallback are seen.
- */
- public void handle(Callback[] callbacks)
- throws UnsupportedCallbackException {
- for (Callback c : callbacks) {
- if (c instanceof NameCallback) {
- NameCallback nc = (NameCallback) c;
- nc.setName(username);
- } else if (c instanceof PasswordCallback) {
- PasswordCallback pc = (PasswordCallback) c;
- if (password == null) {
- // We were given an opaque Object credential but a char[] is
- // requested?
- if (credential != null) {
- String tmp = credential.toString();
- password = tmp.toCharArray();
- }
- }
- pc.setPassword(password);
- } else if (c instanceof NuxeoCallback) {
- NuxeoCallback oc = (NuxeoCallback) c;
- oc.setCredential(credential);
- } else {
- throw new UnsupportedCallbackException(c,
- "Unrecognized Callback");
- }
- }
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
-
-public class NuxeoLoginConfiguration extends Configuration {
-
- private final Configuration parent;
- public static final String LOGIN_DOMAIN = "nuxeo-client-login";
-
- public NuxeoLoginConfiguration(Configuration parent) {
- this.parent = parent;
- }
-
- @Override
- public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
-
- if (LOGIN_DOMAIN.equals(name)) {
- AppConfigurationEntry[] entries = new AppConfigurationEntry[1];
-
- Map<String, Object> options = new HashMap<String, Object>();
-
- options.put("restore-login-identity", "True");
- options.put("multi-threaded", "True");
-
- entries[0] = new AppConfigurationEntry("org.jboss.security.ClientLoginModule", LoginModuleControlFlag.REQUIRED, options);
-
-
- return entries;
- } else {
- return parent.getAppConfigurationEntry(name);
- }
- }
-
- @Override
- public void refresh() {
- if (parent != null) {
- parent.refresh();
- }
- }
-}
+++ /dev/null
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.collectionspace.hello.services.nuxeo;
-
-/**
- *
- * @author sanjaydalal
- */
-
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-public class NuxeoLoginContextFactory {
-
-
- private static boolean initDone=false;
-
- private static void initLoginConfig()
- {
- if (initDone)
- return;
-
- Configuration parentConfig = null;
- try {
- parentConfig = Configuration.getConfiguration();
- } catch (Exception e) {
- // do nothing - this can happen if default configuration provider is not correctly configured
- // for examnple FileConfig fails if no config file was defined
- }
- Configuration config = new NuxeoLoginConfiguration(parentConfig);
- Configuration.setConfiguration(config);
-
- initDone=true;
-
- }
-
-
- public static LoginContext getLoginContext(CallbackHandler handler) throws LoginException
- {
- initLoginConfig();
- return new LoginContext(NuxeoLoginConfiguration.LOGIN_DOMAIN, handler);
- }
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * Nuxeo - initial API and implementation
- *
- * $Id: JOOoConvertPluginImpl.java 18651 2007-05-13 20:28:53Z sfermigier $
- */
-package org.collectionspace.hello.services.nuxeo;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.Map;
-
-
-import org.restlet.Client;
-import org.restlet.data.ChallengeResponse;
-import org.restlet.data.ChallengeScheme;
-import org.restlet.data.Cookie;
-import org.restlet.data.Form;
-import org.restlet.data.MediaType;
-import org.restlet.data.Method;
-import org.restlet.data.Parameter;
-import org.restlet.data.Protocol;
-import org.restlet.data.Request;
-import org.restlet.resource.OutputRepresentation;
-import org.restlet.resource.Representation;
-import org.restlet.util.Series;
-
-public class NuxeoRESTClient {
-
- public static final int AUTH_TYPE_NONE = 0;
- public static final int AUTH_TYPE_BASIC = 1;
- public static final int AUTH_TYPE_SECRET = 2;
- protected String baseURL = "http://127.0.0.1:8080/nuxeo";
- protected String restPrefix = "restAPI";
- protected String davPrefix = "dav";
- protected List<Cookie> cookies;
- protected int authType = AUTH_TYPE_NONE;
- protected String userName;
- protected String password;
- protected String secretToken;
- protected Client restClient;
-
- public NuxeoRESTClient(String baseURL) {
- this.baseURL = baseURL;
- }
-
- public NuxeoRESTClient(String protocol, String serverIP, String serverPort) {
- this(protocol, serverIP, serverPort, "nuxeo");
- }
-
- public NuxeoRESTClient(String protocol, String serverIP, String serverPort,
- String servletPath) {
- StringBuffer sb = new StringBuffer();
- sb.append(protocol);
- sb.append("://");
- sb.append(serverIP);
- if (serverPort != null && !serverIP.equals("80")) {
- sb.append(':');
- sb.append(serverPort);
- }
- sb.append(servletPath);
- sb.append('/');
- baseURL = sb.toString();
- }
-
- public void setBasicAuthentication(String userName, String password) {
- authType = AUTH_TYPE_BASIC;
- this.userName = userName;
- this.password = password;
- }
-
- public void setSharedSecretAuthentication(String userName,
- String secretToken) {
- authType = AUTH_TYPE_SECRET;
- this.userName = userName;
- this.secretToken = secretToken;
- }
-
- public void setCookies(List<Cookie> cookies) {
- this.cookies = cookies;
- }
-
- public Representation post(List<String> pathParams,
- Map<String, String> queryParams, InputStream istream) {
- String path = "";
- StringBuffer pathBuffer = new StringBuffer();
-
- if (pathParams != null) {
- for (String p : pathParams) {
- pathBuffer.append(p);
- pathBuffer.append('/');
- }
- path = pathBuffer.toString();
- }
-
- return post(path, queryParams, istream);
- }
-
- public Representation post(String subPath,
- Map<String, String> queryParams, InputStream istream) {
- StringBuffer urlBuffer = new StringBuffer();
-
- if (subPath.startsWith("/")) {
- subPath = subPath.substring(1);
- }
- if (subPath.endsWith("/")) {
- subPath = subPath.substring(0, subPath.length() - 1);
- }
-
- urlBuffer.append(baseURL);
- urlBuffer.append('/');
- urlBuffer.append(restPrefix);
- urlBuffer.append('/');
- urlBuffer.append(subPath);
-
- if (queryParams != null) {
- urlBuffer.append('?');
- for (String qpName : queryParams.keySet()) {
- urlBuffer.append(qpName);
- urlBuffer.append('=');
- urlBuffer.append(queryParams.get(qpName).replaceAll(" ", "%20"));
- urlBuffer.append('&');
- }
- }
-
- String completeURL = urlBuffer.toString();
-
- Request request = new Request(Method.POST, completeURL);
-
- setupAuth(request);
- setupCookies(request);
- final InputStream in = istream;
- request.setEntity(new OutputRepresentation(
- MediaType.MULTIPART_FORM_DATA) {
-
- @Override
- public void write(OutputStream outputStream) throws IOException {
- byte[] buffer = new byte[1024 * 64];
- int read;
- while ((read = in.read(buffer)) != -1) {
- outputStream.write(buffer, 0, read);
- }
-
- }
- });
-
- return getRestClient().handle(request).getEntity();
- }
-
- public Representation get(List<String> pathParams,
- Map<String, String> queryParams) {
- String path = "";
- StringBuffer pathBuffer = new StringBuffer();
-
- if (pathParams != null) {
- for (String p : pathParams) {
- pathBuffer.append(p);
- pathBuffer.append('/');
- }
- path = pathBuffer.toString();
- }
-
- return get(path, queryParams);
- }
-
- public Representation get(String subPath,
- Map<String, String> queryParams) {
- StringBuffer urlBuffer = new StringBuffer();
-
- if (subPath.startsWith("/")) {
- subPath = subPath.substring(1);
- }
- if (subPath.endsWith("/")) {
- subPath = subPath.substring(0, subPath.length() - 1);
- }
-
- urlBuffer.append(baseURL);
- urlBuffer.append('/');
- urlBuffer.append(restPrefix);
- urlBuffer.append('/');
- urlBuffer.append(subPath);
-
- if (queryParams != null) {
- urlBuffer.append('?');
- for (String qpName : queryParams.keySet()) {
- urlBuffer.append(qpName);
- urlBuffer.append('=');
- urlBuffer.append(queryParams.get(qpName).replaceAll(" ", "%20"));
- urlBuffer.append('&');
- }
- }
-
- String completeURL = urlBuffer.toString();
- System.out.println("\nNuxeoRESTClient: calling " + completeURL);
- Request request = new Request(Method.GET, completeURL);
- setupAuth(request);
- setupCookies(request);
-
- return getRestClient().handle(request).getEntity();
- }
-
- protected void setupAuth(Request request) {
-
- if (authType == AUTH_TYPE_BASIC) {
- ChallengeScheme scheme = ChallengeScheme.HTTP_BASIC;
- ChallengeResponse authentication = new ChallengeResponse(scheme,
- userName, password);
- request.setChallengeResponse(authentication);
-
- } else if (authType == AUTH_TYPE_SECRET) {
- Series<Parameter> additionnalHeaders = new Form();
-
- Map<String, String> securityHeaders = PortalSSOAuthenticationProvider.getHeaders(
- secretToken, userName);
-
- for (String hn : securityHeaders.keySet()) {
- additionnalHeaders.add(hn, securityHeaders.get(hn));
- }
-
- request.getAttributes().put("org.restlet.http.headers",
- additionnalHeaders);
- }
- }
-
- protected void setupCookies(Request request) {
- if (cookies != null) {
- request.getCookies().clear();
- for (Cookie cookie : cookies) {
- request.getCookies().add(cookie);
- }
- }
-
- }
-
- protected Client getRestClient() {
- if (restClient == null) {
- if (baseURL.startsWith("https")) {
- restClient = new Client(Protocol.HTTPS);
- } else {
- restClient = new Client(Protocol.HTTP);
- }
- }
-
- return restClient;
- }
-
- public int getAuthType() {
- return authType;
- }
-
- public void setAuthType(int authType) {
- this.authType = authType;
- }
-
- public String getDavPrefix() {
- return davPrefix;
- }
-
- public void setDavPrefix(String davPrefix) {
- this.davPrefix = davPrefix;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getRestPrefix() {
- return restPrefix;
- }
-
- public void setRestPrefix(String restPrefix) {
- this.restPrefix = restPrefix;
- }
-
- public String getSecretToken() {
- return secretToken;
- }
-
- public void setSecretToken(String secretToken) {
- this.secretToken = secretToken;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-}
+++ /dev/null
-/*
- * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public License
- * (LGPL) version 2.1 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * Contributors:
- * Nuxeo - initial API and implementation
- *
- * $Id: JOOoConvertPluginImpl.java 18651 2007-05-13 20:28:53Z sfermigier $
- */
-
-package org.collectionspace.hello.services.nuxeo;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-
-import com.noelios.restlet.util.Base64;
-
-public class PortalSSOAuthenticationProvider {
-
- private static final String TOKEN_SEP = ":";
-
- private static final String TS_HEADER = "NX_TS";
-
- private static final String RANDOM_HEADER = "NX_RD";
-
- private static final String TOKEN_HEADER = "NX_TOKEN";
-
- private static final String USER_HEADER = "NX_USER";
-
- public static Map<String, String> getHeaders(String secretKey,
- String userName) {
-
- Map<String, String> headers = new HashMap<String, String>();
-
- Date timestamp = new Date();
- int randomData = new Random(timestamp.getTime()).nextInt();
-
- String clearToken = timestamp.getTime() + TOKEN_SEP + randomData
- + TOKEN_SEP + secretKey + TOKEN_SEP + userName;
-
- byte[] hashedToken;
-
- try {
- hashedToken = MessageDigest.getInstance("MD5").digest(
- clearToken.getBytes());
- } catch (NoSuchAlgorithmException e) {
- return null;
- }
-
- String base64HashedToken = Base64.encodeBytes(hashedToken);
-
- headers.put(TS_HEADER, String.valueOf(timestamp.getTime()));
- headers.put(RANDOM_HEADER, String.valueOf(randomData));
- headers.put(TOKEN_HEADER, base64HashedToken);
- headers.put(USER_HEADER, userName);
-
- return headers;
- }
-
-}
+++ /dev/null
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-java.naming.provider.url=jnp://localhost:1099
\ No newline at end of file
+++ /dev/null
-org.nuxeo.runtime.server.enabled=false
-org.nuxeo.runtime.streaming.isServer=false
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">\r
-<web-app>\r
- <display-name>HelloworldDoc</display-name>\r
-\r
- <context-param>\r
- <param-name>javax.ws.rs.Application</param-name>\r
- <param-value>org.collectionspace.hello.services.HelloworldDocApplication</param-value>\r
- </context-param>\r
-\r
- <context-param>\r
- <param-name>resteasy.servlet.mapping.prefix</param-name>\r
- <param-value>/cspace-doc</param-value>\r
- </context-param>\r
-\r
- <listener>\r
- <listener-class>\r
- org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\r
- </listener-class>\r
- </listener>\r
-\r
- <servlet>\r
- <servlet-name>Resteasy</servlet-name>\r
- <servlet-class>\r
- org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\r
- </servlet-class>\r
- </servlet>\r
-\r
- <servlet-mapping>\r
- <servlet-name>Resteasy</servlet-name>\r
- <url-pattern>/cspace-doc/*</url-pattern>\r
- </servlet-mapping>\r
-\r
-</web-app>\r