]> SALOME platform Git repositories - modules/gde.git/commitdiff
Salome HOME
Fixe a bug introduced in last commit (EclipseLink does not correctly support @CacheIn...
authorKavoos Bojnourdi <kavoos.bojnourdi@edf.fr>
Sat, 29 Aug 2015 13:34:47 +0000 (15:34 +0200)
committerKavoos Bojnourdi <kavoos.bojnourdi@edf.fr>
Sat, 29 Aug 2015 13:34:47 +0000 (15:34 +0200)
Fixe StudyClientDao
Added test for the "list" method of Study service

17 files changed:
projects/GDE-test/src/com/edf/gde/dao/StudyDaoClient.java
projects/GDE-test/src/com/edf/gde/dao/UserDaoClient.java
projects/GDE-test/test/com/edf/gde/test/dao/StudyDaoTest.java
projects/GDE-test/test/com/edf/gde/test/dao/UserDaoTest.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Attribute.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/AttributeGroup.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Chunk.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/ChunkInfo.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/GDEFile.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Group.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/GroupPermission.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Profile.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/ProfileAttribute.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Study.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/User.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/UserGroup.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/sql/init.sql

index 270c96d66a3d100c6950810b59862e16779812c9..09b2c02e07359ac60d38ab792dc30d0a05fb7e3b 100644 (file)
@@ -7,6 +7,7 @@ import com.edf.gde.transferables.CommandTO;
 import com.edf.gde.transferables.StudyTO;
 import com.edf.gde.transferables.responses.CommandResultTO;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 import restapi.RestContext;
 
@@ -86,6 +87,7 @@ public class StudyDaoClient extends BaseDao {
     
     public List<StudyTO> list() throws IOException {
        CommandTO commandTO = createCommand(LISTSTUDIES);
-       return postCommand(commandTO, null, List.class);
+       StudyTO[] stos = postCommand(commandTO, null, StudyTO[].class);
+       return Arrays.asList(stos);
     }
 }
index 14bcae0944182c0a64c4765f5cb5cc5677bf6fcf..0ea52dbf222d1f010158b714455694fd6cbbf839 100644 (file)
@@ -151,15 +151,16 @@ public class UserDaoClient extends BaseDao {
     
     public boolean addToGroup(long groupId, long userId) throws IOException {
         CommandTO commandTO = createCommand(ADDTOGROUP);
+        CommandResultTO resultTO = null;
         commandTO.setLong("groupId", groupId);
         commandTO.setLong("userId", userId);
         if (postAsJSonData(commandTO,daoResponseHandler)) {
-            CommandResultTO resultTO = daoResponseHandler.getResultTO();
+            resultTO = daoResponseHandler.getResultTO();
             if (resultTO.getCode() == CommandResultTO.OK) {
                 return true;
             }
         }
-        return false;
+        throw new RuntimeException(resultTO.getMsg());
     }
     
     public boolean removeFromGroup(long groupId, long userId) throws IOException {
index 3d99f8dc3ecbdfe858f80354229d10a7d44c2197..e17cf6d9b484a86897222142f10d938a4f369177 100644 (file)
@@ -7,8 +7,10 @@ import com.edf.gde.dao.StudyDaoClient;
 import com.edf.gde.base.BaseTest;
 import com.edf.gde.transferables.StudyTO;
 import java.util.Date;
+import java.util.List;
 import org.junit.After;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -88,6 +90,30 @@ public class StudyDaoTest extends BaseTest {
         passed();
     }
     
+    @Test
+    public void listStudyTest() throws Exception {
+        /* Create new study */
+        StudyDaoClient daoClient = new StudyDaoClient();
+        StudyTO studyTO = createStudyTO("List study");
+        StudyTO newStudyTO = daoClient.createStudy(studyTO);
+        /* list studies */
+        List<StudyTO> l = daoClient.list();
+        assertNotNull(l);
+        assertTrue(l.size()>0);
+        boolean f=false;
+        for (StudyTO sto : l) {
+            if (sto.getId() == newStudyTO.getId()) {
+                f=true;
+                break;
+            }
+        }
+        if (f) {
+            passed();
+        } else {
+            Assert.fail("Study not found in the list");
+        }
+    }
+    
     private StudyTO createStudyTO(String name) {
         StudyTO studyTO = new StudyTO();
         studyTO.setName(name);
@@ -95,4 +121,5 @@ public class StudyDaoTest extends BaseTest {
         studyTO.setValid(false);
         return studyTO;
     }
+    
 }
index 68d1b7eb58b5b073b560a1db8a39ef79e7877d7c..ad665cd74e4b91a867d9002e668531d17f4a1327 100644 (file)
@@ -90,6 +90,7 @@ public class UserDaoTest extends BaseTest {
 
     /**
      * Test of createUser method, of class UserDao.
+     * @throws java.lang.Exception
      */
     @Test
     public void testCreateUser() throws Exception {
index 68523f570f27b71f0a4d23ca8b38985f5e9376ba..c2c0f32bf86951252a9af15700726bb9c8ffa9d5 100644 (file)
@@ -45,7 +45,7 @@ public class Attribute implements Serializable {
     @Basic(optional = false)
     @NotNull
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     @Column(name = "id")
     private long id;
     @Size(max = 255)
index 1228fdddf0b212f2e68602a2355e713e8b66c068..39e0abbd2cd021dab73fbf421e8b8ee2922b347e 100644 (file)
@@ -44,7 +44,7 @@ public class AttributeGroup implements Serializable {
     @Basic(optional = false)
     @NotNull
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     @Column(name = "id")
     private long id;
     @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true, cascade = {CascadeType.ALL}, mappedBy = "attributeGroup")
index 3aed7b747ed166ac7688a3eaa2509c0c3d26b8c3..7f90a6d23d0a1973021247d0ef3d8eecb97dd0c9 100644 (file)
@@ -45,7 +45,7 @@ public class Chunk implements Serializable {
     @Basic(optional = false)
     @NotNull
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     @Column(name = "id")
     private long id;
     @Column(name = "file_id", nullable = false)
index 1be620c9bcd2e0d304346f2faeb83e4e2121bc2d..a3bd1c82121b501614b9bd0baa71c423b7a04003 100644 (file)
@@ -38,7 +38,7 @@ public class ChunkInfo implements Serializable {
     @Basic(optional = false)
     @NotNull
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     @Column(name = "id")
     private long id;
     @Column(name = "file_id", nullable = false)
index a17e85a85b6a9d98370c460045c509cdb6a94a9a..31348dcbd625db3ca630ab671436c3fe7e780087 100644 (file)
@@ -54,7 +54,7 @@ public class GDEFile implements Serializable {
     @NotNull
     @Column(name = "id")
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     private long id;
     @Size(max = 255)
     @Column(name = "name")
index 5e3335b67f6dadb93556f65b613d52830904e04d..30b28117cab16a8b21e5731dc2bab49da3bbec8c 100644 (file)
@@ -35,7 +35,7 @@ public class Group {
     @NotNull
     @Column(name = "id")
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     private Long id;
     @Size(max = 255)
     @Column(name = "groupName")
index 2678e326fabe7ededb9f8c9105d80bcfa0a9f492..b6ea114a7b5e5bcea3e8d5501f2af72ab400ca36 100644 (file)
@@ -14,8 +14,6 @@ import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.validation.constraints.NotNull;
 import org.eclipse.persistence.annotations.Cache;
-import org.eclipse.persistence.annotations.CacheIndex;
-import org.eclipse.persistence.annotations.CacheIndexes;
 import org.eclipse.persistence.annotations.Index;
 import org.eclipse.persistence.annotations.Indexes;
 import org.eclipse.persistence.config.CacheIsolationType;
@@ -40,11 +38,6 @@ import org.eclipse.persistence.config.CacheIsolationType;
     @Index(columnNames = "serviceName"),
     @Index(columnNames = "methodIndex")
 })
-@CacheIndexes({
-    @CacheIndex(columnNames = "groupId"),
-    @CacheIndex(columnNames = "serviceName"),
-    @CacheIndex(columnNames = "methodIndex")
-})
 @Cache(size = 100, isolation = CacheIsolationType.SHARED)
 public class GroupPermission implements Serializable {
 
@@ -53,7 +46,7 @@ public class GroupPermission implements Serializable {
     @NotNull
     @Column(name = "id")
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     private Long id;
     @Column(name = "groupId")
     long groupId;
index dc5730ce2232f1bbb2244ef0b0b2ac7962dad7b2..9e6d53f3f3061e715cb7617b434caa3410cdbb8d 100644 (file)
@@ -47,7 +47,7 @@ public class Profile implements Serializable {
     @Basic(optional = false)
     @NotNull
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     @Column(name = "id")
     private Long id;
     @Size(max = 255)
index 247714f2a7549e93bc789efd40e7d3ce184e5cb7..f3c60023e50109715bb4467a0995e7bc49bd29e8 100644 (file)
@@ -42,7 +42,7 @@ public class ProfileAttribute implements Serializable {
     @Basic(optional = false)
     @NotNull
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     @Column(name = "id")
     private Long id;
     @Size(max = 255)
index 2444a684548d2ae46317e00d66219d95c0f86e73..d48f9da5f6db4865b254b2fadd3e48a0708643c0 100644 (file)
@@ -53,7 +53,7 @@ public class Study implements Serializable {
     @NotNull
     @Column(name = "id")
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     private long id;
     @Size(max = 255)
     @Column(name = "name")
index d82d3d017a94ffe037a3ebf5e049b98c54a4e437..68264a25dc2cd14d53f48dc814f6304cc3f41445 100644 (file)
@@ -40,7 +40,7 @@ public class User implements Serializable {
     @NotNull
     @Column(name = "id")
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     private Long id;
     @Size(max = 255)
     @Column(name = "userName")
index ddf78d5f724270614f6f9056b536aecd49effe2c..5ee7d92e398de4746d533c427f54288b5ede186d 100644 (file)
@@ -3,6 +3,7 @@
  */
 package com.edf.gde.entities;
 
+import java.io.Serializable;
 import java.util.Objects;
 import javax.persistence.Basic;
 import javax.persistence.Column;
@@ -16,8 +17,6 @@ import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.validation.constraints.NotNull;
 import org.eclipse.persistence.annotations.Cache;
-import org.eclipse.persistence.annotations.CacheIndex;
-import org.eclipse.persistence.annotations.CacheIndexes;
 import org.eclipse.persistence.annotations.Index;
 import org.eclipse.persistence.annotations.Indexes;
 import org.eclipse.persistence.config.CacheIsolationType;
@@ -28,7 +27,7 @@ import org.eclipse.persistence.config.CacheIsolationType;
  */
 @Entity(name = "UserGroup")
 @Table(name = "USERGROUP")
-@Cache(size = 100, isolation = CacheIsolationType.SHARED)
+
 @NamedQueries({
     @NamedQuery(name = "UserGroup.findById", query = "SELECT ug FROM UserGroup ug where ug.id = :id"),
     @NamedQuery(name = "UserGroup.findByUserId", query = "SELECT ug FROM UserGroup ug where ug.userId=:userId"),
@@ -39,17 +38,15 @@ import org.eclipse.persistence.config.CacheIsolationType;
     @Index(columnNames = "userId"),
     @Index(columnNames = "groupId")
 })
-@CacheIndexes({
-    @CacheIndex(columnNames = {"userId"}),
-    @CacheIndex(columnNames = "groupId")})
-public class UserGroup {
+@Cache(size = 100, isolation = CacheIsolationType.SHARED)
+public class UserGroup implements Serializable {
 
     @Id
     @Basic(optional = false)
     @NotNull
     @Column(name = "id")
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
-    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
+    @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50, initialValue = 1000)
     private Long id;
     @Column(name = "userId")
     long userId;
index 41b2614e3817832fd90f53dcbbb18a146da9f2b9..ed444a15087bc857b47875d4243aa3596d0f4580 100644 (file)
@@ -16,30 +16,31 @@ INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (11, 1,
 INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (12, 1, 'StudyService',2); -- Set study state
 INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (13, 1, 'StudyService',3); -- Read study
 INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (14, 1, 'StudyService',4); -- Delete study
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (15, 1, 'StudyService',5); -- List studies
 /* Profiles services */
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (15, 1, 'ProfilesService',1); -- Create profile
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (16, 1, 'ProfilesService',2); -- Delete profile
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (17, 1, 'ProfilesService',3); -- Read profile
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (18, 1, 'ProfilesService',4); -- Update profile
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (19, 1, 'ProfilesService',5); -- Create profile attribute
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (20, 1, 'ProfilesService',6); -- Delete profile attribute
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (21, 1, 'ProfilesService',7); -- Read profile attribute
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (22, 1, 'ProfilesService',8); -- Update profile attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (16, 1, 'ProfilesService',1); -- Create profile
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (17, 1, 'ProfilesService',2); -- Delete profile
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (18, 1, 'ProfilesService',3); -- Read profile
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (19, 1, 'ProfilesService',4); -- Update profile
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (20, 1, 'ProfilesService',5); -- Create profile attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (21, 1, 'ProfilesService',6); -- Delete profile attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (22, 1, 'ProfilesService',7); -- Read profile attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (23, 1, 'ProfilesService',8); -- Update profile attribute
 /* Attributes services */
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (23, 1, 'AttributesService',1); -- Create attribute
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (24, 1, 'AttributesService',2); -- Delete attribute
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (25, 1, 'AttributesService',3); -- Read attribute
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (26, 1, 'AttributesService',4); -- Create attribute group
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (27, 1, 'AttributesService',5); -- Delete attribute group
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (28, 1, 'AttributesService',6); -- Update attribute group
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (29, 1, 'AttributesService',7); -- Read attribute group
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (24, 1, 'AttributesService',1); -- Create attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (25, 1, 'AttributesService',2); -- Delete attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (26, 1, 'AttributesService',3); -- Read attribute
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (27, 1, 'AttributesService',4); -- Create attribute group
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (28, 1, 'AttributesService',5); -- Delete attribute group
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (29, 1, 'AttributesService',6); -- Update attribute group
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (30, 1, 'AttributesService',7); -- Read attribute group
 /* File services */ 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (30, 1, 'FileService',1); -- 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (31, 1, 'FileService',2); -- 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (32, 1, 'FileService',3); -- 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (33, 1, 'FileService',4); -- 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (34, 1, 'FileService',5); -- 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (35, 1, 'FileService',6); -- 
-INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (36, 1, 'FileService',7); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (31, 1, 'FileService',1); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (32, 1, 'FileService',2); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (33, 1, 'FileService',3); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (34, 1, 'FileService',4); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (35, 1, 'FileService',5); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (36, 1, 'FileService',6); -- 
+INSERT INTO GROUPPERMISSIONS (id,groupid,servicename,methodindex) VALUES (37, 1, 'FileService',7); --