Example usage for org.apache.solr.schema IndexSchema getResourceLoader

List of usage examples for org.apache.solr.schema IndexSchema getResourceLoader

Introduction

In this page you can find the example usage for org.apache.solr.schema IndexSchema getResourceLoader.

Prototype

public SolrResourceLoader getResourceLoader() 

Source Link

Document

The resource loader to be used to load components related to the schema when the schema is loading / initialising.

Usage

From source file:edu.upenn.library.solrplugins.CaseInsensitiveSortingTextField.java

License:Apache License

@Override
protected void init(IndexSchema schema, Map<String, String> args) {
    SolrResourceLoader loader = schema.getResourceLoader();
    if (args.containsKey(SERIALIZER_ARGNAME)) {
        serializer = loader.newInstance(args.remove(SERIALIZER_ARGNAME), TextTransformer.class);
    }//  ww  w. j  a  v a 2s .c  o  m
    if (args.containsKey(DISPLAYIZER_ARGNAME)) {
        displayizer = loader.newInstance(args.remove(DISPLAYIZER_ARGNAME), TextTransformer.class);
    }
    if (args.containsKey(PAYLOAD_HANDLER_ARGNAME)) {
        payloadHandler = loader.newInstance(args.remove(PAYLOAD_HANDLER_ARGNAME), FacetPayload.class);
    } else {
        payloadHandler = new DefaultPayloadHandler();
    }
    if (args.containsKey(HIERARCHY_LEVEL_ARGNAME)) {
        hierarchyLevel = loader.newInstance(args.remove(HIERARCHY_LEVEL_ARGNAME), Integer.class);
    }
    delim = initDelim(hierarchyLevel);
    delimBytes = delim.getBytes(StandardCharsets.UTF_8);
    super.init(schema, args);
}

From source file:org.alfresco.solr.AlfrescoDataType.java

License:Open Source License

@Override
protected void init(IndexSchema schema, Map<String, String> args) {
    HashMap<String, M2Model> modelMap = new HashMap<String, M2Model>();
    id = schema.getResourceLoader().getInstanceDir();

    File alfrescoModelDir = new File(id, "alfrescoModels");
    if (alfrescoModelDir.exists() && alfrescoModelDir.isDirectory()) {
        for (File file : alfrescoModelDir.listFiles(new FileFilter() {
            @Override/*from   w  w w.  j  a v  a  2 s .com*/
            public boolean accept(File pathname) {
                return pathname.isFile() && pathname.getName().endsWith(".xml");
            }

        })) {
            InputStream modelStream;
            try {
                modelStream = new FileInputStream(file);
                M2Model model = M2Model.createModel(modelStream);
                modelStream.close();
                for (M2Namespace namespace : model.getNamespaces()) {
                    modelMap.put(namespace.getUri(), model);
                }
            } catch (FileNotFoundException e) {
                throw new AlfrescoRuntimeException("File not found", e);
            } catch (IOException e) {
                throw new AlfrescoRuntimeException("File not found", e);
            }

        }
    }
    // Load the models ensuring that they are loaded in the correct order
    HashSet<String> loadedModels = new HashSet<String>();
    for (M2Model model : modelMap.values()) {
        loadModel(modelMap, loadedModels, model);
    }

    // TODO: load analyser properties bundle
    // I18NUtil.registerResourceBundle(resourceBundle); - one set of analysers per solr instance ??

    // InputStream is = schema.getResourceLoader().openResource("alfrescoConfig.xml");
    // Config alfrescoConf;
    // try
    // {
    // alfrescoConf = new Config(schema.getResourceLoader(), "schema", is, "/alfresco/");
    // Document document = alfrescoConf.getDocument();
    // final XPath xpath = alfrescoConf.getXPath();
    //
    // String expression = "/alfresco/model";
    // NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
    //
    // for (int i = 0; i < nodes.getLength(); i++)
    // {
    // Node node = nodes.item(i);
    // String modelLocaltion = node.getTextContent();
    // InputStream modelStream = schema.getResourceLoader().openResource(modelLocaltion);
    // M2Model model = M2Model.createModel(modelStream);
    // for (M2Namespace namespace : model.getNamespaces())
    // {
    // modelMap.put(namespace.getUri(), model);
    // }
    // }
    //
    // // Load the models ensuring that they are loaded in the correct order
    // HashSet<String> loadedModels = new HashSet<String>();
    // for (M2Model model : modelMap.values())
    // {
    // loadModel(modelMap, loadedModels, model);
    // }
    //
    // }
    // catch (Exception e)
    // {
    // throw new AlfrescoRuntimeException("Failed to read Alfresco schema", e);
    // }

    if (modelMap.size() > 0) {
        AlfrescoSolrDataModel.getInstance(id).afterInitModels();
    }
    AlfrescoSolrDataModel.getInstance(id).setAlfrescoDataType(this);
    super.init(schema, args);
}