Запрос простой формы 3.x/infinispan конфигурации БД SQL
Я пытался заставить Modehape 3.2 работать с базой данных MySQL, и я не очень далеко. По умолчанию все в памяти, что для меня бесполезно.
Из того, что я собрал, похоже, мне нужно настроить Infispan для сохранения JCR. Я пытался адаптировать различные примеры, которые я гуглил, но безрезультатно.
Это запрос рабочей / проверенной конфигурации, а не попытки исправить один из испорченных конфигов на сайте jboss.org.
1 ответ
Начиная с Modeshape 3.2, вы не можете использовать конфигурацию infinispan xml с simpleConnection из-за ошибки. Но вот как вы можете сделать это программно...
Конфигурация Modeshape
{
"name" : "My Repository",
"jndiName" : "",
"monitoring" : {
"enabled" : true
},
"workspaces" : {
"default" : "defaultWorkspace",
"allowCreation" : true
},
"storage" : {
"cacheName" : "myCache",
"binaryStorage" : {
"type" : "database",
"driverClass" : "com.mysql.jdbc.Driver",
"username" : "modeshape",
"password" : "modeshape",
"url" : "jdbc:mysql://127.0.0.1:3306/modeshape?autoReconnect=true"
}
},
"security" : {
"anonymous" : {
"roles" : ["readonly","readwrite","admin"],
"username" : "admin",
"useOnFailedLogin" : true
},
"providers" : []
},
}
Затем в вашем коде настройте и включите InfinSpan, как это...
ConfigurationBuilder builder = new ConfigurationBuilder();
Configuration cacheConfig =
builder
.transaction()
.transactionManagerLookup(new GenericTransactionManagerLookup())
.transactionMode(TransactionMode.TRANSACTIONAL)
.lockingMode(LockingMode.OPTIMISTIC)
.loaders()
.addLoader(JdbcStringBasedCacheStoreConfigurationBuilder.class)
.fetchPersistentState(false)
.ignoreModifications(false)
.purgeOnStartup(false)
.table()
.dropOnExit(false)
.createOnStart(true)
.tableNamePrefix("ISPN_STRING_TABLE")
.idColumnName("ID_COLUMN").idColumnType("VARCHAR(255)")
.dataColumnName("DATA_COLUMN").dataColumnType("BLOB")
.timestampColumnName("TIMESTAMP_COLUMN").timestampColumnType("BIGINT")
.simpleConnection()
.connectionUrl("jdbc:mysql://127.0.0.1:3306/modeshape?autoReconnect=true")
.username("modeshape")
.password("modeshape")
.driverClass("com.mysql.jdbc.Driver").build();
LocalEnvironment environment = new LocalEnvironment();
environment.defineCache("myCache", cacheConfig); // Must match the cacheName property in your modeshape config
String confPath = "<path to modeshape config>";
RepositoryConfiguration repositoryConfiguration = RepositoryConfiguration.read(new File(confPath));
repositoryConfiguration = repositoryConfiguration.with(environment);
ModeShapeEngine engine = new ModeShapeEngine();
engine.start();
repository = engine.deploy(repositoryConfiguration);
Надеюсь, что это помогает кому-то. Хотя, это довольно медленно, так что вы, вероятно, не хотите настраивать его таким образом.