Revision: 3953
          http://vexi.svn.sourceforge.net/vexi/?rev=3953&view=rev
Author:   mkpg2
Date:     2010-10-27 22:48:22 +0000 (Wed, 27 Oct 2010)

Log Message:
-----------
Initial version. Vexi code builders. Belated check in.

Added Paths:
-----------
    trunk/org.vexi-build.vexi.archive/build.xml
    trunk/org.vexi-build.vexi.archive/meta/
    trunk/org.vexi-build.vexi.archive/meta/build-plugin.xml
    trunk/org.vexi-build.vexi.archive/meta/module-build.xml
    trunk/org.vexi-build.vexi.archive/meta/module.xml
    trunk/org.vexi-build.vexi.archive/src/
    trunk/org.vexi-build.vexi.archive/src/main/
    trunk/org.vexi-build.vexi.archive/src/main/java/
    trunk/org.vexi-build.vexi.archive/src/main/java/org/
    trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/
    trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/
    trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/
    trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/
    
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexiArchiveBuilder.java
    
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexidevProject.java
    trunk/org.vexi-build.vexi.archive/src/test/
    trunk/org.vexi-build.vexi.archive/src/test/java/
    trunk/org.vexi-build.vexi.archive/src/test/java/test_jpp/
    trunk/org.vexi-build.vexi.archive/src/test/java/test_jpp/cases/
    trunk/org.vexi-build.vexi.manifest/build.xml
    trunk/org.vexi-build.vexi.manifest/meta/
    trunk/org.vexi-build.vexi.manifest/meta/build-plugin.xml
    trunk/org.vexi-build.vexi.manifest/meta/module-build.xml
    trunk/org.vexi-build.vexi.manifest/meta/module.xml
    trunk/org.vexi-build.vexi.manifest/src/
    trunk/org.vexi-build.vexi.manifest/src/main/
    trunk/org.vexi-build.vexi.manifest/src/main/java/
    trunk/org.vexi-build.vexi.manifest/src/main/java/org/
    trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/
    trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/
    trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/
    
trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/manifest/
    
trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/manifest/VexiManifestBuilder.java
    trunk/org.vexi-build.vexi.manifest/src/test/
    trunk/org.vexi-build.vexi.manifest/src/test/java/
    trunk/org.vexi-build.vexi.manifest/src/test/java/test_jpp/
    trunk/org.vexi-build.vexi.manifest/src/test/java/test_jpp/cases/

Property Changed:
----------------
    trunk/org.vexi-build.vexi.archive/
    trunk/org.vexi-build.vexi.manifest/


Property changes on: trunk/org.vexi-build.vexi.archive
___________________________________________________________________
Added: svn:ignore
   + release

.settings

build

.project

.classpath


Added: trunk/org.vexi-build.vexi.archive/build.xml
===================================================================
--- trunk/org.vexi-build.vexi.archive/build.xml                         (rev 0)
+++ trunk/org.vexi-build.vexi.archive/build.xml 2010-10-27 22:48:22 UTC (rev 
3953)
@@ -0,0 +1,6 @@
+<project default="eclipse_setup">
+
+       <property name="ebuild.home" location="../_ebuild"/>
+    <import file="${ebuild.home}/interface/workspace.ent"/>
+
+</project>
\ No newline at end of file


Property changes on: trunk/org.vexi-build.vexi.archive/build.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/org.vexi-build.vexi.archive/meta/build-plugin.xml
===================================================================
--- trunk/org.vexi-build.vexi.archive/meta/build-plugin.xml                     
        (rev 0)
+++ trunk/org.vexi-build.vexi.archive/meta/build-plugin.xml     2010-10-27 
22:48:22 UTC (rev 3953)
@@ -0,0 +1,5 @@
+<ebuild-build-plugin ebuild-version="pre-1.0">
+       <declare-builder class="org.vexi.build.vexi.archive.VexiArchiveBuilder">
+               <export type="vexi" archive="true" archive-suffix="vexi" 
named="true"/>
+       </declare-builder>
+</ebuild-build-plugin>
\ No newline at end of file


Property changes on: trunk/org.vexi-build.vexi.archive/meta/build-plugin.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/org.vexi-build.vexi.archive/meta/module-build.xml
===================================================================
--- trunk/org.vexi-build.vexi.archive/meta/module-build.xml                     
        (rev 0)
