syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject [3/7] syncope git commit: [SYNCOPE-822] Verified it works on all supported DBMS
Date Thu, 21 Apr 2016 09:56:30 GMT
http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/domains/TwoContent.xml b/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
index b9b18a8..cd88c6e 100644
--- a/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/TwoContent.xml
@@ -18,109 +18,109 @@ specific language governing permissions and limitations
 under the License.
 -->
 <dataset>
-  <Realm key="ea696a4f-e77a-4ef1-be67-8f8093bc8686" name="/"/>
+  <Realm id="ea696a4f-e77a-4ef1-be67-8f8093bc8686" name="/"/>
 
-  <SyncopeConf key="cd64d66f-6fff-4008-b966-a06b1cc1436d"/>
+  <SyncopeConf id="cd64d66f-6fff-4008-b966-a06b1cc1436d"/>
 
-  <PlainSchema key="password.cipher.algorithm" type="String"
+  <PlainSchema id="password.cipher.algorithm" type="String"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="56db89b9-119e-4923-a16e-f42823b90c66" 
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="password.cipher.algorithm"/>
-  <CPlainAttrValue key="870323e8-8db6-4a64-b512-15f9fa094905" 
-                   attribute_key="56db89b9-119e-4923-a16e-f42823b90c66" stringValue="SHA1"/>
+  <CPlainAttr id="56db89b9-119e-4923-a16e-f42823b90c66" 
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="password.cipher.algorithm"/>
+  <CPlainAttrValue id="870323e8-8db6-4a64-b512-15f9fa094905" 
+                   attribute_id="56db89b9-119e-4923-a16e-f42823b90c66" stringValue="SHA1"/>
 
-  <PlainSchema key="token.length" type="Long"
+  <PlainSchema id="token.length" type="Long"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="58977caa-dcf7-4ae3-8591-7e3d0a395200"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="token.length"/>
-  <CPlainAttrValue key="372e28e0-3af1-4774-b668-81aa84903b75"
-                   attribute_key="58977caa-dcf7-4ae3-8591-7e3d0a395200" longValue="256"/>
+  <CPlainAttr id="58977caa-dcf7-4ae3-8591-7e3d0a395200"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="token.length"/>
+  <CPlainAttrValue id="372e28e0-3af1-4774-b668-81aa84903b75"
+                   attribute_id="58977caa-dcf7-4ae3-8591-7e3d0a395200" longValue="256"/>
 
-  <PlainSchema key="token.expireTime" type="Long"
+  <PlainSchema id="token.expireTime" type="Long"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="01f69abd-df85-4e1b-bb88-ad570594e045"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="token.expireTime"/>
-  <CPlainAttrValue key="963970cf-4af6-46bb-875b-a1b758ac8d05"
-                   attribute_key="01f69abd-df85-4e1b-bb88-ad570594e045" longValue="60"/>
+  <CPlainAttr id="01f69abd-df85-4e1b-bb88-ad570594e045"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="token.expireTime"/>
+  <CPlainAttrValue id="963970cf-4af6-46bb-875b-a1b758ac8d05"
+                   attribute_id="01f69abd-df85-4e1b-bb88-ad570594e045" longValue="60"/>
 
-  <PlainSchema key="selfRegistration.allowed" type="Boolean"
+  <PlainSchema id="selfRegistration.allowed" type="Boolean"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="7b19cefa-d606-477c-8431-c9464f53fe8b"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="selfRegistration.allowed"/>
-  <CPlainAttrValue key="c8b9a0f1-0168-4e2a-95b8-4819fc70e620"
-                   attribute_key="7b19cefa-d606-477c-8431-c9464f53fe8b" booleanValue="1"/>
+  <CPlainAttr id="7b19cefa-d606-477c-8431-c9464f53fe8b"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="selfRegistration.allowed"/>
+  <CPlainAttrValue id="c8b9a0f1-0168-4e2a-95b8-4819fc70e620"
+                   attribute_id="7b19cefa-d606-477c-8431-c9464f53fe8b" booleanValue="1"/>
 
-  <PlainSchema key="passwordReset.allowed" type="Boolean"
+  <PlainSchema id="passwordReset.allowed" type="Boolean"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="dc35cc97-6ed9-4bb2-bb3b-509f4cd8f3d3"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="passwordReset.allowed"/>
-  <CPlainAttrValue key="b1ecea41-ab7c-4dd3-9e3e-b6baf0f98046"
-                   attribute_key="dc35cc97-6ed9-4bb2-bb3b-509f4cd8f3d3" booleanValue="1"/>
+  <CPlainAttr id="dc35cc97-6ed9-4bb2-bb3b-509f4cd8f3d3"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="passwordReset.allowed"/>
+  <CPlainAttrValue id="b1ecea41-ab7c-4dd3-9e3e-b6baf0f98046"
+                   attribute_id="dc35cc97-6ed9-4bb2-bb3b-509f4cd8f3d3" booleanValue="1"/>
 
