Example usage for org.apache.solr.core CoreContainer getCores

List of usage examples for org.apache.solr.core CoreContainer getCores

Introduction

In this page you can find the example usage for org.apache.solr.core CoreContainer getCores.

Prototype

public Collection<SolrCore> getCores() 

Source Link

Usage

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

License:Open Source License

/**
 * Gets a SolrCore by name without incrementing the internal counter
 * @param coreContainer//from   w  w  w .ja  va 2 s  . c  o m
 * @param coreName
 * @return SolrCore
 */
public static SolrCore getCore(CoreContainer coreContainer, String coreName) {
    return coreContainer.getCores().stream().filter(aCore -> coreName.equals(aCore.getName())).findFirst()
            .get();
}

From source file:org.alfresco.solr.tracker.CoreWatcherJob.java

License:Open Source License

@Override
public void execute(JobExecutionContext jec) throws JobExecutionException {

    AlfrescoCoreAdminHandler adminHandler = (AlfrescoCoreAdminHandler) jec.getJobDetail().getJobDataMap()
            .get(JOBDATA_ADMIN_HANDLER_KEY);
    CoreContainer coreContainer = adminHandler.getCoreContainer();
    for (SolrCore core : coreContainer.getCores()) {
        logIfDebugEnabled("About to enter synchronized block for core " + core.getName());
        // Prevents other threads from creating trackers for this core before its trackers are done registering
        synchronized (core) {
            logIfDebugEnabled("Entered synchronized block for core " + core.getName());

            String coreName = core.getName();
            TrackerRegistry trackerRegistry = adminHandler.getTrackerRegistry();
            if (!trackerRegistry.hasTrackersForCore(coreName)) {
                registerForCore(adminHandler, coreContainer, core, coreName, trackerRegistry);
            }//from  ww  w.  j  a  v  a 2 s .  c o m

            logIfDebugEnabled("Exiting synchronized block for core " + core.getName());
        }
    }
}

From source file:org.opencms.search.solr.TestSolrConfiguration.java

License:Open Source License

/**
 * Tests shutting down Solr.<p>/* www .java 2s  .  com*/
 *
 * @throws Throwable
 */
public void testShutDown() throws Throwable {

    echo("Testing Solr shutdown");
    CmsSolrIndex index = new CmsSolrIndex(AllTests.INDEX_TEST);
    index.setProject("Offline");
    index.setLocale(Locale.GERMAN);
    index.setRebuildMode(CmsSearchIndex.REBUILD_MODE_AUTO);
    index.setFieldConfigurationName("solr_fields");
    index.addSourceName("solr_source2");
    OpenCms.getSearchManager().addSearchIndex(index);
    OpenCms.getSearchManager().rebuildIndex(AllTests.INDEX_TEST, new CmsShellReport(Locale.ENGLISH));
    for (int i = 0; i < 250; i++) {
        index.search(getCmsObject(), "q=*:*");
    }

    // shut down
    CoreContainer container = ((EmbeddedSolrServer) index.m_solr).getCoreContainer();
    for (SolrCore core : container.getCores()) {
        echo("Open count for core: " + core.getName() + ": " + core.getOpenCount());
    }
    container.shutdown();

    // wait for a moment
    Thread.sleep(500);

    // success ?
    CmsFileUtil.purgeDirectory(new File(index.getPath()));
    assertTrue(
            "The index folder must be deleted, otherwise some index lock may have prevent a successful purge.",
            !new File(index.getPath()).exists());
}

From source file:org.springframework.data.solr.AbstractITestWithEmbeddedSolrServer.java

License:Apache License

