001    package org.kuali.common.deploy.spring;
002    
003    import org.kuali.common.deploy.project.DeployProjectConstants;
004    import org.kuali.common.util.project.ProjectService;
005    import org.kuali.common.util.project.ProjectUtils;
006    import org.kuali.common.util.project.model.Project;
007    import org.kuali.common.util.project.spring.AutowiredProjectConfig;
008    import org.kuali.common.util.project.spring.ProjectServiceConfig;
009    import org.kuali.common.util.properties.Location;
010    import org.kuali.common.util.spring.env.EnvironmentService;
011    import org.springframework.beans.factory.annotation.Autowired;
012    import org.springframework.context.annotation.Bean;
013    import org.springframework.context.annotation.Configuration;
014    import org.springframework.context.annotation.Import;
015    
016    @Configuration
017    @Import({ AutowiredProjectConfig.class, ProjectServiceConfig.class })
018    public class BaseLocationsConfig {
019    
020            @Autowired
021            EnvironmentService env;
022    
023            @Autowired
024            ProjectService service;
025    
026            @Autowired
027            Project project;
028    
029            @Bean
030            public String kualiDeployEncoding() {
031                    Project project = service.getProject(DeployProjectConstants.ID);
032                    return ProjectUtils.getEncoding(project);
033            }
034    
035            @Bean
036            public Location kualiDeployApplicationDefaults() {
037                    String path = kualiDeployGroupPrefix() + "/" + project.getArtifactId() + ".properties";
038                    return new Location(path, kualiDeployEncoding(), true);
039            }
040    
041            @Bean
042            public String kualiDeployGroupPrefix() {
043                    return ProjectUtils.getClasspathPrefix(project.getGroupId());
044            }
045    
046            @Bean
047            public Location kualiDeployGroupDefaults() {
048                    String path = kualiDeployGroupPrefix() + "/deploy.properties";
049                    return new Location(path, kualiDeployEncoding(), true);
050            }
051    
052            @Bean
053            public Location kualiDeployDefaults() {
054                    String prefix = ProjectUtils.getClasspathPrefix(DeployProjectConstants.ID.getGroupId());
055                    String path = prefix + "/deploy/deploy.properties";
056                    return new Location(path, kualiDeployEncoding(), true);
057            }
058    
059    }