-  <PlainSchema key="passwordReset.securityQuestion" type="Boolean"
+  <PlainSchema id="passwordReset.securityQuestion" type="Boolean"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="e5a712ad-53fd-4102-ba55-fb45caed5f7b"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="passwordReset.securityQuestion"/>
-  <CPlainAttrValue key="b5e8e79d-8039-4318-9698-fe5e181ebe98"
-                   attribute_key="e5a712ad-53fd-4102-ba55-fb45caed5f7b" booleanValue="1"/>
-
-  <PlainSchema key="authentication.statuses" type="String" multivalue="1" uniqueConstraint="0"
readonly="0"/>
-  <CPlainAttr key="888ae8e1-a295-4ee2-a15e-31dbf6dfc3f9"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="authentication.statuses"/>
-  <CPlainAttrValue key="4b8e7d2b-f527-43a3-a2e2-5530dcab2f52"
-                   attribute_key="888ae8e1-a295-4ee2-a15e-31dbf6dfc3f9" stringValue="created"/>
-  <CPlainAttrValue key="f0c89f2c-ea87-4c95-a1cf-142bf6e6f523"
-                   attribute_key="888ae8e1-a295-4ee2-a15e-31dbf6dfc3f9" stringValue="active"/>
+  <CPlainAttr id="e5a712ad-53fd-4102-ba55-fb45caed5f7b"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="passwordReset.securityQuestion"/>
+  <CPlainAttrValue id="b5e8e79d-8039-4318-9698-fe5e181ebe98"
+                   attribute_id="e5a712ad-53fd-4102-ba55-fb45caed5f7b" booleanValue="1"/>
+
+  <PlainSchema id="authentication.statuses" type="String" multivalue="1" uniqueConstraint="0"
readonly="0"/>
+  <CPlainAttr id="888ae8e1-a295-4ee2-a15e-31dbf6dfc3f9"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="authentication.statuses"/>
+  <CPlainAttrValue id="4b8e7d2b-f527-43a3-a2e2-5530dcab2f52"
+                   attribute_id="888ae8e1-a295-4ee2-a15e-31dbf6dfc3f9" stringValue="created"/>
+  <CPlainAttrValue id="f0c89f2c-ea87-4c95-a1cf-142bf6e6f523"
+                   attribute_id="888ae8e1-a295-4ee2-a15e-31dbf6dfc3f9" stringValue="active"/>
 
   <!-- Save user login date upon successful authentication -->
-  <PlainSchema key="log.lastlogindate" type="Boolean"
+  <PlainSchema id="log.lastlogindate" type="Boolean"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="9891c0a7-27ee-4215-9eea-ca32e580b4e4"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="log.lastlogindate"/>
-  <CPlainAttrValue key="162dd874-0417-4bb9-9724-db1ff2952dd1"
-                   attribute_key="9891c0a7-27ee-4215-9eea-ca32e580b4e4" booleanValue="1"/>
+  <CPlainAttr id="9891c0a7-27ee-4215-9eea-ca32e580b4e4"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="log.lastlogindate"/>
+  <CPlainAttrValue id="162dd874-0417-4bb9-9724-db1ff2952dd1"
+                   attribute_id="9891c0a7-27ee-4215-9eea-ca32e580b4e4" booleanValue="1"/>
 
-  <PlainSchema key="tasks.interruptMaxRetries" type="Long"
+  <PlainSchema id="tasks.interruptMaxRetries" type="Long"
                mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="c2b9ca96-c6ef-433d-8287-0e0cfd0ad0db"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="tasks.interruptMaxRetries"/>
-  <CPlainAttrValue key="5dc3f4e3-ff9f-4558-a9ac-15336b63a2ad"
-                   attribute_key="c2b9ca96-c6ef-433d-8287-0e0cfd0ad0db" longValue="20"/>
+  <CPlainAttr id="c2b9ca96-c6ef-433d-8287-0e0cfd0ad0db"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="tasks.interruptMaxRetries"/>
+  <CPlainAttrValue id="5dc3f4e3-ff9f-4558-a9ac-15336b63a2ad"
+                   attribute_id="c2b9ca96-c6ef-433d-8287-0e0cfd0ad0db" longValue="20"/>
   
   <!-- Return hashed password values when reading users -->
-  <PlainSchema key="return.password.value" type="Boolean"
+  <PlainSchema id="return.password.value" type="Boolean"
                mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr key="bcfd7efc-0605-4b5e-b4bb-85c1d5f6493a"
