001/**
002 * Copyright 2010-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.common.util.property;
017
018import org.kuali.common.util.Encodings;
019import org.kuali.common.util.Mode;
020import org.kuali.common.util.maven.MavenConstants;
021import org.kuali.common.util.property.processor.NoOpProcessor;
022import org.kuali.common.util.property.processor.PropertyProcessor;
023import org.springframework.util.PropertyPlaceholderHelper;
024
025public final class Constants {
026
027        @Deprecated
028        public static final String UTF8 = Encodings.UTF8;
029        @Deprecated
030        public static final String DEFAULT_ENCODING = UTF8;
031        @Deprecated
032        public static final String DEFAULT_MAVEN_PROPERTIES_BEAN_NAME = MavenConstants.PROPERTIES_BEAN_NAME;
033        public static final String DEFAULT_PLACEHOLDER_PREFIX = "${";
034        public static final String DEFAULT_PLACEHOLDER_SUFFIX = "}";
035        public static final String DEFAULT_VALUE_SEPARATOR = ":";
036        public static final String DEFAULT_ESCAPE_STRING = "\\";
037        public static final boolean DEFAULT_IGNORE_UNRESOLVABLE_PLACEHOLDERS = true;
038        public static final boolean DEFAULT_RESOLVE_PLACEHOLDERS = true;
039        public static final String DEFAULT_ENCRYPTED_SUFFIX = ".encrypted";
040        public static final String DEFAULT_PATH_SUFFIX = "path";
041        public static final String DEFAULT_MAJOR_VERSION_SUFFIX = "major";
042        public static final String DEFAULT_MINOR_VERSION_SUFFIX = "minor";
043        public static final String DEFAULT_INCREMENTAL_VERSION_SUFFIX = "incremental";
044        public static final String DEFAULT_QUALIFIER_VERSION_SUFFIX = "qualifier";
045        public static final String DEFAULT_TRIMMED_VERSION_SUFFIX = "trimmed";
046        public static final String DEFAULT_SNAPSHOT_VERSION_SUFFIX = "snapshot";
047        public static final String DEFAULT_CODE_SUFFIX = "code";
048        public static final String DEFAULT_HOME_SUFFIX = "home";
049        @Deprecated
050        public static final String DEFAULT_GROUP_ID_PROPERTY = MavenConstants.GROUP_ID_KEY;
051        @Deprecated
052        public static final String DEFAULT_ARTIFACT_ID_PROPERTY = MavenConstants.ARTIFACT_ID_KEY;
053        @Deprecated
054        public static final String DEFAULT_VERSION_PROPERTY = MavenConstants.VERSION_KEY;
055        public static final String DEFAULT_USER_HOME_PROPERTY = "user.home";
056        public static final Mode DEFAULT_PROPERTY_OVERWRITE_MODE = Mode.INFORM;
057        public static final GlobalPropertiesMode DEFAULT_GLOBAL_PROPERTIES_MODE = GlobalPropertiesMode.BOTH;
058        public static final PropertyPlaceholderHelper DEFAULT_PROPERTY_PLACEHOLDER_HELPER = getDefaultHelper();
059        public static final PropertyProcessor NO_OP_PROCESSOR = new NoOpProcessor();
060        public static final String GROUP_ID = "groupId";
061        public static final String GROUP = "group";
062        @Deprecated
063        public static final String NONE = "NONE";
064        @Deprecated
065        public static final String NULL = "NULL";
066        public static final String WILDCARD = "*";
067
068        @Deprecated
069        public static final String ENCRYPTION_PREFIX = "ENC(";
070        @Deprecated
071        public static final String ENCRYPTION_SUFFIX = ")";
072
073        // KS uses a bunch of groupId's. This was used to shorten everything thing to "org.kuali.student"
074        // The CM 2.0 branch is the only software at Kuali that has that characteristic and has yet to upgrade to the 3.3.x Kuali pom
075        @Deprecated
076        public static final String GROUP_ID_BASE_PATH_KEY = "project.groupId.base.path";
077        public static final String ARTIFACT_ID_KEY = MavenConstants.ARTIFACT_ID_KEY;
078        public static final String GROUP_ID_PATH_KEY = MavenConstants.GROUP_ID_PATH_KEY;
079        public static final String PROJECT_PROPERTIES_BASE = "META-INF/${" + GROUP_ID_PATH_KEY + "}/${" + ARTIFACT_ID_KEY + "}";
080        public static final String PROJECT_PROPERTIES_FRAGMENT = PROJECT_PROPERTIES_BASE + "/project.properties";
081        public static final String PROJECT_PROPERTIES_OUTPUTFILE = "${project.build.outputDirectory}/" + PROJECT_PROPERTIES_FRAGMENT;
082        public static final String PROJECT_PROPERTIES_LOCATION = "classpath:" + PROJECT_PROPERTIES_FRAGMENT;
083
084        public static final String RICE_PROPERTIES_SUFFIX = "rice-properties.xml";
085        public static final String RICE_PROJECT_PROPERTIES_FRAGMENT = PROJECT_PROPERTIES_BASE + "/project-" + RICE_PROPERTIES_SUFFIX;
086        public static final String RICE_PROJECT_PROPERTIES_OUTPUTFILE = "${project.build.outputDirectory}/" + RICE_PROJECT_PROPERTIES_FRAGMENT;
087        public static final String RICE_PROJECT_PROPERTIES_LOCATION = "classpath:" + RICE_PROJECT_PROPERTIES_FRAGMENT;
088
089        private static final PropertyPlaceholderHelper getDefaultHelper() {
090                return new PropertyPlaceholderHelper(DEFAULT_PLACEHOLDER_PREFIX, DEFAULT_PLACEHOLDER_SUFFIX, DEFAULT_VALUE_SEPARATOR, DEFAULT_IGNORE_UNRESOLVABLE_PLACEHOLDERS);
091        }
092
093}