/** * Constructor * * @param name Name of the project * @param basedir the base directory for the Depot */ public FrameworkProject( final String name, final File basedir, final IFrameworkProjectMgr resourceMgr) { super(name, basedir, resourceMgr); projectResourceMgr = resourceMgr; resourcesBaseDir = new File(getBaseDir(), "resources"); etcDir = new File(getBaseDir(), ETC_DIR_NAME); if (!etcDir.exists()) { if (!etcDir.mkdirs()) { throw new FrameworkResourceException( "error while creating project structure. " + "failed creating directory: " + etcDir.getAbsolutePath(), this); } } if (!(new File(getEtcDir(), PROP_FILENAME).exists())) { generateProjectPropertiesFile(false); } final Properties ownProps = new Properties(); ownProps.setProperty("project.name", name); final File fwkDepotPropertyFile = new File(projectResourceMgr.getFramework().getConfigDir(), PROP_FILENAME); final Properties nodeWideDepotProps = PropertyLookup.fetchProperties(fwkDepotPropertyFile); nodeWideDepotProps.putAll(ownProps); propertyFile = new File(getEtcDir(), PROP_FILENAME); if (propertyFile.exists()) { lookup = PropertyLookup.create( propertyFile, nodeWideDepotProps, projectResourceMgr.getFramework().getPropertyLookup()); getLogger().debug("loading existing project.properties: " + propertyFile.getAbsolutePath()); } else { lookup = PropertyLookup.create( fwkDepotPropertyFile, ownProps, projectResourceMgr.getFramework().getPropertyLookup()); getLogger() .debug("loading instance-level project.properties: " + propertyFile.getAbsolutePath()); } lookup.expand(); final String resfilepath = getNodesResourceFilePath(); File resfile = new File(resfilepath); if (!resfile.isFile() && shouldUpdateNodesResourceFile()) { try { updateNodesResourceFile(); } catch (UpdateUtils.UpdateException e) { getLogger().error("Unable to retrieve resources file: " + e.getMessage()); } } else if (!resfile.isFile()) { generateResourcesFile(resfile); } initialize(); }
public boolean hasProperty(final String key) { return lookup.hasProperty(key); }
/** * Return the property value by name * * @param name * @return */ public String getProperty(final String name) { return lookup.getProperty(name); }