Example usage for com.liferay.portal.kernel.util PropsUtil getProperties

List of usage examples for com.liferay.portal.kernel.util PropsUtil getProperties

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util PropsUtil getProperties.

Prototype

public static Properties getProperties(String prefix, boolean removePrefix) 

Source Link

Usage

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) {
            }
        }
    }

}