Skip to content

Commit 4bbcfa4

Browse files
committed
Merge commit 'ac0dc1d06b32da24bf30c8825b21e3c905cc7e07' into release
2 parents 6869c39 + ac0dc1d commit 4bbcfa4

File tree

9 files changed

+112
-128
lines changed

9 files changed

+112
-128
lines changed

build/project-template-gradle/build-tools/android-static-binding-generator/ast-parser/traverse_files.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ if(arguments.length == 3) {
2828
return;
2929
}
3030
if(arguments.length == 4) {
31-
console.log('you can pass an out file name as a parameter! e.g. "node traverse_files.js [interface-names.txt] [dir_to_traverse] [out_dir_name]"');
31+
// console.log('you can pass an out file name as a parameter! e.g. "node traverse_files.js [interface-names.txt] [dir_to_traverse] [out_dir_name]"');
3232
outFile = 'bindings.txt';
3333
}
3434
else {
@@ -72,7 +72,7 @@ function traverseFolder(inputFolder){
7272
//TODO: think how to fix circular reference problem
7373
if(currentFileName.indexOf('easysax.js') == -1) { //exception because of maximum call stack exceeded (circular reference)
7474
filesToTraverse.push(currentFileName);
75-
console.log(currentFileName);
75+
// console.log(currentFileName);
7676
}
7777
}
7878
})
@@ -155,7 +155,7 @@ function checkPattern(node, fullFilename){
155155
className += customClassNameSeparator + customExtendClassName;
156156

157157
if(!nameContainsInvalidSymbols(customExtendClassName)) {
158-
console.log(className);
158+
// console.log(className);
159159
var lineToWrite = className + ' ' + overridenMethods.join();
160160
appendToFile(lineToWrite);
161161
return;
@@ -173,7 +173,7 @@ function checkPattern(node, fullFilename){
173173

174174
if(!nameContainsInvalidSymbols(customExtendClassName)) {// && className.indexOf('com.tns.tests') == -1) { //binding generator takes care of this
175175
var lineToWrite = className + ' ' + overridenMethods.join();
176-
console.log(className);
176+
// console.log(className);
177177
appendToFile(lineToWrite);
178178
return;
179179
}
@@ -231,7 +231,7 @@ function checkPattern(node, fullFilename){
231231
if(!nameContainsInvalidSymbols(customExtendClassName)) {
232232
if(customExtendClassName) {
233233
var lineToWrite = className + ' ' + overridenMethods.join();
234-
console.log(className);
234+
// console.log(className);
235235
appendToFile(lineToWrite);
236236
return;
237237
}

build/project-template-gradle/build-tools/android-static-binding-generator/binding-generator/src/main/java/com/extend/generator/ExtendClassGenerator.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,17 @@ public static void main(String[] args) throws Exception {
2323
if (args != null )
2424
{
2525
if(args.length > 0) {
26-
27-
jarsDir = args[0];
26+
bindingsPath = args[0];
2827
}
2928
if(args.length > 1) {
30-
31-
bindingsPath = args[1];
32-
}
33-
if(args.length > 2) {
34-
35-
outName = args[2];
29+
outName = args[1];
3630
}
31+
32+
//rest of the arguments are jar paths
3733
}
3834

3935
new File(outName).mkdir(); //make shure there is an out folder
40-
41-
jarFilesDir = new File(jarsDir).getCanonicalPath();
36+
4237
String pathToBindingsFile = new File(bindingsPath).getCanonicalPath();
4338
outFilesDir = new File(outName).getCanonicalPath();
4439

@@ -82,12 +77,12 @@ private static HashMap<String, HashSet<String>> ReadProxyNames(String bindingsPa
8277
}
8378
}
8479

85-
for(String key : result.keySet()) {
86-
System.out.println(key);
87-
for(String mn : result.get(key)){
88-
System.out.println(" " + mn);
89-
}
90-
}
80+
// for(String key : result.keySet()) {
81+
// System.out.println(key);
82+
// for(String mn : result.get(key)){
83+
// System.out.println("\t" + mn);
84+
// }
85+
// }
9186

9287
//Close the input stream
9388
br.close();

build/project-template-gradle/build-tools/android-static-binding-generator/binding-generator/src/main/java/com/extend/generator/JarLister.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -937,7 +937,7 @@ public static void startGenerateBindings(String[] args, HashMap<String, HashSet<
937937
overridenClasses = proxyNames;
938938

939939
loader = NSClassLoader.getInstance();
940-
loader.loadDir(ExtendClassGenerator.jarFilesDir);
940+
loader.loadJars(args);
941941

942942
String[] jars = loader.getJarNames();
943943

@@ -967,7 +967,7 @@ private static void start(String[] args, String[] jars, String[] outDirs) throws
967967

968968
JarInputStream input = null;
969969

970-
String jarFilename = new File(ExtendClassGenerator.jarFilesDir, jarFile).getCanonicalPath();
970+
String jarFilename = new File(jarFile).getCanonicalPath();
971971
try {
972972
input = new JarInputStream(new FileInputStream(jarFilename));
973973
}
@@ -997,9 +997,8 @@ private static void start(String[] args, String[] jars, String[] outDirs) throws
997997
//
998998

999999
for (String className : classes) {
1000-
10011000
//
1002-
if (jarFile.equals("nativescript.jar") && className.startsWith("com.tns.com.tns.tests.")) {
1001+
if (jarFile.endsWith("nativescript.jar") && className.startsWith("com.tns.com.tns.tests.")) {
10031002
continue;
10041003
}
10051004
//

build/project-template-gradle/build-tools/android-static-binding-generator/binding-generator/src/main/java/com/extend/generator/NSClassLoader.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ public String[] getJarNames() {
3838
for(int i = 0; i < this.jarFiles.size(); i++) {
3939

4040
String jarName = this.jarFiles.get(i);
41-
String currentName = jarName.substring(jarName.lastIndexOf('\\') + 1);
42-
jarNames[i] = currentName;
41+
// String currentName = jarName.substring(jarName.lastIndexOf('\\') + 1);
42+
jarNames[i] = jarName;
4343
}
4444

4545
return jarNames;
@@ -52,6 +52,13 @@ public void loadDir(String path)
5252
this.populateClassNames();
5353
}
5454

55+
public void loadJars(String[] args) {
56+
for(int i = 2; i < args.length; i ++) {
57+
String currentJar = args[i];
58+
onFile(new File(currentJar));
59+
}
60+
}
61+
5562
private void populateClassNames()
5663
{
5764
JarInputStream input = null;

build/project-template-gradle/build-tools/android-static-binding-generator/build.gradle

Lines changed: 61 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
* to run:
55
* gradle generatebindings -PjsCodeDir=[js_code_dir] -PjarsDir=[jars_dir] -PoutDir=[out_dir]
66
*/
7-
def distDir = "$rootDir/dist"
8-
def interfaceNameGeneratorDir = "$rootDir/interface-name-generator"
7+
def rDir = "$rootDir/build-tools/android-static-binding-generator/"
8+
def distDir = "$rDir/dist"
9+
def interfaceNameGeneratorDir = "$rDir/interface-name-generator"
910
def interfaceNameGeneratorLibsDir = "${interfaceNameGeneratorDir}/build/libs"
10-
def bindingGeneratorDir = "$rootDir/binding-generator"
11+
def bindingGeneratorDir = "$rDir/binding-generator"
1112
def bindingGeneratorLibsDir = "${bindingGeneratorDir}/build/libs"
12-
def astParserDir = "$rootDir/ast-parser"
13-
def defaultJarsDir = "$rootDir/jars"
13+
def astParserDir = "$rDir/ast-parser"
14+
def defaultJarsDir = "$rDir/jars"
15+
def jarsPath = ""
1416

1517
def pathToBindingsFile = "${astParserDir}/bindings.txt" //this file is generated by ast-parser
1618

@@ -20,16 +22,16 @@ def isJsCodePathPassed = project.hasProperty("jsCodeDir")
2022
def isJarsDirPassed = project.hasProperty("jarsDir")
2123
def isOutDirPassed = project.hasProperty("outDir")
2224

23-
if(!isJsCodePathPassed) {
24-
throw new GradleException("\n\t<< ERROR >>: Please pass 'jsCodeDir' property. Static binding generator needs to know where is the javascript code you want to generate bindings for. \n\t<<Example>>: -PjsCodeDir=[path_to_js_code_dir]\n")
25-
}
26-
if(!isJarsDirPassed) {
27-
throw new GradleException("\n\t<< ERROR >>: Please pass 'jarsDir' property. The static binding generator needs to know where are the jars you will use for your project, in order to generate bindings for them. Please specify a path to those jars. \n\t<<Example>>: -PjarsDir=[path_to_jars_dir]\n")
28-
}
25+
// if(!isJsCodePathPassed) {
26+
// throw new GradleException("\n\t<< ERROR >>: Please pass 'jsCodeDir' property. Static binding generator needs to know where is the javascript code you want to generate bindings for. \n\t<<Example>>: -PjsCodeDir=[path_to_js_code_dir]\n")
27+
// }
28+
// if(!isJarsDirPassed) {
29+
// throw new GradleException("\n\t<< ERROR >>: Please pass 'jarsDir' property. The static binding generator needs to know where are the jars you will use for your project, in order to generate bindings for them. Please specify a path to those jars. \n\t<<Example>>: -PjarsDir=[path_to_jars_dir]\n")
30+
// }
2931

30-
if(!isOutDirPassed) {
31-
throw new GradleException("\n\t<< ERROR >>: Please pass 'outDir' property. Static binding generator needs to know where do you want to put the bindings that will be generated. Please provide an out directory or specify one that will be created if missing. \n\t<<Example>>: -PoutDir=[path_to_output_dir]\n")
32-
}
32+
// if(!isOutDirPassed) {
33+
// throw new GradleException("\n\t<< ERROR >>: Please pass 'outDir' property. Static binding generator needs to know where do you want to put the bindings that will be generated. Please provide an out directory or specify one that will be created if missing. \n\t<<Example>>: -PoutDir=[path_to_output_dir]\n")
34+
// }
3335

3436
task cleanDist (type: Delete) {
3537
delete distDir
@@ -43,28 +45,33 @@ task mkDirDist {
4345
distFolder.mkdirs()
4446
}
4547

46-
task buildInterfaceGenerator (type: Exec) {
47-
workingDir interfaceNameGeneratorDir
48+
// task buildInterfaceGenerator (dependsOn: "ing:jar")
49+
// {
50+
// dependsOn "ing:jar"
51+
// workingDir interfaceNameGeneratorDir
4852

49-
if(isWinOs) {
50-
commandLine "cmd", "/c", "gradle", "jar"
51-
}
52-
else {
53-
commandLine "gradle", "jar"
54-
}
55-
}
53+
// if(isWinOs) {
54+
// commandLine "cmd", "/c", "gradle", "jar"
55+
// }
56+
// else {
57+
// commandLine "gradle", "jar"
58+
// }
59+
// }
5660

5761
task generateInterfaceNamesList(type: JavaExec) {
58-
workingDir interfaceNameGeneratorLibsDir
59-
60-
main "-jar"
61-
62-
def sourceJarsDir = isJarsDirPassed ? jarsDir : defaultJarsDir
63-
def str = new LinkedList <String> ();
64-
str.add("${interfaceNameGeneratorDir}/build/libs/interface-name-generator.jar")
65-
str.add(sourceJarsDir)
66-
67-
args str.toArray()
62+
doFirst {
63+
workingDir interfaceNameGeneratorLibsDir
64+
65+
main "-jar"
66+
67+
jarsPath = rootProject.jarsDir.toString().replaceAll(/[\[\]]/, "").split(", ")
68+
69+
def str = new LinkedList <String> ();
70+
str.add("${interfaceNameGeneratorDir}/build/libs/ing.jar")
71+
str.addAll(jarsPath)
72+
73+
args str.toArray()
74+
}
6875
}
6976

7077
task runNpmInstallForAstParser (type: Exec) {
@@ -89,49 +96,53 @@ task runAstParser (type: Exec) {
8996
}
9097
}
9198

92-
task buildBindingGenerator (type: Exec) {
93-
workingDir bindingGeneratorDir
99+
// task buildBindingGenerator (type: Exec) {
100+
// workingDir bindingGeneratorDir
94101

95-
if(isWinOs) {
96-
commandLine "cmd", "/c", "gradle", "jar"
97-
}
98-
else {
99-
commandLine "gradle", "jar"
100-
}
101-
}
102+
// if(isWinOs) {
103+
// commandLine "cmd", "/c", "gradle", "jar"
104+
// }
105+
// else {
106+
// commandLine "gradle", "jar"
107+
// }
108+
// }
102109

103110
task generateBindings(type: JavaExec) {
111+
doFirst {
104112
workingDir bindingGeneratorLibsDir
105113

106114
main "-jar"
107115

108116
def str = new LinkedList <String> ();
109-
str.add("binding-generator.jar")
110117

111-
//jar folder to run through
112-
str.add(jarsDir) //fix hardcoded path (will be passed as project parameter)
118+
str.add("bg.jar")
113119

114120
//generated bindings names
115121
str.add(pathToBindingsFile)
116122

117123
//out dir (optional)
118-
str.add("$rootDir/${outDir}")
124+
str.add("$rDir/${outDir}")
125+
126+
//jar folder to run through
127+
str.addAll(jarsPath) //fix hardcoded path (will be passed as project parameter)
128+
119129

120130
args str.toArray()
131+
}
121132
}
122133

123134
mkDirDist.dependsOn(cleanDist)
124135

125136
// run interface names generator
126-
buildInterfaceGenerator.dependsOn(mkDirDist)
127-
generateInterfaceNamesList.dependsOn(buildInterfaceGenerator)
137+
// buildInterfaceGenerator.dependsOn(mkDirDist)
138+
generateInterfaceNamesList.dependsOn(mkDirDist)
128139

129140
//run ast parser
130141
runNpmInstallForAstParser.dependsOn(generateInterfaceNamesList)
131142
runAstParser.dependsOn(runNpmInstallForAstParser)
132143

133-
buildBindingGenerator.dependsOn(runAstParser)
134-
generateBindings.dependsOn(buildBindingGenerator)
144+
// buildBindingGenerator.dependsOn(runAstParser)
145+
generateBindings.dependsOn(runAstParser)
135146

136147
task generatebindings {
137148
dependsOn generateBindings

build/project-template-gradle/build-tools/android-static-binding-generator/interface-name-generator/src/main/java/com/ig/GetInterfaceNames.java

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,22 @@ public class GetInterfaceNames {
1818

1919
public static void main(String[] args) throws IOException, ClassNotFoundException {
2020
currentDir = System.getProperty("user.dir");
21-
22-
String jarsDir = currentDir + "\\jars";
2321
String outputFileName = "interfaces-names.txt";
2422

23+
// System.out.println("inside: " + args);
2524
if (args != null) {
26-
27-
if(args.length > 0) {
28-
jarsDir = args[0];
25+
if(args.length < 1) {
26+
throw new IllegalArgumentException("There are no parameters passed!");
2927
}
30-
if(args.length > 1) {
31-
outputFileName = args[1];
32-
}
33-
}
34-
35-
if(!new File(jarsDir).exists()) {
36-
System.out.println("Please provide a valid dir with jars to parse! Default dir is '.\\jars'");
37-
System.exit(1);
3828
}
3929

40-
String[] pathsToJars = getAllFilesPaths(jarsDir);
41-
4230
PrintWriter out = ensureOutputFile(outputFileName);
4331

44-
for(String pathToJar : pathsToJars) {
45-
generateInterfaceNames(pathToJar, out);
32+
for(String pathToJar : args) {
33+
// System.out.println("\t+jar: " + pathToJar);
34+
if(pathToJar.endsWith(".jar")) {
35+
generateInterfaceNames(pathToJar, out);
36+
}
4637
}
4738

4839
out.close();
@@ -104,23 +95,4 @@ private static URLClassLoader getClassLoader(String pathToJar) throws MalformedU
10495
URLClassLoader cl = URLClassLoader.newInstance(urls);
10596
return cl;
10697
}
107-
108-
private static String[] getAllFilesPaths(String path) {
109-
File folder = new File(path);
110-
File[] listOfFiles = folder.listFiles();
111-
String[] paths = new String[listOfFiles.length];
112-
113-
for (int i = 0; i < listOfFiles.length; i++) {
114-
115-
if (listOfFiles[i].isFile()) {
116-
117-
if(listOfFiles[i].getName().indexOf(".jar") != -1) {
118-
paths[i] = listOfFiles[i].getAbsolutePath();
119-
}
120-
}
121-
}
122-
123-
return paths;
124-
}
125-
12698
}

0 commit comments

Comments
 (0)