55import org .dflib .jjava .jupyter .channels .JupyterConnection ;
66import org .dflib .jjava .jupyter .channels .JupyterSocket ;
77import org .dflib .jjava .jupyter .kernel .KernelConnectionProperties ;
8+ import org .dflib .jjava .magics .ClasspathMagic ;
9+ import org .dflib .jjava .magics .JarsMagic ;
10+ import org .dflib .jjava .magics .LoadCodeMagic ;
11+ import org .dflib .jjava .magics .LoadFromPomCellMagic ;
12+ import org .dflib .jjava .magics .LoadFromPomLineMagic ;
13+ import org .dflib .jjava .magics .MavenMagic ;
14+ import org .dflib .jjava .magics .MavenRepoMagic ;
15+ import org .dflib .jjava .maven .MavenDependencyResolver ;
816
917import java .io .IOException ;
1018import java .io .InputStreamReader ;
@@ -21,28 +29,41 @@ public class JJava {
2129
2230 private static final String KERNEL_METADATA_FILE = "jjava-kernel-metadata.json" ;
2331
24- private static JavaKernel kernel ;
32+ private static JJavaKernel kernel ;
2533
2634 public static void main (String [] args ) throws Exception {
2735 if (args .length < 1 ) {
2836 throw new IllegalArgumentException ("Missing connection file argument" );
2937 }
3038
31- String version = loadKernelVersion ();
32-
3339 Path connectionFile = Paths .get (args [0 ]);
3440 if (!Files .isRegularFile (connectionFile )) {
3541 throw new IllegalArgumentException ("Connection file '" + connectionFile + "' isn't a file." );
3642 }
3743
38- String contents = new String ( Files .readAllBytes (connectionFile ) );
44+ String contents = Files .readString (connectionFile );
3945
4046 JupyterSocket .JUPYTER_LOGGER .setLevel (Level .WARNING );
4147
4248 KernelConnectionProperties connProps = KernelConnectionProperties .parse (contents );
4349 JupyterConnection connection = new JupyterConnection (connProps );
4450
45- kernel = new JavaKernel (version );
51+ MavenDependencyResolver mavenResolver = new MavenDependencyResolver ();
52+
53+ kernel = JJavaKernel .builder ()
54+ .version (loadKernelVersion ())
55+
56+ .lineMagic ("load" , new LoadCodeMagic ("" , ".jsh" , ".jshell" , ".java" , ".jjava" ))
57+ .lineMagic ("classpath" , new ClasspathMagic ())
58+ .lineMagic ("maven" , new MavenMagic (mavenResolver ))
59+ .lineMagic ("mavenRepo" , new MavenRepoMagic (mavenResolver ))
60+ .lineMagic ("loadFromPOM" , new LoadFromPomLineMagic (mavenResolver ))
61+ .lineMagic ("jars" , new JarsMagic ()) // TODO: deprecate redundant "jars" alias; "classpath" is a superset of this
62+ .lineMagic ("addMavenDependency" , new MavenMagic (mavenResolver )) // TODO: deprecate redundant "addMavenDependency" alias
63+ .cellMagic ("loadFromPOM" , new LoadFromPomCellMagic (mavenResolver ))
64+
65+ .build ();
66+
4667 kernel .becomeHandlerForConnection (connection );
4768
4869 connection .connect ();
@@ -52,7 +73,7 @@ public static void main(String[] args) throws Exception {
5273 /**
5374 * Returns the kernel instance created in {@link #main(String[])}.
5475 */
55- public static JavaKernel getKernelInstance () {
76+ public static JJavaKernel getKernelInstance () {
5677 return JJava .kernel ;
5778 }
5879
0 commit comments