<!--
SystemInfo schema (XSD)
-
+
Entity : SystemInfo
Part : Common
Used for: JAXB binding between XML and Java objects
-->
-<xs:schema
+<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="1.0" elementFormDefault="unqualified"
-->
<xs:element name="system_info_common">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="displayName" type="xs:string"/>
- <xs:element name="instanceId" type="xs:string"/>
- <xs:element name="versionString" type="xs:string"/>
- <xs:element name="version" type="version"/>
- <xs:element name="javaVersionString" type="xs:string"/>
- <xs:element name="nuxeoVersionString" type="xs:string"/>
- <xs:element name="postgresVersionString" type="xs:string"/>
- <xs:element name="host" type="xs:string"/>
- <xs:element name="hostTimezone" type="xs:string"/>
- <xs:element name="hostLocale" type="xs:string"/>
- <xs:element name="hostCharset" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="displayName" type="xs:string"/>
+ <xs:element name="instanceId" type="xs:string"/>
+ <xs:element name="versionString" type="xs:string"/>
+ <xs:element name="version" type="version"/>
+ <xs:element name="javaVersionString" type="xs:string"/>
+ <xs:element name="nuxeoVersionString" type="xs:string"/>
+ <xs:element name="postgresVersionString" type="xs:string"/>
+ <xs:element name="host" type="xs:string"/>
+ <xs:element name="hostTimezone" type="xs:string"/>
+ <xs:element name="hostLocale" type="xs:string"/>
+ <xs:element name="hostCharset" type="xs:string"/>
+ <xs:element name="nuxeoPropertyList" type="propertyList"/>
+ </xs:sequence>
+ </xs:complexType>
</xs:element>
<xs:complexType name="version">
</xs:sequence>
</xs:complexType>
+ <xs:complexType name="propertyList">
+ <xs:sequence>
+ <xs:element name="property" type="property" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="property">
+ <xs:sequence>
+ <xs:element name="key" type="xs:string"/>
+ <xs:element name="value" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
</xs:schema>
package org.collectionspace.services.systeminfo;
import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Locale;
+import java.util.Properties;
import java.util.TimeZone;
import javax.ws.rs.Consumes;
import org.collectionspace.services.authorization.URIResourceImpl;
import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
import org.collectionspace.services.common.CSWebApplicationException;
+import org.collectionspace.services.common.ServiceMain;
import org.collectionspace.services.common.UriInfoWrapper;
import org.collectionspace.services.common.context.RemoteServiceContextFactory;
import org.collectionspace.services.common.context.ServiceContext;
import org.collectionspace.services.common.context.ServiceContextFactory;
import org.collectionspace.services.common.security.UnauthorizedException;
+import org.nuxeo.runtime.api.Framework;
@Path(SystemInfoClient.SERVICE_PATH)
@Produces({"application/xml"})
// TODO Auto-generated method stub
return null;
}
-
+
//
// API Endpoints
//
-
+
@GET
public SystemInfoCommon get(@Context UriInfo ui) {
SystemInfoCommon result = null;
try {
result = new SystemInfoCommon();
- result.setInstanceId("_default");
+ result.setInstanceId(ServiceMain.getInstance().getCspaceInstanceId());
result.setDisplayName("CollectionSpace Services v5.1");
Version ver = new Version();
ver.setMajor("5");
ver.setPatch("0");
ver.setBuild("1");
result.setVersion(ver);
-
+
result.setHostTimezone(TimeZone.getDefault().getID());
result.setHostLocale(Locale.getDefault().toLanguageTag());
result.setHostCharset(Charset.defaultCharset().name());
ServiceContext<SystemInfoCommon, SystemInfoCommon> ctx = createServiceContext(getServiceName(), ui);
CSpaceResource res = new URIResourceImpl(ctx.getTenantId(), SystemInfoClient.SERVICE_NAME, HttpMethod.DELETE);
if (AuthZ.get().isAccessAllowed(res)) {
- result.setNuxeoVersionString("7.10-HF17");
- result.setHost(String.format("Architecture:%s Name:%s Version:%s",
- System.getProperty("os.arch"), System.getProperty("os.name"), System.getProperty("os.version")));
- result.setJavaVersionString(System.getProperty("java.version"));
- result.setPostgresVersionString("9.5.7");
+ // TODO: Stop hardcoding this!
+ // result.setNuxeoVersionString("7.10-HF17");
+ result.setHost(String.format("Architecture:%s Name:%s Version:%s",
+ System.getProperty("os.arch"), System.getProperty("os.name"), System.getProperty("os.version")));
+ result.setJavaVersionString(System.getProperty("java.version"));
+
+ // TODO: Stop hardcoding this!
+ // result.setPostgresVersionString("9.5.7");
+
+ Properties properties = Framework.getProperties();
+ List<String> names = new ArrayList<String>(properties.stringPropertyNames());
+ PropertyList nuxeoPropertyList = new PropertyList();
+
+ Collections.sort(names);
+
+ for (String name : names) {
+ Property p = new Property();
+ p.setKey(name);
+ p.setValue(properties.getProperty(name));
+
+ nuxeoPropertyList.getProperty().add(p);
+ }
+
+ result.setNuxeoPropertyList(nuxeoPropertyList);
}
} catch (UnauthorizedException e) {
e.printStackTrace();
return result;
}
-
+
@Override
public ServiceContextFactory<SystemInfoCommon, SystemInfoCommon> getServiceContextFactory() {
return (ServiceContextFactory<SystemInfoCommon, SystemInfoCommon>) RemoteServiceContextFactory.get();