|
@@ -57,19 +57,28 @@ |
57 |
57 |
|
/** |
58 |
58 |
|
* Loads the specified project with default values and loads any other projects needed for the "include" property. |
59 |
59 |
|
* |
60 |
|
- |
* @param pPath Path to a YAML project file, or a directory containing a "project.yaml" file. |
|
60 |
+ |
* @param pCurrentDirectory |
|
61 |
+ |
* @param pPath Path to a YAML project file, or a directory containing a "project.yaml" file. |
61 |
62 |
|
*/ |
62 |
63 |
|
@Override |
63 |
|
- |
public Project project( String pPath ) |
|
64 |
+ |
public Project project( File pCurrentDirectory, String pPath ) |
64 |
65 |
|
throws IOException |
65 |
66 |
|
{ |
66 |
|
- |
String zPath = canonical( Util.assertNotEmpty( "Path", pPath ) ); |
|
67 |
+ |
Util.assertNotNull( "CurrentDirectory", pCurrentDirectory ); |
|
68 |
+ |
pPath = Util.assertNotEmpty( "Path", pPath ); |
|
69 |
+ |
File zFile = new File(pPath); |
|
70 |
+ |
if ( !zFile.isAbsolute() ) |
|
71 |
+ |
{ |
|
72 |
+ |
zFile = new File( pCurrentDirectory, pPath ); |
|
73 |
+ |
} |
|
74 |
+ |
zFile = Utils.canonical( zFile ); |
|
75 |
+ |
|
|
76 |
+ |
String zPath = zFile.getPath(); |
67 |
77 |
|
Project zProject = mProjectCache.getByPath( zPath ); |
68 |
78 |
|
if ( zProject != null ) |
69 |
79 |
|
{ |
70 |
80 |
|
return zProject; |
71 |
81 |
|
} |
72 |
|
- |
File zFile = new File( zPath ); |
73 |
82 |
|
try |
74 |
83 |
|
{ |
75 |
84 |
|
if ( zFile.isFile() ) // Assume Project Build File |
|
@@ -364,9 +373,35 @@ |
364 |
373 |
|
|
365 |
374 |
|
protected Class<Project> createJavaCodeProjectClass( Class<? extends Project> pClass, String pCode ) |
366 |
375 |
|
{ |
367 |
|
- |
throw new UnsupportedOperationException(); // todo: See - executeDocument(); |
|
376 |
+ |
throw new UnsupportedOperationException(); // todo: See - executeDocument()!; |
|
377 |
+ |
} |
|
378 |
+ |
|
|
379 |
+ |
public void cleanAll() |
|
380 |
+ |
throws IOException |
|
381 |
+ |
{ |
|
382 |
+ |
System.out.println( "cleanAll" ); |
|
383 |
+ |
// todo: ... |
368 |
384 |
|
} |
369 |
385 |
|
|
|
386 |
+ |
public void build() |
|
387 |
+ |
throws IOException |
|
388 |
+ |
{ |
|
389 |
+ |
mLaunchProject.build(); |
|
390 |
+ |
} |
|
391 |
+ |
|
|
392 |
+ |
/// todo: ================================================================================================================== |
|
393 |
+ |
/// todo: ================================================================================================================== |
|
394 |
+ |
/// todo: ================================================================================================================== |
|
395 |
+ |
/// todo: ================================================================================================================== |
|
396 |
+ |
/// todo: ================================================================================================================== |
|
397 |
+ |
/// todo: ================================================================================================================== |
|
398 |
+ |
/// todo: ================================================================================================================== |
|
399 |
+ |
/// todo: ================================================================================================================== |
|
400 |
+ |
/// todo: ================================================================================================================== |
|
401 |
+ |
/// todo: ================================================================================================================== |
|
402 |
+ |
/// todo: ================================================================================================================== |
|
403 |
+ |
/// todo: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Here be Dragons vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv |
|
404 |
+ |
|
370 |
405 |
|
/** |
371 |
406 |
|
* Loads the specified project with the specified defaults and loads any other projects needed for the "include" property. |
372 |
407 |
|
* |
|
@@ -447,7 +482,7 @@ |
447 |
482 |
|
Util.assertNotNull( "Project", project ); |
448 |
483 |
|
for ( String dependency : project.getDependencies() ) |
449 |
484 |
|
{ |
450 |
|
- |
Project dependencyProject = project( project.path( dependency ) ); |
|
485 |
+ |
Project dependencyProject = project( null, project.path( dependency ) ); |
451 |
486 |
|
String dependencyTarget = dependencyProject.path( "$target$/" ); |
452 |
487 |
|
if ( errorIfDependenciesNotBuilt && !fileExists( dependencyTarget ) ) |
453 |
488 |
|
{ |
|
@@ -710,7 +745,7 @@ |
710 |
745 |
|
|
711 |
746 |
|
for ( String dependency : project.getDependencies() ) |
712 |
747 |
|
{ |
713 |
|
- |
Project dependencyProject = project( project.path( dependency ) ); |
|
748 |
+ |
Project dependencyProject = project( null, project.path( dependency ) ); |
714 |
749 |
|
String dependencyTarget = dependencyProject.path( "$target$/" ); |
715 |
750 |
|
if ( !fileExists( dependencyTarget ) ) |
716 |
751 |
|
{ |
|
@@ -1702,6 +1737,19 @@ |
1702 |
1737 |
|
Paths.setDefaultGlobExcludes( "**/.svn/**" ); |
1703 |
1738 |
|
} |
1704 |
1739 |
|
|
|
1740 |
+ |
/// todo: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Here be Dragons ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
1741 |
+ |
/// todo: ================================================================================================================== |
|
1742 |
+ |
/// todo: ================================================================================================================== |
|
1743 |
+ |
/// todo: ================================================================================================================== |
|
1744 |
+ |
/// todo: ================================================================================================================== |
|
1745 |
+ |
/// todo: ================================================================================================================== |
|
1746 |
+ |
/// todo: ================================================================================================================== |
|
1747 |
+ |
/// todo: ================================================================================================================== |
|
1748 |
+ |
/// todo: ================================================================================================================== |
|
1749 |
+ |
/// todo: ================================================================================================================== |
|
1750 |
+ |
/// todo: ================================================================================================================== |
|
1751 |
+ |
/// todo: ================================================================================================================== |
|
1752 |
+ |
|
1705 |
1753 |
|
private static class BuildFileFilter implements FileFilter |
1706 |
1754 |
|
{ |
1707 |
1755 |
|
private static final String DEFAULT_JAVA_PROJECT_FILE_NAME = DEFAULT_PROJECT_FILE_NAME + JAVA_EXTENSION; |
|
@@ -1735,6 +1783,7 @@ |
1735 |
1783 |
|
} |
1736 |
1784 |
|
|
1737 |
1785 |
|
private Project initialize( ProjectFactory pFactory, String pPath, Project pProject ) |
|
1786 |
+ |
throws IOException |
1738 |
1787 |
|
{ |
1739 |
1788 |
|
synchronized ( this ) |
1740 |
1789 |
|
{ |
|
@@ -1785,7 +1834,7 @@ |
1785 |
1834 |
|
Method[] zMethods = pObject.getClass().getMethods(); |
1786 |
1835 |
|
for ( Method zMethod : zMethods ) |
1787 |
1836 |
|
{ |
1788 |
|
- |
if ( zMethod.getReturnType().equals( Void.class ) && (zMethod.getParameterTypes().length == 0) ) |
|
1837 |
+ |
if ( zMethod.getReturnType().equals( Void.TYPE ) && (zMethod.getParameterTypes().length == 0) ) |
1789 |
1838 |
|
{ |
1790 |
1839 |
|
if ( pMethodName.equals( zMethod.getName() ) ) |
1791 |
1840 |
|
{ |
|
@@ -1811,7 +1860,7 @@ |
1811 |
1860 |
|
protected void createLaunchProject() |
1812 |
1861 |
|
throws IOException |
1813 |
1862 |
|
{ |
1814 |
|
- |
mLaunchProject = project( mArgs.get( "file", "." ) ); |
|
1863 |
+ |
mLaunchProject = project( new File( System.getProperty("user.dir") ), mArgs.get( "file", "." ) ); |
1815 |
1864 |
|
} |
1816 |
1865 |
|
|
1817 |
1866 |
|
protected int run() |
|
@@ -1837,7 +1886,6 @@ |
1837 |
1886 |
|
List<String> zUnrecognizedNames = new ArrayList<String>(); |
1838 |
1887 |
|
for ( Arguments.NameValuePair zPair; null != (zPair = mArgs.getNext()); ) |
1839 |
1888 |
|
{ |
1840 |
|
- |
|
1841 |
1889 |
|
Runnable zRunnable = createRunnableFor( zPair.getName() ); |
1842 |
1890 |
|
if ( zRunnable != null ) |
1843 |
1891 |
|
{ |