+++ trunk/org.vexi-build.vexi.archive/meta/module-build.xml     2010-10-27 
22:48:22 UTC (rev 3953)
@@ -0,0 +1,7 @@
+<ebuild-module-build ebuild-version="pre-1.0"> 
+       <using source="local" name="build.shared"/>
+       
+       <builders>
+               <builder source="ebuild.org" name="build.java.compile" />
+       </builders>
+</ebuild-module-build>


Property changes on: trunk/org.vexi-build.vexi.archive/meta/module-build.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/org.vexi-build.vexi.archive/meta/module.xml
===================================================================
--- trunk/org.vexi-build.vexi.archive/meta/module.xml                           
(rev 0)
+++ trunk/org.vexi-build.vexi.archive/meta/module.xml   2010-10-27 22:48:22 UTC 
(rev 3953)
@@ -0,0 +1,10 @@
+<ebuild-module  ebuild-version="pre-1.0">
+       <using source="local" name="build.shared"/>
+       
+       <dependencies>
+               <dependency source="system"                                     
     name="jre"            version="1.5"/>
+               <dependency source="ibiblio"     org="org.antlr"                
     name="stringtemplate" version="3.2.1" />
+           <dependency source="ebuild.org"                                     
 name="api.plugin" />
+           <dependency source="ebuild.org"                                     
 name="lib.ant" />
+       </dependencies>
+</ebuild-module>


Property changes on: trunk/org.vexi-build.vexi.archive/meta/module.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexiArchiveBuilder.java
===================================================================
--- 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexiArchiveBuilder.java
                         (rev 0)
+++ 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexiArchiveBuilder.java
 2010-10-27 22:48:22 UTC (rev 3953)
@@ -0,0 +1,70 @@
+package org.vexi.build.vexi.archive;
+
+import ebuild.api.IBuilderArgument;
+import ebuild.api.IGenConfArgument;
+import ebuild.api.plugin.AbstractBuilder;
+import ebuild.api.plugin.BuildPluginException;
+import ebuild.api.plugin.IEclipseNature;
+
+public class VexiArchiveBuilder extends AbstractBuilder implements 
IEclipseNature{
+
+    public void build(IBuilderArgument argument) throws BuildPluginException{
+        // Nothing tod do, all we do is export
+    }
+
+    public void generateEclipseProjectSettings(IGenConfArgument argument) 
throws BuildPluginException{
+        try{
+            new VexidevProject(argument).generate();
+        }catch(BuildPluginException e){
+            throw e;
+        }catch(Exception e){
+            throw new BuildPluginException(e);
+        }
+    }
+
+//    
+//    private List<String> sourcesList(IBuilderArgument argument){
+//        List<File> fs = argument.getInputDirs("vexi");
+//        List<String> r = new ArrayList(fs.size());
+//        for(File f: fs) r.add(f.getAbsolutePath());
+//        return r;
+//    }
+//    
+//    private Path sourcesPath(Project p, List<String> sources, boolean 
negate){
+//        Path sourcePath = new Path(p);
+//        FilenameSelector fns = new FilenameSelector();
+//        fns.setName("**/*");
+//        for(String s: sources){
+//            FileSet fs = new FileSet();
+//            fs.setDir(new File(s));
+//            fs.addFilename(fns);
+//            sourcePath.addFileset(fs);
+//        }
+//        return sourcePath;
+//    }
+//    
+//    
+//    public void zipsources(IBuilderArgument argument) throws Exception{
+//        final ILogger logger = argument.getLogger();
+//        IModuleBuildProject module = argument.getModuleBuildProject();
+//        File targetSources = argument.getOutputDir("jpp.sources");
+//        
+//        // inputs
+//        List<String> sources = sourcesList(argument);
+//
+//        Project p = new Project();
+//        
+//        // inputs
+//        Path sourcePath = sourcesPath(p, sources, false);
+//        p.addReference("source.path", sourcePath);
+//        
+//        // outputs
+//        String jarname = module.getName();
+//        targetSources.mkdirs();
+//        p.setUserProperty("target.sources", targetSources.getAbsolutePath());
+//        p.setUserProperty("jarname",  jarname);
+//        
+//        Execution e = AntStuff.newExecution(p, logger, "build.xml", 
getClass());
+//        e.executeTarget("zip_sources");
+//    }
+}