-              owner_key="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_key="return.password.value"/>
-  <CPlainAttrValue key="e5fa94db-b524-4309-908d-8198d0b3f779"
-                   attribute_key="bcfd7efc-0605-4b5e-b4bb-85c1d5f6493a" booleanValue="0"/>
+  <CPlainAttr id="bcfd7efc-0605-4b5e-b4bb-85c1d5f6493a"
+              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="return.password.value"/>
+  <CPlainAttrValue id="e5fa94db-b524-4309-908d-8198d0b3f779"
+                   attribute_id="bcfd7efc-0605-4b5e-b4bb-85c1d5f6493a" booleanValue="0"/>
   
-  <AnyType key="USER" kind="USER"/>
-  <AnyTypeClass key="BaseUser"/>
-  <AnyType_AnyTypeClass anyType_key="USER" anyTypeClass_key="BaseUser"/>
+  <AnyType id="USER" kind="USER"/>
+  <AnyTypeClass id="BaseUser"/>
+  <AnyType_AnyTypeClass anyType_id="USER" anyTypeClass_id="BaseUser"/>
 
-  <AnyType key="GROUP" kind="GROUP"/>
+  <AnyType id="GROUP" kind="GROUP"/>
   
   <!-- For usage with admin console -->
-  <PlainSchema key="admin.user.layout" type="String"
+  <PlainSchema id="admin.user.layout" type="String"
                mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/>
-  <PlainSchema key="self.user.layout" type="String"
+  <PlainSchema id="self.user.layout" type="String"
                mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/>
-  <PlainSchema key="admin.group.layout" type="String"
+  <PlainSchema id="admin.group.layout" type="String"
                mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/>
-  <PlainSchema key="self.group.layout" type="String"
+  <PlainSchema id="self.group.layout" type="String"
                mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/>
-  <PlainSchema key="admin.membership.layout" type="String"
+  <PlainSchema id="admin.membership.layout" type="String"
                mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/>
-  <PlainSchema key="self.membership.layout" type="String"
+  <PlainSchema id="self.membership.layout" type="String"
                mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/>
         
-  <PlainSchema key="email" type="String" anyTypeClass_key="BaseUser"
+  <PlainSchema id="email" type="String" anyTypeClass_id="BaseUser"
                mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"
                validatorClass="org.apache.syncope.core.persistence.jpa.attrvalue.validation.EmailAddressValidator"/>
   
   <!-- Password reset notifications -->
-  <MailTemplate key="requestPasswordReset"
+  <MailTemplate id="requestPasswordReset"
                 textTemplate="Hi,
 a password reset was request for ${user.getUsername()}.
 
@@ -144,7 +144,7 @@ a password reset was request for ${user.getUsername()}.&lt;/p&gt;
 &lt;p&gt;Best regards.&lt;/p&gt;
 &lt;/body&gt;
 &lt;/html&gt;"/>
-  <MailTemplate key="confirmPasswordReset"
+  <MailTemplate id="confirmPasswordReset"
                 textTemplate="Hi,
 we are happy to inform you that the password request was execute successfully for your account.
 
@@ -158,25 +158,25 @@ we are happy to inform you that the password request was execute successfully
fo
 &lt;/body&gt;
 &lt;/html&gt;"/>
 
-  <Notification key="c74b4616-9c63-4350-b4bf-ae0077b1ae6a" active="1" recipientAttrName="email"
recipientAttrType="UserPlainSchema" selfAsRecipient="1" 
-                sender="admin@syncope.apache.org" subject="Password Reset request" template_key="requestPasswordReset"

+  <Notification id="c74b4616-9c63-4350-b4bf-ae0077b1ae6a" active="1" recipientAttrName="email"
recipientAttrType="UserPlainSchema" selfAsRecipient="1" 
+                sender="admin@syncope.apache.org" subject="Password Reset request" template_id="requestPasswordReset"

                 traceLevel="FAILURES"/> 
-  <AnyAbout key="0d4e37a1-a4f4-4865-afcb-4be01da3da53" anyType_key="USER" notification_key="c74b4616-9c63-4350-b4bf-ae0077b1ae6a"
filter="token!=$null"/>
-  <Notification_events notification_key="c74b4616-9c63-4350-b4bf-ae0077b1ae6a" event="[CUSTOM]:[]:[]:[requestPasswordReset]:[SUCCESS]"/>
+  <AnyAbout id="0d4e37a1-a4f4-4865-afcb-4be01da3da53" anyType_id="USER" notification_id="c74b4616-9c63-4350-b4bf-ae0077b1ae6a"
filter="token!=$null"/>
+  <Notification_events notification_id="c74b4616-9c63-4350-b4bf-ae0077b1ae6a" event="[CUSTOM]:[]:[]:[requestPasswordReset]:[SUCCESS]"/>
   
-  <Notification key="71769807-7f74-4dc3-ba61-e4a7a00eb8ad" active="1" recipientAttrName="email"
recipientAttrType="UserPlainSchema" selfAsRecipient="1" 
-                sender="admin@syncope.apache.org" subject="Password Reset successful" template_key="confirmPasswordReset"

