diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ConfigManager.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ConfigManager.java index 590fccb31..8d74a39ec 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ConfigManager.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ConfigManager.java @@ -38,7 +38,27 @@ public class ConfigManager { @Named("kramerius4") private Provider connectionProvider; - + + public List> getPropertiesByRegularExpression(String regexp) { + + LOGGER.info( String.format("Returning properties by regexp %s", regexp)); + + List> keys = new JDBCQueryTemplate>(this.connectionProvider.get(), true) { + @Override + public boolean handleRow(ResultSet rs, List> returnsList) + throws SQLException { + String key = rs.getString("key"); + String value = rs.getString("value"); + Pair pair = Pair.of(key, value); + LOGGER.info(String.format("Adding pair %s", pair.toString())); + returnsList.add(pair); + return true; + } + }.executeQuery("SELECT * FROM config WHERE key ~ ? ",regexp); + return keys; + + } + public List getKeysByRegularExpression(String regexp) { List keys = new JDBCQueryTemplate(this.connectionProvider.get(), true) { @Override diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/proxy/ConnectedInfoResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/proxy/ConnectedInfoResource.java index 494efbdac..9b21a5e15 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/proxy/ConnectedInfoResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/proxy/ConnectedInfoResource.java @@ -74,16 +74,6 @@ public Response getAllConnected(/*@QueryParam("health")String health*/) { this.libraries.allInstances().forEach(library -> { JSONObject json = libraryJSON(library); retval.put(library.getName(), json); - - /* - boolean healthCheck = Boolean.valueOf(health); - LOGGER.info(String.format("Parameter health '%b'", healthCheck)); - if (healthCheck) { - JSONObject channel = new JSONObject(); - channelHealth(library.getName(), channel); - json.put("channel", channel); - LOGGER.info(String.format("Channel json is '%s'", channel.toString())); - }*/ }); return Response.ok(retval).build(); } diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/Instances.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/Instances.java index 17fee7de0..ec49b9b36 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/Instances.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/Instances.java @@ -29,6 +29,8 @@ public interface Instances { */ public List disabledInstances(); + + /** * Finds a specific instance by its acronym. * The acronym is a unique identifier for each instance. @@ -38,6 +40,7 @@ public interface Instances { */ public OneInstance find(String acronym); + /** * Checks if any instances are currently disabled. * @return True if at least one instance is disabled, false otherwise. @@ -51,6 +54,8 @@ public interface Instances { */ public boolean isEnabledInstance(String acronym); + /** reload all items */ + public void refresh(); public void cronRefresh(); diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/OneInstance.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/OneInstance.java index 584013fb3..af9df2661 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/OneInstance.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/OneInstance.java @@ -5,6 +5,7 @@ import com.sun.jersey.api.client.Client; import cz.incad.kramerius.SolrAccess; +import cz.incad.kramerius.rest.apiNew.ConfigManager; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.item.ProxyItemHandler; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.user.ProxyUserHandler; import cz.incad.kramerius.security.User; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultOnePropertiesInstance.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultOnePropertiesInstance.java index e0af7f26d..a0c5ce37a 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultOnePropertiesInstance.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultOnePropertiesInstance.java @@ -6,6 +6,7 @@ import com.sun.jersey.api.client.Client; import cz.incad.kramerius.SolrAccess; +import cz.incad.kramerius.rest.apiNew.ConfigManager; import cz.incad.kramerius.rest.apiNew.admin.v70.reharvest.ReharvestManager; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; import cz.incad.kramerius.rest.apiNew.client.v70.libs.OneInstance; @@ -19,6 +20,7 @@ import cz.incad.kramerius.rest.apiNew.client.v70.redirection.user.V5ForwardUserHandler; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.user.V7ForwardUserHandler; import cz.incad.kramerius.security.User; +import cz.incad.kramerius.utils.StringUtils; import cz.incad.kramerius.utils.conf.KConfiguration; public class DefaultOnePropertiesInstance implements OneInstance { @@ -26,16 +28,25 @@ public class DefaultOnePropertiesInstance implements OneInstance { private Instances instances; private ReharvestManager reharvestManager; private String instanceAcronym; - private boolean connected = true; - private TypeOfChangedStatus typeOfChangedStatus = TypeOfChangedStatus.automat; - + private ConfigManager configManager; + private Map info = new HashMap<>(); - - public DefaultOnePropertiesInstance(ReharvestManager reharvestManager, Instances instances, String instanceAcronym) { + + private boolean connectedState = true; + private TypeOfChangedStatus typeOfChangedStatus; + + public DefaultOnePropertiesInstance( ConfigManager configManager, ReharvestManager reharvestManager, + Instances instances, + String instanceAcronym, + boolean connectedState, + TypeOfChangedStatus typeOfChangedStatus) { super(); this.reharvestManager = reharvestManager; this.instanceAcronym = instanceAcronym; this.instances = instances; + this.connectedState = connectedState; + this.typeOfChangedStatus = typeOfChangedStatus; + this.configManager = configManager; } @Override @@ -119,18 +130,21 @@ public void removeRegistrInfo(String key) { @Override public boolean isConnected() { - return this.connected; + return this.connectedState; } @Override public void setConnected(boolean connected, TypeOfChangedStatus type) { - this.connected = connected; - this.typeOfChangedStatus = type; + String keyConnected = String.format("cdk.collections.sources.%s.enabled", this.instanceAcronym); + String keyTypeofStatus = String.format("cdk.collections.sources.%s.status", this.instanceAcronym ); + configManager.setProperty(keyConnected, ""+connected); + configManager.setProperty(keyTypeofStatus, type.name()); + this.instances.refresh(); } @Override public TypeOfChangedStatus getType() { - return this.typeOfChangedStatus; + return typeOfChangedStatus; } @Override diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultPropertiesInstances.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultPropertiesInstances.java index 51f90c8bd..aca13ec8a 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultPropertiesInstances.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/libs/properties/DefaultPropertiesInstances.java @@ -17,7 +17,9 @@ import javax.inject.Inject; import javax.ws.rs.core.MediaType; +import cz.incad.kramerius.rest.apiNew.ConfigManager; import org.apache.commons.configuration.Configuration; +import org.apache.commons.lang3.tuple.Pair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -41,19 +43,29 @@ public class DefaultPropertiesInstances implements Instances { public static final Logger LOGGER = Logger.getLogger(DefaultPropertiesInstances.class.getName()); - private List instances = new ArrayList<>(); - private Set names = new HashSet<>(); - private ReharvestManager reharvestManager; - + private final List instances = new ArrayList<>(); + private final Set names = new HashSet<>(); + private final ReharvestManager reharvestManager; + private final ConfigManager configManager; + + @Inject - public DefaultPropertiesInstances(ReharvestManager reharvestManager) { + public DefaultPropertiesInstances(ReharvestManager reharvestManager, ConfigManager configManager) { super(); this.reharvestManager = reharvestManager; + this.configManager = configManager; LOGGER.info("Refreshing configuration with reharvestManager "+this.reharvestManager); - refreshingConfiguration(); + refresh(); } + @Override + public void refresh() { + this.instances.clear(); this.names.clear(); + + Map properties = new HashMap<>(); + this.configManager.getPropertiesByRegularExpression("cdk.collections.sources.*").stream().forEach(it-> { + properties.put(it.getKey(),it.getValue()); + }); - protected void refreshingConfiguration() { Configuration configuration = KConfiguration.getInstance().getConfiguration(); Iterator keys = configuration.getKeys("cdk.collections.sources"); while (keys.hasNext()) { @@ -63,35 +75,52 @@ protected void refreshingConfiguration() { if (rest.lastIndexOf(".") > 0) { String acronym = rest.substring(0, rest.lastIndexOf(".")); if (!names.contains(acronym)) { - addOneInstance(acronym); + addOneInstance(acronym, properties); } } } } } - private void addOneInstance(String acronym) { + + private void addOneInstance(String acronym, Map properties) { LOGGER.info(String.format("Adding library %s with reharvestManager %s", acronym, reharvestManager.toString())); + + String keyConnected = String.format("cdk.collections.sources.%s.enabled",acronym); + String keyTypeofStatus = String.format("cdk.collections.sources.%s.status", acronym); + boolean connected = true; + TypeOfChangedStatus typeOfChange = TypeOfChangedStatus.automat; + if (properties.containsKey(keyConnected)) { + connected = Boolean.parseBoolean(properties.get(keyConnected)); + } + if (properties.containsKey(keyTypeofStatus)) { + typeOfChange = TypeOfChangedStatus.valueOf(properties.get(keyTypeofStatus)); + } + names.add(acronym); - DefaultOnePropertiesInstance di = new DefaultOnePropertiesInstance(this.reharvestManager, this, acronym); + + DefaultOnePropertiesInstance di = new DefaultOnePropertiesInstance(this.configManager,this.reharvestManager, this, acronym, + connected, typeOfChange); instances.add(di); } @Override public List allInstances() { - this.refreshingConfiguration(); + this.refresh(); return this.instances; } @Override public List enabledInstances() { - this.refreshingConfiguration(); - return this.instances.stream().filter(OneInstance::isConnected).collect(Collectors.toList()); + this.refresh(); + return this.instances.stream().filter(it-> { + return it.isConnected(); + }).collect(Collectors.toList()); } @Override public List disabledInstances() { - this.refreshingConfiguration(); + this.refresh(); return this.instances.stream().filter(it -> { return !it.isConnected(); }).collect(Collectors.toList()); @@ -99,14 +128,14 @@ public List disabledInstances() { @Override public boolean isAnyDisabled() { - this.refreshingConfiguration(); + this.refresh(); List eInsts = this.enabledInstances(); return this.allInstances().size() != eInsts.size(); } @Override public OneInstance find(String acronym) { - this.refreshingConfiguration(); + this.refresh(); List collect = this.instances.stream().filter(it -> { return it.getName().equals(acronym); }).collect(Collectors.toList()); @@ -118,12 +147,9 @@ public OneInstance find(String acronym) { } } - - - @Override public boolean isEnabledInstance(String acronym) { - this.refreshingConfiguration(); + this.refresh(); Optional found = instances.stream().filter(instance -> instance.getName().equals(acronym)).findFirst(); if (found.isPresent()) { return found.get().isConnected(); @@ -134,7 +160,7 @@ public boolean isEnabledInstance(String acronym) { @Override public void cronRefresh() { - this.refreshingConfiguration(); + this.refresh(); try { @@ -196,20 +222,12 @@ public void cronRefresh() { } } - - - - - protected String registerData(Client client, String url) throws IOException { WebResource r = client.resource(url); InputStream inputStream = r.accept(MediaType.APPLICATION_XML).get(InputStream.class); String string = org.apache.commons.io.IOUtils.toString(inputStream, "UTF-8"); return string; } - - - } diff --git a/rest/src/test/java/cz/incad/kramerius/rest/apiNew/client/v70/filter/DefaultFilterTest.java b/rest/src/test/java/cz/incad/kramerius/rest/apiNew/client/v70/filter/DefaultFilterTest.java index ba3ae1014..69b78beb3 100644 --- a/rest/src/test/java/cz/incad/kramerius/rest/apiNew/client/v70/filter/DefaultFilterTest.java +++ b/rest/src/test/java/cz/incad/kramerius/rest/apiNew/client/v70/filter/DefaultFilterTest.java @@ -39,212 +39,6 @@ public class DefaultFilterTest { -// @Test -// public void testFilterNew() { -// DefaultPropertiesInstances inst = createMockBuilder(DefaultPropertiesInstances.class) -// .withConstructor() -// .addMockedMethod("allInstances") -// .addMockedMethod("enabledInstances") -// .addMockedMethod("disabledInstances") -// .addMockedMethod("find") -// .addMockedMethod("isAnyDisabled") -// .createMock(); -// -// -// DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(inst,"mzk"); -// DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(inst,"nkp"); -// DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(inst,"knav"); -// knav.setConnected(true, TypeOfChangedStatus.user); -// -// -// List allInstances = new ArrayList<>(); -// allInstances.add(mzk); -// allInstances.add(nkp); -// allInstances.add(knav); -// -// -// EasyMock.expect(inst.allInstances()).andReturn(allInstances).anyTimes(); -// EasyMock.expect(inst.enabledInstances()).andReturn(allInstances).anyTimes(); -// -// EasyMock.expect(inst.find("mzk")).andReturn(mzk).anyTimes(); -// EasyMock.expect(inst.find("nkp")).andReturn(nkp).anyTimes(); -// EasyMock.expect(inst.find("knav")).andReturn(knav).anyTimes(); -// EasyMock.expect(inst.isAnyDisabled()).andReturn(true).anyTimes(); -// -// EasyMock.replay(inst); -// -// ProxyFilter pf = new DefaultFilter(inst); -// String newFilter = pf.newFilter(); -// Assert.assertEquals("cdk.collection:(mzk OR nkp OR knav)",newFilter); -// } -// -// @Test -// public void testFilterApply() { -// DefaultPropertiesInstances inst = createMockBuilder(DefaultPropertiesInstances.class) -// .withConstructor() -// .addMockedMethod("allInstances") -// .addMockedMethod("enabledInstances") -// .addMockedMethod("disabledInstances") -// .addMockedMethod("find") -// .addMockedMethod("isAnyDisabled") -// .createMock(); -// -// -// DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(inst,"mzk"); -// DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(inst,"nkp"); -// DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(inst,"knav"); -// knav.setConnected(true, TypeOfChangedStatus.user); -// -// -// List allInstances = new ArrayList<>(); -// allInstances.add(mzk); -// allInstances.add(nkp); -// allInstances.add(knav); -// -// -// EasyMock.expect(inst.allInstances()).andReturn(allInstances).anyTimes(); -// EasyMock.expect(inst.enabledInstances()).andReturn(allInstances).anyTimes(); -// -// EasyMock.expect(inst.find("mzk")).andReturn(mzk).anyTimes(); -// EasyMock.expect(inst.find("nkp")).andReturn(nkp).anyTimes(); -// EasyMock.expect(inst.find("knav")).andReturn(knav).anyTimes(); -// EasyMock.expect(inst.isAnyDisabled()).andReturn(true).anyTimes(); -// -// EasyMock.replay(inst); -// -// ProxyFilter pf = new DefaultFilter(inst); -// -// -// String eFilter = pf.enhancedFilter("model:monograph AND titles.search:*"); -// Assert.assertEquals("model:monograph AND titles.search:* AND cdk.collection:(mzk OR nkp OR knav)",eFilter); -// } -// -// -// @Test -// public void testValueDocXML() throws IOException, ParserConfigurationException, SAXException, TransformerException { -// -// DefaultPropertiesInstances inst = createMockBuilder(DefaultPropertiesInstances.class) -// .withConstructor() -// .addMockedMethod("allInstances") -// .addMockedMethod("enabledInstances") -// .addMockedMethod("disabledInstances") -// .addMockedMethod("find") -// .addMockedMethod("isAnyDisabled") -// .createMock(); -// -// -// DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(inst,"mzk"); -// DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(inst,"nkp"); -// DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(inst,"knav"); -// knav.setConnected(false, TypeOfChangedStatus.user); -// -// -// List allInstances = new ArrayList<>(); -// allInstances.add(mzk); -// allInstances.add(nkp); -// allInstances.add(knav); -// -// List enabledInstances = new ArrayList<>(); -// enabledInstances.add(nkp); -// enabledInstances.add(mzk); -// -// -// List disabledInstances = new ArrayList<>(); -// disabledInstances.add(knav); -// -// -// EasyMock.expect(inst.allInstances()).andReturn(allInstances).anyTimes(); -// EasyMock.expect(inst.enabledInstances()).andReturn(enabledInstances).anyTimes(); -// EasyMock.expect(inst.disabledInstances()).andReturn(disabledInstances).anyTimes(); -// -// EasyMock.expect(inst.find("mzk")).andReturn(mzk).anyTimes(); -// EasyMock.expect(inst.find("nkp")).andReturn(nkp).anyTimes(); -// EasyMock.expect(inst.find("knav")).andReturn(knav).anyTimes(); -// EasyMock.expect(inst.isAnyDisabled()).andReturn(true).anyTimes(); -// -// EasyMock.replay(inst); -// -// -// ProxyFilter pf = new DefaultFilter(inst); -// -// InputStream stream = DefaultFilterTest.class.getResourceAsStream("filter_simple.xml"); -// String xml = IOUtils.toString(stream,"UTF-8"); -// List respXML = respXML(xml); -// Assert.assertTrue(respXML.size() == 1); -// -// Assert.assertTrue(cdkCollectionFromDoc(respXML).equals(Arrays.asList("mzk", "nkp", "knav"))); -// -// for (Element doc : respXML) { -// pf.filterValue(doc); -// -// XMLUtils.print(doc, System.out); -// -// Assert.assertTrue(cdkCollectionFromDoc(respXML).equals(Arrays.asList("mzk", "nkp"))); -// } -// } - - -// @Test -// public void testValueDocXMLWithPhysical() throws IOException, ParserConfigurationException, SAXException, TransformerException { -// -// DefaultPropertiesInstances inst = createMockBuilder(DefaultPropertiesInstances.class) -// .withConstructor() -// .addMockedMethod("allInstances") -// .addMockedMethod("enabledInstances") -// .addMockedMethod("disabledInstances") -// .addMockedMethod("find") -// .addMockedMethod("isAnyDisabled") -// .createMock(); -// -// -// DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(inst,"mzk"); -// DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(inst,"nkp"); -// DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(inst,"knav"); -// knav.setConnected(false, TypeOfChangedStatus.user); -// -// -// List allInstances = new ArrayList<>(); -// allInstances.add(mzk); -// allInstances.add(nkp); -// allInstances.add(knav); -// -// List enabledInstances = new ArrayList<>(); -// enabledInstances.add(nkp); -// enabledInstances.add(mzk); -// -// -// List disabledInstances = new ArrayList<>(); -// disabledInstances.add(knav); -// -// -// EasyMock.expect(inst.allInstances()).andReturn(allInstances).anyTimes(); -// EasyMock.expect(inst.enabledInstances()).andReturn(enabledInstances).anyTimes(); -// EasyMock.expect(inst.disabledInstances()).andReturn(disabledInstances).anyTimes(); -// -// EasyMock.expect(inst.find("mzk")).andReturn(mzk).anyTimes(); -// EasyMock.expect(inst.find("nkp")).andReturn(nkp).anyTimes(); -// EasyMock.expect(inst.find("knav")).andReturn(knav).anyTimes(); -// EasyMock.expect(inst.isAnyDisabled()).andReturn(true).anyTimes(); -// -// EasyMock.replay(inst); -// -// -// ProxyFilter pf = new DefaultFilter(inst); -// -// InputStream stream = DefaultFilterTest.class.getResourceAsStream("filter_simple_physicalfacets.xml"); -// String xml = IOUtils.toString(stream,"UTF-8"); -// List respXML = respXML(xml); -// Assert.assertTrue(respXML.size() == 1); -// -// Assert.assertTrue(cdkCollectionFromDoc(respXML).equals(Arrays.asList("mzk", "nkp", "knav"))); -// -// for (Element doc : respXML) { -// pf.filterValue(doc); -// XMLUtils.print(doc, System.out); -// -// //Assert.assertTrue(cdkCollectionFromDoc(respXML).equals(Arrays.asList("mzk", "nkp"))); -// } -// } private List cdkCollectionFromDoc(List respXML) { Element cdkCollection = XMLUtils.findElement(respXML.get(0), new XMLUtils.ElementsFilter() { @@ -262,10 +56,13 @@ public boolean acceptElement(Element element) { } + + // @Test -// public void testValueDocJSON() throws IOException { +// public void testValueDocWithPhysicalLocationJSON() throws IOException { +// ReharvestManager reharvest = new MemoryReharvestManagerImpl(); // DefaultPropertiesInstances inst = createMockBuilder(DefaultPropertiesInstances.class) -// .withConstructor() +// .withConstructor(reharvest) // .addMockedMethod("allInstances") // .addMockedMethod("enabledInstances") // .addMockedMethod("disabledInstances") @@ -273,40 +70,40 @@ public boolean acceptElement(Element element) { // .addMockedMethod("isAnyDisabled") // .createMock(); // -// -// DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(inst,"mzk"); -// DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(inst,"nkp"); -// DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(inst,"knav"); +// +// DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(null,null, inst,"mzk"); +// DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(null, inst,"nkp"); +// DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(null,inst,"knav"); // knav.setConnected(false, TypeOfChangedStatus.user); -// -// +// +// // List allInstances = new ArrayList<>(); // allInstances.add(mzk); // allInstances.add(nkp); // allInstances.add(knav); -// +// // List enabledInstances = new ArrayList<>(); // enabledInstances.add(nkp); -// enabledInstances.add(mzk); -// -// +// enabledInstances.add(knav); +// +// // List disabledInstances = new ArrayList<>(); -// disabledInstances.add(knav); +// disabledInstances.add(mzk); // // EasyMock.expect(inst.allInstances()).andReturn(allInstances).anyTimes(); // EasyMock.expect(inst.enabledInstances()).andReturn(enabledInstances).anyTimes(); // EasyMock.expect(inst.disabledInstances()).andReturn(disabledInstances).anyTimes(); -// +// // EasyMock.expect(inst.find("mzk")).andReturn(mzk).anyTimes(); // EasyMock.expect(inst.find("nkp")).andReturn(nkp).anyTimes(); // EasyMock.expect(inst.find("knav")).andReturn(knav).anyTimes(); // EasyMock.expect(inst.isAnyDisabled()).andReturn(true).anyTimes(); -// -// EasyMock.replay(inst); // -// ProxyFilter pf = new DefaultFilter(inst); +// EasyMock.replay(inst); +// +// ProxyFilter pf = new DefaultFilter(inst,null); // -// InputStream stream = DefaultFilterTest.class.getResourceAsStream("filter_simple.json"); +// InputStream stream = DefaultFilterTest.class.getResourceAsStream("filter_simple_physicalfacets.json"); // String json = IOUtils.toString(stream,"UTF-8"); // List arrs = respJSON(json); // for (JSONArray oneArray : arrs) { @@ -314,107 +111,12 @@ public boolean acceptElement(Element element) { // JSONObject doc = oneArray.getJSONObject(i); // pf.filterValue(doc); // JSONArray cdkCol = doc.getJSONArray("cdk.collection"); -// } -// } -// -// stream = DefaultFilterTest.class.getResourceAsStream("filter_groups.json"); -// json = IOUtils.toString(stream,"UTF-8"); -// arrs = respJSON(json); -// for (JSONArray oneArray : arrs) { -// for (int i = 0; i < oneArray.length(); i++) { -// JSONObject doc = oneArray.getJSONObject(i); -// pf.filterValue(doc); -// JSONArray cdkCol = doc.getJSONArray("cdk.collection"); -// if (cdkCol.length() == 1) { -// Assert.assertTrue(cdkCol.getString(0).equals("mzk")); -// } else { -// Assert.assertTrue(cdkCol.length() == 2 ); -// Assert.assertTrue(cdkCol.getString(0).equals("mzk")); -// } +// //Assert.assertTrue(cdkCol); +// // } // } // } - - @Test - public void testValueDocWithPhysicalLocationJSON() throws IOException { - - - ReharvestManager reharvest = new MemoryReharvestManagerImpl(); - - DefaultPropertiesInstances inst = createMockBuilder(DefaultPropertiesInstances.class) - .withConstructor(reharvest) - .addMockedMethod("allInstances") - .addMockedMethod("enabledInstances") - .addMockedMethod("disabledInstances") - .addMockedMethod("find") - .addMockedMethod("isAnyDisabled") - .createMock(); - - - DefaultOnePropertiesInstance mzk = new DefaultOnePropertiesInstance(null, inst,"mzk"); - DefaultOnePropertiesInstance nkp = new DefaultOnePropertiesInstance(null, inst,"nkp"); - DefaultOnePropertiesInstance knav = new DefaultOnePropertiesInstance(null,inst,"knav"); - knav.setConnected(false, TypeOfChangedStatus.user); - - - List allInstances = new ArrayList<>(); - allInstances.add(mzk); - allInstances.add(nkp); - allInstances.add(knav); - - List enabledInstances = new ArrayList<>(); - enabledInstances.add(nkp); - enabledInstances.add(knav); - - - List disabledInstances = new ArrayList<>(); - disabledInstances.add(mzk); - - EasyMock.expect(inst.allInstances()).andReturn(allInstances).anyTimes(); - EasyMock.expect(inst.enabledInstances()).andReturn(enabledInstances).anyTimes(); - EasyMock.expect(inst.disabledInstances()).andReturn(disabledInstances).anyTimes(); - - EasyMock.expect(inst.find("mzk")).andReturn(mzk).anyTimes(); - EasyMock.expect(inst.find("nkp")).andReturn(nkp).anyTimes(); - EasyMock.expect(inst.find("knav")).andReturn(knav).anyTimes(); - EasyMock.expect(inst.isAnyDisabled()).andReturn(true).anyTimes(); - - EasyMock.replay(inst); - - ProxyFilter pf = new DefaultFilter(inst,null); - - InputStream stream = DefaultFilterTest.class.getResourceAsStream("filter_simple_physicalfacets.json"); - String json = IOUtils.toString(stream,"UTF-8"); - List arrs = respJSON(json); - for (JSONArray oneArray : arrs) { - for (int i = 0; i < oneArray.length(); i++) { - JSONObject doc = oneArray.getJSONObject(i); - pf.filterValue(doc); - JSONArray cdkCol = doc.getJSONArray("cdk.collection"); - //Assert.assertTrue(cdkCol); - - } - } - -// stream = DefaultFilterTest.class.getResourceAsStream("filter_groups.json"); -// json = IOUtils.toString(stream,"UTF-8"); -// arrs = respJSON(json); -// for (JSONArray oneArray : arrs) { -// for (int i = 0; i < oneArray.length(); i++) { -// JSONObject doc = oneArray.getJSONObject(i); -// pf.filterValue(doc); -// JSONArray cdkCol = doc.getJSONArray("cdk.collection"); -// if (cdkCol.length() == 1) { -// Assert.assertTrue(cdkCol.getString(0).equals("mzk")); -// } else { -// Assert.assertTrue(cdkCol.length() == 2 ); -// Assert.assertTrue(cdkCol.getString(0).equals("mzk")); -// } -// } -// } - } - private List respXML(String rawString) throws ParserConfigurationException, SAXException, IOException { Document doc = XMLUtils.parseDocument(new StringReader(rawString)); List elms = XMLUtils.getElementsRecursive(doc.getDocumentElement(), new XMLUtils.ElementsFilter() {