List of usage examples for com.liferay.portal.kernel.util PropsUtil getProperties
public static Properties getProperties(String prefix, boolean removePrefix)
From source file:com.rknowsys.portal.search.elastic.client.ClientFactoryImpl.java
License:Open Source License
public void afterPropertiesSet() { Properties properties = PropsUtil.getProperties("elasticsearch.", true); String serverIP = properties.getProperty("serverIP", "localhost"); List<String> servers = Arrays.asList(serverIP.split("\\s*,\\s*")); int port = GetterUtil.get(properties.getProperty("portNumber"), 9300); List<TransportAddress> transportAddresses = new ArrayList<TransportAddress>(); for (String server : servers) { InetSocketAddress inetSocketAddress = new InetSocketAddress(server, port); TransportAddress ta = new InetSocketTransportAddress(inetSocketAddress); transportAddresses.add(ta);// w ww .j a va 2 s . com } TransportAddress[] tas = transportAddresses.toArray(new TransportAddress[transportAddresses.size()]); // TODO Validate this code change //Settings settings = ImmutableSettings.settingsBuilder().classLoader(ClientFactoryImpl.class.getClassLoader()). // put(properties).build(); Settings settings = Settings.settingsBuilder().put(properties).build(); client = TransportClient.builder().settings(settings).addPlugin(DeleteByQueryPlugin.class).build() .addTransportAddresses(tas); GetIndexTemplatesResponse gitr = client.admin().indices().prepareGetTemplates(Liferay_Template + "*") .execute().actionGet(); boolean cont = false; boolean exists = false; String templateName = ""; String version = ""; for (IndexTemplateMetaData indexTemplateMetaData : gitr.getIndexTemplates()) { if (indexTemplateMetaData.getName().startsWith(Liferay_Template)) { templateName = indexTemplateMetaData.getName(); exists = true; break; } } if (templateName.length() > Liferay_Template.length() + 1) { version = templateName.substring(Liferay_Template.length() + 1); } else { cont = true; } BufferedReader br = null; try { InputStream is = ClientFactoryImpl.class.getClassLoader() .getResourceAsStream("com/rknowsys/portal/search/elastic/template.json"); br = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = br.readLine(); while (line != null) { sb.append(line.trim()); line = br.readLine(); } byte[] tempBytes = sb.toString().getBytes(); MessageDigest md = MessageDigest.getInstance("MD5"); byte[] array = md.digest(tempBytes); StringBuilder sb2 = new StringBuilder(); for (byte b : array) { sb2.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1, 3)); } String newVersion = sb2.toString(); if (cont || !newVersion.equals(version)) { if (exists) { client.admin().indices().prepareDeleteTemplate(Liferay_Template + "*").execute().actionGet(); } client.admin().indices().preparePutTemplate(Liferay_Template + "_" + newVersion) .setSource(sb.toString()).execute().actionGet(); //client.admin().indices().prepareDelete("liferay_*").execute().actionGet(); _log.warn("Please reIndex all search indices in server administration"); } } catch (Exception ignored) { } finally { if (br != null) { try { br.close(); } catch (IOException ignored) { } } } }