Property changes on: 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexiArchiveBuilder.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexidevProject.java
===================================================================
--- 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexidevProject.java
                             (rev 0)
+++ 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexidevProject.java
     2010-10-27 22:48:22 UTC (rev 3953)
@@ -0,0 +1,112 @@
+package org.vexi.build.vexi.archive;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import ebuild.api.IEBuild;
+import ebuild.api.IGenConfArgument;
+import ebuild.api.IModuleProject;
+import ebuild.api.IModuleRelease;
+import ebuild.api.IModuleWorkspaceProject;
+import ebuild.api.common.Scope;
+import ebuild.util.Callable;
+import ebuild.util.JSONUtil;
+
+public class VexidevProject {
+    final IEBuild ebuild;
+    final IModuleWorkspaceProject module;
+       //private boolean groovy = false;
+       
+       public VexidevProject(IGenConfArgument argument){
+           this.ebuild = argument.getEBuild();
+               this.module = argument.getModuleWorkspaceProject();
+       }
+
+
+    public void generate() throws Exception {
+        contributeToDotProject();
+        generateDotVexipath();
+    }
+    
+    private void contributeToDotProject() throws IOException{
+        module.addNature("org.vexi.vexidev.vexiNature");
+    }
+
+       private void generateDotVexipath() throws Exception{
+               final List<String> projects = new ArrayList();
+               final List<String> source = new ArrayList();
+        
+               new Callable() {
+                       private Set<IModuleRelease> norecur = new HashSet();
+            private void addEntries(IModuleRelease mod) {
+                if(norecur.contains(mod)) return;
+                else norecur.add(mod);
+                
+                for(Scope s=Scope.TEST; s!=null; s=s.getParent()){
+                    for(File jar: mod.getArtifacts(s,"vexi.archive")){
+                           source.add("F/"+jar.getAbsolutePath());
+                       }
+                       
+                       for(IModuleRelease dep: mod.getDependencies(s)){
+                           addEntries(dep);
+                       }
+                   }
+            }
+
+                       private void addSrcFolder(String kind, Scope scope) 
throws Exception{
+                           String path = module.getArtifactPath(kind, scope, 
"vexi");
+                           if(!module.getProjectFile(path).exists()) return; 
+                           source.add("F/"+module.getName()+"/"+path);
+                       }
+                       private void addSrcFolders(Scope scope) throws 
Exception{
+                           addSrcFolder("src", scope);
+                           addSrcFolder("gen", scope);
+                       }
+                       public Object run() throws Exception {
+                           addSrcFolders(Scope.MAIN);
+                           addSrcFolders(Scope.POKE);
+                           addSrcFolders(Scope.TEST);
+                               
+                               for(IModuleProject mod:  
module.getWorkspaceDependencies(Scope.TEST)){
+                                   projects.add("P/"+mod.getName()); 
+                               }
+                               
+                               for(IModuleRelease mod: 
module.getReleasedDependencies(Scope.TEST)){
+                                   addEntries(mod);
+                               }
+                
+                for(Scope s = Scope.TEST; s!=null; s=s.getParent()){
+                    Collection<File> checkedArtifacts = 
module.getCheckedInArtifacts(s, "vexi.vexi");
+                    for(File a: checkedArtifacts){
+                        
source.add("F/"+module.getName()+"/checkedin/A"+a.getName());
+                    }
+                }
+                return null;
+                       }
+
+               }.run();
+               
+
+               Map vexipathObj = new HashMap(2);
+               vexipathObj.put("source",source);
+               vexipathObj.put("projects",projects);
+               JSONUtil.writeObject(new 
FileWriter(module.getProjectFile(".vexipath")), vexipathObj);
+       }
+    
+
+    public File getFile(String path) {
+        return module.getProjectFile(path); 
+    }
+    public boolean hasFile(String path) {
+        return getFile(path).exists(); 
+    }
+    public String toString() { return "EclipseProject: "+ module.getName(); }
+}


Property changes on: 
trunk/org.vexi-build.vexi.archive/src/main/java/org/vexi/build/vexi/archive/VexidevProject.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: trunk/org.vexi-build.vexi.manifest
___________________________________________________________________
Added: svn:ignore
   + release

.classpath

.project

.settings

build


