List of usage examples for org.apache.solr.core CoreContainer getSolrHome
public String getSolrHome()
From source file:org.alfresco.solr.lifecycle.SolrCoreLoadRegistration.java
License:Open Source License
/** * Registers with the admin handler the information server and the trackers. *///w ww .j av a 2s . co m public static void registerForCore(AlfrescoCoreAdminHandler adminHandler, CoreContainer coreContainer, SolrCore core, String coreName) { TrackerRegistry trackerRegistry = adminHandler.getTrackerRegistry(); Properties props = new CoreDescriptorDecorator(core.getCoreDescriptor()).getProperties(); //Prepare cores SolrResourceLoader loader = core.getLatestSchema().getResourceLoader(); SolrKeyResourceLoader keyResourceLoader = new SolrKeyResourceLoader(loader); SOLRAPIClientFactory clientFactory = new SOLRAPIClientFactory(); SOLRAPIClient repositoryClient = clientFactory.getSOLRAPIClient(props, keyResourceLoader, AlfrescoSolrDataModel.getInstance().getDictionaryService(CMISStrictDictionaryService.DEFAULT), AlfrescoSolrDataModel.getInstance().getNamespaceDAO()); //Start content store SolrContentStore contentStore = new SolrContentStore(coreContainer.getSolrHome()); SolrInformationServer srv = new SolrInformationServer(adminHandler, core, repositoryClient, contentStore); props.putAll(srv.getProps()); adminHandler.getInformationServers().put(coreName, srv); SolrTrackerScheduler scheduler = adminHandler.getScheduler(); // Prevents other threads from registering the ModelTracker at the same time // Create model tracker and load all the persisted models createModelTracker(coreName, trackerRegistry, props, coreContainer.getSolrHome(), repositoryClient, srv, scheduler); log.info("Starting to track " + coreName); if (Boolean.parseBoolean(props.getProperty("enable.alfresco.tracking", "false"))) { if (trackerRegistry.hasTrackersForCore(coreName)) { log.info("Trackers for " + coreName + " is already registered, shutting them down."); shutdownTrackers(coreName, trackerRegistry.getTrackersForCore(coreName), scheduler); trackerRegistry.removeTrackersForCore(coreName); adminHandler.getInformationServers().remove(coreName); } List<Tracker> trackers = createCoreTrackers(coreName, trackerRegistry, props, scheduler, repositoryClient, srv); CommitTracker commitTracker = new CommitTracker(props, repositoryClient, coreName, srv, trackers); trackerRegistry.register(coreName, commitTracker); scheduler.schedule(commitTracker, coreName, props); log.info("The Trackers are now scheduled to run"); trackers.add(commitTracker); //Add the commitTracker to the list of scheduled trackers that can be shutdown core.addCloseHook(new CloseHook() { @Override public void preClose(SolrCore core) { log.info("Shutting down " + core.getName()); SolrCoreLoadRegistration.shutdownTrackers(core.getName(), trackers, scheduler); } @Override public void postClose(SolrCore core) { // Nothing to be done here } }); } }
From source file:org.alfresco.solr.tracker.CoreWatcherJob.java
License:Open Source License
/** * Registers with the admin handler the information server and the trackers. *//*from w w w. j av a 2 s. c o m*/ private void registerForCore(AlfrescoCoreAdminHandler adminHandler, CoreContainer coreContainer, SolrCore core, String coreName, TrackerRegistry trackerRegistry) throws JobExecutionException { Properties props = new CoreDescriptorDecorator(core.getCoreDescriptor()).getCoreProperties(); boolean testcase = Boolean.parseBoolean(System.getProperty("alfresco.test", "false")); if (Boolean.parseBoolean(props.getProperty("enable.alfresco.tracking", "false"))) { core.addCloseHook(new AlfrescoSolrCloseHook(adminHandler)); SolrTrackerScheduler scheduler = adminHandler.getScheduler(); SolrResourceLoader loader = core.getLatestSchema().getResourceLoader(); SolrKeyResourceLoader keyResourceLoader = new SolrKeyResourceLoader(loader); SOLRAPIClientFactory clientFactory = new SOLRAPIClientFactory(); SOLRAPIClient repositoryClient = clientFactory.getSOLRAPIClient(props, keyResourceLoader, AlfrescoSolrDataModel.getInstance().getDictionaryService(CMISStrictDictionaryService.DEFAULT), AlfrescoSolrDataModel.getInstance().getNamespaceDAO()); SolrContentStore solrContentStore = this.getSolrContentStore(coreContainer); SolrInformationServer srv = new SolrInformationServer(adminHandler, core, repositoryClient, solrContentStore); adminHandler.getInformationServers().put(coreName, srv); log.info("Starting to track " + coreName); ModelTracker mTracker = null; // Prevents other threads from registering the ModelTracker at the same time synchronized (trackerRegistry) { mTracker = trackerRegistry.getModelTracker(); if (mTracker == null) { logIfDebugEnabled("Creating ModelTracker when registering trackers for core " + coreName); mTracker = new ModelTracker(coreContainer.getSolrHome(), props, repositoryClient, coreName, srv); if (testcase) { // We don't want the trackers scheduled if we are running a test. return; } trackerRegistry.setModelTracker(mTracker); scheduler.schedule(mTracker, coreName, props); } } log.info("Ensuring first model sync."); mTracker.ensureFirstModelSync(); log.info("Done ensuring first model sync."); AclTracker aclTracker = new AclTracker(props, repositoryClient, coreName, srv); trackerRegistry.register(coreName, aclTracker); scheduler.schedule(aclTracker, coreName, props); ContentTracker contentTrkr = new ContentTracker(props, repositoryClient, coreName, srv); trackerRegistry.register(coreName, contentTrkr); scheduler.schedule(contentTrkr, coreName, props); MetadataTracker metaTrkr = new MetadataTracker(props, repositoryClient, coreName, srv); trackerRegistry.register(coreName, metaTrkr); scheduler.schedule(metaTrkr, coreName, props); } }
From source file:org.alfresco.solr.tracker.CoreWatcherJob.java
License:Open Source License
private SolrContentStore getSolrContentStore(CoreContainer coreContainer) throws JobExecutionException { // TODO: Could specify the rootStr from a properties file. return new SolrContentStore(locateContentHome(coreContainer.getSolrHome())); }
From source file:org.vootoo.server.servlet.VootooSolrDispatchFilter.java
License:Apache License
protected void initNettyServer(CoreContainer cores) { String solrHome = cores.getSolrHome(); //load netty properties Properties nettyP = new Properties(); File nettyProp = new File(solrHome, NETTY_PROPERTIES); if (nettyProp != null && nettyProp.isFile() && nettyProp.canRead()) { try {//from www . j av a 2 s .com nettyP.load(new FileInputStream(nettyProp)); } catch (IOException e) { logger.warn("loading from=" + nettyProp.getAbsolutePath() + " is fail, ignore netty properties", e); } } // start netty //TODO set many netty properties nettyServer = new SolrNettyServer(getCores(), Integer.parseInt(nettyP.getProperty("port", "8001"))); try { nettyServer.startServer(false); } catch (Exception e) { e.printStackTrace(); nettyServer = null; } }
From source file:org.xwiki.search.solr.internal.EmbeddedSolrInstanceInitializationTest.java
License:Open Source License
/** * TODO DOCUMENT ME!/* w w w .java2 s . c o m*/ * * @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()); }