source: main/trunk/ibisph-admin/src/main/webapp/WEB-INF/config/spring/common.xml @ 17645

Last change on this file since 17645 was 17645, checked in by GarthBraithwaite_STG, 6 months ago

db, admin, view, java - db script to get proper IPV titles. More base path type name standardization/cleanup. Simplified IP preview to use paths and controllers and not to rely on the generic XSLT/XML view. Removed unused preview mappings and requests. Removed inherit font from the bold/italic/etc view general.css. Updated IP view and QM builder titles. Updating Java 9+ deprecated warnings.

File size: 16.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4        IBIS-PH Admin System's common Spring properties. These properties are used
5        by several different modules/packages within the system.  These common
6        objects include Bean Loaders, Data Source, DAO Factory and other common
7        objects used by the more specific MVC requests.
8-->
9
10<beans default-lazy-init="false" default-autowire="no"
11        xmlns="http://www.springframework.org/schema/beans"
12        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
13        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
14>
15
16        <!--  M O D E L S   /   C O N T R O L L E R   R E S O R U C E S -->
17        <bean id="commonFlagValue" class="org.ibisph.model.StringHolder">
18                <description>Currently not used but is left for future</description>
19                <constructor-arg value="x"/>
20        </bean>
21
22        <bean id="commonMSWordStringCleaner" class="org.ibisph.util.ReplacementStringCleaner">
23                <description>Cleans/replaces the extended MS-Word characters.</description>
24                <property name="replacementCharsMap">
25                        <map>
26                                <entry key="‘" value="'"/>
27                                <entry key="’" value="'"/>
28                                <entry key="“" value="&quot;"/>
29                                <entry key="”" value="&quot;"/>
30                                <entry key="–" value="--"/>
31                        </map>
32                </property> 
33        </bean>
34
35
36        <!--  C O N T E X T S   A N D   P A T H S -->
37        <bean id="commonContextAndPathService" class="org.ibisph.web.ContextAndPathService"/>
38        <bean id="commonContentBasePath" class="org.ibisph.model.StringHolder">
39                <description>
40                        Base "Content" file path used by publish and preview.
41                </description>
42                <constructor-arg value=""/>
43        </bean>
44        <bean id="commonBasePathURL" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
45                <property name="targetObject" ref="commonContextAndPathService"/>
46                <property name="targetMethod" value="getPathURL"/>
47                <property name="arguments"><list><value>#{commonContentBasePath.string}</value></list></property>
48        </bean>
49
50
51        <!--  L O C A L S,  D A T E,  F O R M A T S  -->
52        <bean id="commonLocale" class="java.util.Locale">
53                <constructor-arg value="en"/>
54                <constructor-arg value="US"/>
55        </bean>
56
57        <!-- Date Format Patterns:
58                To specify the time format use a time pattern string. In this pattern, all
59                ASCII letters are reserved as pattern letters, which are defined as the following:
60               
61                 Symbol   Meaning                 Presentation        Example
62                 ======   =====================   =================   ===================
63                 G        era designator          (Text)              AD
64                 y        year                    (Number)            1996
65                 M        month in year           (Text & Number)     July & 07
66                 d        day in month            (Number)            10
67                 h        hour in am/pm (1~12)    (Number)            12
68                 H        hour in day (0~23)      (Number)            0
69                 m        minute in hour          (Number)            30
70                 s        second in minute        (Number)            55
71                 S        millisecond             (Number)            978
72                 E        day in week             (Text)              Tuesday
73                 D        day in year             (Number)            189
74                 F        day of week in month    (Number)            2 (2nd Wed in July)
75                 w        week in year            (Number)            27
76                 W        week in month           (Number)            2
77                 a        am/pm marker            (Text)              PM
78                 k        hour in day (1~24)      (Number)            24
79                 K        hour in am/pm (0~11)    (Number)            0
80                 z        time zone               (Text)              Pacific Standard Time
81                 '        escape for text         (Delimiter)
82                 ''       single quote            (Literal)           '
83
84                Examples Using the US Locale:
85
86                Format Pattern                    Result
87                ==============================    ======================================
88                "yyyy.MM.dd G 'at' hh:mm:ss z"    1996.07.10 AD at 15:08:56 PDT
89                "EEE, MMM d, ''yy"                Wed, July 10, '96
90                "h:mm a"                          12:08 PM
91                "hh 'o''clock' a, zzzz"           12 o'clock PM, Pacific Daylight Time
92                "K:mm a, z"                       0:00 PM, PST
93                "yyyyy.MMMMM.dd GGG hh:mm aaa"    1996.July.10 AD 12:08 PM
94               
95                "dd.MM.yy"                        09.04.98
96                "H:mm"                            18:15
97                "H:mm:ss:SSS"                     18:15:55:624
98                "K:mm a,z"                        6:15 PM,PDT
99
100                Serial Number: yyyy-MM-dd-HH-mm-ss-SS
101        -->
102        <bean id="commonDateFormatPatternModelName" class="org.ibisph.model.StringHolder">
103                <constructor-arg value="displayDateFormatPattern"/>
104        </bean>
105        <bean id="commonDateFormatPattern" class="org.ibisph.model.StringHolder">
106                <constructor-arg value="MM/dd/yyyy"/>
107        </bean>
108        <bean id="commonDateFormat" class="java.text.SimpleDateFormat">
109                <constructor-arg value="#{commonDateFormatPattern.string}"/>
110                <constructor-arg type="java.util.Locale" ref="commonLocale"/>
111        </bean>
112
113        <bean id="commonXMLEncodingScheme" class="org.ibisph.model.StringHolder">
114                <description>
115                        XML encoding scheme used when creating an XML files.  Both of these
116                        should work: "UTF-8", "ISO-8859-1", however, UTF-8 had some problems
117                        with some data.  ISO-8859-1 is an 8 bit subset of the 16 bit unicode
118                        UTF-8 character set and is used for western english characters.
119                </description>
120                <constructor-arg value="ISO-8859-1"/>
121        </bean>
122        <bean id="commonWikiXMLOutputFormat" class="org.dom4j.io.OutputFormat">
123                <description>
124                        Output format used for publishing content that has wiki and CR formatting
125                        that needs to be preseved.
126                </description>
127                <property name="encoding"      value="#{commonXMLEncodingScheme.string}"/>
128                <property name="indentSize"    value="1"/>     <!-- count of indents -->
129                <property name="indent"        value="&#09;"/> <!-- tab value: &#09; = horizontal tab or spaces etc -->
130                <property name="newlines"      value="true"/>  <!-- if true puts next element on new line -->
131                <property name="padText"       value="false"/> <!-- if true just adds extra blank line inbetween... -->
132                <property name="trimText"      value="false"/>  <!-- must be false for embedded data CRs -->
133        </bean>
134
135
136        <!--  D A O   R E S O U R C E S  -->
137        <!-- Example of a Spring Data Source configured directly as a bean.  This
138                is commented out because it will NOT deploy unless the assoc jdbc jar
139                is also included.
140        <bean id="commonDataSourceJDBC" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
141                <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
142                <property name="url" value="jdbc:hsqldb:hsql://localhost:9001"/>
143                <property name="username" value="sa"/>
144                <property name="password" value=""/>
145        </bean>
146        -->     
147        <bean id="commonDataSourceJNDI" class="org.springframework.jndi.JndiObjectFactoryBean">
148                <description>
149                        JNDI based datasource.  Note the jndiName property value can be
150                        configured several ways:
151                        1) If the web.xml has a resource-ref AND the resourceRef=true then
152                           the shorter name defined can be used (note that both names must
153                           match).  See comments in the web.xml for more info on resource-ref.
154                        2) Not using a resource-ref.  In this case you must use a full JNDI
155                           dataSource name of the form java:comp/env/jdbc/hl_ibisph (explicit
156                           JNDI name).  When using some enterprise app servers the value is
157                           implemented as a resource ref so the fully qualified value can
158                           not be used e.g. jdbc/hl_ibisph.
159
160                        NOTE: The JNDI value MUST match the value specified in the app's
161                        context - either if defined within the META-INF/context.xml or within
162                        an app server's config etc.  Put another way, the resource must still
163                        be exposed to the webapp (so a webapp context with said  resource
164                        assigned to it) along with the reference to the resource name. 
165                </description>
166                <property name="jndiName"        value="jdbc/doh_ibisph"/>
167                <property name="resourceRef"     value="true"/>
168                <property name="lookupOnStartup" value="true"/>
169                <property name="cache"           value="true"/>
170        </bean>
171
172        <bean id="commonJDBCTemplateFactory" class="org.ibisph.jdbc.JDBCTemplateFactory">
173                <property name="dataSource" ref="commonDataSourceJNDI"/>
174        </bean>
175
176        <!--
177                For MS-SQL Server wrap the "USER" table name with [] as USER is a reserved
178                word so value="[USER]".  For Oracle wrap with apos so the value="'USER'". 
179                MySQL does not need anything as USER is not reserved.
180        -->
181        <bean id="commonDAOFactory" class="org.ibisph.databean.dao.JDBCTemplateDAOFactory">
182                <property name="dataSource" ref="commonDataSourceJNDI"/>
183                <property name="dataBeanClassNameToJDBCTableNameMap">
184                        <map>
185                                <entry key="org.ibisph.indicatorprofile.databean.AncillaryValue"           value="ANCILLARY_VALUE"/>
186                                <entry key="org.ibisph.indicatorprofile.databean.AncillaryValueToDataset"  value="ANCILLARY_VALUE_TO_DATASET"/>
187
188                                <entry key="org.ibisph.indicatorprofile.databean.DataSource"               value="DATA_SOURCE"/>
189                                <entry key="org.ibisph.indicatorprofile.databean.DataSourceToDataset"      value="DATA_SOURCE_TO_DATASET"/>
190
191                                <entry key="org.ibisph.indicatorprofile.databean.Dataset"                  value="DATASET"/>
192                                <entry key="org.ibisph.indicatorprofile.databean.DatasetRecord"            value="DATASET_RECORD"/>
193                                <entry key="org.ibisph.indicatorprofile.databean.DatasetRecordAncillaryValue" value="DATASET_RECORD_ANCILLARY_VALUE"/>
194                                <entry key="org.ibisph.indicatorprofile.databean.DatasetToIndicatorView"   value="DATASET_TO_INDICATOR_VIEW"/>
195
196                                <entry key="org.ibisph.indicatorprofile.databean.Dimension"                value="DIMENSION"/>
197                                <entry key="org.ibisph.indicatorprofile.databean.DimensionValue"           value="DIMENSION_VALUE"/>
198                                <entry key="org.ibisph.indicatorprofile.databean.DimensionToDataset"       value="DIMENSION_TO_DATASET"/>
199                                <entry key="org.ibisph.indicatorprofile.databean.DimensionToIndicatorView" value="DIMENSION_TO_INDICATOR_VIEW"/>
200                                <entry key="org.ibisph.indicatorprofile.databean.DimensionValueToIndicatorView" value="DIMENSION_VALUE_TO_IND_VIEW"/>
201
202                                <entry key="org.ibisph.indicatorprofile.databean.Indicator"                value="INDICATOR"/>
203                                <entry key="org.ibisph.indicatorprofile.databean.UserToIndicator"          value="USER_TO_INDICATOR"/>
204
205                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorView"            value="INDICATOR_VIEW"/>
206                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorLink"            value="INDICATOR_LINK"/>
207
208                                <entry key="org.ibisph.indicatorprofile.databean.Initiative"               value="INITIATIVE"/>
209                                <entry key="org.ibisph.indicatorprofile.databean.InitiativeTopic"          value="INITIATIVE_TOPIC"/>
210                                <entry key="org.ibisph.indicatorprofile.databean.InitiativeTopicObjective" value="INITIATIVE_TOPIC_OBJECTIVE"/>
211                                <entry key="org.ibisph.indicatorprofile.databean.InitiativeTopicObjectiveToIndicator" value="INITIATIV_TOPIC_OBJ_TO_INDICAT"/>
212
213                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorSet"             value="INDICATOR_SET"/>
214                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorToIndicatorSet"  value="INDICATOR_TO_INDICATOR_SET"/>
215
216                                <entry key="org.ibisph.indicatorprofile.databean.Relation"                 value="RELATION"/>
217                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorToRelation"      value="INDICATOR_TO_RELATION"/>
218                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorToIndicator"     value="INDICATOR_TO_INDICATOR"/>
219
220                                <entry key="org.ibisph.indicatorprofile.databean.Measure"                  value="MEASURE"/>
221                                <entry key="org.ibisph.indicatorprofile.databean.ValueType"                value="VALUE_TYPE"/>
222                                <entry key="org.ibisph.indicatorprofile.databean.ValueAttribute"           value="VALUE_ATTRIBUTE"/>
223
224                                <entry key="org.ibisph.indicatorprofile.databean.Chart"                    value="CHART"/>
225                                <entry key="org.ibisph.indicatorprofile.databean.Map"                      value="MAP"/>
226
227                                <entry key="org.ibisph.indicatorprofile.databean.Topic"                    value="TOPIC"/>
228                                <entry key="org.ibisph.indicatorprofile.databean.IndicatorToTopic"         value="INDICATOR_TO_TOPIC"/>
229
230                                <entry key="org.ibisph.indicatorprofile.databean.OrgUnit"                  value="ORG_UNIT"/>
231
232                                <entry key="org.ibisph.user.databean.Authority"       value="AUTHORITY"/>
233                                <entry key="org.ibisph.user.databean.AuthorityToUser" value="AUTHORITY_TO_USER"/>
234                                <entry key="org.ibisph.user.databean.AuthorityToRole" value="AUTHORITY_TO_ROLE"/>
235                                <entry key="org.ibisph.user.databean.Role"            value="ROLE"/>
236                                <entry key="org.ibisph.user.databean.RoleToUser"      value="ROLE_TO_USER"/>
237                                <entry key="org.ibisph.user.databean.User"            value="USER"/>
238                                <entry key="org.ibisph.user.databean.UserLog"         value="USER_LOG"/>
239                        </map>
240                </property> 
241        </bean>
242
243
244        <!--  S E R V I C E S  -->
245        <bean id="commonDataBeanDAOService" class="org.ibisph.databean.dao.DataBeanDAOService">
246                <property name="daoFactory" ref="commonDAOFactory"/>
247        </bean>
248
249        <bean id="commonHTTPRequestParametersToDataBeanService" class="org.ibisph.databean.HTTPRequestParametersToDataBeanFieldsService">
250                <property name="daoFactory"        ref="commonDAOFactory"/>
251                <property name="parsingDateFormat" ref="commonDateFormat"/>
252        </bean>
253
254        <bean id="commonDataBeanToXMLService" class="org.ibisph.databean.DataBeanToXMLService">
255                <property name="dateFormat" ref="commonDateFormat"/>
256        </bean>
257
258        <bean id="commonCurrentUserService" class="org.ibisph.user.service.CurrentUser">
259                <property name="userDetailsSessionName" value="userDetails"/>
260        </bean>
261
262
263        <!--  E X C E P T I O N   R E S O L V E R  -->
264
265        <!-- Exception Resolvers are typically a list of exceptions with associated
266                views to be used to display an error for a given type of exception. 
267                Note that the resolver is ONLY used for exceptions thrown/uncaught
268                within controller objects e.g. objects controlled by the Request Dispatcher
269                servlet/container.  For "view" related errors an HandlerInterceptor
270                is needed see:
271               
272                http://stackoverflow.com/questions/196495/how-to-configure-spring-handlerexceptionresolver-to-handle-nullpointerexception-t)
273               
274                Other types of errors that happen outside of the servlet (like filter
275                errors) are also not able to be handled.  Many of errors that occur
276                within the IBIS applications are view related and due to the fact that
277                the web.xml error handling can be used to handle ALL types of errors,
278                there's not much value in an ErrorResolver.  As if 2010, all errors
279                simply go through to the container which will then use the web.xml
280                which uses a centralized error jsp to handle all errors.  The error
281                page logs the error and returns an error page to the user.  The two
282                major down sides to this centralized JSP approach is that 1) the error
283                JSP has to be bullet proof, and 2) the error handling is limited to
284                what can be done within a JSP.  The pro to this approach is that it
285                is all centralized and handled consistently.
286        -->
287
288        <!-- Below is a basic ExceptionResolver that many Spring MVC apps implement.
289                Specific exceptions are handled by the simple exception to view resolver
290                This resolver needs to be used first and MUST not be configured to do the
291                general error handling as the next resolver will not be called.  Note that
292                this can be setup to handle everything but it's was easier to understand
293                and control doing this way.
294
295        <bean id="commonSpecific.ExceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
296                <property name="order" value="1"/>
297                <property name="defaultStatusCode" value="700"/>
298                <property name="defaultErrorView" value="/jsp/ErrorPage.jsp"/>
299                <property name="exceptionAttribute" value="Exception"/>
300                <property name="mappedHandlers">
301                        <set value="java.lang.Throwable</value><ref local="commonDefault.ExceptionHandler"/></set>
302                </property>
303                <property name="exceptionMappings">
304                        <props>
305                                <prop key="org.ibisph.web.springmvc.controller.query.NullModuleException">Query.NullModuleDocument.View</prop>
306                                <prop key="java.lang.Exception ">Query.NullModuleDocument.View</prop>
307                        </props>
308                </property>
309        </bean>
310
311        For many years a simple logging type ExceptionResolver was used.  The code
312        below is left in case the logging exception handler is wanted by an adopter.
313
314        <bean id="commonDefault.ExceptionHandler" class="org.ibisph.web.springmvc.LoggingControllerExceptionHandler">
315                <property name="order" value="1"/>
316        </bean>
317        -->
318
319</beans>
320
Note: See TracBrowser for help on using the repository browser.