+  <Notification id="71769807-7f74-4dc3-ba61-e4a7a00eb8ad" active="1" recipientAttrName="email"
recipientAttrType="UserPlainSchema" selfAsRecipient="1" 
+                sender="admin@syncope.apache.org" subject="Password Reset successful" template_id="confirmPasswordReset"

                 traceLevel="FAILURES"/> 
-  <Notification_events notification_key="71769807-7f74-4dc3-ba61-e4a7a00eb8ad" event="[CUSTOM]:[]:[]:[confirmPasswordReset]:[SUCCESS]"/>
+  <Notification_events notification_id="71769807-7f74-4dc3-ba61-e4a7a00eb8ad" event="[CUSTOM]:[]:[]:[confirmPasswordReset]:[SUCCESS]"/>
 
-  <ConnInstance key="b7ea96c3-c633-488b-98a0-b52ac35850f7" bundleName="net.tirasa.connid.bundles.ldap"
displayName="LDAP"
+  <ConnInstance id="b7ea96c3-c633-488b-98a0-b52ac35850f7" bundleName="net.tirasa.connid.bundles.ldap"
displayName="LDAP"
                 location="${connid.location}"
                 connectorName="net.tirasa.connid.bundles.ldap.LdapConnector"
                 version="${connid.ldap.version}" 
                 jsonConf='[{"schema":{"name":"synchronizePasswords","displayName":"Enable