@BeforeClass
public static void initSolrServer()
        throws IOException, ParserConfigurationException, SAXException, InterruptedException {

    String solrHome = ResourceUtils.getURL("classpath:org/springframework/data/solr").getPath();
    CoreContainer coreContainer = CoreContainer.createAndLoad(solrHome, new File(solrHome + "/solr.xml"));

    for (SolrCore core : coreContainer.getCores()) {
        core.addCloseHook(new CloseHook() {
            @Override//  w  w  w. ja v  a2  s  .  co m
            public void preClose(SolrCore core) {
            }

            @Override
            public void postClose(SolrCore core) {
                CoreDescriptor cd = core.getCoreDescriptor();
                if (cd != null) {
                    File dataDir = new File(cd.getInstanceDir() + File.separator + "data");
                    try {
                        FileUtils.deleteDirectory(dataDir);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
    }

    solrServer = new EmbeddedSolrServer(coreContainer, "collection1");
}

From source file:org.xwiki.platform.search.internal.SolrjSearchRequest.java

License:Open Source License

/**
 * @return List of Fields./* ww w . j  av a2 s  . c  o m*/
 */
private List<String> getFields() {
    CoreContainer container = (CoreContainer) searchEngine.getCoreContainer();
    SolrCore core = null;
    for (SolrCore c : container.getCores()) {
        core = c;
    }

    Map<String, SolrInfoMBean> reg = core.getInfoRegistry();
    LukeRequestHandler handler = (LukeRequestHandler) reg.get("/admin/luke");
    LocalSolrQueryRequest req = new LocalSolrQueryRequest(core, new ModifiableSolrParams());
    SolrQueryResponse response = new SolrQueryResponse();
    handler.handleRequest(req, response);
    NamedList list = response.getValues();

    List<String> fieldsList = new ArrayList<String>();
    for (Object obj : list.getAll("fields")) {
        SimpleOrderedMap map = (SimpleOrderedMap) obj;
        Iterator<Map.Entry<String, Object>> entries = map.iterator();
        while (entries.hasNext()) {
            Map.Entry<String, Object> entry = entries.next();
            fieldsList.add(entry.getKey());
        }
    }

    return fieldsList;

}

From source file:org.xwiki.platform.search.internal.VelocityUtils.java

License:Open Source License

/**
 * @param coreContainer CoreContainer.//from   ww w .  jav  a2 s .  co m
 * @param solrServer SolrServer.
 */
public VelocityUtils(CoreContainer coreContainer, SolrServer solrServer) {
    this.coreContainer = coreContainer;
    this.solrServer = solrServer;
    // Embedded XWiki runs on a single core.
    for (SolrCore c : coreContainer.getCores()) {
        this.core = c;
    }
}

From source file:org.xwiki.search.solr.internal.EmbeddedSolrInstance.java

License:Open Source License

private CoreContainer createCoreContainer(String solrHome) throws SolrServerException {
    CoreContainer coreContainer = new CoreContainer(solrHome);
    coreContainer.load();/*from  w w w. ja va2 s  .  c  o m*/
    if (coreContainer.getCores().size() == 0) {
        throw new SolrServerException(
                "Failed to initialize the Solr core. " + "Please check the configuration and log messages.");
    } else if (coreContainer.getCores().size() > 1) {
        this.logger.warn("Multiple Solr cores detected: [{}]. Using the first one.",
                StringUtils.join(coreContainer.getCoreNames(), ", "));
    }
    return coreContainer;
}

From source file:org.xwiki.search.solr.internal.EmbeddedSolrInstanceInitializationTest.java

License:Open Source License

/**
 * TODO DOCUMENT ME!/* w  w  w . j a  v a2  s.  c om*/
 * 
 * @param expected
 * @throws ComponentLookupException
 * @throws Exception
 */
private void getInstanceAndAssertHomeDirectory(String expected) throws ComponentLookupException, Exception {
    SolrInstance instance = mocker.getInstance(SolrInstance.class, "embedded");
    Assert.assertNotNull(instance);

    EmbeddedSolrInstance implementation = ((EmbeddedSolrInstance) instance);
    CoreContainer container = implementation.getContainer();

    if (expected == null) {
        expected = implementation.getDefaultHomeDirectory();
    }

    Assert.assertEquals(expected + File.separator, container.getSolrHome());
    Assert.assertEquals(1, container.getCores().size());
    SolrCore core = container.getCores().iterator().next();
    File coreBaseDirectory = new File(container.getSolrHome(), core.getName());
    File configDirectory = new File(coreBaseDirectory, DefaultSolrConfiguration.CONF_DIRECTORY);
    Assert.assertTrue(new File(configDirectory, core.getSchemaResource()).exists());
    Assert.assertTrue(new File(configDirectory, core.getConfigResource()).exists());
}