# typical properties we may need elsewhere, such as 
# to display in reports or PHP pages

tycho-extras.version=${tycho-extras.version}
tycho-repo.url=${tycho-repo.url}
tycho.debug.artifactcomparator=${tycho.debug.artifactcomparator}
tycho.localArtifacts=${tycho.localArtifacts}
tycho.version=${tycho.version}
cbi-jdt-repo.url=${cbi-jdt-repo.url}
cbi-jdt-version=${cbi-jdt-version}
cbi-plugins.version=${cbi-plugins.version}

java.class.path=${java.class.path}
java.class.version=${java.class.version}
java.endorsed.dirs=${java.endorsed.dirs}
java.ext.dirs=${java.ext.dirs}
java.home=${java.home}
java.io.tmpdir=${java.io.tmpdir}
java.library.path=${java.library.path}
java.runtime.name=${java.runtime.name}
java.runtime.version=${java.runtime.version}
java.specification.name=${java.specification.name}

maven.home=${maven.home}
maven.repo.local=${maven.repo.local}

comparator.repo=${comparator.repo}

orbit-repo.url=${orbit-repo.url}
aspectj-repo.url=${aspectj-repo.url}
ecf-repo.url=${ecf-repo.url}
eclipse-p2-repo.url=${eclipse-p2-repo.url}
egit-repo.url=${egit-repo.url}
emf-repo.url=${emf-repo.url}
jetty-repo.url=${jetty-repo.url}
eclipse-repo.url=${eclipse-repo.url}

sun.java.command=${sun.java.command}




