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