Subversion Repository Public Repository

litesoft

Diff Revisions 294 vs 298 for /trunk/Java/ScarPlus/src/com/esotericsoftware/scar/Scar.java

Diff revisions: vs.
  @@ -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 {