
org.apache.jackrabbit.mk.persistence.H2Persistence.class Maven / Gradle / Ivy
???? 2t
S ?
? ? Z ? ? ?
?
?
?
? ? ?
? ?
?
? ?
? Z ? ? ? ?
? ? Z ?
? ?
? ? ? ? ? ? ? ? ? ? ? ?
? ?
Z ?
Z ? ? ? ? ? ? ? ? ? ? ? ? ?
# ? ? ?
# ? ? ? ? ?
? ? ? ?
2 ? ?
4 ?
?
#
7
: ?
4
:
?
@
? ?
Z Z
Z
!"#$%
&'
7 ?() FAST Z cp !Lorg/h2/jdbcx/JdbcConnectionPool; gcStart J idFactory *Lorg/apache/jackrabbit/mk/store/IdFactory; NFE 2Lorg/apache/jackrabbit/mk/store/NotFoundException; ()V Code LineNumberTable LocalVariableTable this 4Lorg/apache/jackrabbit/mk/persistence/H2Persistence;
initialize (Ljava/io/File;)V stmt Ljava/sql/Statement; homeDir Ljava/io/File; dbDir url Ljava/lang/String; con Ljava/sql/Connection;
StackMapTable ?*(+,
Exceptions- close readIds &()[Lorg/apache/jackrabbit/mk/model/Id; lastCommitId #Lorg/apache/jackrabbit/mk/model/Id; headId ? readHead %()Lorg/apache/jackrabbit/mk/model/Id; Ljava/sql/PreparedStatement; rs Ljava/sql/ResultSet; rawId [B./ ? readLastCommitId writeHead &(Lorg/apache/jackrabbit/mk/model/Id;)V id readNode .(Lorg/apache/jackrabbit/mk/model/StoredNode;)V in Ljava/io/ByteArrayInputStream; node +Lorg/apache/jackrabbit/mk/model/StoredNode;0 writeNode J(Lorg/apache/jackrabbit/mk/model/Node;)Lorg/apache/jackrabbit/mk/model/Id; %Lorg/apache/jackrabbit/mk/model/Node; out Ljava/io/ByteArrayOutputStream; bytes ts Ljava/sql/Timestamp;1
readCommit R(Lorg/apache/jackrabbit/mk/model/Id;)Lorg/apache/jackrabbit/mk/model/StoredCommit; writeCommit M(Lorg/apache/jackrabbit/mk/model/Id;Lorg/apache/jackrabbit/mk/model/Commit;)V commit 'Lorg/apache/jackrabbit/mk/model/Commit;2
readCNEMap Y(Lorg/apache/jackrabbit/mk/model/Id;)Lorg/apache/jackrabbit/mk/model/ChildNodeEntriesMap; writeCNEMap V(Lorg/apache/jackrabbit/mk/model/ChildNodeEntries;)Lorg/apache/jackrabbit/mk/model/Id; map 1Lorg/apache/jackrabbit/mk/model/ChildNodeEntries;3 start
markCommit &(Lorg/apache/jackrabbit/mk/model/Id;)Z
replaceCommit markNode
markCNEMap touch 9(Ljava/lang/String;Lorg/apache/jackrabbit/mk/model/Id;J)Z table
timeMillis sweep ()I swept I
SourceFile H2Persistence.java f g456 b c java/io/File db f789:9;<= java/lang/StringBuilder jdbc:h2:>?@A /revsBA \ ] ;log=0;undo_log=0 sa CDE ^ _FGHI+JK Screate table if not exists REVS(ID binary primary key, DATA binary, TIME timestamp)LMN Tcreate table if not exists NODES(ID binary primary key, DATA binary, TIME timestamp) 9create table if not exists HEAD(ID binary) as select null *create sequence if not exists DATASTORE_ID ? gO g ? ? ? ? !org/apache/jackrabbit/mk/model/Id select * from HEADPQ.RS/T9UV fW select MAX(ID) from REVS update HEAD set ID=?UXYZM90[ ? #select DATA from NODES where ID = ? java/io/ByteArrayInputStream ,org/apache/jackrabbit/mk/store/BinaryBinding f\]^ 0org/apache/jackrabbit/mk/store/NotFoundExceptionBA f_ java/io/ByteArrayOutputStream f`1a^bXcd java/sql/Timestampefg fh einsert into NODES (ID, DATA, TIME) select ?, ?, ? where not exists (select 1 from NODES where ID = ?)ijk ? "select DATA from REVS where ID = ?l]m2 0insert into REVS (ID, DATA, TIME) select ?, ?, ?n]o d e3 ` a REVS ? ? Aupdate REVS set DATA = ?, TIME = CURRENT_TIMESTAMP() where ID = ? NODES 0update %s set TIME = ? where ID = ? and TIME < ? java/lang/Object*pq delete REVS where TIME < ? delete NODES where TIME < ? mk.fastDbrsN 2org/apache/jackrabbit/mk/persistence/H2Persistence 2org/apache/jackrabbit/mk/persistence/GCPersistence java/lang/String java/sql/Connection java/lang/Throwable java/lang/Exception java/sql/PreparedStatement java/sql/ResultSet )org/apache/jackrabbit/mk/model/StoredNode #org/apache/jackrabbit/mk/model/Node %org/apache/jackrabbit/mk/model/Commit /org/apache/jackrabbit/mk/model/ChildNodeEntries (org/apache/jackrabbit/mk/store/IdFactory getDigestFactory ,()Lorg/apache/jackrabbit/mk/store/IdFactory; #(Ljava/io/File;Ljava/lang/String;)V exists ()Z mkdirs
org/h2/Driver load ()Lorg/h2/Driver; append -(Ljava/lang/String;)Ljava/lang/StringBuilder; getCanonicalPath ()Ljava/lang/String; toString org/h2/jdbcx/JdbcConnectionPool create Y(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/h2/jdbcx/JdbcConnectionPool; setMaxConnections (I)V
getConnection ()Ljava/sql/Connection; createStatement ()Ljava/sql/Statement; java/sql/Statement execute (Ljava/lang/String;)Z dispose prepareStatement 0(Ljava/lang/String;)Ljava/sql/PreparedStatement; executeQuery ()Ljava/sql/ResultSet; next getBytes (I)[B ([B)V ()[B setBytes (I[B)V getId (Ljava/io/InputStream;)V deserialize +(Lorg/apache/jackrabbit/mk/store/Binding;)V (Ljava/lang/String;)V (Ljava/io/OutputStream;)V serialize toByteArray createContentId ([B)[B java/lang/System currentTimeMillis ()J (J)V setTimestamp (ILjava/sql/Timestamp;)V
executeUpdate +org/apache/jackrabbit/mk/model/StoredCommit z(Lorg/apache/jackrabbit/mk/model/Id;Lorg/apache/jackrabbit/mk/store/Binding;)Lorg/apache/jackrabbit/mk/model/StoredCommit; 2org/apache/jackrabbit/mk/model/ChildNodeEntriesMap ^(Lorg/apache/jackrabbit/mk/store/Binding;)Lorg/apache/jackrabbit/mk/model/ChildNodeEntriesMap; format 9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; java/lang/Boolean
getBoolean ! Z S [ \ ] ^ _ ` a b c d e f g h : *? *? ? ? i
, 4 j k l m n h ? ?? Y+? M,? ? ,? W? W?
Y? ?
,? ?
?
? N? ? ?
Y? -?
?
? N*-? ? *? (? *? ? :? :? W? W? W? W? ? :? ?? o ? ? ? ? ? i N 9 : ; > ? 7 @ = A Q C ] D f E o G x H ? I ? J ? K ? R ? S ? R ? T j > x ( o p ? k l ? q r ? s r 7 ? t u o H v w x ( ? y? 9 z? X { y y z | } ~ ? g h 6 *? ? ? i
W X j k l ? ? h | L*? !M,? *? "L? #Y,SY+S? i [ \ ] ^ ` j k l ? ? ? ? x ? ? ? ~ ? ? h [*? ? L+$? % M,? & N:-? ' ? -? ( :,? ) ? ? ? #Y? *:+? ?:+? ? G P P R P i &