]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
ecf56cbaf6934ea9fdcea3a808475a5953701ca9
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.systeminfo;
2
3 import java.nio.charset.Charset;
4 import java.util.Locale;
5 import java.util.TimeZone;
6
7 import javax.ws.rs.Consumes;
8 import javax.ws.rs.GET;
9 import javax.ws.rs.Path;
10 import javax.ws.rs.Produces;
11 import javax.ws.rs.core.Context;
12 import javax.ws.rs.core.Response;
13 import javax.ws.rs.core.UriInfo;
14 import javax.ws.rs.HttpMethod;
15
16 import org.collectionspace.services.authorization.AuthZ;
17 import org.collectionspace.services.authorization.CSpaceAction;
18 import org.collectionspace.services.authorization.CSpaceResource;
19 import org.collectionspace.services.authorization.URIResourceImpl;
20 import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
21 import org.collectionspace.services.common.CSWebApplicationException;
22 import org.collectionspace.services.common.UriInfoWrapper;
23 import org.collectionspace.services.common.context.RemoteServiceContextFactory;
24 import org.collectionspace.services.common.context.ServiceContext;
25 import org.collectionspace.services.common.context.ServiceContextFactory;
26 import org.collectionspace.services.common.security.UnauthorizedException;
27
28 @Path(SystemInfoClient.SERVICE_PATH)
29 @Produces({"application/xml"})
30 @Consumes({"application/xml"})
31 public class SystemInfoResource extends AbstractCollectionSpaceResourceImpl<SystemInfoCommon, SystemInfoCommon> {
32
33         @Override
34         public Class<?> getCommonPartClass() {
35                 // TODO Auto-generated method stub
36                 return null;
37         }
38
39         @Override
40         public String getServiceName() {
41                 return SystemInfoClient.SERVICE_NAME;
42         }
43
44         @Override
45         protected String getVersionString() {
46                 // TODO Auto-generated method stub
47                 return null;
48         }
49         
50         //
51         // API Endpoints
52         //
53         
54     @GET
55     public SystemInfoCommon get(@Context UriInfo ui) {
56         SystemInfoCommon result = null;
57
58         try {
59                 result = new SystemInfoCommon();
60                 result.setInstanceId("_default");
61                 result.setDisplayName("CollectionSpace Services v5.1");
62                 Version ver = new Version();
63                 ver.setMajor("5");
64                 ver.setMinor("1");
65                 ver.setPatch("0");
66                 ver.setBuild("1");
67                 result.setVersion(ver);
68                 
69                 result.setHostTimezone(TimeZone.getDefault().getID());
70                 result.setHostLocale(Locale.getDefault().toLanguageTag());
71                 result.setHostCharset(Charset.defaultCharset().name());
72                 //
73                 // To get the full set of the system information, we required the user be authenticated *and* have "DELETE" privs on the "systeminfo" resource
74                 //
75                 try {
76                         ServiceContext<SystemInfoCommon, SystemInfoCommon> ctx = createServiceContext(getServiceName(), ui);
77                         CSpaceResource res = new URIResourceImpl(ctx.getTenantId(), SystemInfoClient.SERVICE_NAME, HttpMethod.DELETE);
78                         if (AuthZ.get().isAccessAllowed(res)) {
79                         result.setNuxeoVersionString("7.10-HF17");
80                         result.setHost(String.format("Architecture:%s Name:%s Version:%s",
81                                         System.getProperty("os.arch"), System.getProperty("os.name"), System.getProperty("os.version")));
82                         result.setJavaVersionString(System.getProperty("java.version"));
83                         result.setPostgresVersionString("9.5.7");
84                         }
85                 } catch (UnauthorizedException e) {
86                         e.printStackTrace();
87                 }
88
89         } catch(Exception e) {
90                 Response response = Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).type("text/plain").build();
91             throw new CSWebApplicationException(response);
92         }
93
94         return result;
95     }
96     
97         @Override
98         public ServiceContextFactory<SystemInfoCommon, SystemInfoCommon> getServiceContextFactory() {
99         return (ServiceContextFactory<SystemInfoCommon, SystemInfoCommon>) RemoteServiceContextFactory.get();
100         }
101 }