Changeset 8126


Ignore:
Timestamp:
02/03/12 16:29:18 (8 years ago)
Author:
mnagni
Message:

Major refactoring including Dictionary and table initialisation

Location:
mauRepo/revitalizationProject/branches/MEDIN/dpws
Files:
1 added
15 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/pom.xml

    r8123 r8126  
    3838                                        <jarName>dpws-ejb${project.version}</jarName> 
    3939                                </configuration> 
    40                         </plugin> 
    41         <plugin> 
    42           <groupId>org.apache.maven.plugins</groupId> 
    43           <artifactId>maven-surefire-plugin</artifactId> 
    44           <version>2.12</version> 
    45         </plugin>                        
     40                        </plugin>                        
    4641                </plugins> 
    4742        </build> 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/discovery/basic/DiscoveryDictionaryDPWS.java

    r8124 r8126  
    2626import java.util.List; 
    2727 
     28import org.apache.commons.collections.CollectionUtils; 
     29import org.apache.commons.lang.StringUtils; 
     30 
    2831import ndg.common.exception.NdgExecutionException; 
    2932import ndg.services.jpa.ListNames; 
     33import ndg.services.jpa.ListNamesItem; 
    3034import ndg.services.jpa.OriginalDocument; 
    3135import ndg.services.revitalization.EJBBeanFactory; 
     
    3943 
    4044        public final static String SPATIAL_DATA_TABLE  = "spatial_data"; 
    41         public final static String TEMPORAL_DATA_TABLE = "temporal_data"; 
    4245        public final static String ORIGINAL_DOCUMENT_TABLE = "original_document"; 
    4346        public final static String TRANSFORMED_DOCUMENT_TABLE = "transformed_document"; 
     
    4649        public final static String ORDER_BY_FIELD = "OrderByField";      
    4750         
     51         
     52        public final static String TEMPORAL_DATA_TABLE = "temporal_data"; 
     53        //-----// 
     54        public final static String RECORD_DETAIL_DOCUMENT_SIMPLE = "DocumentSimple"; 
     55        public final static String RECORD_DETAIL_DOCUMENT_FULL = "DocumentFull"; 
     56        public final static String RECORD_DETAIL_DOCUMENT_SUMMARY = "DocumentSummary";   
     57        public final static String RECORD_DETAIL_DOCUMENT_BRIEF = "DocumentBrief";       
     58        //-----// 
     59        public final static String TEMPORAL_COVERAGE = "TemporalCoverage"; 
     60        //-----// 
     61        public final static String SPATIAL_OPERATOR_OVERLAP = "Overlaps"; 
     62        public final static String SPATIAL_OPERATOR_WITHIN = "Within"; 
     63        public final static String SPATIAL_OPERATOR_DOESNOTOVERLAP = "DoesNotOverlap";           
     64         
    4865        private static List<ListNames> listNames = new ArrayList<ListNames>(); 
    4966 
     
    5168                try { 
    5269                        synchronized (listNames) { 
    53                                 DiscoveryDictionaryDPWS.listNames = (List<ListNames>)EJBBeanFactory.getDiscoveryService().getAllNamesList();     
     70                                DiscoveryDictionaryDPWS.listNames.clear(); 
     71                                DiscoveryDictionaryDPWS.listNames.addAll(EJBBeanFactory.getDiscoveryService().getAllNamesList());        
    5472                        } 
    5573                } catch (NdgExecutionException e) { 
     
    5876        } 
    5977         
    60          
    61         /* 
    62         public static enum TermTarget { 
    63                 FullText("document_ts_vector", "FullText", true), 
    64                 Author("authors_ts_vector", "Author", true), 
    65                 Parameters("parameters_ts_vector", "Parameters", true), 
    66                 ResourceType("resource_type_ts_vector", "ResourceType", true), 
    67                 TopicCategory("topic_category_ts_vector", "TopicCategory", true), 
    68                 Lineage("lineage_ts_vector", "Lineage", true), 
    69                 PublicAccessLimits("limitations_public_access_ts_vector", "PublicAccessLimits", true), 
    70                 DataOriginator("data_originator_tsvector", "DataOriginator", true), 
    71                 DataFormat("original_format_name", "DataFormat", false),                 
    72                 AvailableDataFormats("data_formats", "AvailableDataFormats", false), 
    73                 InspireThemes("inspire_themes_ts_vector", "InspireThemes", true), 
    74                 VerticalExtent("vertical_extent_ts_vector", "VerticalExtent", true); 
    75                  
    76                 private final String fieldName; 
    77                 private final String fieldLabel; 
    78                 private final boolean vector; 
    79                 TermTarget(String fieldName, String fieldLabel, boolean vector) { 
    80                         this.fieldName = fieldName; 
    81                         this.fieldLabel = fieldLabel; 
    82                         this.vector = vector; 
    83                 } 
    84                 public final String fieldName() { 
    85                         return fieldName; 
    86                 } 
    87                 public final String fieldLabel() { 
    88                         return fieldLabel; 
    89                 }  
    90                 public final boolean isVector() { 
    91                         return vector; 
    92                 }  
    93         }        
    94         */ 
    95         public static enum OrderByField { 
    96                 DatasetStartDate("original_document.dataset_start_date_nom", "DatasetStartDate", "datasetStartDateNom"), 
    97                 DatasetEndDate("original_document.dataset_end_date_nom", "DatasetEndDate", "datasetEndDateNom"),         
    98                 DataCenter("original_document.datacentre_name", "DataCenter", "datacentreName"), 
    99                 DatasetUpdate("original_document.update_date", "DatasetUpdateOrder", "updateDate"), 
    100                 DiscoveryIngestDate("original_document.create_date", "DiscoveryIngestDate", "createDate"), 
    101                 DatasetMetadataUpdateDate("original_document.dataset_metadata_update_date", "DatasetMetadataUpdateDate", "datasetMetadataUpdateDate"), 
    102                 DiscoveryTitle("original_document.dataset_name", "DiscoveryTitle", "datasetName"); 
    103                  
    104                 private final String fieldName; 
    105                 private final String fieldLabel; 
    106                 private final String odField; 
    107                 OrderByField(String fieldName, String fieldLabel, String odField) { 
    108                         this.fieldName = fieldName; 
    109                         this.fieldLabel = fieldLabel; 
    110                         this.odField = odField; 
    111                 } 
    112                 public final String fieldName() { 
    113                         return fieldName; 
    114                 } 
    115                 public final String fieldLabel() { 
    116                         return fieldLabel; 
    117                 } 
    118                 public final String getOdField() { 
    119                         return odField; 
    120                 }                
    121         } 
    122          
    123         public static enum OrderDirection { 
    124                 DESC("DESC", "descending"), 
    125                 ASC("ASC", "ascending");                 
    126                  
    127                 private final String fieldName; 
    128                 private final String fieldLabel; 
    129                 OrderDirection(String fieldName, String fieldLabel) { 
    130                         this.fieldName = fieldName; 
    131                         this.fieldLabel = fieldLabel; 
    132                 } 
    133                 public final String fieldName() { 
    134                         return fieldName; 
    135                 } 
    136                 public final String fieldLabel() { 
    137                         return fieldLabel; 
    138                 }                
    139         } 
    140          
    141         public static enum RecordDetail { 
    142                 DocumentSimple("Simple", "DocumentSimple"), 
    143                 DocumentBrief("Brief", "DocumentBrief"), 
    144                 DocumentSummary("Summary", "DocumentSummary"), 
    145                 DocumentFull("Full", "DocumentFull");            
    146                  
    147                 private final String fieldName; 
    148                 private final String fieldLabel; 
    149                 RecordDetail(String fieldName, String fieldLabel) { 
    150                         this.fieldName = fieldName; 
    151                         this.fieldLabel = fieldLabel; 
    152                 } 
    153                 public final String fieldName() { 
    154                         return fieldName; 
    155                 } 
    156                 public final String fieldLabel() { 
    157                         return fieldLabel; 
    158                 }                
    159         } 
    160          
    161         public static enum DateRangeTarget { 
    162                 TemporalCoverage("TemporalCoverage", "TemporalCoverage"), 
    163                 LastRevisionDate("dataset_metadata_update_date", "LastRevisionDate"), 
    164                 DiscoveryIngestDate("update_date", "DiscoveryIngestDate");               
    165                  
    166                 private final String fieldName; 
    167                 private final String fieldLabel; 
    168                 DateRangeTarget(String fieldName, String fieldLabel) { 
    169                         this.fieldName = fieldName; 
    170                         this.fieldLabel = fieldLabel; 
    171                 } 
    172                 public final String fieldName() { 
    173                         return fieldName; 
    174                 } 
    175                 public final String fieldLabel() { 
    176                         return fieldLabel; 
    177                 }                
    178         } 
    179  
    180         public static enum TemporalOperator { 
    181                 Equals("=", "Equals"), 
    182                 DoesNotEqual("<>", "DoesNotEqual"), 
    183                 OnOrBefore("<=", "OnOrBefore"), 
    184                 OnOrAfter(">=", "OnOrAfter"), 
    185                 Before("<", "Before"), 
    186                 After(">", "After");             
    187                  
    188                 private final String fieldName; 
    189                 private final String fieldLabel; 
    190                 TemporalOperator(String fieldName, String fieldLabel) { 
    191                         this.fieldName = fieldName; 
    192                         this.fieldLabel = fieldLabel; 
    193                 } 
    194                 public final String fieldName() { 
    195                         return fieldName; 
    196                 } 
    197                 public final String fieldLabel() { 
    198                         return fieldLabel; 
    199                 }                
    200         } 
    201          
    202         public static enum Scope { 
    203                 MDIP("MDIP", "MDIP"), 
    204                 NERC_DDC("NERC_DDC", "NERC_DDC"), 
    205                 NERC("NERC", "NERC"), 
    206                 DPPP("DPPP", "DPPP");            
    207                  
    208                 private final String fieldName; 
    209                 private final String fieldLabel; 
    210                 Scope(String fieldName, String fieldLabel) { 
    211                         this.fieldName = fieldName; 
    212                         this.fieldLabel = fieldLabel; 
    213                 } 
    214                 public final String fieldName() { 
    215                         return fieldName; 
    216                 } 
    217                 public final String fieldLabel() { 
    218                         return fieldLabel; 
    219                 }                
    220         }        
    221          
    222         public static enum SpatialOperator { 
    223                 OVERLAP("Overlaps", "Overlaps"), 
    224                 DOESNOTOVERLAP("DoesNotOverlap", "DoesNotOverlap"), 
    225                 WITHIN("Within", "Within");              
    226                  
    227                 private final String fieldName; 
    228                 private final String fieldLabel; 
    229                 SpatialOperator(String fieldName, String fieldLabel) { 
    230                         this.fieldName = fieldName; 
    231                         this.fieldLabel = fieldLabel; 
    232                 } 
    233                 public final String fieldName() { 
    234                         return fieldName; 
    235                 } 
    236                 public final String fieldLabel() { 
    237                         return fieldLabel; 
    238                 }                
    239         } 
    240  
    241         public static enum SpatialReferenceSystem { 
    242                 EPSG4326("EPSG4326", "EPSG4326");                
    243                  
    244                 private final String fieldName; 
    245                 private final String fieldLabel; 
    246                 SpatialReferenceSystem(String fieldName, String fieldLabel) { 
    247                         this.fieldName = fieldName; 
    248                         this.fieldLabel = fieldLabel; 
    249                 } 
    250                 public final String fieldName() { 
    251                         return fieldName; 
    252                 } 
    253                 public final String fieldLabel() { 
    254                         return fieldLabel; 
    255                 }                
    256         } 
    257          
    258         public static enum MetadataFormat { 
    259                 DIF_9_4("DIF_9.4", "DIF_9.4"), 
    260                 DC("DC", "DC"), 
    261                 MEDIN_2_3("MEDIN_2.3", "MEDIN_2.3"), 
    262                 ISO19115("ISO19115", "ISO19115"), 
    263                 NERC_DMS_07("NERC_DMS_0.7", "NERC_DMS_0.7"); 
    264                  
    265                 private final String fieldName; 
    266                 private final String fieldLabel; 
    267                 MetadataFormat(String fieldName, String fieldLabel) { 
    268                         this.fieldName = fieldName; 
    269                         this.fieldLabel = fieldLabel; 
    270                 } 
    271                 public final String fieldName() { 
    272                         return fieldName; 
    273                 } 
    274                 public final String fieldLabel() { 
    275                         return fieldLabel; 
    276                 }                
    277         } 
    278          
    279         public static enum OriginalFormat { 
    280                 DIF_9_4("DIF_9.4", "DIF_9.4"), 
    281                 MEDIN_2_3("MEDIN_2.3", "MEDIN_2.3"), 
    282                 ISO19115("ISO19115", "ISO19115");                
    283                  
    284                 private final String fieldName; 
    285                 private final String fieldLabel; 
    286                 OriginalFormat(String fieldName, String fieldLabel) { 
    287                         this.fieldName = fieldName; 
    288                         this.fieldLabel = fieldLabel; 
    289                 } 
    290                 public final String fieldName() { 
    291                         return fieldName; 
    292                 } 
    293                 public final String fieldLabel() { 
    294                         return fieldLabel; 
    295                 }                
    296         } 
    297          
     78        private static ListNames getListNames(String masterLabel) { 
     79                if (CollectionUtils.isEmpty(listNames)) { 
     80                        refreshListNames(); 
     81                } 
     82                for (ListNames listNamesElement : listNames) { 
     83                        if (listNamesElement.getLabel().equals(masterLabel)) { 
     84                                return listNamesElement; 
     85                        } 
     86                } 
     87                return null; 
     88        } 
     89         
     90        private static ListNamesItem getListNameItem(String masterLabel, String label) { 
     91                ListNames masterList = getListNames(masterLabel); 
     92                ListNamesItem defaultListNamesItem = null; 
     93                for (ListNamesItem listNamesItem : masterList.getListNamesItems()) { 
     94                        if (StringUtils.isEmpty(label)){ 
     95                                if (listNamesItem.isDefault_()) { 
     96                                        return listNamesItem;    
     97                                } else { 
     98                                        continue; 
     99                                }                                
     100                        } 
     101 
     102                        if (listNamesItem.isDefault_()) { 
     103                                defaultListNamesItem = listNamesItem; 
     104                        } 
     105                         
     106                        if (StringUtils.equals(listNamesItem.getLabel(), label)) { 
     107                                return listNamesItem; 
     108                        }                                        
     109                } 
     110                return defaultListNamesItem; 
     111        } 
     112         
     113        /** 
     114         * Returns the TermTarget proper element 
     115         * @param label the reference label 
     116         * @return the proper TermTarget or the default value  
     117         * */ 
     118        public static ListNamesItem getTermType(String label) { 
     119                return getListNameItem("TermTargetList", label); 
     120        }        
     121         
     122        /** 
     123         * Returns the MetadataFormat proper element 
     124         * @param label the reference label 
     125         * @return the proper MetadataFormat or the default value 
     126         * */ 
     127        public static ListNamesItem getMetadataFormat(String label) { 
     128                return getListNameItem("MetadataFormatList", label); 
     129        }        
     130         
     131        /** 
     132         * Returns the OriginalFormat proper element 
     133         * @param label the reference label 
     134         * @return the proper OriginalFormat or the default value 
     135         * */    
     136        public static ListNamesItem getOriginalFormat(String label) { 
     137                return getListNameItem("OriginalFormatList", label); 
     138        }        
     139         
     140        /** 
     141         * Returns the SpatialReferenceSystem proper element 
     142         * @param label the reference label 
     143         * @return the proper SpatialReferenceSystem or the default value 
     144         * */    
     145        public static ListNamesItem getSpatialReferenceSystem(String label) { 
     146                return getListNameItem("SpatialReferenceSystemList", label); 
     147        }                
     148 
     149        /** 
     150         * Returns the SpatialOperator proper element 
     151         * @param label the reference label 
     152         * @return the proper SpatialOperator or the default value 
     153         * */    
     154        public static ListNamesItem getSpatialOperator(String label) { 
     155                return getListNameItem("SpatialOperatorList", label); 
     156        }        
     157         
     158        /** 
     159         * Returns the RecordDetail proper element 
     160         * @param label the reference label 
     161         * @return the proper RecordDetail or the default value 
     162         * */ 
     163        public static ListNamesItem getRecordDetails(String label){ 
     164                return getListNameItem("RecordDetailsList", label);              
     165        }                
     166         
     167        /** 
     168         * Returns the DateRangeTarget proper element 
     169         * @param label the reference label 
     170         * @return the proper DateRangeTarget or the default value  
     171         * */ 
     172        public static ListNamesItem getDateRangeTarget(String label) { 
     173                return getListNameItem("DateRangeTargetList", label);                    
     174        }        
     175         
     176        /** 
     177         * Returns the ListNamesItem proper element 
     178         * @param label the reference label 
     179         * @return the proper TemporalOperator or the default value  
     180         * */ 
     181        public static ListNamesItem getTemporalOperator(String label) { 
     182                return getListNameItem("TemporalOperatorList", label); 
     183        } 
     184         
     185        /** 
     186         * Returns the OrderByField proper element 
     187         * @param label the reference label 
     188         * @return the proper OrderByField or the default value  
     189         * */    
     190        public static ListNamesItem getOrderByField(String label){ 
     191                return getListNameItem("OrderByFieldList", label);               
     192        }        
     193         
     194        /** 
     195         * Returns the OrderDirection proper element 
     196         * @param label the reference label 
     197         * @return the proper OrderDirection or the default value  
     198         * */    
     199        public static ListNamesItem getOrderDirection(String label){ 
     200                return getListNameItem("OrderDirectionList", label)     ;                
     201        }        
     202 
     203        /** 
     204         * Returns the Scope proper element 
     205         * @param label the reference label 
     206         * @return the proper Scope or the default value 
     207         * */ 
     208        public static ListNamesItem getScope(String label){ 
     209                return getListNameItem("ScopeList", label)      ;                
     210        }        
     211 
    298212        /** 
    299213         * Maps the db table to {@link OriginalDocument} class. 
     214         * In a future release should be properly mapped within the JPA 
    300215         **/ 
    301216        public static enum OriginalDocumentToTable { 
     
    346261        }                
    347262         
    348         /** 
    349          * Returns the {@link MetadataFormat} proper element 
    350          * for the given parameter. In the paramenter is <code>null</code> or 
    351          * not found the default value {@link MetadataFormat#NERC_DMS_07}} 
    352          * is returned 
    353          * @param label the reference label 
    354          * @return the proper {@link MetadataFormat} or the default value 
    355          * */ 
    356         public static MetadataFormat getMetadataFormat(String label) {           
    357                 MetadataFormat type = MetadataFormat.NERC_DMS_07; 
    358                 if (label != null) { 
    359                         for (MetadataFormat item : MetadataFormat.values()) { 
    360                                 if(label.trim().equals(item.fieldLabel())) { 
    361                                         type = item; 
    362                                         break; 
    363                                 } 
    364                         }        
    365                 } 
    366                 return type; 
    367         }        
    368          
    369         /** 
    370          * Returns the {@link OriginalFormat} proper element 
    371          * for the given parameter.  
    372          * @param label the reference label 
    373          * @return the proper {@link OriginalFormat} or <code>null</code>  
    374          * if the label does not exist 
    375          * */ 
    376         public static OriginalFormat getOriginalFormat(String label) { 
    377                 OriginalFormat type = null; 
    378                 if (label != null) { 
    379                         for (OriginalFormat item : OriginalFormat.values()) { 
    380                                 if(label.trim().equals(item.fieldLabel())) { 
    381                                         type = item; 
    382                                         break; 
    383                                 } 
    384                         }        
    385                 } 
    386                 return type; 
    387         }                
    388          
    389         /** 
    390          * Returns the {@link SpatialReferenceSystem} proper element 
    391          * for the given parameter. 
    392          * @param label the reference label 
    393          * @return the proper {@link SpatialReferenceSystem} or <code>null</code>  
    394          * if the label does not exist 
    395          * */ 
    396         public static SpatialReferenceSystem getSpatialReferenceSystem(String label) { 
    397                 SpatialReferenceSystem type = null; 
    398                 if (label != null) { 
    399                         for (SpatialReferenceSystem item : SpatialReferenceSystem.values()) { 
    400                                 if(label.trim().equals(item.fieldLabel())) { 
    401                                         type = item; 
    402                                         break; 
    403                                 } 
    404                         }        
    405                 } 
    406                 return type; 
    407         }        
    408          
    409         /** 
    410          * Returns the {@link SpatialOperator} proper element 
    411          * for the given parameter. 
    412          * @param label the operator label 
    413          * @return the proper {@link SpatialOperator} or <code>null</code>  
    414          * if the label does not exist 
    415          **/ 
    416         public static SpatialOperator getSpatialOperator(String label) { 
    417                 SpatialOperator type = SpatialOperator.OVERLAP; 
    418                 if (label != null) { 
    419                         for (SpatialOperator item : SpatialOperator.values()) { 
    420                                 if(label.trim().equals(item.fieldLabel())) { 
    421                                         type = item; 
    422                                         break; 
    423                                 } 
    424                         }        
    425                 } 
    426                 return type; 
    427         }                
    428          
    429          
    430         /** 
    431          * Returns the {@link Names} proper element 
    432          * for the given parameter. 
    433          * @param label the name label 
    434          * @return the proper {@link Names} or <code>null</code>  
    435          * if the label does not exist 
    436          * */ 
    437         /* 
    438         public static Names getNames(String label) { 
    439                 Names type = null; 
    440                 if (label != null) { 
    441                         for (Names item : Names.values()) { 
    442                                 if(label.trim().equals(item.fieldLabel())) { 
    443                                         type = item; 
    444                                         break; 
    445                                 } 
    446                         }        
    447                 } 
    448                 return type; 
    449         } 
    450         */       
    451          
    452         /** 
    453          * Returns the {@link TermTarget} proper element 
    454          * for the given parameter. In the paramenter is <code>null</code> or 
    455          * not found the default value {@link TermTarget#FullText}} 
    456          * is returned 
    457          * @param label the term label 
    458          * @return the proper {@link TermTarget} or the default value  
    459          * */ 
    460         /* 
    461         public static TermTarget getTermType(String label) { 
    462                 TermTarget type = TermTarget.FullText; 
    463                 if (label != null) { 
    464                         for (TermTarget item : TermTarget.values()) { 
    465                                 if(label.trim().equals(item.fieldLabel())) { 
    466                                         type = item; 
    467                                         break; 
    468                                 } 
    469                         }        
    470                 } 
    471                 return type; 
    472         } 
    473         */ 
    474  
    475         /** 
    476          * Returns the {@link RecordDetail} proper element 
    477          * for the given parameter. In the paramenter is <code>null</code> or 
    478          * not found the default value {@link RecordDetail#DocumentSimple}} 
    479          * is returned 
    480          * @param label the detail label 
    481          * @return the proper {@link RecordDetail} or the default value  
    482          * */ 
    483         public static RecordDetail getRecordDetails(String label){ 
    484                 RecordDetail type = RecordDetail.DocumentSimple; 
    485                 if (label != null) { 
    486                         for (RecordDetail item : RecordDetail.values()) { 
    487                                 if(label.trim().equals(item.fieldLabel())) { 
    488                                         type = item; 
    489                                         break; 
    490                                 } 
    491                         }        
    492                 } 
    493                 return type; 
    494         }        
    495          
    496         /** 
    497          * Returns the {@link DateRangeTarget} proper element 
    498          * for the given parameter. In the paramenter is <code>null</code> or 
    499          * not found the default value {@link DateRangeTarget#TemporalCoverage}} 
    500          * is returned 
    501          * @param label the range label 
    502          * @return the proper {@link DateRangeTarget} or the default value  
    503          * */ 
    504         public static DateRangeTarget getDateRangeTarget(String label) { 
    505                 DateRangeTarget type = DateRangeTarget.TemporalCoverage; 
    506                 if (label != null) { 
    507                         for (DateRangeTarget item : DateRangeTarget.values()) { 
    508                                 if(label.trim().equals(item.fieldLabel())) { 
    509                                         type = item; 
    510                                         break; 
    511                                 } 
    512                         }        
    513                 } 
    514                 return type; 
    515         } 
    516          
    517         /** 
    518          * Returns the {@link TemporalOperator} proper element 
    519          * for the given parameter. In the paramenter is <code>null</code> or 
    520          * not found the default value {@link TemporalOperator#OnOrAfter}} 
    521          * is returned 
    522          * @param label the operator label 
    523          * @return the proper {@link DateRangeTarget} or the default value  
    524          * */ 
    525         public static TemporalOperator getTemporalOperator(String label) { 
    526                 TemporalOperator type = TemporalOperator.OnOrAfter; 
    527                 if (label != null) { 
    528                         for (TemporalOperator item : TemporalOperator.values()) { 
    529                                 if(label.trim().equals(item.fieldLabel())) { 
    530                                         type = item; 
    531                                         break; 
    532                                 } 
    533                         }        
    534                 } 
    535                 return type; 
    536         } 
    537          
    538         /** 
    539          * Returns the {@link OrderByField} proper element 
    540          * for the given parameter. 
    541          * @param label the field label 
    542          * @return the proper {@link OrderByField} or <code>null</code>  
    543          * if the label does not exist 
    544          * */    
    545         /* 
    546         public static OrderByField getOrderByField(String fieldName){ 
    547                 OrderByField ret = null; 
    548                 for (OrderByField orderField : OrderByField.values()) { 
    549                         if (orderField.fieldLabel().equals(fieldName)) { 
    550                                 ret = orderField; 
    551                                 break; 
    552                         } 
    553                 } 
    554                 return ret;              
    555         } 
    556         */ 
    557          
    558         /** 
    559          * Returns the {@link OrderDirection} proper element 
    560          * for the given parameter. In the paramenter is <code>null</code> or 
    561          * not found the default value {@link OrderDirection#DESC}} 
    562          * is returned 
    563          * @param label the direction label 
    564          * @return the proper {@link OrderDirection} or the default value  
    565          * */    
    566         public static OrderDirection getOrderDirection(String fieldName){ 
    567                 OrderDirection ret = OrderDirection.DESC; 
    568                 for (OrderDirection orderField : OrderDirection.values()) { 
    569                         if (orderField.fieldLabel().equals(fieldName)) { 
    570                                 ret = orderField; 
    571                                 break; 
    572                         } 
    573                 } 
    574                 return ret;              
    575         } 
    576          
    577         /** 
    578          * Returns the {@link Scope} proper element 
    579          * for the given parameter. 
    580          * @param label the scope label 
    581          * @return the proper {@link Scope} or <code>null</code>  
    582          * if the label does not exist 
    583          * */ 
    584         public static DiscoveryDictionaryDPWS.Scope getScope(String fieldName){ 
    585                 Scope ret = null; 
    586                 for (Scope orderField : Scope.values()) { 
    587                         if (orderField.fieldLabel().equals(fieldName)) { 
    588                                 ret = orderField; 
    589                                 break; 
    590                         } 
    591                 } 
    592                 return ret;              
    593         } 
    594          
    595263        private static PropertyDescriptor[] pd = null; 
    596264        public static PropertyDescriptor getOriginalDocumentProperty(String fieldName){ 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/jpa/ListNames.java

    r8116 r8126  
    88import javax.persistence.Entity; 
    99import javax.persistence.FetchType; 
     10import javax.persistence.GeneratedValue; 
     11import javax.persistence.GenerationType; 
    1012import javax.persistence.Id; 
    1113import javax.persistence.NamedQueries; 
     
    2426        @NamedQuery(name="findAllListNames",  
    2527                        query="select nm from ListNames nm"), 
    26         @NamedQuery(name="findNamesListByLabel",  
     28        @NamedQuery(name="findListNamesByLabel",  
    2729                query="select nm from ListNames nm where nm.label=:label "), 
    28         @NamedQuery(name="findNamesListByName",  
     30        @NamedQuery(name="findListNamesByName",  
    2931        query="select nm from ListNames nm where nm.name=:name ")        
    3032}) 
     
    4244        @Id 
    4345        @Column(name="id") 
     46        @GeneratedValue(strategy=GenerationType.AUTO) 
    4447        public Integer getId() { 
    4548                return this.id; 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/jpa/ListNamesItem.java

    r8121 r8126  
    2323import javax.persistence.Column; 
    2424import javax.persistence.Entity; 
     25import javax.persistence.GeneratedValue; 
     26import javax.persistence.GenerationType; 
    2527import javax.persistence.Id; 
    2628import javax.persistence.NamedQueries; 
     
    5961        @Id 
    6062        @Column(name="id") 
     63        @GeneratedValue(strategy=GenerationType.AUTO)    
    6164        public Integer getId() { 
    6265                return this.id; 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/discovery/CommonMethods.java

    r8119 r8126  
    6666                                // name? 
    6767                                if (order.getOrderByDirection() != null) { 
    68                                         DiscoveryDictionaryDPWS.OrderDirection direction = DiscoveryDictionaryDPWS.getOrderDirection(order 
     68                                        ListNamesItem direction = DiscoveryDictionaryDPWS.getOrderDirection(order 
    6969                                                        .getOrderByDirection().toString()); 
    7070                                        /* 
     
    7272                                         */ 
    7373                                        orderSQL.append(" "); 
    74                                         orderSQL.append(direction.fieldName()); 
     74                                        orderSQL.append(direction.getName()); 
    7575                                } 
    7676 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/discovery/DiscoveryService.java

    r8123 r8126  
    8989        }        
    9090         
     91        @SuppressWarnings("unchecked") 
    9192        @Override 
    92         public List<?> getAllNamesList() { 
     93        public List<ListNames> getAllNamesList() { 
    9394                Query query = em.createNamedQuery("findAllListNames"); 
    9495                return query.getResultList(); 
     
    9798        @Override 
    9899        public ListNames getNamesListByLabel(String label) { 
    99                 Query query = em.createNamedQuery("findNamesListByLabel"); 
     100                Query query = em.createNamedQuery("findListNamesByLabel"); 
    100101                query.setParameter("label", label); 
    101102                return ListNames.class.cast(query.getSingleResult()); 
     
    104105        @Override 
    105106        public ListNames getNamesListByName(String name) throws NoResultException { 
    106                 Query query = em.createNamedQuery("findNamesListByName"); 
     107                Query query = em.createNamedQuery("findListNamesByName"); 
    107108                query.setParameter("name", name); 
    108109                return ListNames.class.cast(query.getSingleResult()); 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/discovery/PresentHelper.java

    r8119 r8126  
    2525import ndg.services.discovery.basic.DiscoveryDictionaryDPWS; 
    2626import ndg.services.discovery.basic.DiscoveryDictionaryDPWS.OriginalDocumentToTable; 
     27import ndg.services.jpa.ListNamesItem; 
    2728import ndg.services.jpa.OriginalDocument; 
    2829import ndg.services.schemas.revitalization.discovery.BoundingBoxType; 
     
    102103 
    103104                String recDetail = retrieveType == null ? null : retrieveType.getRecordDetail(); 
    104                 DiscoveryDictionaryDPWS.RecordDetail detail = DiscoveryDictionaryDPWS.getRecordDetails(recDetail); 
     105                ListNamesItem detail = DiscoveryDictionaryDPWS.getRecordDetails(recDetail); 
    105106                /** all the IFs should be revisited */ 
    106107                /* 
     
    109110                } 
    110111                */ 
    111                 if (detail.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentBrief)) { 
     112                if (detail.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_BRIEF)) { 
    112113                        checkFROMComma(selectSQL, false); 
    113114                        selectSQL.append(" dataset_name, " + customInfo); 
    114115                } 
    115                 if (detail.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentSummary)) { 
     116                if (detail.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_SUMMARY)) { 
    116117                        checkFROMComma(selectSQL, false); 
    117118                        selectSQL.append(" dataset_name, dataset_abstract, " + customInfo); 
    118119                } 
    119                 if (detail.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentFull)) { 
     120                if (detail.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_FULL)) { 
    120121                        checkFROMComma(selectSQL, false); 
    121122                        selectSQL.append(" dataset_name, dataset_abstract, " + customInfo); 
     
    140141                /* ----- FORMAT ----- */ 
    141142                String formType = retrieveType != null ? retrieveType.getRecordDetail() : null; 
    142                 DiscoveryDictionaryDPWS.RecordDetail details = DiscoveryDictionaryDPWS.getRecordDetails(formType); 
    143                 if (details.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentFull)) { 
     143                ListNamesItem details = DiscoveryDictionaryDPWS.getRecordDetails(formType); 
     144                if (details.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_FULL)) { 
    144145                        String metaFormat = retrieveType == null ? null : retrieveType.getMetadataFormat(); 
    145146                        preapareFormatCondition(selectSQL, fromSQL, whereSQL, metaFormat); 
     
    149150        private void preapareFormatCondition(StringBuffer selectSQL, StringBuffer fromSQL, StringBuffer whereSQL, 
    150151                        String format) { 
    151                 DiscoveryDictionaryDPWS.MetadataFormat docFormat = DiscoveryDictionaryDPWS.getMetadataFormat(format); 
     152                ListNamesItem docFormat = DiscoveryDictionaryDPWS.getMetadataFormat(format); 
    152153 
    153154                checkFROMComma(selectSQL, false); 
     
    162163                whereSQL.append(DiscoveryDictionaryDPWS.TRANSFORMED_DOCUMENT_TABLE); 
    163164                whereSQL.append(".transformed_format = '"); 
    164                 whereSQL.append(docFormat.fieldName()); 
     165                whereSQL.append(docFormat.getName()); 
    165166                whereSQL.append("'"); 
    166167                checkWHERE_AND(whereSQL, false); 
     
    245246                List<OriginalDocument> searchResult = executeSearch(conn, sqlQuery); 
    246247                 
    247                 DiscoveryDictionaryDPWS.RecordDetail detail = DiscoveryDictionaryDPWS.getRecordDetails(type == null ? null : type 
     248                ListNamesItem detail = DiscoveryDictionaryDPWS.getRecordDetails(type == null ? null : type 
    248249                                .getRecordDetail()); 
    249                 if (detail.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentFull) 
    250                                 || detail.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentSummary)) { 
     250                if (detail.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_FULL) 
     251                                || detail.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_SUMMARY)) { 
    251252                        fillSpatialTemporalData(searchResult); 
    252253                } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/discovery/SearchHelper.java

    r8124 r8126  
    1818import ndg.common.exception.ResourceNotAvailable; 
    1919import ndg.services.discovery.basic.DiscoveryDictionaryDPWS; 
    20 import ndg.services.discovery.basic.DiscoveryDictionaryDPWS.TemporalOperator; 
    2120import ndg.services.jpa.ListNames; 
    2221import ndg.services.jpa.ListNamesItem; 
    2322import ndg.services.jpa.OriginalDocument; 
    2423import ndg.services.revitalization.EJBBeanFactory; 
    25 import ndg.services.revitalization.ejb.interfaces.DiscoveryServiceRemote; 
    2624import ndg.services.schemas.revitalization.discovery.BoundingBoxType; 
    2725import ndg.services.schemas.revitalization.discovery.DateRangeType; 
     
    317315 
    318316                DateRangeType dataRangeType = temporalType.getDateRange(); 
    319                 DiscoveryDictionaryDPWS.DateRangeTarget rangeTarget = DiscoveryDictionaryDPWS.getDateRangeTarget(dataRangeType 
     317                ListNamesItem rangeTarget = DiscoveryDictionaryDPWS.getDateRangeTarget(dataRangeType 
    320318                                .getDateRangeTarget()); 
    321319                List<DateValueType> dateValues = dataRangeType.getDate(); 
    322320                boolean secondPass = false; 
    323321 
    324                 TemporalOperator operator = null; 
    325                 if (!rangeTarget.equals(DiscoveryDictionaryDPWS.DateRangeTarget.TemporalCoverage)) { 
     322                ListNamesItem operator = null; 
     323                if (!rangeTarget.getLabel().equals(DiscoveryDictionaryDPWS.TEMPORAL_COVERAGE)) { 
    326324                        for (DateValueType dataValue : dateValues) { 
    327325                                checkWHERE_AND(whereSQL, secondPass); 
    328326                                operator = DiscoveryDictionaryDPWS.getTemporalOperator(dataValue.getTemporalOperator()); 
    329                                 whereSQL.append(" " + rangeTarget.fieldName()); 
    330                                 whereSQL.append(" " + operator.fieldName()); 
     327                                whereSQL.append(" " + rangeTarget.getName()); 
     328                                whereSQL.append(" " + operator.getName()); 
    331329                                whereSQL.append(" '" + dataValue.getDateValue() + "' ");                                         
    332330                                secondPass = true; 
     
    360358                                        whereSQL.append(" " + DiscoveryDictionaryDPWS.TEMPORAL_DATA_TABLE); 
    361359                                        whereSQL.append(".start_time "); 
    362                                         whereSQL.append(" " + operator.fieldName()); 
     360                                        whereSQL.append(" " + operator.getName()); 
    363361                                        whereSQL.append(" '" + dataValue.getDateValue() + "' "); 
    364362                                } else { 
    365363                                        whereSQL.append(" " + DiscoveryDictionaryDPWS.TEMPORAL_DATA_TABLE); 
    366364                                        whereSQL.append(".end_time "); 
    367                                         whereSQL.append(" " + operator.fieldName()); 
     365                                        whereSQL.append(" " + operator.getName()); 
    368366                                        whereSQL.append(" '" + dataValue.getDateValue() + "' "); 
    369367                                } 
     
    415413                } 
    416414 
    417                 DiscoveryDictionaryDPWS.SpatialOperator spatialOperator = DiscoveryDictionaryDPWS.getSpatialOperator(null); 
    418                 DiscoveryDictionaryDPWS.SpatialReferenceSystem spatialReferenceSystem = DiscoveryDictionaryDPWS 
     415                ListNamesItem spatialOperator = DiscoveryDictionaryDPWS.getSpatialOperator(null); 
     416                ListNamesItem spatialReferenceSystem = DiscoveryDictionaryDPWS 
    419417                                .getSpatialReferenceSystem(null); 
    420418 
     
    448446                checkWHERE_AND(whereSQL, false); 
    449447                String spatialPart = DiscoveryDictionaryDPWS.SPATIAL_DATA_TABLE + ".geometry "; 
    450                 if (spatialOperator.equals(DiscoveryDictionaryDPWS.SpatialOperator.OVERLAP)) { 
     448                if (spatialOperator.getLabel().equals(DiscoveryDictionaryDPWS.SPATIAL_OPERATOR_OVERLAP)) { 
    451449                        whereSQL.append(spatialPart); 
    452450                        whereSQL.append(" && "); 
    453                 } else if (spatialOperator.equals(DiscoveryDictionaryDPWS.SpatialOperator.WITHIN)) { 
     451                } else if (spatialOperator.getLabel().equals(DiscoveryDictionaryDPWS.SPATIAL_OPERATOR_WITHIN)) { 
    454452                        whereSQL.append(spatialPart); 
    455453                        whereSQL.append(" @ "); 
    456                 } else if (spatialOperator.equals(DiscoveryDictionaryDPWS.SpatialOperator.DOESNOTOVERLAP)) { 
     454                } else if (spatialOperator.getLabel().equals(DiscoveryDictionaryDPWS.SPATIAL_OPERATOR_DOESNOTOVERLAP)) { 
    457455                        whereSQL.append(" NOT "); 
    458456                        whereSQL.append(spatialPart); 
     
    478476                boolean secondPass = false; 
    479477                for (String scopeLabel : scopes) { 
    480                         DiscoveryDictionaryDPWS.Scope scope = DiscoveryDictionaryDPWS.getScope(scopeLabel); 
     478                        ListNamesItem scope = DiscoveryDictionaryDPWS.getScope(scopeLabel); 
    481479                        //logHelper.logMessage("Scope: " + scope, Level.DEBUG); 
    482480                        if (scope == null) { 
     
    487485                                whereSQL.append(" & "); 
    488486                        }                                
    489                         fromSQL.append(" '" + scope.fieldName() + "' "); 
     487                        fromSQL.append(" '" + scope.getName() + "' "); 
    490488                        secondPass = true; 
    491489                } 
     
    511509                } 
    512510                         
    513                 DiscoveryDictionaryDPWS.OriginalFormat format = DiscoveryDictionaryDPWS.getOriginalFormat(originalFormat); 
     511                ListNamesItem format = DiscoveryDictionaryDPWS.getOriginalFormat(originalFormat); 
    514512                checkWHERE_AND(whereSQL, false); 
    515513                whereSQL.append(DiscoveryDictionaryDPWS.ORIGINAL_DOCUMENT_TABLE); 
    516514                whereSQL.append(".original_format = '"); 
    517                 whereSQL.append(format.fieldName()); 
     515                whereSQL.append(format.getName()); 
    518516                whereSQL.append("' "); 
    519517        } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/interfaces/DiscoveryServiceLocal.java

    r8118 r8126  
    5252        public List<OriginalDocument> searchDocuments(DoSearchType searchType) throws NdgExecutionException; 
    5353         
    54         public List<?> getAllNamesList(); 
     54        public List<ListNames> getAllNamesList(); 
    5555        public ListNames getNamesListByLabel(String label) throws NoResultException; 
    5656        public ListNames getNamesListByName(String name) throws NoResultException;       
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/interfaces/DiscoveryServiceRemote.java

    r8118 r8126  
    5252        public List<OriginalDocument> searchDocuments(DoSearchType searchType) throws NdgExecutionException; 
    5353 
    54         public List<?> getAllNamesList(); 
     54        public List<ListNames> getAllNamesList(); 
    5555        public ListNames getNamesListByLabel(String label) throws NoResultException; 
    5656        public ListNames getNamesListByName(String name) throws NoResultException;       
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/DiscoveryServiceExecutor.java

    r8124 r8126  
    1111import ndg.common.exception.NdgExecutionException; 
    1212import ndg.services.discovery.basic.DiscoveryDictionaryDPWS; 
    13 import ndg.services.discovery.basic.DiscoveryDictionaryDPWS.RecordDetail; 
    1413import ndg.services.jpa.ListNames; 
    1514import ndg.services.jpa.ListNamesItem; 
     
    9594 
    9695                                        RetrieveCriteriaType rct = doSearch.getRetrieveCriteria(); 
    97                                         DiscoveryDictionaryDPWS.RecordDetail type = DiscoveryDictionaryDPWS.getRecordDetails(null); 
     96                                        ListNamesItem type = DiscoveryDictionaryDPWS.getRecordDetails(null); 
    9897                                        List<OrderByType> orderBy = null; 
    9998                                        if (rct != null) { 
     
    159158                        List<OriginalDocument> result = EJBBeanFactory.getDiscoveryService().presentDocuments(doPresent); 
    160159                        String recDetail = retrieveType == null ? null : retrieveType.getRecordDetail(); 
    161                         DiscoveryDictionaryDPWS.RecordDetail detail = DiscoveryDictionaryDPWS.getRecordDetails(recDetail); 
     160                        ListNamesItem detail = DiscoveryDictionaryDPWS.getRecordDetails(recDetail); 
    162161                        if (response.getDocuments() == null) { 
    163162                                response.setDocuments(of.createDocuments()); 
     
    206205        } 
    207206 
    208         private void processResult(List<OriginalDocument> results, Documents documents, RecordDetail type, 
     207        private void processResult(List<OriginalDocument> results, Documents documents, ListNamesItem type, 
    209208                        List<OrderByType> orderBy) throws NdgExecutionException { 
    210209                if (results != null && results.size() == 0) { 
     
    213212                Object documentType = null; 
    214213                for (OriginalDocument result : results) { 
    215                         if (type.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentSimple)) { 
     214                        if (type.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_SIMPLE)) { 
    216215                                documentType = of.createReturnSimpleType(); 
    217216                                documents.getDocumentSimple().add((ReturnSimpleType)documentType); 
     
    224223                         * statement in order to execute the final 'fillOrderedField' -- 
    225224                         */ 
    226                         if (type.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentFull)) { 
     225                        if (type.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_FULL)) { 
    227226                                documentType = of.createReturnFullType(); 
    228227                                documents.getDocumentFull().add((ReturnFullType)documentType);                           
    229228                                fillDocument((ReturnFullType)documentType, result); 
    230229                        } 
    231                         if (type.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentSummary)) { 
     230                        if (type.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_SUMMARY)) { 
    232231                                documentType = of.createReturnSummaryType(); 
    233232                                documents.getDocumentSummary().add((ReturnSummaryType)documentType);                             
    234233                                fillDocument((ReturnSummaryType)documentType, result); 
    235234                        } 
    236                         if (type.equals(DiscoveryDictionaryDPWS.RecordDetail.DocumentBrief)) { 
     235                        if (type.getLabel().equals(DiscoveryDictionaryDPWS.RECORD_DETAIL_DOCUMENT_BRIEF)) { 
    237236                                documentType = of.createReturnBriefType(); 
    238237                                documents.getDocumentBrief().add((ReturnBriefType)documentType);                                 
     
    290289                        ret = of.createOrderingMetricType(); 
    291290                } 
    292                 /* 
    293                 if (ReturnFullType.class.isAssignableFrom(documentType.getClass())) { 
    294                         ReturnFullType tmp = (ReturnFullType) documentType; 
    295                         ret = of.createOrderingMetricType(); 
    296                 } 
    297                 if (ReturnBriefType.class.isAssignableFrom(documentType.getClass())) { 
    298                         ReturnBriefType tmp = (ReturnBriefType) documentType; 
    299                         ret = of.createOrderingMetricType(); 
    300                 } 
    301                 if (ReturnSummaryType.class.isAssignableFrom(documentType.getClass())) { 
    302                         ReturnSummaryType tmp = (ReturnSummaryType) documentType; 
    303                         ret = of.createOrderingMetricType(); 
    304                 } 
    305                 */ 
    306291                return ret; 
    307292        } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/harvest/waf/WAFHarvester.java

    r8121 r8126  
    3434 
    3535import ndg.common.exception.NdgExecutionException; 
     36import ndg.common.http.HTTPHelper; 
    3637import ndg.common.xml.DocumentHelper; 
    37 import ndg.commons.http.HTTPHelper; 
    3838import ndg.services.revitalization.harvest.HarvesterBase; 
    3939import ndg.services.revitalization.jpa.HiProcess; 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/test/java/ndg/services/revitalization/ejb/discovery/DBTestBase.java

    r8123 r8126  
    1919package ndg.services.revitalization.ejb.discovery; 
    2020 
     21import java.io.IOException; 
     22import java.io.InputStream; 
    2123import java.sql.Connection; 
    2224import java.sql.DriverManager; 
    23 import java.util.HashMap; 
    24 import java.util.Map; 
     25import java.util.ArrayList; 
     26import java.util.List; 
    2527 
    2628import javax.persistence.EntityManager; 
     
    3234import ndg.services.revitalization.ejb.HiProcessModel; 
    3335import ndg.services.revitalization.ejb.ModelManager; 
    34 import ndg.services.revitalization.jpa.HiStatus; 
    35 import ndg.services.revitalization.jpa.ServiceConfig; 
    3636 
     37import org.apache.commons.collections.CollectionUtils; 
     38import org.apache.commons.io.IOUtils; 
     39import org.apache.commons.lang.StringUtils; 
    3740import org.hsqldb.jdbc.JDBCDataSource; 
    3841import org.junit.After; 
     
    5760        @Before 
    5861        public void setUp() throws Exception { 
    59                 try { 
    60                         logger.info("Starting in-memory HSQL database for unit tests"); 
    61                         Class.forName("org.hsqldb.jdbcDriver"); 
    62                         connection = DriverManager.getConnection( 
    63                                         "jdbc:hsqldb:mem:unit-testing-jpa", "sa", ""); 
    64                         connection.setAutoCommit(false); 
    65                 } catch (Exception ex) { 
    66                         ex.printStackTrace(); 
    67                         Assert.fail("Exception during HSQL database startup."); 
    68                 } 
    69  
    70                  
    7162                DiscoveryService discoveryService = new DiscoveryService(getDiscoveryDBds(), getDiscoveryEntityManager()); 
    7263                HiProcessModel hiProcessModel = new HiProcessModel(getDPWSEntityManager()); 
    7364                ModelManager modelManager = new ModelManager(getDPWSEntityManager(), getDiscoveryEntityManager(), hiProcessModel, null);                 
    7465                EJBBeanFactory.overrideEJBBeans(discoveryService, modelManager); 
    75         initializeServiceConfig();               
    76                 initializeHiStatus();             
     66                initializeDiscoveryDB(); 
     67                initializeDPWSDB();              
    7768        } 
    7869 
     
    10091        }        
    10192 
     93        DataSource getDiscoveryDBds() { 
     94                if (discoveryDBds == null) { 
     95                        logger.info("Building Discovery DataSource for unit tests");  
     96            JDBCDataSource ds = new JDBCDataSource(); 
     97            ds.setUrl("jdbc:hsqldb:mem:discoveryDB"); 
     98            ds.setUser("sa"); 
     99            ds.setPassword(""); 
     100                        discoveryDBds = ds; 
     101                } 
     102                return discoveryDBds; 
     103        }        
     104         
    102105        private EntityManagerFactory getDiscoveryEntityManagerFactory() { 
    103106                if (discoveryEntityManagerFactory == null) { 
     
    132135        } 
    133136         
    134         DataSource getDiscoveryDBds() { 
    135                 if (discoveryDBds == null) { 
    136                         logger.info("Building Discovery DataSource for unit tests");  
    137             JDBCDataSource ds = new JDBCDataSource(); 
    138             ds.setUrl("jdbc:hsqldb:mem:unit-testing-jpa"); 
    139             ds.setUser("sa"); 
    140             ds.setPassword(""); 
    141                         discoveryDBds = ds; 
     137        private List<String> getInserts(String fileName) { 
     138                InputStream is = getClass().getClassLoader().getResourceAsStream(fileName); 
     139                List<String> inserts = null; 
     140                try { 
     141                        inserts = IOUtils.readLines(is); 
     142                } catch (IOException e) { 
     143                        e.printStackTrace(); 
    142144                } 
    143                 return discoveryDBds; 
     145                return CollectionUtils.isEmpty(inserts) ? new ArrayList<String>() : inserts; 
    144146        } 
    145147         
    146         private void initializeHiStatus() { 
    147                 Map<String, String> hiStatusMap = new HashMap<String, String>(); 
    148                 hiStatusMap.put("start_harv", "The harvesting process is starting"); 
    149                 hiStatusMap.put("run_harv", "The harvesting process is running"); 
    150                 hiStatusMap.put("end_harv", "The harvesting process is terminated"); 
    151                 hiStatusMap.put("start_ingest", "The ingest process is starting"); 
    152                 hiStatusMap.put("run_ingest", "The ingest process is running"); 
    153                 hiStatusMap.put("end_ingest", "The ingest process is terminated"); 
    154                 hiStatusMap.put("run_harv", "The Harvesting process has failed"); 
    155                 hiStatusMap.put("failed_harv", "The harvesting process is running"); 
    156                 hiStatusMap.put("failed_ingest", "The Ingest process has failed"); 
    157                  
    158                 getDPWSEntityManager().getTransaction().begin(); 
    159                 HiStatus hiStatus = null; 
    160                 for (String key : hiStatusMap.keySet()) { 
    161                         hiStatus = new HiStatus(); 
    162                         hiStatus.setId(key); 
    163                         hiStatus.setDescription(hiStatusMap.get(key)); 
    164                         getDPWSEntityManager().persist(hiStatus);                        
     148        private void initializeDB(EntityManager entityManager, List<String> inserts) { 
     149                entityManager.getTransaction().begin(); 
     150                for (String insert : inserts) { 
     151                        if (StringUtils.isEmpty(insert) || insert.startsWith("#")) { 
     152                                continue; 
     153                        } 
     154                        if (StringUtils.contains(insert, "${TEST_PATH}")) { 
     155                                insert = StringUtils.replaceOnce(insert, "${TEST_PATH}", getClass().getClassLoader().getResource(".").getPath()); 
     156                                logger.debug("insert: " + insert); 
     157                        }                        
     158                        logger.debug("insert: " + insert); 
     159                        entityManager.createNativeQuery(insert).executeUpdate(); 
    165160                } 
    166                 getDPWSEntityManager().getTransaction().commit(); 
     161                entityManager.getTransaction().commit(); 
    167162        } 
    168163         
    169         private void initializeServiceConfig() { 
    170                 Map<String, String> serviceConfigMap = new HashMap<String, String>(); 
    171                 serviceConfigMap.put("HARVEST_ROOT_PATH", getClass().getClassLoader().getResource(".").getPath()); 
    172                 getDPWSEntityManager().getTransaction().begin(); 
    173                 ServiceConfig serviceConfig = null; 
    174                 for (String key : serviceConfigMap.keySet()) { 
    175                         serviceConfig = new ServiceConfig(); 
    176                         serviceConfig.setParamName(key); 
    177                         serviceConfig.setParamValue(serviceConfigMap.get(key)); 
    178                         getDPWSEntityManager().persist(serviceConfig);   
    179                 } 
    180                 getDPWSEntityManager().getTransaction().commit(); 
     164        private void initializeDPWSDB() { 
     165                initializeDB(getDPWSEntityManager(),  getInserts("DPWS.sql")); 
     166        } 
     167         
     168        private void initializeDiscoveryDB() { 
     169                initializeDB(getDiscoveryEntityManager(),  getInserts("Discovery.sql")); 
    181170        } 
    182171} 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/test/resources/Discovery.sql

    r8118 r8126  
    1 CREATE SEQUENCE names_id_seq; 
     1#Initialise ListNames 
     2INSERT INTO list_names (id,name,label) VALUES (1,'TermTarget','TermTargetList'); 
     3INSERT INTO list_names (id,name,label) VALUES (2,'OriginalFormat','OriginalFormatList'); 
     4INSERT INTO list_names (id,name,label) VALUES (3,'OrderByField','OrderByFieldList'); 
     5INSERT INTO list_names (id,name,label) VALUES (5,'Scope','ScopeList'); 
     6INSERT INTO list_names (id,name,label) VALUES (6,'SpatialOperator','SpatialOperatorList'); 
     7INSERT INTO list_names (id,name,label) VALUES (7,'SpatialReferenceSystem','SpatialReferenceSystemList'); 
     8INSERT INTO list_names (id,name,label) VALUES (8,'DateRangeTarget','DateRangeTargetList'); 
     9INSERT INTO list_names (id,name,label) VALUES (9,'TemporalOperator','TemporalOperatorList'); 
     10INSERT INTO list_names (id,name,label) VALUES (10,'MetadataFormat','MetadataFormatList'); 
     11INSERT INTO list_names (id,name,label) VALUES (11,'RecordDetail','RecordDetailList'); 
     12INSERT INTO list_names (id,name,label) VALUES (12,'OrderDirection','OrderDirectionList'); 
    213 
    3 CREATE TABLE list_names 
    4 ( 
    5   id integer NOT NULL DEFAULT NEXT VALUE FOR 'names_id_seq', 
    6   "name" character varying(100) NOT NULL, 
    7   label text NOT NULL, 
    8   CONSTRAINT names_pkey PRIMARY KEY (id) 
    9 ) 
    10 WITH ( 
    11   OIDS=FALSE 
    12 ); 
    13 ALTER TABLE list_names OWNER TO badc; 
     14#Initialise ListNamesItems 
     15INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (1,1,'document_ts_vector','FullText',true,true,null); 
     16INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (2,1,'authors_ts_vector','Author',false,true,null); 
     17INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (3,1,'parameters_ts_vector','Parameters',false,true,null); 
     18INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (4,1,'resource_type_ts_vector','ResourceType',false,true,null); 
     19INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (5,1,'topic_category_ts_vector','TopicCategory',false,true,null); 
     20INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (6,1,'lineage_ts_vector','Lineage',false,true,null); 
     21INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (7,1,'limitations_public_access_ts_vector','PublicAccessLimits',false,true,null); 
     22INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (8,1,'data_originator_tsvector','DataOriginator',false,true,null); 
     23INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (9,1,'original_format_name','DataFormat',false,false,null); 
     24INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (10,1,'data_formats','AvailableDataFormats',false,false,null); 
     25INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (11,1,'inspire_themes_ts_vector','InspireThemes',false,true,null); 
     26INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (12,1,'vertical_extent_ts_vector','VerticalExtent',false,true,null); 
     27INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (13,2,'DIF_9.4','DIF_9.4',false,false,null); 
     28INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (14,2,'MEDIN_2.3','MEDIN_2.3',false,false,null); 
     29INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (15,2,'ISO19115','ISO19115',false,false,null); 
     30INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (16,3,'original_document.dataset_start_date_nom','DatasetStartDate',false,false,'datasetStartDateNom'); 
     31INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (17,3,'original_document.dataset_end_date_nom','DatasetEndDate',false,false,'datasetEndDateNom'); 
     32INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (18,3,'original_document.datacentre_name','DataCenter',false,false,'datacentreName'); 
     33INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (19,3,'original_document.update_date','DatasetUpdateOrder',false,false,'updateDate'); 
     34INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (20,3,'original_document.create_date','DiscoveryIngestDate',false,false,'createDate'); 
     35INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (21,3,'original_document.dataset_metadata_update_date','DatasetMetadataUpdateDate',false,false,'datasetMetadataUpdateDate'); 
     36INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (22,3,'original_document.dataset_name','DiscoveryTitle',false,false,'datasetName'); 
     37INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (23,5,'MDIP','MDIP',false,false,null); 
     38INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (24,5,'MDIP','MDIP',false,false,null); 
     39INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (25,5,'NERC_DDC','NERC_DDC',false,false,null); 
     40INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (26,5,'NERC','NERC',false,false,null); 
     41INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (27,5,'DPPP','DPPP',false,false,null); 
     42INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (28,6,'Overlaps','Overlaps',true,false,null); 
     43INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (29,6,'DoesNotOverlap','DoesNotOverlap',false,false,null); 
     44INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (30,6,'Within','Within',false,false,null); 
     45INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (31,7,'EPSG4326','EPSG4326',false,false,null); 
     46INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (32,8,'TemporalCoverage','TemporalCoverage',true,false,null); 
     47INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (33,8,'dataset_metadata_update_date','LastRevisionDate',false,false,null); 
     48INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (34,8,'update_date','DiscoveryIngestDate',false,false,null); 
     49INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (35,9,'=','Equals',false,false,null); 
     50INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (36,9,'<>','DoesNotEqual',false,false,null); 
     51INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (37,9,'<=','OnOrBefore',false,false,null); 
     52INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (38,9,'>=','OnOrAfter',true,false,null); 
     53INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (39,9,'<','Before',false,false,null); 
     54INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (40,9,'>','After',false,false,null); 
     55INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (41,10,'DIF_9.4','DIF_9.4',false,false,null); 
     56INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (42,10,'DC','DC',false,false,null); 
     57INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (43,10,'MEDIN_2.3','MEDIN_2.3',false,false,null); 
     58INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (44,10,'ISO19115','ISO19115',false,false,null); 
     59INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (45,10,'NERC_DMS_0.7','NERC_DMS_0.7',true,false,null); 
     60INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (46,11,'Simple','DocumentSimple',true,false,null); 
     61INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (47,11,'Brief','DocumentBrief',false,false,null); 
     62INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (48,11,'Summary','DocumentSummary',false,false,null); 
     63INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (49,11,'Full','DocumentFull',false,false,null); 
     64INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (50,12,'DESC','descending',true,false,null); 
     65INSERT INTO list_names_item (id,list_names_id,name,label,default_,term_target_vector,order_by_field_od_field) VALUES (51,12,'ASC','ascending',false,false,null); 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/test/resources/META-INF/persistence.xml

    r8121 r8126  
    1010                <class>ndg.services.jpa.ListNamesItem</class> 
    1111                <properties> 
    12                         <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:discovery-unit-testing" /> 
     12                        <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:discoveryDB" /> 
    1313                        <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" /> 
    1414                        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> 
     
    3131                <class>ndg.services.revitalization.jpa.ServiceConfig</class>             
    3232                <class>ndg.services.revitalization.jpa.HarvestLog</class>                
     33                <class>ndg.services.revitalization.jpa.ServiceParameter</class>          
     34                <class>ndg.services.revitalization.jpa.ServiceParameterValue</class>             
    3335                <properties> 
    34                         <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:dpws-unit-testing" /> 
     36                        <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:discoveryDPWS" /> 
    3537                        <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" /> 
    3638                        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> 
Note: See TracChangeset for help on using the changeset viewer.