All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.grails.datastore.gorm.gemfire.config.CacheServerConfigGenerator.groovy Maven / Gradle / Ivy

/* Copyright (C) 2010 SpringSource
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.grails.datastore.gorm.gemfire.config

import org.grails.datastore.mapping.gemfire.GemfireDatastore
import org.grails.datastore.mapping.model.PersistentEntity
import org.grails.datastore.mapping.gemfire.config.Region

/**
 * Generates a Gemfire cache.xml configuration for the Datastore.
 *
 * @author Graeme Rocher
 * @since 1.0
 */
class CacheServerConfigGenerator {

    GemfireDatastore datastore

    CacheServerConfigGenerator(GemfireDatastore datastore) {
        this.datastore = datastore
    }

    void generate(File target) {
        def regions = []
        for (PersistentEntity entity in datastore.mappingContext.persistentEntities) {
            Region r = entity.mapping.mappedForm
            def regionName = r?.region ?: entity.decapitalizedName
            regions << """\


        


            """
        }
        target.withWriter { w ->
            w << """\




    ${regions.join(System.getProperty('line.separator'))}

            """
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy