private Project createProjectForFile()

in src/main/org/apache/ant/antunit/AntUnit.java [374:413]


    private Project createProjectForFile(File f) {
        Project p = new Project();
        if (subprojectCoreLoader != null) {
            p.setCoreLoader(subprojectCoreLoader);
        }
        p.setDefaultInputStream(getProject().getDefaultInputStream());
        p.initProperties();
        p.setInputHandler(getProject().getInputHandler());
        getProject().initSubProject(p);
        //pass through inherited properties
        for (PropertySet set : propertySets) {
            @SuppressWarnings({ "unchecked", "rawtypes" })
            Map<String,Object> props = (Map) set.getProperties();
            for (String key : props.keySet()) {
                if (MagicNames.PROJECT_BASEDIR.equals(key) || MagicNames.ANT_FILE.equals(key)) {
                    continue;
                }
                Object value = props.get(key);
                if (value instanceof String && p.getProperty(key) == null) {
                    p.setNewProperty(key, (String) value);
                }
            }
        }

        //pass through inherited references.  this code is borrowed
        //with significant modification from taskdefs.Ant in Ant core.
        //unfortunately the only way we can share the code directly
        //would be to extend Ant (which might not be a bad idea?)
        for (ReferenceSet set : referenceSets) {
            set.copyReferencesInto(p);
        }

        p.setUserProperty(MagicNames.ANT_FILE, f.getAbsolutePath());
        attachListeners(f, p);

        // read build file
        ProjectHelper.configureProject(p, f);

        return p;
    }