diff --git a/connector-amqp-import/samples/amqp-import.xml b/connector-amqp-import/samples/amqp-import.xml
index 2aa285c..893515f 100644
--- a/connector-amqp-import/samples/amqp-import.xml
+++ b/connector-amqp-import/samples/amqp-import.xml
@@ -99,19 +99,25 @@
up
-
+
+
+
+ c:connectorType
+ edu.unc.polygon.connector.amqp.AmqpConnector
+
+
+
+
id
- midpoint
- midpoint_hr
+ sor
+ sor_person
payload
- Guest
- locahost
- midpoint_hr
- Guest
+ 5ecr3t
+ mq
+ sor_person
+ mysql
id
@@ -364,42 +370,44 @@
full
-
-
- true
-
-
- c:name
-
- $account/attributes/id
-
-
-
-
- linked
- true
-
-
- deleted
- true
-
- http://midpoint.evolveum.com/xml/ns/public/model/action-3#deleteFocus
-
-
-
- unlinked
- true
-
- http://midpoint.evolveum.com/xml/ns/public/model/action-3#link
-
-
-
- unmatched
- true
-
- http://midpoint.evolveum.com/xml/ns/public/model/action-3#addFocus
-
-
-
-
+
+
+ true
+
+
+ polyStringNorm
+ c:name
+
+ Matches using Name
+ declare namespace ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"; $account/attributes/icfs:name
+
+
+
+
+ linked
+ true
+
+
+ deleted
+ true
+
+ http://midpoint.evolveum.com/xml/ns/public/model/action-3#deleteFocus
+
+
+
+ unlinked
+ true
+
+ http://midpoint.evolveum.com/xml/ns/public/model/action-3#link
+
+
+
+ unmatched
+ true
+
+ http://midpoint.evolveum.com/xml/ns/public/model/action-3#addFocus
+
+
+
+
diff --git a/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpConnector.java b/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpConnector.java
index 359d974..49a77f8 100644
--- a/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpConnector.java
+++ b/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpConnector.java
@@ -37,8 +37,9 @@
@ConnectorClass(displayNameKey = "UI_AMQP_CONNECTOR_NAME", configurationClass = AmqpConfiguration.class)
-public class AmqpConnector implements Connector, DeleteOp, SearchOp, SchemaOp, TestOp {
+public class AmqpConnector implements Connector, DeleteOp, SearchOp, SchemaOp, TestOp {
+public static final String ATTR_MAIL = "email";
private static final Log LOG = Log.getLog(AmqpConnector.class);
private AmqpConfiguration configuration;
@@ -68,7 +69,7 @@ public void dispose() {
//handler = null;
}
@Override
- public FilterTranslator createFilterTranslator(ObjectClass oc, OperationOptions oo) {
+ public FilterTranslator createFilterTranslator(ObjectClass oc, OperationOptions oo) {
LOG.info("inside createFilterTranslator");
return new AmqpFilterTranslator();
}
@@ -186,7 +187,7 @@ public Schema schema() {
}
@Override
- public void executeQuery(ObjectClass oc, String uid, ResultsHandler handler, OperationOptions oo) {
+ public void executeQuery(ObjectClass oc, AmqpFilter filter, ResultsHandler handler, OperationOptions oo) {
LOG.info(">>> executeQuery ");
try {
LOG.info("about to create factory");
diff --git a/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilter.java b/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilter.java
new file mode 100644
index 0000000..fb4f884
--- /dev/null
+++ b/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilter.java
@@ -0,0 +1,19 @@
+package edu.unc.polygon.connector.amqp;
+
+/**
+ *
+ */
+public class AmqpFilter {
+ public String byName;
+ public String byUid;
+ public String byEmailAddress;
+
+ @Override
+ public String toString() {
+ return "AmqpFilter{" +
+ "byName='" + byName + '\'' +
+ ", byUid=" + byUid +
+ ", byEmailAddress='" + byEmailAddress + '\'' +
+ '}';
+ }
+}
diff --git a/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilterTranslator.java b/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilterTranslator.java
index d5024a9..fbc62dc 100644
--- a/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilterTranslator.java
+++ b/connector-amqp-import/src/main/java/edu/unc/polygon/connector/amqp/AmqpFilterTranslator.java
@@ -1,33 +1,64 @@
+/*
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package edu.unc.polygon.connector.amqp;
+import org.identityconnectors.common.logging.Log;
import org.identityconnectors.framework.common.objects.Attribute;
+import org.identityconnectors.framework.common.objects.Name;
import org.identityconnectors.framework.common.objects.Uid;
import org.identityconnectors.framework.common.objects.filter.AbstractFilterTranslator;
import org.identityconnectors.framework.common.objects.filter.EqualsFilter;
-import java.util.List;
-
-public class AmqpFilterTranslator extends AbstractFilterTranslator {
+/**
+ */
+public class AmqpFilterTranslator extends AbstractFilterTranslator {
+ private static final Log LOG = Log.getLog(AmqpFilterTranslator.class);
@Override
- protected String createEqualsExpression(EqualsFilter filter, boolean not) {
+ protected AmqpFilter createEqualsExpression(EqualsFilter filter, boolean not) {
+ LOG.ok("createEqualsExpression, filter: {0}, not: {1}", filter, not);
+
if (not) {
- return null;
+ return null; // not supported
}
Attribute attr = filter.getAttribute();
- if (!attr.is(Uid.NAME)) {
- return null;
+ LOG.ok("attr.getName: {0}, attr.getValue: {1}, Uid.NAME: {2}, Name.NAME: {3}", attr.getName(), attr.getValue(), Uid.NAME, Name.NAME);
+ if (Uid.NAME.equals(attr.getName())) {
+ if (attr.getValue() != null && attr.getValue().get(0) != null) {
+ AmqpFilter lf = new AmqpFilter();
+ lf.byUid = String.valueOf(attr.getValue().get(0));
+ LOG.ok("lf.byUid: {0}, attr.getValue().get(0): {1}", lf.byUid, attr.getValue().get(0));
+ return lf;
+ }
}
-
- List