View Javadoc
1   package org.imageconverter.config;
2   
3   import java.nio.file.Files;
4   import java.nio.file.Paths;
5   
6   import org.imageconverter.util.BeanUtil;
7   import org.springframework.cloud.context.config.annotation.RefreshScope;
8   import org.springframework.context.annotation.Bean;
9   import org.springframework.context.annotation.Configuration;
10  
11  import net.sourceforge.tess4j.ITesseract;
12  import net.sourceforge.tess4j.Tesseract;
13  
14  /**
15   * Tesseract configuration bean.
16   * 
17   * @author Fernando Romulo da Silva
18   */
19  @Configuration
20  public class ImageConfig {
21  
22      /**
23       * Create a valid tesseract object or return a <code>null</code> if it was not possible.
24       * 
25       * @return A {@link Tesseract} object or null
26       */
27      @Bean
28      @RefreshScope
29      ITesseract tesseractTess4j() {
30  
31  	final var path = Paths.get(BeanUtil.getPropertyValue("tesseract.folder"));
32  
33  	final ITesseract tesseract;
34  
35  	if (Files.notExists(path)) {
36  
37  	    tesseract = null;
38  
39  	} else {
40  
41  	    tesseract = new Tesseract();
42  	    tesseract.setDatapath(BeanUtil.getPropertyValue("tesseract.folder"));
43  	    tesseract.setLanguage(BeanUtil.getPropertyValue("tesseract.language"));
44  	    tesseract.setVariable("user_defined_dpi", BeanUtil.getPropertyValue("tesseract.dpi"));
45  	}
46  
47  	return tesseract;
48      }
49  
50  //    @Bean
51  //    @Primary
52  //    public Validator validator() {
53  //	final var factory = Validation.buildDefaultValidatorFactory();
54  //	return factory.getValidator();
55  //    }
56  
57  //    @Autowired
58  //    private MultipartProperties multipartProperties;
59  
60  //    @Bean
61  //    @ConditionalOnMissingBean({ MultipartConfigElement.class, CommonsMultipartResolver.class })
62  //    @Description("MultipartConfig for file posting")
63  //    public MultipartConfigElement multipartConfigElement() {
64  //        multipartProperties.setEnabled(true);
65  //	multipartProperties.setMaxFileSize(ofMegabytes(20));
66  //        multipartProperties.setMaxRequestSize(ofMegabytes(20));
67  //        return multipartProperties.createMultipartConfig();
68  //    }
69  //
70  //    @Bean
71  //    @Order(0)
72  //    @Description("Multipart filter for file posting")
73  //    public MultipartFilter multipartFile() {
74  //        final MultipartFilter multipartFilter = new MultipartFilter();
75  //        // same name's request parameter => final @RequestParam MultipartFile file
76  //        multipartFilter.setMultipartResolverBeanName("file");
77  //        return multipartFilter;
78  //    }
79  
80  //    @Bean
81  //    public CommonsMultipartResolver multipartResolver(){
82  //        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
83  ////        commonsMultipartResolver.setMaxInMemorySize();
84  ////        commonsMultipartResolver.setMaxUploadSize(ofMegabytes(20));
85  //        return commonsMultipartResolver;
86  //    }
87  
88      // @Bean
89      // public RestTemplate restTemplate() {
90      // SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
91      // Proxy proxy = new Proxy(Type.HTTP, new InetSocketAddress("localhost", 8888));
92      // requestFactory.setProxy(proxy);
93      // return new RestTemplate(requestFactory);
94      // }
95      //
96      // @Bean
97      // public ClientHttpRequestFactory clientHttpRequestFactory() {
98      //
99      // List<ClientHttpRequestInterceptor> interceptors = Arrays.asList();
100     //
101     // SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
102     //
103     // Proxy proxy = new Proxy(Type.HTTP, new InetSocketAddress("localhost", 8888));
104     //
105     // requestFactory.setProxy(proxy);
106     //
107     // return new InterceptingClientHttpRequestFactory(requestFactory, interceptors);
108     // }
109     //
110     // @Bean
111     // public RestTemplateBuilder restTemplateBuilder() {
112     // return new RestTemplateBuilder();
113     // }
114 }