]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
DRYD-630: Show nuxeo properties in systeminfo.
authorRay Lee <ray.lee@lyrasis.org>
Fri, 3 May 2019 00:56:23 +0000 (17:56 -0700)
committerRay Lee <ray.lee@lyrasis.org>
Fri, 3 May 2019 00:56:23 +0000 (17:56 -0700)
services/systeminfo/jaxb/src/main/resources/systeminfo-common.xsd
services/systeminfo/service/src/main/java/org/collectionspace/services/systeminfo/SystemInfoResource.java

index d35336f9e07de82f4ccd73a8f074252583f163c9..9ee8518c009f3924c6253639b5e30b0149ae21de 100644 (file)
@@ -2,14 +2,14 @@
 
 <!--
     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>
index ecf56cbaf6934ea9fdcea3a808475a5953701ca9..85ddf090eb553d746ac171a3ba61f21a8e818d1d 100644 (file)
@@ -1,7 +1,11 @@
 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;
@@ -19,11 +23,13 @@ import org.collectionspace.services.authorization.CSpaceResource;
 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"})
@@ -46,18 +52,18 @@ public class SystemInfoResource extends AbstractCollectionSpaceResourceImpl<Syst
                // 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");
@@ -65,7 +71,7 @@ public class SystemInfoResource extends AbstractCollectionSpaceResourceImpl<Syst
                ver.setPatch("0");
                ver.setBuild("1");
                result.setVersion(ver);
-               
+
                result.setHostTimezone(TimeZone.getDefault().getID());
                result.setHostLocale(Locale.getDefault().toLanguageTag());
                result.setHostCharset(Charset.defaultCharset().name());
@@ -76,11 +82,30 @@ public class SystemInfoResource extends AbstractCollectionSpaceResourceImpl<Syst
                        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();
@@ -93,7 +118,7 @@ public class SystemInfoResource extends AbstractCollectionSpaceResourceImpl<Syst
 
        return result;
     }
-    
+
        @Override
        public ServiceContextFactory<SystemInfoCommon, SystemInfoCommon> getServiceContextFactory() {
         return (ServiceContextFactory<SystemInfoCommon, SystemInfoCommon>) RemoteServiceContextFactory.get();