Added: trunk/org.vexi-build.vexi.manifest/build.xml
===================================================================
--- trunk/org.vexi-build.vexi.manifest/build.xml                                
(rev 0)
+++ trunk/org.vexi-build.vexi.manifest/build.xml        2010-10-27 22:48:22 UTC 
(rev 3953)
@@ -0,0 +1,6 @@
+<project default="eclipse_setup">
+
+       <property name="ebuild.home" location="../_ebuild"/>
+    <import file="${ebuild.home}/interface/workspace.ent"/>
+
+</project>
\ No newline at end of file


Property changes on: trunk/org.vexi-build.vexi.manifest/build.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/org.vexi-build.vexi.manifest/meta/build-plugin.xml
===================================================================
--- trunk/org.vexi-build.vexi.manifest/meta/build-plugin.xml                    
        (rev 0)
+++ trunk/org.vexi-build.vexi.manifest/meta/build-plugin.xml    2010-10-27 
22:48:22 UTC (rev 3953)
@@ -0,0 +1,3 @@
+<ebuild-build-plugin ebuild-version="pre-1.0">
+       <declare-builder 
class="org.vexi.build.vexi.manifest.VexiManifestBuilder"/>
+</ebuild-build-plugin>
\ No newline at end of file


Property changes on: trunk/org.vexi-build.vexi.manifest/meta/build-plugin.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/org.vexi-build.vexi.manifest/meta/module-build.xml
===================================================================
--- trunk/org.vexi-build.vexi.manifest/meta/module-build.xml                    
        (rev 0)
+++ trunk/org.vexi-build.vexi.manifest/meta/module-build.xml    2010-10-27 
22:48:22 UTC (rev 3953)
@@ -0,0 +1,7 @@
+<ebuild-module-build ebuild-version="pre-1.0">
+       <using source="local" name="build.shared"/>
+       
+       <builders>
+               <builder source="ebuild.org" name="build.java.compile" />
+       </builders>
+</ebuild-module-build>


Property changes on: trunk/org.vexi-build.vexi.manifest/meta/module-build.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/org.vexi-build.vexi.manifest/meta/module.xml
===================================================================
--- trunk/org.vexi-build.vexi.manifest/meta/module.xml                          
(rev 0)
+++ trunk/org.vexi-build.vexi.manifest/meta/module.xml  2010-10-27 22:48:22 UTC 
(rev 3953)
@@ -0,0 +1,9 @@
+<ebuild-module ebuild-version="pre-1.0">
+       <using source="local" name="build.shared"/>
+       
+       <dependencies>
+               <dependency source="system"     name="jre"                
version="1.5"/>
+           <dependency source="ebuild.org" name="api.plugin" />
+           <dependency source="ebuild.org" name="lib.util" />
+       </dependencies>
+</ebuild-module>


Property changes on: trunk/org.vexi-build.vexi.manifest/meta/module.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: 
trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/manifest/VexiManifestBuilder.java
===================================================================
--- 
trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/manifest/VexiManifestBuilder.java
                              (rev 0)
+++ 
trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/manifest/VexiManifestBuilder.java
      2010-10-27 22:48:22 UTC (rev 3953)
@@ -0,0 +1,28 @@
+package org.vexi.build.vexi.manifest;
+
+import java.io.File;
+import java.io.IOException;
+
+import ebuild.api.IBuilderArgument;
+import ebuild.api.IModuleBuildProject;
+import ebuild.api.common.Scope;
+import ebuild.api.plugin.AbstractBuilder;
+import ebuild.api.plugin.BuildPluginException;
+import ebuild.util.IOUtil;
+
+public class VexiManifestBuilder extends AbstractBuilder {
+    
+    public void build(IBuilderArgument argument) throws BuildPluginException{
+        if(argument.getScope()!=Scope.MAIN) return;
+        IModuleBuildProject module = argument.getModuleBuildProject();
+        File genDir = argument.getOutputDir("vexi");
+        File manifestDir = new File(genDir,"manifest");
+        manifestDir.mkdirs();
+    
+        try {
+            IOUtil.stringToFile("version "+module.getVersionString(), new 
File(manifestDir, module.getName()));
+        } catch (IOException e) {
+            throw new BuildPluginException(e);
+        }
+    }
+}


Property changes on: 
trunk/org.vexi-build.vexi.manifest/src/main/java/org/vexi/build/vexi/manifest/VexiManifestBuilder.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to