You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2012/05/25 16:41:45 UTC

svn commit: r1342653 - in /incubator/syncope/trunk/core: ./ src/main/java/org/apache/syncope/core/workflow/ src/main/resources/META-INF/ src/main/resources/logback/ src/main/resources/quartz/ src/test/resources/sqlserver/

Author: fmartelli
Date: Fri May 25 14:41:45 2012
New Revision: 1342653

URL: http://svn.apache.org/viewvc?rev=1342653&view=rev
Log:
SYNCOPE-88 provided support for sqlserver

Added:
    incubator/syncope/trunk/core/src/main/resources/META-INF/orm.xml.sqlserver
    incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql   (with props)
    incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql   (with props)
    incubator/syncope/trunk/core/src/test/resources/sqlserver/
    incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties   (with props)
Modified:
    incubator/syncope/trunk/core/pom.xml
    incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/ActivitiUserWorkflowAdapter.java

Modified: incubator/syncope/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/pom.xml?rev=1342653&r1=1342652&r2=1342653&view=diff
==============================================================================
--- incubator/syncope/trunk/core/pom.xml (original)
+++ incubator/syncope/trunk/core/pom.xml Fri May 25 14:41:45 2012
@@ -808,6 +808,62 @@ under the License.
     </profile>
 
     <profile>
+      <id>sqlserver-it</id>
+      <properties>
+        <jdbcdriver.groupId>com.microsoft.sqlserver</jdbcdriver.groupId>
+        <jdbcdriver.artifactId>sqljdbc4</jdbcdriver.artifactId>
+        <javaagent />
+      </properties>
+      <dependencies>
+        <dependency>
+          <groupId>com.microsoft.sqlserver</groupId>
+          <artifactId>sqljdbc4</artifactId>
+          <version>3.0</version>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+      <build>
+        <defaultGoal>clean verify</defaultGoal>
+
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <inherited>true</inherited>
+            <executions>
+              <execution>
+                <id>set-sqlserver</id>
+                <phase>process-test-resources</phase>
+                <configuration>
+                  <target>
+                    <copy tofile="${project.build.directory}/classes/META-INF/orm.xml" file="${basedir}/src/main/resources/META-INF/orm.xml.sqlserver" overwrite="true" />
+                  </target>
+                </configuration>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+
+        <testResources>
+          <testResource>
+            <directory>src/test/resources</directory>
+            <filtering>true</filtering>
+            <excludes>
+              <exclude>persistence.properties</exclude>
+            </excludes>
+          </testResource>
+          <testResource>
+            <directory>src/test/resources/sqlserver</directory>
+            <filtering>true</filtering>
+          </testResource>
+        </testResources>
+      </build>
+    </profile>
+    
+    <profile>
       <id>postgres-it</id>
       <properties>
         <jdbcdriver.groupId>postgresql</jdbcdriver.groupId>

Modified: incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/ActivitiUserWorkflowAdapter.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/ActivitiUserWorkflowAdapter.java?rev=1342653&r1=1342652&r2=1342653&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/ActivitiUserWorkflowAdapter.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/ActivitiUserWorkflowAdapter.java Fri May 25 14:41:45 2012
@@ -56,7 +56,6 @@ import org.activiti.engine.task.Task;
 import org.apache.commons.collections.keyvalue.DefaultMapEntry;
 import org.apache.commons.lang.StringUtils;
 import org.identityconnectors.common.security.EncryptorFactory;
-import org.identityconnectors.common.security.SecurityUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -72,6 +71,7 @@ import org.apache.syncope.core.propagati
 import org.apache.syncope.core.rest.controller.UnauthorizedRoleException;
 import org.apache.syncope.types.PropagationOperation;
 import org.apache.syncope.types.WorkflowFormPropertyType;
+import org.springframework.security.crypto.codec.Base64;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
@@ -85,7 +85,7 @@ public class ActivitiUserWorkflowAdapter
      */
     private static final Logger LOG = LoggerFactory.getLogger(ActivitiUserWorkflowAdapter.class);
 
-    private static final String[] PROPERTY_IGNORE_PROPS = { "type" };
+    private static final String[] PROPERTY_IGNORE_PROPS = {"type"};
 
     public static final String WF_PROCESS_ID = "userWorkflow";
 
