Skip to content

Instantly share code, notes, and snippets.

View stillalex's full-sized avatar

Alex D stillalex

View GitHub Profile

Keybase proof

I hereby claim:

  • I am stillalex on github.
  • I am stillalex (https://keybase.io/stillalex) on keybase.
  • I have a public key ASBKLt6xBBpZupBfguutwSzPlJqDCRGKjZO9mJitTEdCqwo

To claim this, I am signing this object:

@stillalex
stillalex / childCountWarning.groovy
Created June 20, 2016 08:50
counts number of nodes in tree, logging a warn is the number of child nodes exceeds a certain threshold
import java.util.concurrent.atomic.AtomicInteger
import org.apache.jackrabbit.oak.api.Type
import org.apache.jackrabbit.oak.plugins.segment.SegmentBlob
import org.apache.jackrabbit.oak.spi.state.NodeState
def countNodes(NodeState n, String path = "/", Integer flush = 1000000, Long warnAt = 1000, AtomicInteger count = new AtomicInteger(0), AtomicInteger binaries = new AtomicInteger(0), root = true) {
if(root) {
println "Counting nodes in tree ${path}"
}
import org.apache.jackrabbit.oak.spi.commit.CommitInfo
import org.apache.jackrabbit.oak.spi.commit.EmptyHook
import org.apache.jackrabbit.oak.spi.state.NodeState
import org.apache.jackrabbit.oak.spi.state.NodeBuilder
class LibsCleaner {
def session
def scanBundles(remove = false) {
@stillalex
stillalex / loops.sh
Last active October 26, 2017 21:50
Offline Compaction 1.0 loop
#!/bin/bash
count=${1:-100}
delay=${2:-1} # defaults to 1 second
ts=$(date +"%Y%m%d%H%M")
while [ $count -gt 0 ]; do
printf "==== Compaction run $count ====\n"
printf "Start: $(date)\n" >> compaction.$ts.$count.log
@stillalex
stillalex / logging.md
Last active March 12, 2022 15:33
TarMk Cold Standby Logging

TarMk Cold Standby Logging Tips

StandbyClientHandler

Enable DEBUG logs on org.apache.jackrabbit.oak.plugins.segment.standby.client.StandbyClientHandler

This will only log the start and the end of the sync cycle, no progress indication logged.

You'll get the following:

@stillalex
stillalex / CustomIndexInitializer.java
Created June 5, 2015 18:48
RepositoryInitializer for disabling a given index
import static com.google.common.collect.Sets.newHashSet;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
import java.util.Set;
import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@stillalex
stillalex / rmNode.groovy
Created November 21, 2014 19:16
Groovy script to remove a node at a given path
import org.apache.jackrabbit.oak.spi.commit.CommitInfo
import org.apache.jackrabbit.oak.spi.commit.EmptyHook
import org.apache.jackrabbit.oak.spi.state.NodeStore
import org.apache.jackrabbit.oak.commons.PathUtils
def rmNode(def session, String path) {
println "Removing node ${path}"
NodeStore ns = session.store
def nb = ns.root.builder()
@stillalex
stillalex / subsystem
Created October 9, 2014 13:14
subsystem osgi bundle urls list
http://search.maven.org/remotecontent?filepath=org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
http://search.maven.org/remotecontent?filepath=org/slf4j/slf4j-simple/1.7.7/slf4j-simple-1.7.7.jar
http://search.maven.org/remotecontent?filepath=org/apache/aries/org.apache.aries.util/1.1.0/org.apache.aries.util-1.1.0.jar
http://search.maven.org/remotecontent?filepath=org/apache/aries/subsystem/org.apache.aries.subsystem.api/1.0.0/org.apache.aries.subsystem.api-1.0.0.jar
http://search.maven.org/remotecontent?filepath=org/eclipse/equinox/org.eclipse.equinox.region/1.1.0.v20120522-1841/org.eclipse.equinox.region-1.1.0.v20120522-1841.jar
http://search.maven.org/remotecontent?filepath=org/apache/felix/org.apache.felix.coordinator/1.0.0/org.apache.felix.coordinator-1.0.0.jar
http://search.maven.org/remotecontent?filepath=org/apache/felix/org.apache.felix.resolver/1.0.0/org.apache.felix.resolver-1.0.0.jar
http://search.maven.org/remotecontent?filepath=org/apache/aries/subsystem/org.apache.aries.subsystem.core/1.1.0/org.apa
@stillalex
stillalex / gist:08046743cc8532a9192f
Created September 16, 2014 13:40
Run luke with Oak Lucene Codec
// Oak Lucene Codec is exported at
// https://github.com/alexparvulescu/oak-lucene-codec
git clone https://github.com/alexparvulescu/oak-lucene-codec
// Luke Lucene explorer is cloned at
// https://github.com/alexparvulescu/luke
git clone https://github.com/alexparvulescu/luke
// build projects and run:
java -XX:MaxPermSize=512m -cp luke/target/luke-with-deps.jar:oak-lucene-codec/target/oak-lucene-codec-1.1-SNAPSHOT.jar org.getopt.luke.Luke
import java.io.InputStream;
import java.util.concurrent.atomic.AtomicInteger
import org.apache.jackrabbit.oak.api.Type
import org.apache.jackrabbit.oak.plugins.segment.SegmentBlob
import org.apache.jackrabbit.oak.spi.state.NodeState
def countNodes(NodeState n, deep = false, String path = "/", Integer flush = 50000, AtomicInteger count = new AtomicInteger(0), AtomicInteger binaries = new AtomicInteger(0), root = true) {
if(root) {
println "Counting nodes in tree ${path}"
}