Запрос простой формы 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);

Надеюсь, что это помогает кому-то. Хотя, это довольно медленно, так что вы, вероятно, не хотите настраивать его таким образом.

Другие вопросы по тегам