Author: alexparvulescu Date: Mon Mar 17 20:42:19 2014 New Revision: 1578557
URL: http://svn.apache.org/r1578557 Log: OAK-1161 Simple failover for TarMK-based installations - exposed SegmentStore to be usable from the failover code - refactored 'get' method so that it can be extended Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/http/HttpStore.java Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java?rev=1578557&r1=1578556&r2=1578557&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java Mon Mar 17 20:42:19 2014 @@ -170,6 +170,14 @@ public class SegmentNodeStoreService ext } } + /** + * needed for situations where you have to unwrap the + * SegmentNodeStoreService, to get the SegmentStore, like the failover + */ + public SegmentStore getSegmentStore() { + return store; + } + //------------------------------------------------------------< Observable >--- @Override Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/http/HttpStore.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/http/HttpStore.java?rev=1578557&r1=1578556&r2=1578557&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/http/HttpStore.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/http/HttpStore.java Mon Mar 17 20:42:19 2014 @@ -61,10 +61,26 @@ public class HttpStore implements Segmen return tracker; } + /** + * Builds a simple URLConnection. This method can be extended to add + * authorization headers if needed. + * + */ + protected URLConnection get(String fragment) throws MalformedURLException, + IOException { + final URL url; + if (fragment == null) { + url = base; + } else { + url = new URL(base, fragment); + } + return url.openConnection(); + } + @Override public SegmentNodeState getHead() { try { - URLConnection connection = base.openConnection(); + URLConnection connection = get(null); InputStream stream = connection.getInputStream(); try { BufferedReader reader = new BufferedReader( @@ -97,8 +113,7 @@ public class HttpStore implements Segmen @Override public Segment readSegment(SegmentId id) { try { - URLConnection connection = - new URL(base, id.toString()).openConnection(); + URLConnection connection = get(id.toString()); InputStream stream = connection.getInputStream(); try { byte[] data = ByteStreams.toByteArray(stream); @@ -117,8 +132,7 @@ public class HttpStore implements Segmen public void writeSegment( SegmentId id, byte[] bytes, int offset, int length) { try { - URLConnection connection = - new URL(base, id.toString()).openConnection(); + URLConnection connection = get(id.toString()); connection.setDoInput(false); connection.setDoOutput(true); OutputStream stream = connection.getOutputStream();
