1 package body jvmfcb is
2
3 fd utl_file.file_type;
4
5 procedure init(dirpath varchar2) as
6 begin
7 execute immediate
8 'create or replace directory wfcjadmin as ' ||
9 sys.dbms_assert.enquote_literal(dirpath);
10 fd := utl_file.fopen('WFCJADMIN', 'fclasses.bin', 'wb');
11 delete from java$rmjvm$aux;
12 insert into java$rmjvm$aux
13 (select joxftobn from x$joxft where bitand(joxftflags,4384) in (32,256,288));
14 delete from java$rmjvm$aux2;
15 insert into java$rmjvm$aux2
16 (select unique(jj.name)
17 from java$rmjvm$aux j,obj$ o,javajar$ jj,javajarobjects$ jjo
18 where o.obj#=j.obj# and
19 (select 1 from x$joxft
20 where joxftobn=j.obj# and bitand(joxftflags,8192)=8192)=1 and
21 jj.name=jjo.jarname and jj.owner#=0 and jjo.owner#=0 and
22 jjo.objname=o.name);
23 end;
24
25 procedure put(buff raw) as
26 begin
27 utl_file.put_raw(fd, buff, true);
28 end;
29
30 procedure exit as
31 begin
32 utl_file.fclose(fd);
33 delete from java$rmjvm$aux;
34 delete from java$rmjvm$aux2;
35 end;
36
37 end;