View Javadoc
1   /*
2    * Copyright (c) 2002-2014, Mairie de Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.plugins.dila.daemon;
35  
36  import org.apache.log4j.Logger;
37  
38  import fr.paris.lutece.plugins.dila.exception.DilaException;
39  import fr.paris.lutece.plugins.dila.service.IDilaDownloadService;
40  import fr.paris.lutece.plugins.dila.service.IDilaExtractService;
41  import fr.paris.lutece.plugins.dila.service.IDilaIndexationService;
42  import fr.paris.lutece.portal.service.daemon.Daemon;
43  import fr.paris.lutece.portal.service.spring.SpringContextService;
44  
45  
46  /**
47   * Daemon for Dila XMl indexation and download
48   */
49  public class DilaXmlDaemon extends Daemon
50  {
51      private static final Logger LOGGER = Logger.getLogger( DilaXmlDaemon.class );
52      private IDilaDownloadService _dilaDownloadService;
53      private IDilaExtractService _dilaExtractService;
54      private IDilaIndexationService _dilaIndexationService;
55  
56      @Override
57      public void run(  )
58      {
59          StringBuilder sb = new StringBuilder(  );
60          setServices(  );
61  
62          try
63          {
64              _dilaDownloadService.downloadAll(  );
65              sb.append( "1 - Download of archives done." );
66              sb.append( "\n" );
67              _dilaExtractService.extractAll(  );
68              sb.append( "2 - Extraction of archives done." );
69              sb.append( "\n" );
70              _dilaIndexationService.indexAll(  );
71              sb.append( "3 - Indexing of archives done." );
72              sb.append( "\n" );
73          }
74          catch ( DilaException e )
75          {
76              LOGGER.error( "Error during Dila Daemon execution", e );
77              sb.append( e.getMessage(  ) );
78              sb.append( "\n" );
79          }
80  
81          setLastRunLogs( sb.toString(  ) );
82      }
83  
84      /**
85       * Set daemon services
86       */
87      private void setServices(  )
88      {
89          if ( _dilaDownloadService == null )
90          {
91              _dilaDownloadService = SpringContextService.getBean( "dilaDownloadService" );
92          }
93  
94          if ( _dilaExtractService == null )
95          {
96              _dilaExtractService = SpringContextService.getBean( "dilaExtractService" );
97          }
98  
99          if ( _dilaIndexationService == null )
100         {
101             _dilaIndexationService = SpringContextService.getBean( "dilaIndexationService" );
102         }
103     }
104 }