ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claas Thiele <cthi...@virbus.de>
Subject Re: public vs. private targets
Date Fri, 23 Feb 2001 17:44:18 GMT
I'm hacked such behavior for ant1.2 but I can't make diffs.
my editor had changed tabs to spaces. So it is not easy to give back my stuff 
to the ant group.
Yust have a try with code snippets:

At first Target (Target.java)  needs a boolean attribute named internal and a 
setter for this attribute.

Main.java:
nearly line 427 - give ant a chance to block internal targets

            // make sure that we have a target to execute
            if (targets.size() == 0) {
                targets.addElement(project.getDefaultTarget());
            }

            if (projectHelp) {
                printTargets(project);
            } else {
				String internalTargetName = allPublicTargets(project, targets);
				if (internalTargetName != null) {
	                throw new BuildException("Target " + internalTargetName + " 
is not executable from outside");
				}
                // actually do some work
                project.executeTargets(targets);
            }

-------------------------------------------------
new method

    /**
     * Checks if all targets to be executed from outside not being internal
     */
    private static String allPublicTargets(Project project, Vector tNames) {
        Target currentTarget;
        Enumeration targetNames = tNames.elements();
		Hashtable targets = project.getTargets();
        while (targetNames.hasMoreElements()) {
            currentTarget = 
(Target)targets.get((String)targetNames.nextElement());
			if (currentTarget != null) {
				if (currentTarget.isInternal()) return currentTarget.getName();
			}
        }
		return null;
	}
		


hope this helps


-- 
__Claas Thiele____________________________________________________ 
                                                 VIRBUS AG 
                                                 Software Development 
     phone                                   +49 341 979 7430 
     fax                                        +49 341 979 7409 
     mail                                      claas.thiele@virbus.de 
  .................................................................... 
                                                http://www.virbus.de

Mime
View raw message