@@ -170,17 +170,15 @@ public class ActivitiUserWorkflowAdapter
 
     private String encrypt(final String clear) {
         byte[] encryptedBytes = EncryptorFactory.getInstance().getDefaultEncryptor().encrypt(clear.getBytes());
-        char[] encryptedChars = SecurityUtil.bytesToChars(encryptedBytes);
 
-        return new String(encryptedChars);
+        return new String(Base64.encode(encryptedBytes));
     }
 
     private String decrypt(final String crypted) {
-        char[] encryptedChars = crypted.toCharArray();
-        byte[] encryptedBytes = EncryptorFactory.getInstance().getDefaultEncryptor().decrypt(
-                SecurityUtil.charsToBytes(encryptedChars));
+        byte[] decryptedBytes =
+                EncryptorFactory.getInstance().getDefaultEncryptor().decrypt(Base64.decode(crypted.getBytes()));
 
-        return new String(encryptedBytes);
+        return new String(decryptedBytes);
     }
 
     @Override
@@ -191,7 +189,8 @@ public class ActivitiUserWorkflowAdapter
 
     @Override
     public WorkflowResult<Map.Entry<Long, Boolean>> create(final UserTO userTO, final boolean disablePwdPolicyCheck,
-            final Boolean enabled) throws WorkflowException {
+            final Boolean enabled)
+            throws WorkflowException {
 
         final Map<String, Object> variables = new HashMap<String, Object>();
         variables.put(USER_TO, userTO);
@@ -233,8 +232,8 @@ public class ActivitiUserWorkflowAdapter
             propByRes = null;
 
             if (StringUtils.isNotBlank(userTO.getPassword())) {
-                runtimeService.setVariable(processInstance.getProcessInstanceId(), ENCRYPTED_PWD, encrypt(userTO
-                        .getPassword()));
+                runtimeService.setVariable(
+                        processInstance.getProcessInstanceId(), ENCRYPTED_PWD, encrypt(userTO.getPassword()));
             }
         }
 
