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