From 0e2979ac0f26af69e58b0716bd000271c137620f Mon Sep 17 00:00:00 2001 From: Thorsten Vitt <thorsten.vitt@uni-wuerzburg.de> Date: Mon, 12 Aug 2013 16:58:32 +0000 Subject: [PATCH] Fix: TEIHeaderStack used public TG-search even for non-public data git-svn-id: https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/services/aggregator@14358 7c539038-3410-0410-b1ec-0f2a7bf1c452 --- .../teicorpus/TEICorpusSerializer.java | 17 ++++------------- .../aggregator/teicorpus/TEIHeaderStack.java | 8 ++++---- .../teicorpus/TEIHeaderStackTest.java | 2 +- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java index ab45686..e4a131f 100644 --- a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java +++ b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java @@ -34,6 +34,7 @@ import javax.xml.ws.Holder; import com.google.common.base.Joiner; +import com.google.common.base.Throwables; import com.google.common.collect.Sets; public class TEICorpusSerializer extends AggregationTreeWalker implements @@ -123,19 +124,9 @@ protected void walkAggregation(final ObjectType object, final boolean again) { level++; if (stack == null) try { - stack = new TEIHeaderStack(object); - } catch (ObjectNotFoundFault e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (MetadataParseFault e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IoFault e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (AuthFault e) { - // TODO Auto-generated catch block - e.printStackTrace(); + stack = new TEIHeaderStack(object, getSearchClient(isPublic(object))); + } catch (Exception e) { + throw Throwables.propagate(e); } else stack.push(object); diff --git a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java index dcb2a95..e947d9f 100644 --- a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java +++ b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java @@ -1,5 +1,6 @@ package info.textgrid.services.aggregator.teicorpus; +import info.textgrid.middleware.tgsearch.client.SearchClient; import info.textgrid.namespaces.metadata.core._2010.MetadataContainerType; import info.textgrid.namespaces.metadata.core._2010.ObjectType; import info.textgrid.namespaces.middleware.tgcrud.services.tgcrudservice.AuthFault; @@ -54,18 +55,17 @@ public class TEIHeaderStack { private final ITextGridRep repository = TextGridRepProvider.getInstance(); private Templates stylesheet; - public TEIHeaderStack(final ObjectType object) throws ObjectNotFoundFault, + public TEIHeaderStack(final ObjectType object, SearchClient searchClient) throws ObjectNotFoundFault, MetadataParseFault, IoFault, AuthFault { final String uri = object.getGeneric().getGenerated().getTextgridUri() .getValue(); parents.add(object); - final PathResponse pathResponse = repository.getPublicSearchClient().getPath( - uri); + final PathResponse pathResponse = searchClient.getPath(uri); for (final PathGroupType pathGroup : pathResponse.getPathGroup()) { for (final PathType path : pathGroup.getPath()) { for (final EntryType entry : path.getEntry()) if (!entry.getTextgridUri().equals(uri)) { - final MetadataContainerType container = repository.getCRUDService().readMetadata(null, "", entry.getTextgridUri()); + final MetadataContainerType container = repository.getCRUDService().readMetadata(searchClient.getSid(), null, entry.getTextgridUri()); parents.add(0, container.getObject()); } } diff --git a/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java b/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java index a9de321..441c906 100644 --- a/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java +++ b/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java @@ -38,7 +38,7 @@ public void extracted() throws ObjectNotFoundFault, MetadataParseFault, IoFault, AuthFault { final ObjectType rootObject = repository.getCRUDService() .readMetadata("", "", "textgrid:jfsn.0").getObject(); - stack = new TEIHeaderStack(rootObject); + stack = new TEIHeaderStack(rootObject, repository.getPublicSearchClient()); } @Test -- GitLab