Password Synchronization","helpMessage":"If true, the connector will synchronize passwords.
The Password Capture Plugin needs to be installed for password synchronization to work.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["false"]},{"schema":{"name":"maintainLdapGroupMembership","displayName":"Maintain
LDAP Group Membership","helpMessage":"When enabled and a user is renamed or deleted, update
any LDAP groups to which the user belongs to reflect the new name. Otherwise, the LDAP resource
must maintain referential integrity with respect to group membership.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["true"]},{"schema":{"name":"host","displayName":"Host","helpMessage":"The
name or IP address of the host where the LDAP server is running.","type":"jav
 a.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["localhost"]},{"schema":{"name":"passwordHashAlgorithm","displayName":"Password
Hash Algorithm","helpMessage":"Indicates the algorithm that the Identity system should use
to hash the password. Currently supported values are SSHA, SHA, SSHA1, and SHA1. A blank value
indicates that the system will not hash passwords. This will cause cleartext passwords to
be stored in LDAP unless the LDAP server performs the hash (Netscape Directory Server and
iPlanet Directory Server do).","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["SHA"]},{"schema":{"name":"port","displayName":"TCP
Port","helpMessage":"TCP/IP port number used to communicate with the LDAP server.","type":"int","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[1389]},{"schema":{"name":"vlvSo
 rtAttribute","displayName":"VLV Sort Attribute","helpMessage":"Specify the sort attribute
to use for VLV indexes on the resource.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"statusManagementClass","displayName":"Status
management class ","helpMessage":"Class to be used to manage enabled/disabled status. If no
class is specified then identity status management wont be possible.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["net.tirasa.connid.bundles.ldap.commons.AttributeStatusManagement"]},{"schema":{"name":"accountObjectClasses","displayName":"Account
Object Classes","helpMessage":"The object class or classes that will be used when creating
new user objects in the LDAP tree. When entering more than one object class, each entry should
be on its own line; do not use commas or semi-colons to separate m
 ultiple object classes. Some object classes may require that you specify all object classes
in the class hierarchy.","type":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["inetOrgPerson"]},{"schema":{"name":"accountUserNameAttributes","displayName":"Account
User Name Attributes","helpMessage":"Attribute or attributes which holds the account user
name. They will be used when authenticating to find the LDAP entry for the user name to authenticate.","type":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["uid"]},{"schema":{"name":"baseContextsToSynchronize","displayName":"Base
Contexts to Synchronize","helpMessage":"One or more starting points in the LDAP tree that
will be used to determine if a change should be synchronized. The base contexts attribute
will be used to synchronize a change if this property is not set.","type":"[Ljava.lang.S
 tring;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["ou=people,o=isp","ou=groups,o=isp"]},{"schema":{"name":"accountSynchronizationFilter","displayName":"LDAP
Filter for Accounts to Synchronize","helpMessage":"An optional LDAP filter for the objects
to synchronize. Because the change log is for all objects, this filter updates only objects
that match the specified filter. If you specify a filter, an object will be synchronized only
if it matches the filter and includes a synchronized object class.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"removeLogEntryObjectClassFromFilter","displayName":"Remove
Log Entry Object Class from Filter","helpMessage":"If this property is set (the default),
the filter used to fetch change log entries does not contain the \"changeLogEntry\" object
class, expecting that there are no entries of oth
 er object types in the change log.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["false"]},{"schema":{"name":"passwordDecryptionKey","displayName":"Password
Decryption Key","helpMessage":"The key to decrypt passwords with when performing password
synchronization.","type":"org.identityconnectors.common.security.GuardedByteArray","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"readSchema","displayName":"Read
Schema","helpMessage":"If true, the connector will read the schema from the server. If false,
the connector will provide a default schema based on the object classes in the configuration.
This property must be true in order to use extended object classes.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["false"]},{"schema":{"name":"ssl","displayName":"SSL","helpMessage"
 :"Select the check box to connect to the LDAP server using SSL.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["false"]},{"schema":{"name":"passwordAttributeToSynchronize","displayName":"Password
Attribute to Synchronize","helpMessage":"The name of the password attribute to synchronize
when performing password synchronization.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"accountSearchFilter","displayName":"LDAP
Filter for Retrieving Accounts","helpMessage":"An optional LDAP filter to control which accounts
are returned from the LDAP resource. If no filter is specified, only accounts that include
all specified object classes are returned.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["uid=*"]},{"schema":{"name":"passwordDecryptionIn
 itializationVector","displayName":"Password Decryption Initialization Vector","helpMessage":"The
initialization vector to decrypt passwords with when performing password synchronization.","type":"org.identityconnectors.common.security.GuardedByteArray","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"groupMemberAttribute","displayName":"Group
Member Attribute","helpMessage":"The name of the group attribute that will be updated with
the distinguished name of the user when the user is added to the group.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"failover","displayName":"Failover
Servers","helpMessage":"List all servers that should be used for failover in case the preferred
server fails. If the preferred server fails, JNDI will connect to the next available server
in the list. List all servers in the form of 
 \"ldap://ldap.example.com:389/\", which follows the standard LDAP v3 URLs described in RFC
2255. Only the host and port parts of the URL are relevant in this setting.","type":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"modifiersNamesToFilterOut","displayName":"Filter
Out Changes By","helpMessage":"The names (DNs) of directory administrators to filter from
the changes. Changes with the attribute \"modifiersName\" that match entries in this list
will be filtered out. The standard value is the administrator name used by this adapter, to
prevent loops. Entries should be of the format \"cn=Directory Manager\".","type":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"groupNameAttributes","displayName":"Group
Name Attributes","helpMessage":"Attribute or attributes which holds the group name.","type
 ":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["cn"]},{"schema":{"name":"uidAttribute","displayName":"Uid
Attribute","helpMessage":"The name of the LDAP attribute which is mapped to the Uid attribute.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["cn"]},{"schema":{"name":"respectResourcePasswordPolicyChangeAfterReset","displayName":"Respect
Resource Password Policy Change-After-Reset","helpMessage":"When this resource is specified
in a Login Module (i.e., this resource is a pass-through authentication target) and the resource
password policy is configured for change-after-reset, a user whose resource account password
has been administratively reset will be required to change that password after successfully
authenticating.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":fals
 e,"values":["false"]},{"schema":{"name":"filterWithOrInsteadOfAnd","displayName":"Filter
with Or Instead of And","helpMessage":"Normally the the filter used to fetch change log entries
is an and-based filter retrieving an interval of change entries. If this property is set,
the filter will or together the required change numbers instead.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["false"]},{"schema":{"name":"principal","displayName":"Principal","helpMessage":"The
distinguished name with which to authenticate to the LDAP server.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["uid=admin,ou=system"]},{"schema":{"name":"changeLogBlockSize","displayName":"Change
Log Block Size","helpMessage":"The number of change log entries to fetch per query.","type":"int","required":true,"order":0,"confidential":false,"defaultValues":null},"overrida
 ble":false,"values":[100]},{"schema":{"name":"baseContexts","displayName":"Base Contexts","helpMessage":"One
or more starting points in the LDAP tree that will be used when searching the tree. Searches
are performed when discovering users from the LDAP server or when looking for the groups of
which a user is a member.","type":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["ou=people,o=isp","ou=groups,o=isp"]},{"schema":{"name":"passwordAttribute","displayName":"Password
Attribute","helpMessage":"The name of the LDAP attribute which holds the password. When changing
an user password, the new password is set to this attribute.","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["userpassword"]},{"schema":{"name":"changeNumberAttribute","displayName":"Change
Number Attribute","helpMessage":"The name of the change number attribute in the c
 hange log entry.","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["changeNumber"]},{"schema":{"name":"objectClassesToSynchronize","displayName":"Object
Classes to Synchronize","helpMessage":"The object classes to synchronize. The change log is
for all objects; this filters updates to just the listed object classes. You should not list
the superclasses of an object class unless you intend to synchronize objects with any of the
superclass values. For example, if only \"inetOrgPerson\" objects should be synchronized,
but the superclasses of \"inetOrgPerson\" (\"person\", \"organizationalperson\" and \"top\")
should be filtered out, then list only \"inetOrgPerson\" here. All objects in LDAP are subclassed
from \"top\". For this reason, you should never list \"top\", otherwise no object would be
filtered.","type":"[Ljava.lang.String;","required":true,"order":0,"confidential":false,"defaultValues":null},"overrida
 ble":false,"values":["inetOrgPerson","groupOfUniqueNames"]},{"schema":{"name":"credentials","displayName":"Password","helpMessage":"Password
for the principal.","type":"org.identityconnectors.common.security.GuardedString","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["secret"]},{"schema":{"name":"attributesToSynchronize","displayName":"Attributes
to Synchronize","helpMessage":"The names of the attributes to synchronize. This ignores updates
from the change log if they do not update any of the named attributes. For example, if only
\"department\" is listed, then only changes that affect \"department\" will be processed.
All other updates are ignored. If blank (the default), then all changes are processed.","type":"[Ljava.lang.String;","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[]},{"schema":{"name":"maintainPosixGroupMembership","displayName":"Maintain
POSIX Group Membership
 ","helpMessage":"When enabled and a user is renamed or deleted, update any POSIX groups to
which the user belongs to reflect the new name. Otherwise, the LDAP resource must maintain
referential integrity with respect to group membership.","type":"boolean","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["truemaintainLdapGroupMembership"]}]'/>
-  <ConnInstance_capabilities connInstance_key="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="CREATE"/>
-  <ConnInstance_capabilities connInstance_key="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="UPDATE"/>
-  <ConnInstance_capabilities connInstance_key="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="DELETE"/>
-  <ConnInstance_capabilities ConnInstance_key="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="SEARCH"/>
+  <ConnInstance_capabilities connInstance_id="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="CREATE"/>
+  <ConnInstance_capabilities connInstance_id="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="UPDATE"/>
+  <ConnInstance_capabilities connInstance_id="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="DELETE"/>
+  <ConnInstance_capabilities ConnInstance_id="b7ea96c3-c633-488b-98a0-b52ac35850f7" capability="SEARCH"/>
   
 </dataset>

http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
index 9b5de4c..18d9ce7 100644
--- a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
+++ b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
@@ -178,7 +178,7 @@ public class CamelRouteLoader implements SyncopeLoader {
                     String routeId = ((Element) routeElement).getAttribute("id");
 
                     jdbcTemplate.update(
-                            String.format("INSERT INTO %s(KEY, ANYTYPEKIND, CONTENT) VALUES
(?, ?, ?)",
+                            String.format("INSERT INTO %s(ID, ANYTYPEKIND, CONTENT) VALUES
(?, ?, ?)",
                                     CamelRoute.class.getSimpleName()),
                             new Object[] { routeId, anyTypeKind.name(), routeContent });
                     LOG.info("[{}] Route successfully loaded: {}", domain, routeId);

http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/fit/core-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml
index eb7d440..af261a4 100644
--- a/fit/core-reference/pom.xml
+++ b/fit/core-reference/pom.xml
@@ -374,7 +374,7 @@ under the License.
         <dependency>
           <groupId>org.postgresql</groupId>
           <artifactId>postgresql</artifactId>
-          <version>9.4-1201-jdbc41</version>
+          <version>9.4.1208.jre7</version>
           <scope>test</scope>
         </dependency>
       </dependencies>
@@ -410,7 +410,7 @@ under the License.
         <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
-          <version>5.1.36</version>
+          <version>5.1.38</version>
           <scope>test</scope>
         </dependency>
       </dependencies>
@@ -532,6 +532,7 @@ under the License.
             <filtering>true</filtering>
             <excludes>
               <exclude>provisioning.properties</exclude>
+              <exclude>views.xml</exclude>
             </excludes>
           </resource>
           <resource>
@@ -539,6 +540,16 @@ under the License.
             <filtering>true</filtering>
           </resource>
         </resources>
+        <!-- Views need to be customized, so the SQL Server-specific views.xml need to
be copied to target/test-classes,
+        e.g. the conf directory, in order to override classpath:views.xml -->
+        <testResources>
+          <testResource>
+            <directory>src/main/resources/sqlserver</directory>
+            <includes>
+              <include>views.xml</include>
+            </includes>            
+          </testResource>
+        </testResources>
       </build>
     </profile>
     

http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/fit/core-reference/src/main/resources/sqlserver/views.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/sqlserver/views.xml b/fit/core-reference/src/main/resources/sqlserver/views.xml
new file mode 100644
index 0000000..ef6c666
--- /dev/null
+++ b/fit/core-reference/src/main/resources/sqlserver/views.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you 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.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+  <comment>Views</comment>
+  
+  <!-- user -->
+  <entry key="user_search">
+    CREATE VIEW user_search AS
+ 
+    SELECT u.id as any_id, u.* FROM SyncopeUser u
+  </entry>
+  <entry key="user_search_unique_attr">
+    CREATE VIEW user_search_unique_attr AS
+
+    SELECT ua.owner_id AS any_id,
+    ua.schema_id AS schema_id,
+    uav.booleanvalue AS booleanvalue,
+    uav.datevalue AS datevalue,
+    uav.doublevalue AS doublevalue,
+    uav.longvalue AS longvalue,
+    uav.stringvalue AS stringvalue
+    FROM UPlainAttrUniqueValue uav, UPlainAttr ua
+    WHERE uav.attribute_id = ua.id
+  </entry>
+  <entry key="user_search_attr">
+    CREATE VIEW user_search_attr AS
+
+    SELECT ua.owner_id AS any_id,
+    ua.schema_id AS schema_id,
+    uav.booleanvalue AS booleanvalue,
+    uav.datevalue AS datevalue,
+    uav.doublevalue AS doublevalue,
+    uav.longvalue AS longvalue,
+    uav.stringvalue AS stringvalue
+    FROM UPlainAttrValue uav, UPlainAttr ua
+    WHERE uav.attribute_id = ua.id
+  </entry>
+  <entry key="user_search_null_attr">
+    CREATE VIEW user_search_null_attr AS
+
+    SELECT u.id AS any_id,
+    PlainSchema.id AS schema_id,
+    NULL AS booleanvalue,
+    CAST (NULL AS DATETIME2) datevalue,
+    CAST (NULL AS FLOAT) doublevalue,
+    CAST (NULL AS BIGINT) longvalue,
+    CAST (NULL AS VARCHAR(255)) AS stringvalue
+    FROM SyncopeUser u CROSS JOIN PlainSchema
+    LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+    WHERE ua.id IS NULL
+  </entry>
+  <entry key="user_search_urelationship">
+    CREATE VIEW user_search_urelationship AS
+
+    SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_id AS type
+    FROM URelationship m
+  </entry>
+  <entry key="user_search_umembership">
+    CREATE VIEW user_search_umembership AS
+
+    SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name
+    FROM UMembership m, SyncopeGroup g
+    WHERE m.group_id = g.id
+  </entry>
+  <entry key="user_search_udyngmemb">
+    CREATE VIEW user_search_udyngmemb AS
+
+    SELECT ds.user_id AS any_id, d.group_id AS group_id
+    FROM UDynGroupMembership d, UDynGroupMembership_User ds
+    WHERE d.id = ds.uDynGroupMembership_id
+  </entry>
+  <entry key="user_search_role">
+    CREATE VIEW user_search_role AS
+
+    SELECT ss.user_id AS any_id, ss.role_id AS role_id
+    FROM SyncopeUser_SyncopeRole ss
+  </entry>
+  <entry key="user_search_dynrmemb">
+    CREATE VIEW user_search_dynrmemb AS
+
+    SELECT ds.user_id AS any_id, d.role_id AS role_id
+    FROM DynRoleMembership d, DynRoleMembership_User ds
+    WHERE d.id = ds.dynRoleMembership_id
+  </entry>
+  <entry key="user_search_resource">
+    CREATE VIEW user_search_resource AS
+
+    SELECT st.user_id AS any_id, st.resource_id AS resource_id
+    FROM SyncopeUser_ExternalResource st
+  </entry>
+  <entry key="user_search_group_res">
+    CREATE VIEW user_search_group_res AS
+
+    SELECT m.user_id AS any_id, st.resource_id AS resource_id
+    FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+    WHERE m.group_id = r.id AND st.group_id = r.id
+  </entry>
+
+  <!-- anyObject -->
+  <entry key="anyObject_search">
+    CREATE VIEW anyObject_search AS
+ 
+    SELECT a.id as any_id, a.* FROM AnyObject a
+  </entry>
+  <entry key="anyObject_search_unique_attr">
+    CREATE VIEW anyObject_search_unique_attr AS
+
+    SELECT ua.owner_id AS any_id,
+    ua.schema_id AS schema_id,
+    uav.booleanvalue AS booleanvalue,
+    uav.datevalue AS datevalue,
+    uav.doublevalue AS doublevalue,
+    uav.longvalue AS longvalue,
+    uav.stringvalue AS stringvalue
+    FROM APlainAttrUniqueValue uav, APlainAttr ua
+    WHERE uav.attribute_id = ua.id
+  </entry>
+  <entry key="anyObject_search_attr">
+    CREATE VIEW anyObject_search_attr AS
+
+    SELECT ua.owner_id AS any_id,
+    ua.schema_id AS schema_id,
+    uav.booleanvalue AS booleanvalue,
+    uav.datevalue AS datevalue,
+    uav.doublevalue AS doublevalue,
+    uav.longvalue AS longvalue,
+    uav.stringvalue AS stringvalue
+    FROM APlainAttrValue uav, APlainAttr ua
+    WHERE uav.attribute_id = ua.id
+  </entry>
+  <entry key="anyObject_search_null_attr">
+    CREATE VIEW anyObject_search_null_attr AS
+
+    SELECT u.id AS any_id,
+    PlainSchema.id AS schema_id,
+    NULL AS booleanvalue,
+    CAST (NULL AS DATETIME2) datevalue,
+    CAST (NULL AS FLOAT) doublevalue,
+    CAST (NULL AS BIGINT) longvalue,
+    CAST (NULL AS VARCHAR(255)) AS stringvalue
+    FROM AnyObject u CROSS JOIN PlainSchema
+    LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+    WHERE ua.id IS NULL
+  </entry>
+  <entry key="anyObject_search_arelationship">
+    CREATE VIEW anyObject_search_arelationship AS
+
+    SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_id
AS type
+    FROM ARelationship m
+  </entry>
+  <entry key="anyObject_search_amembership">
+    CREATE VIEW anyObject_search_amembership AS
+
+    SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name
+    FROM AMembership m, SyncopeGroup g
+    WHERE m.group_id = g.id
+  </entry>
+  <entry key="anyObject_search_adyngmemb">
+    CREATE VIEW anyObject_search_adyngmemb AS
+
+    SELECT ds.anyObject_id AS any_id, d.group_id AS group_id
+    FROM ADynGroupMembership d, ADynGroupMembership_AnyObject ds
+    WHERE d.id = ds.aDynGroupMembership_id
+  </entry>
+  <entry key="anyObject_search_resource">
+    CREATE VIEW anyObject_search_resource AS
+
+    SELECT st.anyObject_id AS any_id, st.resource_id AS resource_id
+    FROM AnyObject_ExternalResource st
+  </entry>
+  <entry key="anyObject_search_group_res">
+    CREATE VIEW anyObject_search_group_res AS
+
+    SELECT m.anyObject_id AS any_id, st.resource_id AS resource_id
+    FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+    WHERE m.group_id = r.id AND st.group_id = r.id
+  </entry>
+
+  <!-- group -->
+  <entry key="group_search">
+    CREATE VIEW group_search AS
+ 
+    SELECT r.id as any_id, r.* FROM SyncopeGroup r
+  </entry>
+  <entry key="group_search_unique_attr">
+    CREATE VIEW group_search_unique_attr AS
+
+    SELECT ua.owner_id AS any_id,
+    ua.schema_id AS schema_id,
+    uav.booleanvalue AS booleanvalue,
+    uav.datevalue AS datevalue,
+    uav.doublevalue AS doublevalue,
+    uav.longvalue AS longvalue,
+    uav.stringvalue AS stringvalue
+    FROM GPlainAttrUniqueValue uav, GPlainAttr ua
+    WHERE uav.attribute_id = ua.id
+  </entry>
+  <entry key="group_search_attr">
+    CREATE VIEW group_search_attr AS
+
+    SELECT ua.owner_id AS any_id,
+    ua.schema_id AS schema_id,
+    uav.booleanvalue AS booleanvalue,
+    uav.datevalue AS datevalue,
+    uav.doublevalue AS doublevalue,
+    uav.longvalue AS longvalue,
+    uav.stringvalue AS stringvalue
+    FROM GPlainAttrValue uav, GPlainAttr ua
+    WHERE uav.attribute_id = ua.id
+  </entry>
+  <entry key="group_search_null_attr">
+    CREATE VIEW group_search_null_attr AS
+
+    SELECT u.id AS any_id,
+    PlainSchema.id AS schema_id,
+    NULL AS booleanvalue,
+    CAST (NULL AS DATETIME2) datevalue,
+    CAST (NULL AS FLOAT) doublevalue,
+    CAST (NULL AS BIGINT) longvalue,
+    CAST (NULL AS VARCHAR(255)) AS stringvalue
+    FROM SyncopeGroup u CROSS JOIN PlainSchema
+    LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+    WHERE ua.id IS NULL
+  </entry>
+  <entry key="group_search_resource">
+    CREATE VIEW group_search_resource AS
+
+    SELECT st.group_id AS any_id, st.resource_id AS resource_id
+    FROM SyncopeGroup_ExternalResource st
+  </entry>
+
+</properties>

http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index 864835d..4922cc8 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -88,7 +88,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 public class PullTaskITCase extends AbstractTaskITCase {
 
     @BeforeClass
-    public static void testPullctionsSetup() {
+    public static void testPullActionsSetup() {
         PullTaskTO pullTask = taskService.read(PULL_TASK_KEY, true);
         pullTask.getActionsClassNames().add(TestPullActions.class.getName());
         taskService.update(pullTask);


Mime
View raw message