use of org.modeshape.jcr.RepositoryConfiguration in project kylo by Teradata.
the class ModeShapeEngineConfig method metadataRepoConfig.
@Bean
public RepositoryConfiguration metadataRepoConfig() throws IOException {
// for variable substitution in the ModeShape json config.
for (String prop : CONFIG_PROPS) {
if (this.environment.containsProperty(prop)) {
System.setProperty(prop, this.environment.getProperty(prop));
}
}
File dir = DEFAULT_INDEX_DIR;
if (this.environment.containsProperty(INDEX_DIR_PROP)) {
String idxPath = this.environment.getProperty(INDEX_DIR_PROP);
dir = new File(idxPath);
}
try {
// Create index directory if necessary.
dir.mkdirs();
} catch (Exception e) {
log.error("Failed to verify Modeshape index directory in property: {}", INDEX_DIR_PROP, e);
throw new IllegalStateException("Failed to verify Modeshape index directory in property: " + INDEX_DIR_PROP, e);
}
ClassPathResource res = new ClassPathResource("/metadata-repository.json");
final AtomicReference<RepositoryConfiguration> config = new AtomicReference<>(RepositoryConfiguration.read(res.getURL()));
repositoryIndexConfiguration.ifPresent(idxConfig -> {
RepositoryConfiguration updatedConfigWithIndexes = idxConfig.build();
EditableDocument original = config.get().edit();
EditableDocument added = updatedConfigWithIndexes.edit();
original.merge(added);
RepositoryConfiguration updatedConfig = new RepositoryConfiguration(original, config.get().getName());
log.debug("Original ModeShape configuration: {}", config.toString());
log.debug("ModeShape indexing configuration: {}", updatedConfigWithIndexes.toString());
log.debug("Updated ModeShape configuration: {}", updatedConfig.toString());
config.set(updatedConfig);
log.info("ModeShape indexing configured");
});
Problems problems = config.get().validate();
if (problems.hasErrors()) {
log.error("Problems with the ModeShape repository configuration: \n{}", problems);
throw new RuntimeException("Problems with the ModeShape repository configuration: " + problems);
}
return config.get();
}
use of org.modeshape.jcr.RepositoryConfiguration in project kylo by Teradata.
the class ElasticSearchRestModeShapeConfigurationService method build.
@Override
public RepositoryConfiguration build() {
RepositoryConfiguration repositoryConfiguration;
final String EMPTY_CONFIG = "{}";
final String KYLO_CATEGORIES = "kylo-categories";
final String KYLO_FEEDS = "kylo-feeds";
final String INDEXES = "indexes";
final String INDEX_PROVIDERS = "indexProviders";
try {
repositoryConfiguration = RepositoryConfiguration.read(EMPTY_CONFIG);
} catch (ParsingException | FileNotFoundException e) {
e.printStackTrace();
return null;
}
Editor editor = repositoryConfiguration.edit();
EditableDocument indexesDocument = editor.getOrCreateDocument(INDEXES);
EditableDocument categoriesIndexDocument = indexesDocument.getOrCreateDocument(KYLO_CATEGORIES);
EditableDocument feedsIndexDocument = indexesDocument.getOrCreateDocument(KYLO_FEEDS);
categoriesIndexDocument.putAll(getCategoriesIndexConfiguration());
feedsIndexDocument.putAll(getFeedsIndexConfiguration());
EditableDocument indexProvidersDocument = editor.getOrCreateDocument(INDEX_PROVIDERS);
EditableDocument elasticSearchIndexProviderDocument = indexProvidersDocument.getOrCreateDocument(ELASTIC_SEARCH);
elasticSearchIndexProviderDocument.putAll(getElasticSearchIndexProviderConfiguration());
repositoryConfiguration = new RepositoryConfiguration(editor, repositoryConfiguration.getName());
return repositoryConfiguration;
}
use of org.modeshape.jcr.RepositoryConfiguration in project kylo by Teradata.
the class ElasticSearchModeShapeConfigurationService method build.
@Override
public RepositoryConfiguration build() {
RepositoryConfiguration repositoryConfiguration;
final String EMPTY_CONFIG = "{}";
final String KYLO_CATEGORIES = "kylo-categories";
final String KYLO_FEEDS = "kylo-feeds";
final String INDEXES = "indexes";
final String INDEX_PROVIDERS = "indexProviders";
try {
repositoryConfiguration = RepositoryConfiguration.read(EMPTY_CONFIG);
} catch (ParsingException | FileNotFoundException e) {
log.error("Error loading the repository configuration", e);
return null;
}
Editor editor = repositoryConfiguration.edit();
EditableDocument indexesDocument = editor.getOrCreateDocument(INDEXES);
EditableDocument categoriesIndexDocument = indexesDocument.getOrCreateDocument(KYLO_CATEGORIES);
EditableDocument feedsIndexDocument = indexesDocument.getOrCreateDocument(KYLO_FEEDS);
categoriesIndexDocument.putAll(getCategoriesIndexConfiguration());
feedsIndexDocument.putAll(getFeedsIndexConfiguration());
EditableDocument indexProvidersDocument = editor.getOrCreateDocument(INDEX_PROVIDERS);
EditableDocument elasticSearchIndexProviderDocument = indexProvidersDocument.getOrCreateDocument(ELASTIC_SEARCH);
elasticSearchIndexProviderDocument.putAll(getElasticSearchIndexProviderConfiguration());
repositoryConfiguration = new RepositoryConfiguration(editor, repositoryConfiguration.getName());
return repositoryConfiguration;
}
use of org.modeshape.jcr.RepositoryConfiguration in project kylo by Teradata.
the class SolrSearchModeShapeConfigurationService method build.
@Override
public RepositoryConfiguration build() {
RepositoryConfiguration repositoryConfiguration;
final String EMPTY_CONFIG = "{}";
final String KYLO_CATEGORIES_METADATA = "kylo-categories-metadata";
final String KYLO_FEEDS_METADATA = "kylo-feeds-metadata";
final String INDEXES = "indexes";
final String INDEX_PROVIDERS = "indexProviders";
try {
repositoryConfiguration = RepositoryConfiguration.read(EMPTY_CONFIG);
} catch (ParsingException | FileNotFoundException e) {
e.printStackTrace();
repositoryConfiguration = new RepositoryConfiguration();
}
Editor editor = repositoryConfiguration.edit();
EditableDocument indexesDocument = editor.getOrCreateDocument(INDEXES);
EditableDocument categoriesIndexDocument = indexesDocument.getOrCreateDocument(KYLO_CATEGORIES_METADATA);
EditableDocument feedsIndexDocument = indexesDocument.getOrCreateDocument(KYLO_FEEDS_METADATA);
categoriesIndexDocument.putAll(getCategoriesIndexConfiguration());
feedsIndexDocument.putAll(getFeedsIndexConfiguration());
EditableDocument indexProvidersDocument = editor.getOrCreateDocument(INDEX_PROVIDERS);
EditableDocument localNamedIndexProviderDocument = indexProvidersDocument.getOrCreateDocument(LUCENE);
localNamedIndexProviderDocument.putAll(getLuceneIndexProviderConfiguration());
repositoryConfiguration = new RepositoryConfiguration(editor, repositoryConfiguration.getName());
return repositoryConfiguration;
}
use of org.modeshape.jcr.RepositoryConfiguration in project kylo by Teradata.
the class JcrNotebooksApp method main.
public static void main(String... args) throws RepositoryException, IOException {
ModeShapeEngine engine = new ModeShapeEngine();
engine.start();
Repository repository = null;
String repositoryName = null;
URL url = JcrNotebooksApp.class.getClassLoader().getResource("sandbox/notebook-test-repository.json");
RepositoryConfiguration config = RepositoryConfiguration.read(url);
// Verify the configuration for the repository ...
Problems problems = config.validate();
if (problems.hasErrors()) {
System.err.println("Problems starting the engine.");
System.err.println(problems);
System.exit(-1);
}
// Deploy the repository ...
repository = engine.deploy(config);
repositoryName = config.getName();
Session session = null;
JcrTools tools = new JcrTools();
tools.setDebug(true);
// get the repository
repository = engine.getRepository(repositoryName);
Project p;
session = repository.login("default");
// Create the '/files' node that is an 'nt:folder' ...
Node root = session.getRootNode();
/*
Node filesNode = root.addNode("notebooks", "nt:folder");
InputStream stream =
new BufferedInputStream(new FileInputStream("/Users/th186036/filesystemconnector/hello.txt"));
// Create an 'nt:file' node at the supplied path ...
Node fileNode = filesNode.addNode("hello.txt", "nt:file");
// Upload the file to that node ...
Node contentNode = fileNode.addNode("jcr:content", "nt:resource");
Binary binary = session.getValueFactory().createBinary(stream);
contentNode.setProperty("jcr:data", binary);
session.save();
*/
session = repository.login("default");
Node project = JcrUtil.getOrCreateNode(root, "Project1", JcrProject.NODE_TYPE);
List<Node> nodes = JcrUtil.getNodesOfType(root, JcrProject.NODE_TYPE);
logger.debug("Node list {}", nodes);
// List<JcrEntity> fileNodes = JcrUtil.getChildrenMatchingNodeType(root, JcrProject.NODE_TYPE, JcrEntity.class, null);
// logger.debug("Node list {}", nodes );
logger.debug("Modeshape subgraph");
tools.printSubgraph(root);
if (session != null) {
session.logout();
}
logger.info("Shutting down engine ...");
try {
engine.shutdown().get();
logger.info("Success!");
} catch (Exception e) {
e.printStackTrace();
}
}
Aggregations