Skip to content

Commit dd9a382

Browse files
authored
Support Package in R (#83)
* lib: Import package deps Signed-off-by: Ce Gao <[email protected]> * lib: Add maven-ant-tasks Signed-off-by: Ce Gao <[email protected]> * ant: Update the stragety about libraries Signed-off-by: Ce Gao <[email protected]> * BuiltinApplet: Update the engine Signed-off-by: Ce Gao <[email protected]>
1 parent 291a9cc commit dd9a382

File tree

108 files changed

+135
-16
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+135
-16
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ build.number
1515
# Processing.R
1616
bin/
1717
dist/
18-
build/
18+
/build/
1919
try/
2020
*.log
2121
build.xml

build.xml.template

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0"?>
2-
<project name="Processing.R" default="install" basedir="." xmlns:jacoco="antlib:org.jacoco.ant">
2+
<project name="Processing.R" default="install" basedir="." xmlns:jacoco="antlib:org.jacoco.ant" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
33
<property name="mode.name" value="RLangMode" />
44

55
<!-- folder to install modes in (probably a folder called "modes" inside your sketchbook folder) -->
@@ -17,6 +17,7 @@
1717
<property name="try" value="try" />
1818
<property name="mode-lib" value="lib/mode" />
1919
<property name="test-lib" value="lib/test" />
20+
<property name="build-lib" value="lib/build" />
2021
<property name="src" value="src" />
2122
<property name="build" value="build" />
2223
<property name="bin" value="bin" />
@@ -30,6 +31,27 @@
3031
<property name="result.report.dir" location="${test.build.dir}/site/jacoco"/>
3132
<property name="result.exec.file" location="${test.build.dir}/jacoco.exec"/>
3233

34+
<property name="renjin-version" value="0.8.2411" />
35+
36+
<!-- Maven deps -->
37+
<path id="maven-ant-tasks.classpath" path="${build-lib}/maven-ant-tasks-2.1.3.jar" />
38+
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
39+
uri="antlib:org.apache.maven.artifact.ant"
40+
classpathref="maven-ant-tasks.classpath" />
41+
<artifact:remoteRepository id="remote.repository" url="https://nexus.bedatadriven.com/content/groups/public/" />
42+
<artifact:dependencies filesetId="dependency.fileset"
43+
versionsId="dependency.versions">
44+
<remoteRepository refid="remote.repository" />
45+
<dependency groupId="org.renjin" artifactId="renjin-script-engine" version="${renjin-version}" />
46+
<dependency groupId="org.renjin" artifactId="renjin-cli" version="${renjin-version}" />
47+
</artifact:dependencies>
48+
<copy todir="${mode-lib}">
49+
<fileset refid="dependency.fileset" />
50+
<mapper classpathref="maven-ant-tasks.classpath"
51+
classname="org.apache.maven.artifact.ant.VersionMapper"
52+
from="${dependency.versions}" to="flatten" />
53+
</copy>
54+
3355
<path id="mode-library-classpath">
3456
<pathelement location="${processing.classes.pde}"/>
3557
<fileset dir="${processing.classes.core}">

lib/build/maven-ant-tasks-2.1.3.jar

1.26 MB
Binary file not shown.

lib/mode/aether-api.jar

133 KB
Binary file not shown.

lib/mode/aether-connector-basic.jar

35.9 KB
Binary file not shown.

lib/mode/aether-impl.jar

169 KB
Binary file not shown.

lib/mode/aether-spi.jar

29.9 KB
Binary file not shown.

lib/mode/aether-transport-file.jar

8.76 KB
Binary file not shown.

lib/mode/aether-transport-http.jar

35 KB
Binary file not shown.

lib/mode/aether-util.jar

143 KB
Binary file not shown.

lib/mode/airline.jar

77.2 KB
Binary file not shown.

lib/mode/all.pom

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<groupId>com.github.fommil.netlib</groupId>
9+
<artifactId>parent</artifactId>
10+
<version>1.1</version>
11+
</parent>
12+
13+
<artifactId>all</artifactId>
14+
<packaging>pom</packaging>
15+
<version>1.1.2</version>
16+
17+
<dependencies>
18+
<dependency>
19+
<!-- WORKAROUND: https://github.com/sbt/sbt/issues/861 -->
20+
<groupId>net.sourceforge.f2j</groupId>
21+
<artifactId>arpack_combined_all</artifactId>
22+
<version>0.1</version>
23+
</dependency>
24+
<dependency>
25+
<groupId>${project.parent.groupId}</groupId>
26+
<artifactId>core</artifactId>
27+
<version>1.1.2</version>
28+
</dependency>
29+
<dependency>
30+
<groupId>${project.parent.groupId}</groupId>
31+
<artifactId>netlib-native_ref-osx-x86_64</artifactId>
32+
<version>${project.parent.version}</version>
33+
<classifier>natives</classifier>
34+
</dependency>
35+
<dependency>
36+
<groupId>${project.parent.groupId}</groupId>
37+
<artifactId>netlib-native_ref-linux-x86_64</artifactId>
38+
<version>${project.parent.version}</version>
39+
<classifier>natives</classifier>
40+
</dependency>
41+
<dependency>
42+
<groupId>${project.parent.groupId}</groupId>
43+
<artifactId>netlib-native_ref-linux-i686</artifactId>
44+
<version>${project.parent.version}</version>
45+
<classifier>natives</classifier>
46+
</dependency>
47+
<dependency>
48+
<groupId>${project.parent.groupId}</groupId>
49+
<artifactId>netlib-native_ref-win-x86_64</artifactId>
50+
<version>${project.parent.version}</version>
51+
<classifier>natives</classifier>
52+
</dependency>
53+
<dependency>
54+
<groupId>${project.parent.groupId}</groupId>
55+
<artifactId>netlib-native_ref-win-i686</artifactId>
56+
<version>${project.parent.version}</version>
57+
<classifier>natives</classifier>
58+
</dependency>
59+
<dependency>
60+
<groupId>${project.parent.groupId}</groupId>
61+
<artifactId>netlib-native_ref-linux-armhf</artifactId>
62+
<version>${project.parent.version}</version>
63+
<classifier>natives</classifier>
64+
</dependency>
65+
<dependency>
66+
<groupId>${project.parent.groupId}</groupId>
67+
<artifactId>netlib-native_system-osx-x86_64</artifactId>
68+
<version>${project.parent.version}</version>
69+
<classifier>natives</classifier>
70+
</dependency>
71+
<dependency>
72+
<groupId>${project.parent.groupId}</groupId>
73+
<artifactId>netlib-native_system-linux-x86_64</artifactId>
74+
<version>${project.parent.version}</version>
75+
<classifier>natives</classifier>
76+
</dependency>
77+
<dependency>
78+
<groupId>${project.parent.groupId}</groupId>
79+
<artifactId>netlib-native_system-linux-i686</artifactId>
80+
<version>${project.parent.version}</version>
81+
<classifier>natives</classifier>
82+
</dependency>
83+
<dependency>
84+
<groupId>${project.parent.groupId}</groupId>
85+
<artifactId>netlib-native_system-linux-armhf</artifactId>
86+
<version>${project.parent.version}</version>
87+
<classifier>natives</classifier>
88+
</dependency>
89+
<dependency>
90+
<groupId>${project.parent.groupId}</groupId>
91+
<artifactId>netlib-native_system-win-x86_64</artifactId>
92+
<version>${project.parent.version}</version>
93+
<classifier>natives</classifier>
94+
</dependency>
95+
<dependency>
96+
<groupId>${project.parent.groupId}</groupId>
97+
<artifactId>netlib-native_system-win-i686</artifactId>
98+
<version>${project.parent.version}</version>
99+
<classifier>natives</classifier>
100+
</dependency>
101+
</dependencies>
102+
</project>

lib/mode/aopalliance.jar

4.36 KB
Binary file not shown.

lib/mode/arpack_combined_all.jar

1.14 MB
Binary file not shown.

lib/mode/asm.jar

42.6 KB
Binary file not shown.

lib/mode/cdi-api.jar

43.9 KB
Binary file not shown.

lib/mode/codemodel.jar

149 KB
Binary file not shown.

lib/mode/commons-codec.jar

227 KB
Binary file not shown.

lib/mode/commons-compress.jar

236 KB
Binary file not shown.

lib/mode/commons-logging.jar

59.3 KB
Binary file not shown.

lib/mode/commons-math.jar

965 KB
Binary file not shown.

lib/mode/commons-vfs2.jar

406 KB
Binary file not shown.

lib/mode/compiler.jar

3.38 KB
Binary file not shown.

lib/mode/core.jar

161 KB
Binary file not shown.

lib/mode/datasets.jar

178 KB
Binary file not shown.

lib/mode/gcc-bridge-compiler.jar

572 KB
Binary file not shown.
13.5 KB
Binary file not shown.

lib/mode/gcc-runtime.jar

39.9 KB
Binary file not shown.

lib/mode/grDevices.jar

67.9 KB
Binary file not shown.

lib/mode/graphics.jar

95.7 KB
Binary file not shown.

lib/mode/grid.jar

111 KB
Binary file not shown.

lib/mode/guava-17.0-sources.jar

-1.21 MB
Binary file not shown.

lib/mode/guava-17.0.jar

-2.14 MB
Binary file not shown.

lib/mode/guava.jar

1.43 MB
Binary file not shown.

lib/mode/hamcrest.jar

4.94 KB
Binary file not shown.

lib/mode/httpclient.jar

425 KB
Binary file not shown.

lib/mode/httpcore.jar

222 KB
Binary file not shown.

lib/mode/jackson-annotations.jar

32.7 KB
Binary file not shown.

lib/mode/jackson-core.jar

187 KB
Binary file not shown.

lib/mode/jackson-databind.jar

845 KB
Binary file not shown.

lib/mode/javax.inject.jar

2.44 KB
Binary file not shown.

lib/mode/jcl-over-slf4j.jar

16.9 KB
Binary file not shown.

lib/mode/jline.jar

209 KB
Binary file not shown.

lib/mode/jniloader.jar

8.48 KB
Binary file not shown.

lib/mode/joda-time.jar

556 KB
Binary file not shown.

lib/mode/jsr250-api.jar

5.71 KB
Binary file not shown.

lib/mode/jsr305.jar

32.3 KB
Binary file not shown.

lib/mode/maven-aether-provider.jar

58.6 KB
Binary file not shown.

lib/mode/maven-model-builder.jar

156 KB
Binary file not shown.

lib/mode/maven-model.jar

160 KB
Binary file not shown.
29.4 KB
Binary file not shown.

lib/mode/maven-scm-api.jar

92.2 KB
Binary file not shown.
39.1 KB
Binary file not shown.
68.2 KB
Binary file not shown.

lib/mode/maven-settings-builder.jar

40.5 KB
Binary file not shown.

lib/mode/maven-settings.jar

45.6 KB
Binary file not shown.

lib/mode/methods.jar

923 KB
Binary file not shown.

lib/mode/native_ref-java.jar

53.2 KB
Binary file not shown.

lib/mode/native_system-java.jar

53.2 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1.74 MB
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

lib/mode/org.eclipse.sisu.inject.jar

197 KB
Binary file not shown.

lib/mode/org.eclipse.sisu.plexus.jar

198 KB
Binary file not shown.

lib/mode/packager.jar

49.6 KB
Binary file not shown.

lib/mode/parallel.jar

8.8 KB
Binary file not shown.

lib/mode/plexus-cipher.jar

13.2 KB
Binary file not shown.

lib/mode/plexus-classworlds.jar

46 KB
Binary file not shown.
4.11 KB
Binary file not shown.

lib/mode/plexus-interpolation.jar

59.9 KB
Binary file not shown.

lib/mode/plexus-sec-dispatcher.jar

27.9 KB
Binary file not shown.

lib/mode/plexus-utils.jar

225 KB
Binary file not shown.

lib/mode/regexp.jar

24.8 KB
Binary file not shown.
20.5 KB
Binary file not shown.

lib/mode/renjin-appl.jar

74.7 KB
Binary file not shown.

lib/mode/renjin-asm.jar

171 KB
Binary file not shown.

lib/mode/renjin-blas.jar

253 KB
Binary file not shown.

lib/mode/renjin-cli.jar

27.9 KB
Binary file not shown.

lib/mode/renjin-core.jar

3.18 MB
Binary file not shown.

lib/mode/renjin-gnur-compiler.jar

6.87 KB
Binary file not shown.

lib/mode/renjin-gnur-installation.jar

163 KB
Binary file not shown.

lib/mode/renjin-gnur-runtime.jar

101 KB
Binary file not shown.

lib/mode/renjin-guava.jar

2.19 MB
Binary file not shown.

lib/mode/renjin-lapack.jar

34.1 KB
Binary file not shown.

lib/mode/renjin-math-common.jar

3.93 KB
Binary file not shown.

lib/mode/renjin-nmath.jar

309 KB
Binary file not shown.

lib/mode/renjin-repl.jar

10.6 KB
Binary file not shown.
Binary file not shown.

lib/mode/renjin-script-engine.jar

17.4 KB
Binary file not shown.

lib/mode/sisu-guice-no_aop.jar

349 KB
Binary file not shown.

lib/mode/slf4j-api.jar

25.5 KB
Binary file not shown.

lib/mode/slf4j-jdk14.jar

7.71 KB
Binary file not shown.

lib/mode/splines.jar

17.9 KB
Binary file not shown.

lib/mode/stats.jar

637 KB
Binary file not shown.

lib/mode/stats4.jar

46.8 KB
Binary file not shown.

lib/mode/tools.jar

8.28 KB
Binary file not shown.

lib/mode/utils.jar

279 KB
Binary file not shown.

lib/mode/xz.jar

92.5 KB
Binary file not shown.

src/rprocessing/applet/BuiltinApplet.java

+9-14
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package rprocessing.applet;
22

3-
import javax.script.ScriptEngine;
4-
import javax.script.ScriptEngineManager;
5-
3+
import org.renjin.aether.AetherPackageLoader;
4+
import org.renjin.eval.Session;
5+
import org.renjin.eval.SessionBuilder;
66
import org.renjin.script.RenjinScriptEngine;
7+
import org.renjin.script.RenjinScriptEngineFactory;
78
import org.renjin.sexp.StringVector;
89

910
import processing.core.PApplet;
10-
import rprocessing.exception.NotFoundException;
1111

1212
/**
1313
* BuiltinApplet is the type to refactor the function calls.
@@ -26,16 +26,11 @@ public RenjinScriptEngine getRenjinEngine() {
2626
return renjinEngine;
2727
}
2828

29-
public BuiltinApplet() throws NotFoundException {
30-
// Create a script engine manager.
31-
ScriptEngineManager manager = new ScriptEngineManager();
32-
// Create a Renjin engine.
33-
ScriptEngine engine = manager.getEngineByName("Renjin");
34-
// Check if the engine has loaded correctly.
35-
if (engine == null) {
36-
throw new NotFoundException("Renjin Script Engine not found on the classpath.");
37-
}
38-
this.renjinEngine = (RenjinScriptEngine) engine;
29+
public BuiltinApplet() {
30+
AetherPackageLoader packageLoader = new AetherPackageLoader();
31+
Session session =
32+
new SessionBuilder().withDefaultPackages().setPackageLoader(packageLoader).build();
33+
this.renjinEngine = new RenjinScriptEngineFactory().getScriptEngine(session);
3934
}
4035

4136
public void size(double width, double height) {

0 commit comments

Comments
 (0)