[VID-6] Initial rebase push
[vid.git] / vid-app-common / src / main / java / org / openecomp / vid / controller / PropertyController.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package org.openecomp.vid.controller;\r
22 \r
23 import java.text.DateFormat;\r
24 import java.text.SimpleDateFormat;\r
25 import java.util.Date;\r
26 \r
27 import javax.servlet.http.HttpServletRequest;\r
28 \r
29 import org.springframework.http.HttpStatus;\r
30 import org.springframework.http.ResponseEntity;\r
31 import org.springframework.web.bind.annotation.PathVariable;\r
32 import org.springframework.web.bind.annotation.RequestMapping;\r
33 import org.springframework.web.bind.annotation.RequestMethod;\r
34 import org.springframework.web.bind.annotation.RestController;\r
35 import org.springframework.web.servlet.ModelAndView;\r
36 \r
37 import org.openecomp.portalsdk.core.controller.RestrictedBaseController;\r
38 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;\r
39 import org.openecomp.portalsdk.core.util.SystemProperties;\r
40 \r
41 /**\r
42  * The Class PropertyController.\r
43  */\r
44 @RestController\r
45 public class PropertyController extends RestrictedBaseController{\r
46         \r
47         /** The view name. */\r
48         String viewName;\r
49         \r
50         /** The logger. */\r
51         EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PropertyController.class);\r
52         \r
53         /** The Constant dateFormat. */\r
54         final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS");\r
55         \r
56         /**\r
57          * Welcome.\r
58          *\r
59          * @param request the request\r
60          * @return the model and view\r
61          */\r
62         @RequestMapping(value = {"/propertyhome" }, method = RequestMethod.GET)\r
63         public ModelAndView welcome(HttpServletRequest request) {\r
64                 logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== PropertyController welcome start");\r
65                 return new ModelAndView(getViewName());         \r
66         }\r
67         \r
68         /* (non-Javadoc)\r
69          * @see org.openecomp.portalsdk.core.controller.RestrictedBaseController#getViewName()\r
70          */\r
71         public String getViewName() {\r
72                 return viewName;\r
73         }\r
74         \r
75         /* (non-Javadoc)\r
76          * @see org.openecomp.portalsdk.core.controller.RestrictedBaseController#setViewName(java.lang.String)\r
77          */\r
78         public void setViewName(String _viewName) {\r
79                 this.viewName = _viewName;\r
80         }\r
81         \r
82         /**\r
83          * Gets the property.\r
84          *\r
85          * @param name the name\r
86          * @param defaultvalue the defaultvalue\r
87          * @param request the request\r
88          * @return the property\r
89          * @throws Exception the exception\r
90          */\r
91         @RequestMapping(value = "/get_property/{name}/{defaultvalue}", method = RequestMethod.GET)\r
92         public ResponseEntity<String> getProperty (@PathVariable("name") String name, @PathVariable("defaultvalue") String defaultvalue,\r
93                         HttpServletRequest request) throws Exception {\r
94                 \r
95                 String methodName = "getProperty";      \r
96                 ResponseEntity<String> resp = null;\r
97                 String pvalue = null;\r
98                 logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");\r
99                 \r
100                 try {\r
101                         // convert "_" to "." in the property name\r
102                         if (name == null || name.length() == 0 ) {\r
103                                 return ( new ResponseEntity<String> (defaultvalue, HttpStatus.OK));\r
104                         }\r
105                         // convert "_" to "." in the property name\r
106                         String propertyName = name.replace('_', '.');\r
107                         pvalue = SystemProperties.getProperty(propertyName);\r
108                         if ( ( pvalue == null ) || ( pvalue.length() == 0 ) ) {\r
109                                 pvalue = defaultvalue;\r
110                         }\r
111                         resp = new ResponseEntity<String>(pvalue, HttpStatus.OK);\r
112                 }\r
113                 catch (Exception e) {\r
114                         logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) +  "<== " + "." + methodName + e.toString());\r
115                         logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) +  "<== " + "." + methodName + e.toString());\r
116                         throw e;\r
117                 }\r
118                 logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " returning " + pvalue);\r
119                 return ( resp );\r
120         }\r
121 \r
122 }\r