@@ -277,7 +276,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    protected WorkflowResult<Long> doActivate(final SyncopeUser user, final String token) throws WorkflowException {
+    protected WorkflowResult<Long> doActivate(final SyncopeUser user, final String token)
+            throws WorkflowException {
 
         Set<String> performedTasks = doExecuteTask(user, "activate", Collections.singletonMap(TOKEN, (Object) token));
         updateStatus(user);
@@ -311,8 +311,9 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    @Transactional(rollbackFor = { Throwable.class })
-    protected WorkflowResult<Long> doSuspend(final SyncopeUser user) throws WorkflowException {
+    @Transactional(rollbackFor = {Throwable.class})
+    protected WorkflowResult<Long> doSuspend(final SyncopeUser user)
+            throws WorkflowException {
 
         Set<String> performedTasks = doExecuteTask(user, "suspend", null);
         updateStatus(user);
@@ -322,7 +323,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    protected WorkflowResult<Long> doReactivate(final SyncopeUser user) throws WorkflowException {
+    protected WorkflowResult<Long> doReactivate(final SyncopeUser user)
+            throws WorkflowException {
 
         Set<String> performedTasks = doExecuteTask(user, "reactivate", null);
         updateStatus(user);
@@ -333,7 +335,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    protected void doDelete(final SyncopeUser user) throws WorkflowException {
+    protected void doDelete(final SyncopeUser user)
+            throws WorkflowException {
 
         doExecuteTask(user, "delete", null);
         userDAO.delete(user);
@@ -356,7 +359,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    public WorkflowDefinitionTO getDefinition() throws WorkflowException {
+    public WorkflowDefinitionTO getDefinition()
+            throws WorkflowException {
 
         ProcessDefinition procDef;
         try {
@@ -400,7 +404,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    public void updateDefinition(final WorkflowDefinitionTO definition) throws NotFoundException, WorkflowException {
+    public void updateDefinition(final WorkflowDefinitionTO definition)
+            throws NotFoundException, WorkflowException {
 
         if (!ActivitiUserWorkflowAdapter.WF_PROCESS_ID.equals(definition.getId())) {
 
@@ -416,7 +421,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    public List<String> getDefinedTasks() throws WorkflowException {
+    public List<String> getDefinedTasks()
+            throws WorkflowException {
 
         List<String> result = new ArrayList<String>();
 
@@ -527,7 +533,8 @@ public class ActivitiUserWorkflowAdapter
     }
 
     @Override
-    public WorkflowFormTO getForm(final String workflowId) throws NotFoundException, WorkflowException {
+    public WorkflowFormTO getForm(final String workflowId)
+            throws NotFoundException, WorkflowException {
 
         Task task;
         try {

Added: incubator/syncope/trunk/core/src/main/resources/META-INF/orm.xml.sqlserver
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/resources/META-INF/orm.xml.sqlserver?rev=1342653&view=auto
==============================================================================
--- incubator/syncope/trunk/core/src/main/resources/META-INF/orm.xml.sqlserver (added)
+++ incubator/syncope/trunk/core/src/main/resources/META-INF/orm.xml.sqlserver Fri May 25 14:41:45 2012
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+
+-->
+<entity-mappings  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
+                                      http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
+                  version="2.0">
+
+  <table-generator name="SEQ_UAttrValue" pk-column-value="SEQ_UAttrValue" initial-value="100"/>
+  <table-generator name="SEQ_RAttrValue" pk-column-value="SEQ_RAttrValue" initial-value="100"/>
+  <table-generator name="SEQ_MAttrValue" pk-column-value="SEQ_MAttrValue" initial-value="100"/>
+
+  <entity class="org.apache.syncope.core.persistence.beans.user.SyncopeUser">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_SyncopeUser" strategy="TABLE"/>
+        <table-generator name="SEQ_SyncopeUser" pk-column-value="SEQ_SyncopeUser" initial-value="100"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.role.SyncopeRole">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_SyncopeRole" strategy="TABLE"/>
+        <table-generator name="SEQ_SyncopeRole" pk-column-value="SEQ_SyncopeRole" initial-value="100"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.membership.Membership">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_Membership" strategy="TABLE"/>
+        <table-generator name="SEQ_Membership" pk-column-value="SEQ_Membership" initial-value="100"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.SchemaMapping">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_SchemaMapping" strategy="TABLE"/>
+        <table-generator name="SEQ_SchemaMapping" pk-column-value="SEQ_SchemaMapping" initial-value="1000"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.ConnInstance">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_ConnInstance" strategy="TABLE"/>
+        <table-generator name="SEQ_ConnInstance" pk-column-value="SEQ_ConnInstance" initial-value="1000"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.user.UAttr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_UAttr" strategy="TABLE"/>
+        <table-generator name="SEQ_UAttr" pk-column-value="SEQ_UAttr" initial-value="1000"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.role.RAttr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_RAttr" strategy="TABLE"/>
+        <table-generator name="SEQ_RAttr" pk-column-value="SEQ_RAttr" initial-value="1000"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.membership.MAttr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_MAttr" strategy="TABLE"/>
+        <table-generator name="SEQ_MAttr" pk-column-value="SEQ_MAttr" initial-value="1000"/>
+      </id>
+    </attributes>
+  </entity>
+    
+  <entity class="org.apache.syncope.core.persistence.beans.user.UAttrValue">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_UAttrValue" strategy="TABLE"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.user.UAttrUniqueValue">
+    <table>
+      <unique-constraint>
+        <column-name>booleanValue</column-name>
+        <column-name>dateValue</column-name>
+        <column-name>stringValue</column-name>
+        <column-name>doubleValue</column-name>
+        <column-name>longValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+    </table>
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_UAttrValue" strategy="TABLE"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.role.RAttrValue">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_RAttrValue" strategy="TABLE"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.role.RAttrUniqueValue">
+    <table>
+      <unique-constraint>
+        <column-name>booleanValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>dateValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>stringValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>doubleValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>longValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+    </table>
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_RAttrValue" strategy="TABLE"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.membership.MAttrValue">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_MAttrValue" strategy="TABLE"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.membership.MAttrUniqueValue">
+    <table>
+      <unique-constraint>
+        <column-name>booleanValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>dateValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>stringValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>doubleValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+      <unique-constraint>
+        <column-name>longValue</column-name>
+        <column-name>schema_name</column-name>
+      </unique-constraint>
+    </table>
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_MAttrValue" strategy="TABLE"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.Task">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_Task" strategy="TABLE"/>
+        <table-generator name="SEQ_Task" pk-column-value="SEQ_Task" initial-value="10"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.TaskExec">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_TaskExec" strategy="TABLE"/>
+        <table-generator name="SEQ_TaskExec" pk-column-value="SEQ_TaskExec" initial-value="10"/>
+      </id>
+    </attributes>
+  </entity>
+    
+  <entity class="org.apache.syncope.core.persistence.beans.Policy">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_Policy" strategy="TABLE"/>
+        <table-generator name="SEQ_Policy" pk-column-value="SEQ_Policy" initial-value="1000"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.syncope.core.persistence.beans.Report">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_Report" strategy="TABLE"/>
+        <table-generator name="SEQ_Report" pk-column-value="SEQ_Report" initial-value="100"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.ReportExec">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_ReportExec" strategy="TABLE"/>
+        <table-generator name="SEQ_ReportExec" pk-column-value="SEQ_ReportExec" initial-value="100"/>
+      </id>
+    </attributes>
+  </entity>
+  <entity class="org.apache.syncope.core.persistence.beans.ReportletConfInstance">
+    <attributes>
+      <id name="id">
+        <generated-value generator="SEQ_ReportletConfInstance" strategy="TABLE"/>
+        <table-generator name="SEQ_ReportletConfInstance" pk-column-value="SEQ_ReportletConfInstance" initial-value="100"/>
+      </id>
+    </attributes>
+  </entity>
+</entity-mappings>

Added: incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql?rev=1342653&view=auto
==============================================================================
--- incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql (added)
+++ incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql Fri May 25 14:41:45 2012
@@ -0,0 +1,64 @@
+-- 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.
+
+DROP TABLE logging_event_property
+DROP TABLE logging_event_exception
+DROP TABLE logging_event
+
+CREATE TABLE logging_event
+  (
+    timestmp         DECIMAL(20) NOT NULL,
+    formatted_message  VARCHAR(4000) NOT NULL,
+    logger_name       VARCHAR(254) NOT NULL,
+    level_string      VARCHAR(254) NOT NULL,
+    thread_name       VARCHAR(254),
+    reference_flag    SMALLINT,
+    arg0              VARCHAR(254),
+    arg1              VARCHAR(254),
+    arg2              VARCHAR(254),
+    arg3              VARCHAR(254),
+    caller_filename   VARCHAR(254) NOT NULL,
+    caller_class      VARCHAR(254) NOT NULL,
+    caller_method     VARCHAR(254) NOT NULL,
+    caller_line       CHAR(4) NOT NULL,
+    event_id          DECIMAL(40) NOT NULL identity,
+    PRIMARY KEY(event_id)
+  )
+
+CREATE TABLE logging_event_property
+  (
+    event_id          DECIMAL(40) NOT NULL,
+    mapped_key        VARCHAR(254) NOT NULL,
+    mapped_value      VARCHAR(1024),
+    PRIMARY KEY(event_id, mapped_key),
+    FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
+  )
+
+CREATE TABLE logging_event_exception
+  (
+
+    event_id         DECIMAL(40) NOT NULL,
+
+    i                SMALLINT NOT NULL,
+
+    trace_line       VARCHAR(254) NOT NULL,
+
+    PRIMARY KEY(event_id, i),
+
+    FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
+
+  ) 

Propchange: incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/syncope/trunk/core/src/main/resources/logback/sqlserver.sql
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql?rev=1342653&view=auto
==============================================================================
--- incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql (added)
+++ incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql Fri May 25 14:41:45 2012
@@ -0,0 +1,297 @@
+-- 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.
+
+USE syncope
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] DROP CONSTRAINT FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] DROP CONSTRAINT FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_CALENDARS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_LOCKS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_JOB_DETAILS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_LISTENERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_JOB_LISTENERS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGER_LISTENERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_TRIGGER_LISTENERS]
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_TRIGGERS]
+
+CREATE TABLE [dbo].[QRTZ_CALENDARS] (
+  [CALENDAR_NAME] [VARCHAR] (200)  NOT NULL ,
+  [CALENDAR] [IMAGE] NOT NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [CRON_EXPRESSION] [VARCHAR] (120)  NOT NULL ,
+  [TIME_ZONE_ID] [VARCHAR] (80) 
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] (
+  [ENTRY_ID] [VARCHAR] (95)  NOT NULL ,
+  [TRIGGER_NAME] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [IS_VOLATILE] [VARCHAR] (1)  NOT NULL ,
+  [INSTANCE_NAME] [VARCHAR] (200)  NOT NULL ,
+  [FIRED_TIME] [BIGINT] NOT NULL ,
+  [PRIORITY] [INTEGER] NOT NULL ,
+  [STATE] [VARCHAR] (16)  NOT NULL,
+  [JOB_NAME] [VARCHAR] (200)  NULL ,
+  [JOB_GROUP] [VARCHAR] (200)  NULL ,
+  [IS_STATEFUL] [VARCHAR] (1)  NULL ,
+  [REQUESTS_RECOVERY] [VARCHAR] (1)  NULL 
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] (
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL 
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] (
+  [INSTANCE_NAME] [VARCHAR] (200)  NOT NULL ,
+  [LAST_CHECKIN_TIME] [BIGINT] NOT NULL ,
+  [CHECKIN_INTERVAL] [BIGINT] NOT NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_LOCKS] (
+  [LOCK_NAME] [VARCHAR] (40)  NOT NULL 
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] (
+  [JOB_NAME] [VARCHAR] (200)  NOT NULL ,
+  [JOB_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [DESCRIPTION] [VARCHAR] (250) NULL ,
+  [JOB_CLASS_NAME] [VARCHAR] (250)  NOT NULL ,
+  [IS_DURABLE] [VARCHAR] (1)  NOT NULL ,
+  [IS_VOLATILE] [VARCHAR] (1)  NOT NULL ,
+  [IS_STATEFUL] [VARCHAR] (1)  NOT NULL ,
+  [REQUESTS_RECOVERY] [VARCHAR] (1)  NOT NULL ,
+  [JOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_JOB_LISTENERS] (
+  [JOB_NAME] [VARCHAR] (200)  NOT NULL ,
+  [JOB_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [JOB_LISTENER] [VARCHAR] (200)  NOT NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [REPEAT_COUNT] [BIGINT] NOT NULL ,
+  [REPEAT_INTERVAL] [BIGINT] NOT NULL ,
+  [TIMES_TRIGGERED] [BIGINT] NOT NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [BLOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] (
+  [TRIGGER_NAME] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_LISTENER] [VARCHAR] (200)  NOT NULL
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[QRTZ_TRIGGERS] (
+  [TRIGGER_NAME] [VARCHAR] (200)  NOT NULL ,
+  [TRIGGER_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [JOB_NAME] [VARCHAR] (200)  NOT NULL ,
+  [JOB_GROUP] [VARCHAR] (200)  NOT NULL ,
+  [IS_VOLATILE] [VARCHAR] (1)  NOT NULL ,
+  [DESCRIPTION] [VARCHAR] (250) NULL ,
+  [NEXT_FIRE_TIME] [BIGINT] NULL ,
+  [PREV_FIRE_TIME] [BIGINT] NULL ,
+  [PRIORITY] [INTEGER] NULL ,
+  [TRIGGER_STATE] [VARCHAR] (16)  NOT NULL ,
+  [TRIGGER_TYPE] [VARCHAR] (8)  NOT NULL ,
+  [START_TIME] [BIGINT] NOT NULL ,
+  [END_TIME] [BIGINT] NULL ,
+  [CALENDAR_NAME] [VARCHAR] (200)  NULL ,
+  [MISFIRE_INSTR] [SMALLINT] NULL ,
+  [JOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY  CLUSTERED
+  (
+    [CALENDAR_NAME]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [ENTRY_ID]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY  CLUSTERED
+  (
+    [INSTANCE_NAME]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY  CLUSTERED
+  (
+    [LOCK_NAME]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY  CLUSTERED
+  (
+    [JOB_NAME],
+    [JOB_GROUP]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_JOB_LISTENERS] PRIMARY KEY  CLUSTERED
+  (
+    [JOB_NAME],
+    [JOB_GROUP],
+    [JOB_LISTENER]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_TRIGGER_LISTENERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP],
+    [TRIGGER_LISTENER]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD
+  CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY  CLUSTERED
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  )  ON [PRIMARY]
+
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD
+  CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) ON DELETE CASCADE
+
+ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] ADD
+  CONSTRAINT [FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS] FOREIGN KEY
+  (
+    [JOB_NAME],
+    [JOB_GROUP]
+  ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] (
+    [JOB_NAME],
+    [JOB_GROUP]
+  ) ON DELETE CASCADE
+
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD
+  CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) ON DELETE CASCADE
+
+ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] ADD
+  CONSTRAINT [FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS] FOREIGN KEY
+  (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+    [TRIGGER_NAME],
+    [TRIGGER_GROUP]
+  ) ON DELETE CASCADE
+
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD
+  CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY
+  (
+    [JOB_NAME],
+    [JOB_GROUP]
+  ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] (
+    [JOB_NAME],
+    [JOB_GROUP]
+  )
+
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('TRIGGER_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('JOB_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('CALENDAR_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('STATE_ACCESS');
+INSERT INTO [dbo].[QRTZ_LOCKS] VALUES('MISFIRE_ACCESS');

Propchange: incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/syncope/trunk/core/src/main/resources/quartz/tables_sqlserver.sql
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties?rev=1342653&view=auto
==============================================================================
--- incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties (added)
+++ incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties Fri May 25 14:41:45 2012
@@ -0,0 +1,26 @@
+# 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.
+
+jpa.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
+jpa.url=jdbc:sqlserver://192.168.0.141:49190;database=syncope;selectMethod=cursor;sendStringParametersAsUnicode=false
+jpa.username=syncope
+jpa.password=syncope
+jpa.dialect=org.apache.openjpa.jdbc.sql.SQLServerDictionary
+quartz.jobstore=org.quartz.impl.jdbcjobstore.MSSQLDelegate
+quartz.sql=tables_sqlserver.sql
+logback.sql=sqlserver.sql
+

Propchange: incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/syncope/trunk/core/src/test/resources/sqlserver/persistence.properties
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id