Changeset 7312 for RevitalizationWS


Ignore:
Timestamp:
10/08/10 16:58:22 (9 years ago)
Author:
mnagni
Message:

major commit for the application structure. Merged the implementation for the new/update Provider.
Implemented the GetHarvestHistory? and partially the GetIngestHistory?

Location:
RevitalizationWS/ws/DPWS/trunk
Files:
7 added
1 deleted
23 edited
2 moved

Legend:

Unmodified
Added
Removed
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/MailHelper.java

    r7301 r7312  
    1 package ndg.services.revitalization.executor; 
     1package ndg.services.revitalization; 
    22 
    33import java.util.ArrayList; 
     
    66import ndg.common.MessageFormatter; 
    77import ndg.common.exception.NdgExecutionException; 
    8 import ndg.services.revitalization.EJBBeanFactory; 
    98import ndg.services.revitalization.dictionary.ServiceConfigurationParameter; 
    109import ndg.services.revitalization.ejb.interfaces.ModelManagerRemote; 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/DPWS.java

    r7301 r7312  
    99import ndg.services.revitalization.ejb.interfaces.DPWSRemote; 
    1010import ndg.services.revitalization.executor.ExecuteDoNewProvider; 
     11import ndg.services.revitalization.executor.ExecuteGetHarvestHistory; 
     12import ndg.services.revitalization.executor.ExecuteGetIngestHistory; 
    1113import ndg.services.revitalization.executor.ExecuteGetList; 
    1214import ndg.services.revitalization.executor.ExecuteGetListNames; 
    1315import ndg.services.revitalization.executor.ExecuteGetProcessStatusRequest; 
     16import ndg.services.revitalization.executor.ExecuteGetProviderDetails; 
    1417import ndg.services.revitalization.executor.ExecuteHarvest; 
    1518import ndg.services.revitalization.executor.ServiceExecutor; 
    16 import ndg.services.schemas.revitalization.DoConfigureProviderDetails; 
    17 import ndg.services.schemas.revitalization.DoConfigureProviderDetailsReturn; 
    1819import ndg.services.schemas.revitalization.DoHarvestRequest; 
    1920import ndg.services.schemas.revitalization.DoHarvestResponse; 
    2021import ndg.services.schemas.revitalization.DoIngestRequest; 
    21 import ndg.services.schemas.revitalization.DoIngestReturn; 
    22 import ndg.services.schemas.revitalization.DoNewProviderRequest; 
    23 import ndg.services.schemas.revitalization.DoNewProviderResponse; 
    24 import ndg.services.schemas.revitalization.GetHarvestHistoryRequest; 
    25 import ndg.services.schemas.revitalization.GetHarvestHistoryReturn; 
    26 import ndg.services.schemas.revitalization.GetIngestHistoryRequest; 
    27 import ndg.services.schemas.revitalization.GetIngestHistoryReturn; 
     22import ndg.services.schemas.revitalization.DoIngestResponse; 
     23import ndg.services.schemas.revitalization.DoNewUpdateProviderRequest; 
     24import ndg.services.schemas.revitalization.DoNewUpdateProviderResponse; 
     25import ndg.services.schemas.revitalization.GetHarvestHistoryResponse; 
     26import ndg.services.schemas.revitalization.GetHistoryRequest; 
     27import ndg.services.schemas.revitalization.GetIngestHistoryResponse; 
    2828import ndg.services.schemas.revitalization.GetListNamesResponse; 
    2929import ndg.services.schemas.revitalization.GetListResponse; 
     
    3333import ndg.services.schemas.revitalization.GetProviderDetailsRequest; 
    3434import ndg.services.schemas.revitalization.GetProviderDetailsResponse; 
    35 import ndg.services.schemas.revitalization.GetProviderStatsRequest; 
    36 import ndg.services.schemas.revitalization.GetProviderStatsReturn; 
    37 import ndg.services.schemas.revitalization.GetUsageStatsRequest; 
    38 import ndg.services.schemas.revitalization.GetUsageStatsReturn; 
    3935import ndg.services.schemas.revitalization.ObjectFactory; 
    4036 
     
    6662        } 
    6763         
    68         @WebMethod(operationName="doNewProvider") 
    69         public DoNewProviderResponse doNewProvider(@WebParam(name="request") DoNewProviderRequest request) { 
    70                 ServiceExecutor<DoNewProviderRequest, DoNewProviderResponse> executor = new ExecuteDoNewProvider(); 
     64        @WebMethod(operationName="doNewUpdateProvider") 
     65        public DoNewUpdateProviderResponse doNewProvider(@WebParam(name="request") DoNewUpdateProviderRequest request) { 
     66                ServiceExecutor<DoNewUpdateProviderRequest, DoNewUpdateProviderResponse> executor = new ExecuteDoNewProvider(); 
    7167                return executor.doService(request); 
    7268        }        
     
    7874        }                
    7975         
    80         @WebMethod(operationName="doIngest") 
    81         public DoIngestReturn doIngest(@WebParam(name="request") DoIngestRequest request) { 
    82                 return of.createDoIngestReturn(); 
    83         }        
    84          
    85         @WebMethod(operationName="doConfigureProviderDetails") 
    86         public DoConfigureProviderDetailsReturn doConfigureProviderDetails(@WebParam(name="request") DoConfigureProviderDetails request) { 
    87                 return of.createDoConfigureProviderDetailsReturn();  
     76        @WebMethod(operationName="getProviderDetails") 
     77        public GetProviderDetailsResponse getProviderDetails(@WebParam(name="request") GetProviderDetailsRequest request) { 
     78                ServiceExecutor<GetProviderDetailsRequest, GetProviderDetailsResponse> executor = new ExecuteGetProviderDetails(); 
     79                return executor.doService(request);  
    8880        } 
    8981         
    9082        @WebMethod(operationName="getHarvestHistory") 
    91         public GetHarvestHistoryReturn getHarvestHistory(@WebParam(name="request") GetHarvestHistoryRequest request) { 
    92                 return of.createGetHarvestHistoryReturn(); 
     83        public GetHarvestHistoryResponse getHarvestHistory(@WebParam(name="request") GetHistoryRequest request) { 
     84                ServiceExecutor<GetHistoryRequest, GetHarvestHistoryResponse> executor = new ExecuteGetHarvestHistory(); 
     85                return executor.doService(request);  
    9386        } 
    9487         
    9588        @WebMethod(operationName="getIngestHistory") 
    96         public GetIngestHistoryReturn getIngestHistory(@WebParam(name="request") GetIngestHistoryRequest request) { 
    97                 return of.createGetIngestHistoryReturn(); 
     89        public GetIngestHistoryResponse getIngestHistory(@WebParam(name="request") GetHistoryRequest request) { 
     90                ServiceExecutor<GetHistoryRequest, GetIngestHistoryResponse> executor = new ExecuteGetIngestHistory(); 
     91                return executor.doService(request); 
    9892        } 
    9993         
    100         @WebMethod(operationName="getProviderDetails") 
    101         public GetProviderDetailsResponse getProviderDetails(@WebParam(name="request") GetProviderDetailsRequest request) { 
    102                 return of.createGetProviderDetailsResponse(); 
    103         } 
    104          
    105         @WebMethod(operationName="getProviderStats") 
    106         public GetProviderStatsReturn getProviderStats(@WebParam(name="request") GetProviderStatsRequest request) { 
    107                 return of.createGetProviderStatsReturn(); 
    108         } 
    109          
    110         @WebMethod(operationName="getUsageStats") 
    111         public GetUsageStatsReturn getUsageStats(@WebParam(name="request") GetUsageStatsRequest request) { 
    112                 return of.createGetUsageStatsReturn(); 
     94        @WebMethod(operationName="doIngest") 
     95        public DoIngestResponse doIngest(@WebParam(name="request") DoIngestRequest request) { 
     96                return of.createDoIngestResponse(); 
    11397        } 
    11498} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/HiProcessModel.java

    r7282 r7312  
    4242        @Override 
    4343        @TransactionAttribute(value=TransactionAttributeType.REQUIRES_NEW)  
    44         public HiProcess createNewProcess() { 
     44        public HiProcess createNewProcess(int providerID) { 
    4545                HiProcess hiProcess = new HiProcess(); 
     46                hiProcess.setProviderId(providerID); 
    4647                hiProcess.setHiStatus(em.find(HiStatus.class, "start_harv")); 
    4748                em.persist(hiProcess); 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/ModelManager.java

    r7302 r7312  
    11package ndg.services.revitalization.ejb; 
    22 
     3import java.sql.Timestamp; 
    34import java.util.ArrayList; 
     5import java.util.Calendar; 
     6import java.util.Iterator; 
    47import java.util.List; 
    58 
     
    1720import ndg.services.revitalization.ejb.interfaces.ModelManagerLocal; 
    1821import ndg.services.revitalization.ejb.interfaces.ModelManagerRemote; 
     22import ndg.services.revitalization.executor.ProviderLogs; 
    1923import ndg.services.revitalization.harvest.Harvester; 
    2024import ndg.services.revitalization.jpa.HarvestLog; 
    2125import ndg.services.revitalization.jpa.HiProcess; 
     26import ndg.services.revitalization.jpa.IngestSearchLogging; 
    2227import ndg.services.revitalization.jpa.ProviderCommon; 
    2328import ndg.services.revitalization.jpa.ProviderEmail; 
     
    3540        private final static String GET_CONFIGURATION_PARAMETER = "from ServiceConfig p where p.id=:id"; 
    3641        private final static String GET_PROVIDER_COMMON = "from ProviderCommon p where p.id=:id"; 
    37         private final static String GET_OAI_PROVIDER = "from OaiProvider p where p.commonId=:id"; 
    38         private final static String GET_CSW_PROVIDER = "from CswProvider p where p.commonId=:id"; 
    39          
     42        private final static String GET_OAI_PROVIDER = "from OaiProvider p where p.id=:id"; 
     43        private final static String GET_CSW_PROVIDER = "from CswProvider p where p.id=:id"; 
     44        private final static String GET_INGESTER_HISTORY = "from IngestSearchLogging p where p.id IN (:processIDs)"; 
     45        private final static String GET_HARVEST_HISTORY = "from HarvestLog p where p.reqId IN (:processIDs)"; 
     46        private final static String GET_HARVEST_LOG_BY_PROVIDER = "select l, p.providerId from HarvestLog l, HiProcess p  where l.reqId=p.id and p.providerId=:providerID and l.startHarvest >= :start and l.stopHarvest <= :end"; 
     47        private final static String GET_HARVEST_LOG_ALL_PROVIDER = "select l, p.providerId from HarvestLog l, HiProcess p  where l.reqId=p.id and l.startHarvest >= :start and l.stopHarvest <= :end"; 
     48 
    4049        @PersistenceContext(unitName = "discoveryDPWS") 
    4150        private EntityManager em; 
     
    6574        } 
    6675 
    67         public HarvestLog getHarvestLog(int id) { 
    68                 return em.find(HarvestLog.class, id); 
     76        /** 
     77         * Return a <code>List</code> of {@link HarvestLog} selected by period 
     78         * and/or providerID. 
     79         *  
     80         * @param start 
     81         *            the oldest harvest logged operation to look for. If 
     82         *            <code>null</code> the parameter is set to 100 years ago 
     83         * @param end 
     84         *            the earliest harvest logged operation to look for. If 
     85         *            <code>null</code> the parameter is set to now() 
     86         * @param providerId 
     87         *            the providerID for which logs are required. If 
     88         *            <code>null</code> all the provider's logs in the interval are 
     89         *            retrieved 
     90         * @return a <code>List</code> of {@link HarvestLog} 
     91         * */ 
     92        public List<ProviderLogs> getHarvestByProvider(Timestamp start, Timestamp end, int providerId) { 
     93                Query query = null; 
     94                if (Double.isNaN(providerId)) { 
     95                        query = em.createQuery(GET_HARVEST_LOG_BY_PROVIDER); 
     96                        query.setParameter("providerID", providerId); 
     97                } else { 
     98                        query = em.createQuery(GET_HARVEST_LOG_ALL_PROVIDER); 
     99                } 
     100 
     101                query.setParameter("start", start); 
     102                query.setParameter("end", end); 
     103 
     104                if (start == null) { 
     105                        Calendar date = Calendar.getInstance(); 
     106                        date.set(Calendar.YEAR, -100); 
     107                        query.setParameter("start", new Timestamp(date.getTimeInMillis())); 
     108                } 
     109 
     110                if (end == null) 
     111                        query.setParameter("end", new Timestamp(Calendar.getInstance().getTimeInMillis())); 
     112                 
     113                List<ProviderLogs> ret = new ArrayList<ProviderLogs>(); 
     114                ProviderLogs tempLogs = null; 
     115                for (Iterator iter = query.getResultList().iterator() ; iter.hasNext() ;) {                      
     116                        Object[] resultElement = (Object[])iter.next(); 
     117                        tempLogs = new ProviderLogs((Integer)resultElement[1]); 
     118                        if (tempLogs.getProviderID() == null) 
     119                                continue; 
     120                        int index = ret.indexOf(tempLogs);  
     121                        if (index > -1){ 
     122                                tempLogs = ret.get(index); 
     123                        } else {                                 
     124                                ret.add(tempLogs);       
     125                        } 
     126                        tempLogs.getLogs().add((HarvestLog)resultElement[0]); 
     127                } 
     128                return ret; 
     129        } 
     130 
     131        public List<IngestSearchLogging> getIngestLogs(List<Integer> processIds) { 
     132                Query query = em.createQuery(GET_INGESTER_HISTORY); 
     133                query.setParameter("processIds", processIds); 
     134                return (List<IngestSearchLogging>) query.getResultList(); 
     135        } 
     136 
     137        public List<HarvestLog> getHarvestLog(List<Integer> processIds) { 
     138                Query query = em.createQuery(GET_HARVEST_HISTORY); 
     139                query.setParameter("processIds", processIds); 
     140                return (List<HarvestLog>) query.getResultList(); 
    69141        } 
    70142 
    71143        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW) 
    72         public void updateHarvestingLogAndStatus(HiProcess hiProcess, 
    73                         HarvestLog harvestLog) { 
     144        public void updateHarvestingLogAndStatus(HiProcess hiProcess, HarvestLog harvestLog) { 
    74145                // set the process's status to run_harvest 
    75146                processModel.advanceStatus(hiProcess); 
    76                 HarvestLog existingLog = em.find(HarvestLog.class, harvestLog 
    77                                 .getReqId()); 
     147                HarvestLog existingLog = em.find(HarvestLog.class, harvestLog.getReqId()); 
    78148                if (existingLog == null) { 
    79149                        em.persist(harvestLog); 
     
    85155        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW) 
    86156        public <T extends ProviderCommon> void createNewProvider(T provider) { 
    87                 em.persist(provider); 
    88                 int id = provider.getId(); 
    89                 for (ProviderEmail email : provider.getProviderEmails()) { 
    90                         email.setCommonId(id); 
     157                if (provider.getId() == null) { 
     158                        em.persist(provider); 
     159                        int id = provider.getId(); 
     160                        for (ProviderEmail email : provider.getProviderEmails()) { 
     161                                email.setCommonId(id); 
     162                        } 
     163                } else { 
     164                        ProviderCommon oldProvider = em.find(ProviderCommon.class, provider.getId()); 
     165 
     166                        Iterator<ProviderEmail> iterator = oldProvider.getProviderEmails().iterator(); 
     167                        ProviderEmail item = null; 
     168                        while (iterator.hasNext()) { 
     169                                item = iterator.next(); 
     170                                if (!provider.getProviderEmails().contains(item)) 
     171                                        em.remove(item); 
     172                        } 
    91173                } 
    92174                em.merge(provider); 
    93175        } 
    94176 
    95         public HiProcess createNewProcess() { 
    96                 return processModel.createNewProcess(); 
     177        public HiProcess createNewProcess(int providerID) { 
     178                return processModel.createNewProcess(providerID); 
    97179        } 
    98180 
     
    107189                if (values == null || values.size() == 0) 
    108190                        return null; 
    109                 return values.get(0);    
    110         } 
    111          
     191                return values.get(0); 
     192        } 
     193 
    112194        public String getConfigurationParameter(String parameterName) { 
    113195                Query query = em.createQuery(GET_CONFIGURATION_PARAMETER); 
     
    118200                return values.get(0).getParamValue(); 
    119201        } 
    120          
     202 
    121203        /** 
    122          * Returns the {@link Harvester} associated with the given parameters.  
    123          * @param providerID the providerID 
    124          * @return an Harvester instance, otherwise <code>null</code>  
     204         * Returns the {@link Harvester} associated with the given parameters. 
     205         *  
     206         * @param providerID 
     207         *            the providerID 
     208         * @return an Harvester instance, otherwise <code>null</code> 
    125209         * */ 
    126         public ProviderCommon getHarvesterConfiguration(int commonID){ 
     210        public ProviderCommon getHarvesterConfiguration(int commonID) { 
    127211                ProviderCommon ret = null; 
    128212                ret = getProvider(commonID, GET_OAI_PROVIDER); 
    129213                if (ret == null) 
    130214                        ret = getProvider(commonID, GET_CSW_PROVIDER); 
    131                  
    132                 return ret; 
    133         } 
    134          
     215 
     216                return ret; 
     217        } 
     218 
     219        @Override 
     220        public List<? extends ProviderCommon> getHarvesterConfiguration(List<Integer> commonIDs) { 
     221                List<ProviderCommon> ret = new ArrayList<ProviderCommon>(); 
     222                if (commonIDs == null || commonIDs.size() == 0) 
     223                        return ret; 
     224                ProviderCommon provider = null; 
     225                for (Integer id : commonIDs) { 
     226                        provider = getHarvesterConfiguration(id); 
     227                        if (provider != null) 
     228                                ret.add(provider); 
     229                } 
     230                return ret; 
     231        } 
     232 
    135233        private <T extends ProviderCommon> T getProvider(int id, String queryText) { 
    136234                Query query = em.createQuery(queryText); 
     
    141239                return values.get(0); 
    142240        } 
    143          
    144          
     241 
    145242} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/interfaces/HiProcessModelLocal.java

    r7282 r7312  
    99public interface HiProcessModelLocal { 
    1010 
    11         public HiProcess createNewProcess(); 
     11        public HiProcess createNewProcess(int providerID); 
    1212        public HiProcess advanceStatus(HiProcess hiProcess); 
    1313        public List<HiProcess> getHiProcess(List<Integer> processIDs); 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/interfaces/ModelManagerLocal.java

    r7302 r7312  
    11package ndg.services.revitalization.ejb.interfaces; 
     2import java.sql.Timestamp; 
    23import java.util.List; 
    34 
    45import javax.ejb.Local; 
    56 
     7import ndg.services.revitalization.executor.ProviderLogs; 
    68import ndg.services.revitalization.jpa.HarvestLog; 
    79import ndg.services.revitalization.jpa.HiProcess; 
    8 import ndg.services.revitalization.jpa.OaiProvider; 
     10import ndg.services.revitalization.jpa.IngestSearchLogging; 
    911import ndg.services.revitalization.jpa.ProviderCommon; 
    1012 
     
    2830        public void updateHarvestingLogAndStatus(HiProcess hiProcess, HarvestLog harvestLog); 
    2931         
    30         public HarvestLog getHarvestLog(int id); 
     32        public List<HarvestLog> getHarvestLog(List<Integer> processIds); 
    3133         
    32         public HiProcess createNewProcess(); 
     34        public List<ProviderLogs> getHarvestByProvider(Timestamp start, Timestamp end, int providerId); 
     35         
     36        public List<IngestSearchLogging> getIngestLogs(List<Integer> processIds); 
     37         
     38        public HiProcess createNewProcess(int providerID); 
    3339         
    3440        public List<HiProcess> getHiProcess(List<Integer> processIDs); 
     
    3844        public String getConfigurationParameter(String param); 
    3945         
    40         public ProviderCommon getHarvesterConfiguration(int commonID); 
     46        public List<? extends ProviderCommon> getHarvesterConfiguration(List<Integer> commonIDs); 
    4147} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/interfaces/ModelManagerRemote.java

    r7302 r7312  
    11package ndg.services.revitalization.ejb.interfaces; 
     2import java.sql.Timestamp; 
    23import java.util.List; 
    34 
    45import javax.ejb.Remote; 
    56 
     7import ndg.services.revitalization.executor.ProviderLogs; 
    68import ndg.services.revitalization.jpa.HarvestLog; 
    79import ndg.services.revitalization.jpa.HiProcess; 
     10import ndg.services.revitalization.jpa.IngestSearchLogging; 
    811import ndg.services.revitalization.jpa.ProviderCommon; 
    912 
     
    2831        public void updateHarvestingLogAndStatus(HiProcess hiProcess, HarvestLog harvestLog); 
    2932         
    30         public HarvestLog getHarvestLog(int id); 
     33        public List<HarvestLog> getHarvestLog(List<Integer> processIds); 
    3134         
    32         public HiProcess createNewProcess(); 
     35        public List<ProviderLogs> getHarvestByProvider(Timestamp start, Timestamp end, int providerId); 
     36         
     37        public List<IngestSearchLogging> getIngestLogs(List<Integer> processIds); 
     38         
     39        public HiProcess createNewProcess(int providerID); 
    3340         
    3441        public List<HiProcess> getHiProcess(List<Integer> processIDs); 
     
    3845        public String getConfigurationParameter(String parameterName); 
    3946         
    40         public ProviderCommon getHarvesterConfiguration(int commonID); 
     47        public <T extends ProviderCommon> T getHarvesterConfiguration(int commonID); 
     48         
     49        public List<? extends ProviderCommon> getHarvesterConfiguration(List<Integer> commonIDs); 
    4150         
    4251        public ProviderCommon getProviderCommon(int commonId); 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/executor/ExecuteDoNewProvider.java

    r7301 r7312  
    22 
    33import java.util.ArrayList; 
     4import java.util.Iterator; 
    45import java.util.List; 
    56 
     
    78import ndg.common.exception.NdgExecutionException; 
    89import ndg.services.revitalization.EJBBeanFactory; 
    9 import ndg.services.revitalization.ProviderFactory; 
    1010import ndg.services.revitalization.jpa.ProviderCommon; 
    1111import ndg.services.revitalization.jpa.ProviderEmail; 
    12 import ndg.services.schemas.revitalization.DoNewProviderRequest; 
    13 import ndg.services.schemas.revitalization.DoNewProviderResponse; 
     12import ndg.services.schemas.revitalization.DoNewUpdateProviderRequest; 
     13import ndg.services.schemas.revitalization.DoNewUpdateProviderResponse; 
    1414import ndg.services.schemas.revitalization.EmailContactType; 
    1515import ndg.services.schemas.revitalization.ProviderCommonType; 
     
    1717import ndg.services.schemas.revitalization.ProviderCommonType.ProviderAdminEmail; 
    1818 
    19 public class ExecuteDoNewProvider extends ServiceExecutor<DoNewProviderRequest, DoNewProviderResponse> { 
     19public class ExecuteDoNewProvider extends ServiceExecutor<DoNewUpdateProviderRequest, DoNewUpdateProviderResponse> { 
    2020 
    2121        @Override 
    22         protected DoNewProviderResponse createResponse() { 
    23                 return getOf().createDoNewProviderResponse(); 
     22        protected DoNewUpdateProviderResponse createResponse() { 
     23                return getOf().createDoNewUpdateProviderResponse(); 
    2424        } 
    2525 
    2626        @Override 
    27         protected void execute(DoNewProviderRequest request) 
     27        protected void execute(DoNewUpdateProviderRequest request) 
    2828                        throws NdgExecutionException { 
    29                 ProviderDetail pdetails = request.getDoNewProvider(); 
     29                ProviderDetail pdetails = request.getDoNewUpdateProvider(); 
    3030                if (pdetails == null) 
    3131                        throw new NdgExecutionException(new NdgMessage("null.object", new Object[]{"NewProviderDetails"})); 
     
    4040        } 
    4141         
    42         private List<ProviderEmail> prepareProviderEmails(ProviderCommonType common) { 
    43                 List<ProviderEmail> result = new ArrayList<ProviderEmail>(); 
    44          
     42        private void prepareProviderEmails(ProviderCommonType common, ProviderCommon provider) {                 
    4543                if (common.getProviderContacts() == null) 
    46                         return result; 
    47  
     44                        return; 
     45                 
    4846                List<EmailContactType> contacts = common.getProviderContacts(); 
     47                 
    4948                if (contacts.size() == 0) 
    50                         return result; 
     49                        return; 
    5150                 
     51                if (provider.getProviderEmails() == null) 
     52                        provider.setProviderEmails(new ArrayList<ProviderEmail>()); 
    5253                 
    53                 ProviderEmail email = null;              
     54                //Contact email 
     55                ProviderEmail email = null;      
    5456                for (EmailContactType item : contacts){ 
    5557                        email = new ProviderEmail(); 
     58                        //email = getNewUpdateEmail(provider.getProviderEmails(), item.getID());                         
    5659                        email.setEmail(item.getEmail()); 
    5760                        email.setRealName(item.getName()); 
    58                         result.add(email); 
     61                        email.setId(item.getID()); 
     62                        provider.getProviderEmails().add(email); 
    5963                } 
    6064                 
     65                //Admin email 
    6166                ProviderAdminEmail admin = common.getProviderAdminEmail(); 
    6267                if (admin == null) 
    63                         return result; 
     68                        return; 
    6469                 
    65                 email = new ProviderEmail(); 
    66                 email.setEmail(admin.getEmailContact().getEmail()); 
    67                 email.setRealName(admin.getEmailContact().getName()); 
    68                 email.setAdminEmail(true); 
    69                 result.add(email); 
    70                 return result;           
     70                EmailContactType aemail = admin.getEmailContact(); 
     71                if (aemail != null) { 
     72                        email = new ProviderEmail(); 
     73                        email.setEmail(aemail.getEmail()); 
     74                        email.setRealName(aemail.getName()); 
     75                        if (aemail.getID() != null) 
     76                                email.setId(aemail.getID()); 
     77                        provider.getProviderEmails().add(email); 
     78                }                
     79                provider.setEmailToAdmin(admin.isMonitor()); 
    7180        }        
    7281         
    73         private <T extends ProviderCommon> void prepareCommonProvider(ProviderCommonType common, T provider) { 
     82        private void checkRemoved(List<ProviderEmail> oldEmails, List<EmailContactType> newEmails) {             
     83                Iterator<ProviderEmail> iterator = oldEmails.iterator(); 
     84                ProviderEmail item = null; 
     85                while (iterator.hasNext()) { 
     86                        item = iterator.next(); 
     87                        boolean delete = true; 
     88                        for (EmailContactType nemail : newEmails) {                              
     89                                if (item.getId().equals(nemail.getID())) { 
     90                                        delete = false; 
     91                                        break; 
     92                                }                        
     93                        } 
     94                        if (delete) { 
     95                                iterator.remove(); 
     96                        } 
     97                } 
     98        } 
     99         
     100        private ProviderEmail getNewUpdateEmail(List<ProviderEmail> emails, Integer id) { 
     101                ProviderEmail ret = new ProviderEmail(); 
     102                if (id == null)  
     103                        return ret; 
     104                 
     105                int index = -1;   
     106                ret.setId(id); 
     107                index = emails.indexOf(ret); 
     108                if (index > -1) { 
     109                        ret = emails.get(index); 
     110                } else { 
     111                        ret = new ProviderEmail(); 
     112                        emails.add(ret); 
     113                } 
     114                return ret; 
     115        } 
     116         
     117        private <T extends ProviderCommon> void prepareCommonProvider(ProviderDetail pdetails, T provider) { 
     118                ProviderCommonType common = pdetails.getProviderCommon();                
    74119                provider.setBaseUrl(common.getProviderURL()); 
    75120                provider.setEmailToAdmin(common.isSetProviderAdminEmail()); 
    76                 provider.setName(common.getProviderName());      
    77                 provider.setProviderEmails(prepareProviderEmails(common)); 
     121                provider.setName(common.getProviderName()); 
     122                prepareProviderEmails(common, provider); 
    78123        } 
    79124         
    80125        private void createProvider(ProviderDetail pdetails) throws NdgExecutionException { 
    81                 ProviderCommon provider = ProviderFactory.getInstance().getProvider(pdetails); 
    82                 prepareCommonProvider(pdetails.getProviderCommon(), provider);           
     126                //updates the type-specific fields 
     127                ProviderCommon provider = ProviderAdapter.getInstance().getProvider(pdetails); 
     128                //updates the common fields 
     129                prepareCommonProvider(pdetails, provider);               
    83130                EJBBeanFactory.getModelManager().createNewProvider(provider); 
    84131        } 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/executor/ExecuteGetProviderDetails.java

    r7301 r7312  
    11package ndg.services.revitalization.executor; 
    22 
     3import java.util.List; 
     4 
     5import ndg.common.NdgMessage; 
    36import ndg.common.exception.NdgExecutionException; 
     7import ndg.services.revitalization.EJBBeanFactory; 
     8import ndg.services.revitalization.ejb.interfaces.ModelManagerRemote; 
     9import ndg.services.revitalization.jpa.ProviderCommon; 
     10import ndg.services.revitalization.jpa.ProviderEmail; 
     11import ndg.services.schemas.revitalization.EmailContactType; 
    412import ndg.services.schemas.revitalization.GetProviderDetailsRequest; 
    513import ndg.services.schemas.revitalization.GetProviderDetailsResponse; 
     14import ndg.services.schemas.revitalization.ProviderCommonType; 
     15import ndg.services.schemas.revitalization.ProviderDetail; 
     16import ndg.services.schemas.revitalization.ProviderCommonType.ProviderAdminEmail; 
    617 
    7 public class ExecuteGetProviderDetails extends ServiceExecutor<GetProviderDetailsRequest, GetProviderDetailsResponse> { 
     18public class ExecuteGetProviderDetails extends 
     19                ServiceExecutor<GetProviderDetailsRequest, GetProviderDetailsResponse> { 
    820 
    921        @Override 
     
    1527        protected void execute(GetProviderDetailsRequest request) 
    1628                        throws NdgExecutionException { 
     29                if (request == null) 
     30                        throw new NdgExecutionException(new NdgMessage("null.object", new Object[]{"GetProviderDetailsRequest"})); 
     31                 
     32                ModelManagerRemote mm = EJBBeanFactory.getModelManager(); 
     33                List<? extends ProviderCommon> providers = mm.getHarvesterConfiguration(request.getProviderID()); 
     34                 
     35                ProviderDetail pd = null; 
     36                ProviderCommonType pct = null; 
     37                EmailContactType ect = null; 
     38                ProviderAdminEmail pae = null; 
     39                for (ProviderCommon provider : providers) {                      
     40                        pd = getOf().createProviderDetail(); 
     41                        pct = getOf().createProviderCommonType(); 
     42                        pd.setProviderCommon(pct); 
     43                        getResponse().getProvider().add(pd); 
     44                        pd.setProviderID(provider.getId()); 
     45                         
     46                         
     47                        pct.setProviderURL(provider.getBaseUrl()); 
     48                        pct.setProviderName(provider.getName()); 
     49                         
     50                         
     51                        for (ProviderEmail email : provider.getProviderEmails()) { 
     52                                ect = getOf().createEmailContactType(); 
     53                                ect.setEmail(email.getEmail()); 
     54                                ect.setID(email.getId()); 
     55                                ect.setName(email.getRealName()); 
     56                                 
     57                                if (!email.getAdminEmail()) { 
     58                                        pct.getProviderContacts().add(ect); 
     59                                        continue; 
     60                                } 
     61                                 
     62                                //Eventually is an AdminEmail 
     63                                pae = getOf().createProviderCommonTypeProviderAdminEmail(); 
     64                                pae.setEmailContact(ect); 
     65                                pae.setMonitor(provider.getEmailToAdmin()); 
     66                                pct.setProviderAdminEmail(pae); 
     67                        } 
     68                        pd.setProviderType(ProviderAdapter.getInstance().extractDetails(provider, getOf()));                     
     69                } 
    1770        } 
    1871} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/executor/ExecuteHarvest.java

    r7301 r7312  
    33import java.io.Serializable; 
    44 
     5import ndg.common.NdgMessage; 
    56import ndg.common.exception.NdgExecutionException; 
    67import ndg.services.revitalization.EJBBeanFactory; 
     8import ndg.services.revitalization.MailHelper; 
    79import ndg.services.revitalization.ejb.interfaces.JMSDispatcherRemote; 
    810import ndg.services.revitalization.ejb.interfaces.ModelManagerRemote; 
    9 import ndg.services.revitalization.harvest.DispatchedHarvestRequest; 
     11import ndg.services.revitalization.exception.NdgHarvestNotExistingException; 
     12import ndg.services.revitalization.harvest.HarvestRequest; 
     13import ndg.services.revitalization.harvest.Harvester; 
    1014import ndg.services.revitalization.jpa.HiProcess; 
    1115import ndg.services.schemas.revitalization.DoHarvestRequest; 
     
    2327        protected void execute(DoHarvestRequest request) 
    2428                        throws NdgExecutionException { 
    25                 HiProcess process = createHiProcess(); 
     29                HiProcess process = createHiProcess(request.getProviderID()); 
    2630                ProcessIDType procId = getOf().createProcessIDType(); 
    2731                procId.setId(process.getId()); 
    2832                getResponse().setProcessID(procId); 
    2933                getResponse().setConfirmation(getOf().createConfirmationType()); 
    30                  
    31                 DispatchedHarvestRequest requestDispatch = new DispatchedHarvestRequest(request, process); 
    32                 dispatchHarvestRequest(requestDispatch); 
    33                  
    34                 MailHelper.getInstance().newDispatchedHarvestMail(request, process); 
     34                                 
     35                //DispatchedHarvestRequest requestDispatch = new DispatchedHarvestRequest(request, process); 
     36                Harvester<? extends HarvestRequest> harvester; 
     37                try { 
     38                        harvester = getHarvester(request, process); 
     39                        dispatchHarvestRequest(harvester);                       
     40                        MailHelper.getInstance().newDispatchedHarvestMail(request, process); 
     41                } catch (NdgHarvestNotExistingException e) { 
     42                        throw new NdgExecutionException(new NdgMessage("null.object", new Object[]{"Harvest"})); 
     43                } 
    3544        } 
    3645 
    37         private HiProcess createHiProcess() throws NdgExecutionException { 
     46        private HiProcess createHiProcess(int providerID) throws NdgExecutionException { 
    3847                 ModelManagerRemote modelManager = EJBBeanFactory.getModelManager(); 
    39                 return modelManager.createNewProcess(); 
     48                return modelManager.createNewProcess(providerID); 
     49        } 
     50         
     51        private Harvester<? extends HarvestRequest> getHarvester(DoHarvestRequest doRequest, HiProcess process) throws NdgHarvestNotExistingException, NdgExecutionException { 
     52                return ProviderAdapter.getInstance().getHarvester(doRequest, process); 
    4053        } 
    4154         
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/executor/ProviderAdapter.java

    r7302 r7312  
    1 package ndg.services.revitalization; 
     1package ndg.services.revitalization.executor; 
    22 
    33import java.io.File; 
    44import java.util.Calendar; 
    55 
     6import javax.xml.bind.JAXBElement; 
     7 
    68import ndg.common.NdgMessage; 
    79import ndg.common.exception.NdgExecutionException; 
     10import ndg.services.revitalization.EJBBeanFactory; 
    811import ndg.services.revitalization.dictionary.ServiceConfigurationParameter; 
    912import ndg.services.revitalization.ejb.interfaces.ModelManagerRemote; 
    10 import ndg.services.revitalization.harvest.DispatchedHarvestRequest; 
     13import ndg.services.revitalization.harvest.HarvestRequest; 
    1114import ndg.services.revitalization.harvest.Harvester; 
    12 import ndg.services.revitalization.harvest.oai.OAIHarvestRequest; 
    13 import ndg.services.revitalization.harvest.oai.OAIHarvester; 
    14 import ndg.services.revitalization.jpa.OaiProvider; 
     15import ndg.services.revitalization.jpa.HiProcess; 
    1516import ndg.services.revitalization.jpa.ProviderCommon; 
    1617import ndg.services.schemas.revitalization.DoHarvestRequest; 
     18import ndg.services.schemas.revitalization.ObjectFactory; 
     19import ndg.services.schemas.revitalization.ProviderDetail; 
     20import ndg.services.schemas.revitalization.ProviderDetailsType; 
    1721 
    18 public class HarvesterFactory { 
     22/** 
     23 * Given a {@link ProviderCommon} instance, mays returns either a 
     24 * {@link Harvester} object suitable for an harvest operation or a 
     25 * {@link ProviderDetailsType} suitable do describe in an XML form the given 
     26 * specific {@link ProviderCommon} 
     27 **/ 
     28class ProviderAdapter<T extends HarvestRequest> { 
    1929 
    20         private final static HarvesterFactory instance = new HarvesterFactory(); 
    21          
    22         private HarvesterFactory(){     } 
    23          
    24         public static HarvesterFactory getInstance() { 
    25                 return instance; 
     30        private ProviderAdapter() { 
    2631        } 
    27          
    28         public Harvester getHarvester(DispatchedHarvestRequest request) throws NdgExecutionException { 
    29                 DoHarvestRequest doRequest = request.getDoHarvestRequest(); 
    30                  
     32 
     33        public static ProviderAdapter<HarvestRequest> getInstance() { 
     34                return new ProviderAdapter<HarvestRequest>(); 
     35        } 
     36 
     37        public JAXBElement<? extends ProviderDetailsType> extractDetails(ProviderCommon provider, ObjectFactory of) 
     38                        throws NdgExecutionException { 
     39                return getHelper(provider.getClass()).extractDetails(provider, of); 
     40        } 
     41 
     42        public Harvester<T> getHarvester(DoHarvestRequest doRequest, HiProcess hiProcess) throws NdgExecutionException { 
    3143                if (doRequest == null) 
    32                         throw new NdgExecutionException(new NdgMessage("null.object", new Object[]{"DoHarvestRequest"})); 
    33                  
     44                        throw new NdgExecutionException(new NdgMessage("null.object", new Object[] { "DoHarvestRequest" })); 
     45 
    3446                ModelManagerRemote mm = EJBBeanFactory.getModelManager(); 
    3547                ProviderCommon provider = mm.getHarvesterConfiguration(doRequest.getProviderID()); 
    3648 
    37                 File tmpDir = new File(mm.getConfigurationParameter(ServiceConfigurationParameter.HARVEST_ROOT_PATH.name()) + "/" + Long.toString(Calendar.getInstance().getTimeInMillis())); 
     49                File tmpDir = new File(mm.getConfigurationParameter(ServiceConfigurationParameter.HARVEST_ROOT_PATH.name()) 
     50                                + "/" + Long.toString(Calendar.getInstance().getTimeInMillis())); 
    3851                if (!tmpDir.mkdir()) 
    39                         throw new NdgExecutionException(new NdgMessage("execution.error", new Object[] {"createNewFile()", "Cannot create " + tmpDir.getAbsolutePath()}, null)); 
    40                  
    41                 if (provider.getClass().isAssignableFrom(OaiProvider.class)) { 
    42                         return assembleHarvester(provider,      request, tmpDir);        
    43                 } 
     52                        throw new NdgExecutionException(new NdgMessage("execution.error", new Object[] { "createNewFile()", 
     53                                        "Cannot create " + tmpDir.getAbsolutePath() }, null)); 
    4454 
    45                 throw new NdgExecutionException("Harvester type not not exists"); 
     55                return getHelper(provider.getClass()).assembleHarvester(provider, tmpDir, doRequest, hiProcess); 
    4656        } 
    47          
    48          
     57 
    4958        /** 
    50          * OAI Specific implementation 
     59         * Transforms the data from the <code>pdetails</code> parameter in a 
     60         * properly filled {@link ProviderCommon}-inheriting class. 
     61         *  
     62         * @param pdetails 
     63         *            the externally passed data 
     64         * @return the internal representation of the given data 
    5165         **/ 
    52         private OAIHarvester assembleHarvester(ProviderCommon provider, DispatchedHarvestRequest request, File tmpDir) throws NdgExecutionException { 
    53                 OAIHarvestRequest harvesterReq = new OAIHarvestRequest((OaiProvider)provider, request.getDoHarvestRequest()); 
    54                 harvesterReq.setOutdir(tmpDir.getAbsolutePath());                        
    55                 return new OAIHarvester(harvesterReq, request.getHiProcess()); 
     66        public ProviderCommon getProvider(ProviderDetail pdetails) throws NdgExecutionException { 
     67                ProviderCommon ret = getHelper(pdetails.getProviderType().getValue().getClass()).assembleProvider( 
     68                                pdetails.getProviderType().getValue()); 
     69                if (pdetails.getProviderID() != null) 
     70                        ret.setId(pdetails.getProviderID()); 
     71                return ret; 
     72        } 
     73 
     74        private ProviderAdapterHelper getHelper(Class<?> clazz) throws NdgExecutionException { 
     75                return ProviderAdapterHelper.getProviderAdapter(clazz); 
    5676        } 
    5777} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/DispatchedHarvestRequest.java

    r7271 r7312  
    88public class DispatchedHarvestRequest implements Serializable { 
    99 
     10        /** 
     11         *  
     12         */ 
     13        private static final long serialVersionUID = -1742296421038505104L; 
    1014        private final DoHarvestRequest doHarvestRequest; 
    1115        private final HiProcess hiProcess; 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/HarvestRequest.java

    r7271 r7312  
    99         
    1010        final private int providerID; 
    11         final private String providerTypeID; 
    1211        final private String url; 
    1312         
    14         public HarvestRequest(int providerID, String providerTypeID, String url) { 
     13        public HarvestRequest(int providerID, String url) { 
    1514                super(); 
    1615                this.providerID = providerID; 
    17                 this.providerTypeID = providerTypeID; 
    1816                this.url = url; 
    1917        } 
     
    2321        } 
    2422 
    25         public String getProviderTypeID() { 
    26                 return providerTypeID; 
    27         } 
    28  
    2923        public String getUrl() { 
    3024                return url; 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/Harvester.java

    r7271 r7312  
    11package ndg.services.revitalization.harvest; 
     2 
     3import java.io.Serializable; 
    24 
    35import ndg.common.exception.NdgExecutionException; 
    46 
    57 
    6 public interface Harvester<T extends HarvestRequest> { 
     8public interface Harvester<T extends HarvestRequest> extends Serializable { 
    79        /** 
    810         * Invokes the harvest operation  
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/HarvesterBase.java

    r7301 r7312  
    22 
    33import java.sql.Timestamp; 
     4import java.util.ArrayList; 
     5import java.util.List; 
    46 
     7import ndg.common.NdgMessage; 
    58import ndg.common.exception.NdgExecutionException; 
    69import ndg.services.revitalization.EJBBeanFactory; 
    7 import ndg.services.revitalization.executor.MailHelper; 
     10import ndg.services.revitalization.MailHelper; 
    811import ndg.services.revitalization.jpa.HarvestLog; 
    912import ndg.services.revitalization.jpa.HiProcess; 
    1013 
    1114public abstract class HarvesterBase<T extends HarvestRequest> implements Harvester<T>{ 
     15 
     16        /** 
     17         *  
     18         */ 
     19        private static final long serialVersionUID = 1504678701060760499L; 
    1220 
    1321        private final T request; 
     
    2331                this.hiProcess = hiProcess; 
    2432        } 
    25  
     33         
    2634        @Override 
    2735        public T getHarvestRequest() { 
     
    4250                HarvestLog harvestLog = new HarvestLog(); 
    4351                harvestLog.setReqId(hiProcess.getId()); 
    44                 harvestLog.setProviderId(this.request.getProviderID()); 
    4552                EJBBeanFactory.getModelManager().updateHarvestingLogAndStatus(hiProcess, harvestLog); 
    4653        } 
    4754         
    48         private void finalizeHarvesting() throws NdgExecutionException {                 
    49                 HarvestLog harvestLog = EJBBeanFactory.getModelManager().getHarvestLog(hiProcess.getId()); 
     55        private void finalizeHarvesting() throws NdgExecutionException { 
     56                List<Integer> procId = new ArrayList<Integer>(); 
     57                procId.add(hiProcess.getId()); 
     58                List<HarvestLog> harvestLogs = EJBBeanFactory.getModelManager().getHarvestLog(procId); 
    5059                 
     60                HarvestLog harvestLog = null; 
     61                if (harvestLogs == null || harvestLogs.size() == 0) 
     62                        throw new NdgExecutionException(new NdgMessage("execution.error", new Object[] { "finalizeHarvesting()", 
     63                                        "Cannot find harvestLog reqId:" + hiProcess.getId() }, null)); 
     64                 
     65                harvestLog = harvestLogs.get(0); 
    5166                harvestLog.setStartHarvest(getHarvestResult().getStartTime()); 
    5267                harvestLog.setStopHarvest(getHarvestResult().getEndTime()); 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/ejb/AsyncHarvester.java

    r7271 r7312  
    44import javax.ejb.Stateless; 
    55 
    6 import ndg.common.MessageFormatter; 
    76import ndg.common.exception.NdgException; 
    87import ndg.common.exception.NdgExecutionException; 
     8import ndg.services.revitalization.harvest.HarvestRequest; 
    99import ndg.services.revitalization.harvest.Harvester; 
    1010import ndg.services.revitalization.harvest.ejb.interfaces.AsyncHarvesterLocal; 
     
    1818         */      
    1919        @Asynchronous 
    20         public final void doHarvest(Harvester request) {                 
     20        public final void doHarvest(Harvester<? extends HarvestRequest> request) {               
    2121                try { 
    2222                        request.invokeHarvest(); 
     
    2727         
    2828        private void manageError(NdgException ex) { 
    29                 MessageFormatter mf = new MessageFormatter();            
     29                //MessageFormatter mf = new MessageFormatter();          
    3030                //ct.setMessage(mf.getFormattedText(ex.getBundlMessage())); 
    3131                //ct.setStatus(ERROR); 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/ejb/HarvestRequestConsumer.java

    r7302 r7312  
    1313 
    1414import ndg.common.exception.NdgExecutionException; 
    15 import ndg.services.revitalization.HarvesterFactory; 
    16 import ndg.services.revitalization.ejb.interfaces.ModelManagerLocal; 
    1715import ndg.services.revitalization.exception.NdgHarvestNotExistingException; 
    18 import ndg.services.revitalization.harvest.DispatchedHarvestRequest; 
    1916import ndg.services.revitalization.harvest.HarvestRequest; 
    2017import ndg.services.revitalization.harvest.Harvester; 
     
    2825public class HarvestRequestConsumer implements MessageListener { 
    2926         
    30         @EJB  
    31         private ModelManagerLocal hmm; 
    32          
    3327        @EJB 
    3428        private AsyncHarvesterLocal executor; 
     
    3832                        ObjectMessage objMessage = (ObjectMessage) message; 
    3933 
    40                         if (!(objMessage.getObject() instanceof DispatchedHarvestRequest)) 
     34                        if (!(objMessage.getObject() instanceof Harvester<?>)) 
    4135                                return; 
    4236                         
    43                         invokeHarvest((DispatchedHarvestRequest) objMessage.getObject()); 
     37                        invokeHarvest((Harvester<?>) objMessage.getObject()); 
    4438                } catch (Exception e) { 
    4539                        e.printStackTrace(); 
     
    4943        @Resource  
    5044        MessageDrivenContext ejbContext; 
    51  
    52          
    53         private <T extends HarvestRequest> Harvester<T> getHarvester(DispatchedHarvestRequest request) throws NdgHarvestNotExistingException, NdgExecutionException { 
    54                 return HarvesterFactory.getInstance().getHarvester(request); 
    55         } 
    5645         
    5746        /** 
     
    6251         * @throws  NdgExecutionException if other errors occour 
    6352         **/ 
    64         private void invokeHarvest(DispatchedHarvestRequest request) throws NdgHarvestNotExistingException, NdgExecutionException {              
    65                 Harvester<?> harvester = getHarvester(request); 
     53        private void invokeHarvest(Harvester<? extends HarvestRequest> harvester) throws NdgHarvestNotExistingException, NdgExecutionException {                 
    6654                executor.doHarvest(harvester); 
    6755        } 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/ejb/interfaces/AsyncHarvesterLocal.java

    r7271 r7312  
    77 
    88@Local 
    9 public interface AsyncHarvesterLocal<T extends HarvestRequest> { 
     9public interface AsyncHarvesterLocal { 
    1010 
    1111        /**  
    1212         * Invokes the harvest method  
    1313         * */ 
    14         public void doHarvest(Harvester<T> request); 
     14        public void doHarvest(Harvester<? extends HarvestRequest> request); 
    1515 
    1616} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/ejb/interfaces/AsyncHarvesterRemote.java

    r7271 r7312  
    77 
    88@Remote 
    9 public interface AsyncHarvesterRemote<T extends HarvestRequest> { 
     9public interface AsyncHarvesterRemote { 
    1010 
    1111        /**  
    1212         * Invokes the harvest method  
    1313         * */ 
    14         public void doHarvest(Harvester<T> harvester); 
     14        public void doHarvest(Harvester<? extends HarvestRequest> harvester); 
    1515 
    1616} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/oai/OAIHarvestRequest.java

    r7301 r7312  
    1313 
    1414        public OAIHarvestRequest(OaiProvider provider, DoHarvestRequest doRequest) { 
    15                 super(provider.getId(), provider.getFormat(), provider.getBaseUrl());    
     15                super(provider.getId(), provider.getBaseUrl());  
    1616                this.setSet(provider.getSet()); 
    1717                if (!provider.getFormat().equals("ANY")) 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/oai/OAIHarvester.java

    r7271 r7312  
    1616         
    1717         
     18        /** 
     19         *  
     20         */ 
     21        private static final long serialVersionUID = -625702054203333083L; 
     22 
    1823        public OAIHarvester(OAIHarvestRequest request, HiProcess hiProcess) { 
    1924                super(request, hiProcess); 
     
    3237                getHiProcess().setHarvestDir(getHarvestRequest().getOutdir()); 
    3338                try { 
    34                         String[][] result = harvester.doHarvest(getHarvestRequest().getUrl(),  
     39                        harvester.doHarvest(getHarvestRequest().getUrl(),  
    3540                                        getHarvestRequest().getMetadataPrefix(),  
    3641                                        getHarvestRequest().getSet(),  
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/jpa/HarvestLog.java

    r7301 r7312  
    1515        private static final long serialVersionUID = 1L; 
    1616        private Integer reqId; 
    17         private Integer providerId; 
    1817        private Timestamp startHarvest; 
    1918        private Timestamp stopHarvest; 
     
    4140        public void setReqId(Integer reqId) { 
    4241                this.reqId = reqId; 
    43         } 
    44  
    45  
    46         @Column(name="provider_id") 
    47         public Integer getProviderId() { 
    48                 return this.providerId; 
    49         } 
    50  
    51         public void setProviderId(Integer providerId) { 
    52                 this.providerId = providerId; 
    5342        } 
    5443 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/jpa/HiProcess.java

    r7271 r7312  
    2525        private String harvestDir; 
    2626        private HiStatus hiStatus; 
     27        private Integer providerId;      
    2728 
    2829    public HiProcess() { 
     
    5657        } 
    5758 
     59        @Column(name="provider_id") 
     60        public Integer getProviderId() { 
     61                return this.providerId; 
     62        } 
     63 
     64        public void setProviderId(Integer providerId) { 
     65                this.providerId = providerId; 
     66        } 
    5867 
    5968        //uni-directional many-to-one association to HiStatus 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/jpa/ProviderEmail.java

    r7282 r7312  
    7878        } 
    7979 
     80 
     81        @Override 
     82        public int hashCode() { 
     83                final int prime = 31; 
     84                int result = 1; 
     85                result = prime * result + ((commonId == null) ? 0 : commonId.hashCode()); 
     86                result = prime * result + ((id == null) ? 0 : id.hashCode()); 
     87                return result; 
     88        } 
     89 
     90        @Override 
     91        public boolean equals(Object obj) { 
     92                if (this == obj) 
     93                        return true; 
     94                if (obj == null) 
     95                        return false; 
     96                if (getClass() != obj.getClass()) 
     97                        return false; 
     98                ProviderEmail other = (ProviderEmail) obj; 
     99                if (commonId == null) { 
     100                        if (other.commonId != null) 
     101                                return false; 
     102                } else if (!commonId.equals(other.commonId)) 
     103                        return false; 
     104                if (id == null) { 
     105                        if (other.id != null) 
     106                                return false; 
     107                } else if (!id.equals(other.id)) 
     108                        return false; 
     109                return true; 
     110        } 
    80111} 
Note: See TracChangeset for help on using the changeset viewer.