Changeset 226


Ignore:
Timestamp:
03/15/10 18:10:30 (14 years ago)
Author:
oschonef
Message:
  • remove preliminary support for copied metadata

HEADS UP: internal XML format and database layout has changed!

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
Files:
2 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/VirtualCollectionRegistry.java

    r223 r226  
    33import java.security.Principal;
    44import java.util.Collections;
    5 import java.util.HashSet;
    65import java.util.List;
    76import java.util.Map;
     
    1514
    1615import eu.clarin.cmdi.virtualcollectionregistry.model.Handle;
    17 import eu.clarin.cmdi.virtualcollectionregistry.model.Resource;
    18 import eu.clarin.cmdi.virtualcollectionregistry.model.ResourceMetadata;
    1916import eu.clarin.cmdi.virtualcollectionregistry.model.User;
    2017import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
     
    108105                        vc.setOwner(user);
    109106                        vc.setPid(Handle.createPid());
    110                         for (Resource resource : vc.getResources()) {
    111                                 if (resource instanceof ResourceMetadata) {
    112                                         ResourceMetadata md = (ResourceMetadata) resource;
    113                                         md.setPid(Handle.createPid());
    114                                 }
    115                         }
    116107                        em.persist(vc);                 
    117108                        em.getTransaction().commit();
     
    120111                        em.getTransaction().begin();
    121112                        em.persist(new Handle(vc.getPid(), Handle.Type.COLLECTION, vc.getId()));
    122                         for (Resource resource : vc.getResources()) {
    123                                 if (resource instanceof ResourceMetadata) {
    124                                         ResourceMetadata md = (ResourceMetadata) resource;
    125                                         em.persist(new Handle(md.getPid(), Handle.Type.METADATA,
    126                                                                                         md.getId()));
    127                                 }
    128                         }
    129113                        em.getTransaction().commit();
    130114                        return vc.getId();
     
    167151                        c.updateFrom(vc);
    168152                        validator.validate(c);
    169 
    170                         HashSet<String> newPids = new HashSet<String>();
    171                         for (Resource resource : c.getResources()) {
    172                                 if (resource instanceof ResourceMetadata) {
    173                                         ResourceMetadata md = (ResourceMetadata) resource;
    174                                         if (md.getPid() == null) {
    175                                                 String pid = Handle.createPid();
    176                                                 md.setPid(pid);
    177                                                 newPids.add(pid);
    178                                         }
    179                                 }
    180                         }
    181                         em.getTransaction().commit();
    182                         em.getTransaction().begin();
    183                         for (Resource resource : c.getResources()) {
    184                                 if (resource instanceof ResourceMetadata) {
    185                                         ResourceMetadata md = (ResourceMetadata) resource;
    186                                         if (newPids.contains(md.getPid())) {
    187                                                 em.persist(new Handle(md.getPid(),
    188                                                                 Handle.Type.METADATA, md.getId()));
    189                                         }
    190                                 }
    191                         }
    192153                        em.getTransaction().commit();
    193154                        return vc.getId();
     
    260221                                        "error while retrieving virtual collection", e);
    261222                }
    262         }
    263 
    264         public ResourceMetadata retrieveMetadataResource(long id)
    265                         throws VirtualCollectionRegistryException {
    266                 if (id <= 0) {
    267                         throw new IllegalArgumentException("id <= 0");
    268                 }
    269 
    270                 try {
    271                         EntityManager em = datastore.getEntityManager();
    272                         em.getTransaction().begin();
    273                         ResourceMetadata md = em.find(ResourceMetadata.class, new Long(id));
    274                         em.getTransaction().commit();
    275                         if (md == null) {
    276                                 throw new VirtualCollectionMetadataNotFoundException(id);
    277                         }
    278                         return md;
    279                 } catch (VirtualCollectionRegistryException e) {
    280                         throw e;
    281                 } catch (Exception e) {
    282                         logger.log(Level.SEVERE,
    283                                            "error while retrieving metadata resource", e);
    284                         throw new VirtualCollectionRegistryException(
    285                                         "error while retrieving metadata resource", e);
    286                 }
    287                        
    288223        }
    289224
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/model/ClarinVirtualCollection.java

    r146 r226  
    1212import javax.xml.bind.annotation.XmlElementWrapper;
    1313import javax.xml.bind.annotation.XmlElements;
    14 import javax.xml.bind.annotation.XmlIDREF;
    1514import javax.xml.bind.annotation.XmlRootElement;
    1615import javax.xml.bind.annotation.XmlType;
     
    6665                                 propOrder = { "type", "ref" })
    6766                public static class Proxy {
    68                         private ClarinVirtualCollection cvc;
    6967                        private Resource resource;
    7068
     
    7270                        }
    7371
    74                         private Proxy(ClarinVirtualCollection cvc, Resource resource) {
    75                                 this.cvc = cvc;
     72                        private Proxy(Resource resource) {
    7673                                this.resource = resource;
    7774                        }
     
    8986                        @XmlElement(name = "ResourceRef")
    9087                        public String getRef() {
    91                                 if (resource instanceof ResourceMetadata) {
    92                                         return cvc.createHandleURI(
    93                                                         ((ResourceMetadata) resource).getPid()).toString();
    94                                 } else {
    95                                         return ((ResourceProxy) resource).getRef();
    96                                 }
     88                                return resource.getRef();
    9789                        }
    9890                } // inner class Proxy
     
    10496                private Resources(ClarinVirtualCollection cvc) {
    10597                        for (Resource r : cvc.getVirtualCollection().getResources()) {
    106                                 proxies.add(new Proxy(cvc, r));
     98                                proxies.add(new Proxy(r));
    10799                        }
    108100                }
     
    120112                @XmlAccessorType(XmlAccessType.NONE)
    121113                @XmlType(namespace = "urn:x-vcr:clarin-virtualcollection:components:vc",
    122                                 propOrder = { "name", "description", "creationDate", "visibility", "origin", "creator", "copyOfResourceMetadata" })
     114                                propOrder = { "name", "description", "creationDate", "visibility", "origin", "creator" })
    123115                public static class VC {
    124                         @XmlAccessorType(XmlAccessType.NONE)
    125                         public static class CopyOfResources {
    126                                 private List<Resource> copyRefs = new ArrayList<Resource>();
    127 
    128                                 private void init(VirtualCollection vc) {
    129                                         for (Resource resource : vc.getResources()) {
    130                                                 if (resource instanceof ResourceMetadata) {
    131                                                         copyRefs.add(resource);
    132                                                 }
    133                                         }
    134                                 }
    135 
    136                                 @XmlIDREF
    137                                 @XmlAttribute(name = "ref")
    138                                 public List<Resource> getRefs() {
    139                                         return copyRefs;
    140                                 }
    141                                
    142                                 public boolean isEmpty() {
    143                                         return copyRefs.isEmpty();
    144                                 }
    145                         } // inner class CopyOfResources
    146 
    147                         private CopyOfResources copyRefs = new CopyOfResources();
    148116                        private VirtualCollection vc;
    149117
    150118                        private void init(VirtualCollection vc) {
    151119                                this.vc = vc;
    152                                 this.copyRefs.init(vc);
    153120                        }
    154121                       
     
    182149                        public Creator getCreator() {
    183150                                return vc.getCreator();
    184                         }
    185 
    186                        
    187                         @XmlElement(name = "CopyOfResourceMetadata")
    188                         public CopyOfResources getCopyOfResourceMetadata() {
    189                                 return copyRefs.isEmpty() ? null : copyRefs;
    190151                        }
    191152                }
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/model/Resource.java

    r146 r226  
    22
    33import javax.persistence.Column;
    4 import javax.persistence.DiscriminatorColumn;
    5 import javax.persistence.DiscriminatorType;
    64import javax.persistence.Entity;
     5import javax.persistence.EnumType;
     6import javax.persistence.Enumerated;
    77import javax.persistence.GeneratedValue;
    88import javax.persistence.GenerationType;
    99import javax.persistence.Id;
    10 import javax.persistence.Inheritance;
    11 import javax.persistence.InheritanceType;
    1210import javax.persistence.Table;
    1311import javax.xml.bind.annotation.XmlAccessType;
    1412import javax.xml.bind.annotation.XmlAccessorType;
    1513import javax.xml.bind.annotation.XmlAttribute;
     14import javax.xml.bind.annotation.XmlElement;
    1615import javax.xml.bind.annotation.XmlID;
    17 import javax.xml.bind.annotation.XmlSeeAlso;
     16import javax.xml.bind.annotation.XmlType;
     17
     18import org.apache.commons.lang.builder.HashCodeBuilder;
    1819
    1920@Entity
    2021@Table(name = "resource")
    21 @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
    22 @DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING, length=1)
    2322@XmlAccessorType(XmlAccessType.NONE)
    24 @XmlSeeAlso({ ResourceProxy.class, ResourceMetadata.class })
    25 public abstract class Resource {
     23@XmlType(propOrder = { "type", "ref" })
     24public class Resource {
    2625        @Id
    2726        @GeneratedValue(strategy = GenerationType.AUTO)
    2827        @Column(name = "id", nullable = false, updatable = false, insertable = true)
    2928        private long id = -1;
     29        @Column(name = "type", nullable = false)
     30        @Enumerated(EnumType.ORDINAL)
     31        private ResourceType type;
     32        @Column(name = "ref", nullable = false)
     33        private String ref;
    3034
    31         protected Resource() {
     35        private Resource() {
    3236                super();
     37        }
     38
     39        public Resource(ResourceType type, String ref) {
     40                this();
     41                this.setType(type);
     42                this.setRef(ref);
    3343        }
    3444
     
    4252                return "r" + id;
    4353        }
    44        
    45         public abstract ResourceType getType();
    4654
    47         public abstract String getRef();
     55        public void setType(ResourceType type) {
     56                if (type == null) {
     57                        throw new NullPointerException("type == null");
     58                }
     59                this.type = type;
     60        }
    4861
    49         abstract int getSignature();
     62        @XmlElement(name = "ResourceType")
     63        public ResourceType getType() {
     64                return type;
     65        }
    5066
    51 } // abstract class Resource
     67        public void setRef(String ref) {
     68                if (ref == null) {
     69                        throw new NullPointerException("ref == null");
     70                }
     71                this.ref = ref;
     72        }
     73
     74        @XmlElement(name = "ResourceRef")
     75        public String getRef() {
     76                return ref;
     77        }
     78
     79        protected int getSignature() {
     80                return new HashCodeBuilder(799, 51)
     81                        .append(type)
     82                        .append(ref)
     83                        .toHashCode();
     84        }
     85
     86} // class Resource
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/model/VirtualCollection.java

    r220 r226  
    8484        @Column(name = "id")
    8585        @XmlAttribute(name = "id")
    86         private long id;
     86        private long id = -1;
    8787        @ManyToOne(cascade = { CascadeType.PERSIST,
    8888                                                   CascadeType.REFRESH,
     
    126126        @OrderBy("id")
    127127        @XmlElementWrapper(name = "Resources")
    128         @XmlElements({ @XmlElement(name = "ResourceProxy",
    129                                type = ResourceProxy.class),
    130                    @XmlElement(name = "ResourceMetadata",
    131                                        type = ResourceMetadata.class) })
     128        @XmlElements({ @XmlElement(name = "Resource",
     129                               type = Resource.class) })
    132130        private Set<Resource> resources = new LinkedHashSet<Resource>();
    133131        @Column(name = "created", nullable = false, updatable = false)
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/rest/VirtualCollectionRegistryRestService.java

    r218 r226  
    3333import eu.clarin.cmdi.virtualcollectionregistry.model.ClarinVirtualCollection;
    3434import eu.clarin.cmdi.virtualcollectionregistry.model.Handle;
    35 import eu.clarin.cmdi.virtualcollectionregistry.model.ResourceMetadata;
    3635import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    3736import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollectionList;
     
    219218                };
    220219                return Response.ok(writer).build();
    221         }
    222 
    223         @GET
    224         @Path("/clarin-metadata/{id}")
    225         @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_XML })
    226         public Response getClarinMetadata(@PathParam("id") long id)
    227                         throws VirtualCollectionRegistryException {
    228                 System.err.println("Metadata!");
    229                 ResourceMetadata md = registry.retrieveMetadataResource(id);
    230                 return Response.ok(md).build();
    231220        }
    232221
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/resources/META-INF/VirtualCollection.xsd

    r188 r226  
    22<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    33
    4     <xs:element name="VirtualCollection" type="VirtualCollectionType"/>
     4        <xs:element name="VirtualCollection" type="VirtualCollectionType" />
    55
    6     <xs:element name="VirtualCollections" type="VirtualCollectionsType"/>
     6        <xs:element name="VirtualCollections" type="VirtualCollectionsType" />
    77
    8     <xs:complexType name="VirtualCollectionsType">
    9         <xs:sequence maxOccurs="unbounded">
    10             <xs:element ref="VirtualCollection"/>
    11         </xs:sequence>
    12         <xs:attribute name="totalCount" type="xs:integer"/>
    13         <xs:attribute name="offset" type="xs:integer"/>
    14         <xs:attribute name="result">
    15             <xs:simpleType>
    16                 <xs:restriction base="xs:string">
    17                     <xs:enumeration value="full"></xs:enumeration>
    18                     <xs:enumeration value="partial"></xs:enumeration>
    19                 </xs:restriction>
    20             </xs:simpleType>
    21         </xs:attribute>
    22     </xs:complexType>
     8        <xs:complexType name="VirtualCollectionsType">
     9                <xs:sequence maxOccurs="unbounded">
     10                        <xs:element ref="VirtualCollection" />
     11                </xs:sequence>
     12                <xs:attribute name="totalCount" type="xs:integer" />
     13                <xs:attribute name="offset" type="xs:integer" />
     14                <xs:attribute name="result">
     15                        <xs:simpleType>
     16                                <xs:restriction base="xs:string">
     17                                        <xs:enumeration value="full" />
     18                                        <xs:enumeration value="partial" />
     19                                </xs:restriction>
     20                        </xs:simpleType>
     21                </xs:attribute>
     22        </xs:complexType>
    2323
    24     <xs:complexType name="VirtualCollectionType">
    25         <xs:sequence>
    26             <xs:element name="Name" type="xs:string"/>
    27             <xs:element minOccurs="0" name="Description" type="xs:string"/>
    28             <xs:element minOccurs="0" name="CreationDate" type="xs:date"/>
    29             <xs:element minOccurs="0" name="Visibility" type="VisibilityType"/>
    30             <xs:element name="Type" type="TypeType"/>
    31             <xs:element minOccurs="0" name="Origin" type="xs:string"/>
    32             <xs:element minOccurs="0" name="Creator" type="CreatorType"/>
    33             <xs:element name="Resources" type="ResourcesType"/>
    34         </xs:sequence>
    35         <xs:attribute name="id" type="xs:long"/>
    36         <xs:attribute name="persistentId" type="xs:string"/>
    37     </xs:complexType>
     24        <xs:complexType name="VirtualCollectionType">
     25                <xs:sequence>
     26                        <xs:element name="Name" type="xs:string" />
     27                        <xs:element minOccurs="0" name="Description" type="xs:string" />
     28                        <xs:element minOccurs="0" name="CreationDate" type="xs:date" />
     29                        <xs:element minOccurs="0" name="Visibility" type="VisibilityType" />
     30                        <xs:element name="Type" type="TypeType" />
     31                        <xs:element minOccurs="0" name="Origin" type="xs:string" />
     32                        <xs:element minOccurs="0" name="Creator" type="CreatorType" />
     33                        <xs:element name="Resources" type="ResourcesType" />
     34                </xs:sequence>
     35                <xs:attribute name="id" type="xs:long" use="optional" />
     36                <xs:attribute name="persistentId" type="xs:string" use="optional" />
     37        </xs:complexType>
    3838
    3939
    40     <xs:complexType name="ResourcesType">
    41         <xs:sequence maxOccurs="unbounded">
    42             <xs:choice>
    43                 <xs:element name="ResourceProxy" type="ResourceProxyType"/>
    44                 <xs:element name="ResourceMetadata" type="ResourceMetadataType"/>
    45             </xs:choice>
    46         </xs:sequence>
    47     </xs:complexType>
     40        <xs:complexType name="ResourcesType">
     41                <xs:sequence maxOccurs="unbounded">
     42                        <xs:element name="Resource" type="ResourceType" />
     43                </xs:sequence>
     44        </xs:complexType>
    4845
    49     <xs:complexType name="ResourceProxyType">
    50         <xs:sequence>
    51             <xs:element name="ResourceType" type="ResourceTypeType"/>
    52             <xs:element name="ResourceRef" type="ResourceRefType"/>
    53         </xs:sequence>
    54         <xs:attribute name="id" type="xs:ID"/>
    55     </xs:complexType>
     46        <xs:complexType name="ResourceType">
     47                <xs:sequence>
     48                        <xs:element name="ResourceType" type="ResourceTypeType" />
     49                        <xs:element name="ResourceRef" type="ResourceRefType" />
     50                </xs:sequence>
     51                <xs:attribute name="id" type="xs:ID" use="required" />
     52        </xs:complexType>
    5653
    57     <xs:complexType name="ResourceMetadataType">
    58         <xs:sequence>
    59             <xs:element name="Name" type="xs:string"/>
    60             <xs:element name="Description" type="xs:string" minOccurs="0"/>
    61             <xs:element name="Creator" type="CreatorType" minOccurs="0"/>
    62             <xs:element name="ResourceRef" type="ResourceRefType"/>
    63         </xs:sequence>
    64         <xs:attribute name="id" type="xs:ID"/>
    65     </xs:complexType>
     54        <xs:complexType name="CreatorType">
     55                <xs:sequence>
     56                        <xs:element name="Name" type="xs:string" />
     57                        <xs:element minOccurs="0" name="Email" type="xs:string" />
     58                        <xs:element minOccurs="0" name="Organisation" type="xs:string" />
     59                </xs:sequence>
     60                <xs:attribute name="ref" type="xs:IDREF" />
     61        </xs:complexType>
    6662
    67     <xs:complexType name="CreatorType">
    68         <xs:sequence>
    69             <xs:element name="Name" type="xs:string"/>
    70             <xs:element minOccurs="0" name="Email" type="xs:string"/>
    71             <xs:element minOccurs="0" name="Organisation" type="xs:string"/>
    72         </xs:sequence>
    73         <xs:attribute name="ref" type="xs:IDREF"/>
    74     </xs:complexType>
     63        <xs:simpleType name="ResourceTypeType">
     64                <xs:restriction base="xs:string">
     65                        <xs:enumeration value="Metadata" />
     66                        <xs:enumeration value="Resource" />
     67                </xs:restriction>
     68        </xs:simpleType>
    7569
    76     <xs:simpleType name="ResourceTypeType">
    77         <xs:restriction base="xs:string">
    78             <xs:enumeration value="Metadata"/>
    79             <xs:enumeration value="Resource"/>
    80         </xs:restriction>
    81     </xs:simpleType>
     70        <xs:simpleType name="ResourceRefType">
     71                <xs:restriction base="xs:anyURI" />
     72        </xs:simpleType>
    8273
    83     <xs:simpleType name="ResourceRefType">
    84         <xs:restriction base="xs:anyURI"/>
    85     </xs:simpleType>
     74        <xs:simpleType name="VisibilityType">
     75                <xs:restriction base="xs:string">
     76                        <xs:enumeration value="advertised" />
     77                        <xs:enumeration value="non-advertised" />
     78                </xs:restriction>
     79        </xs:simpleType>
    8680
    87     <xs:simpleType name="VisibilityType">
    88         <xs:restriction base="xs:string">
    89             <xs:enumeration value="advertised"/>
    90             <xs:enumeration value="non-advertised"/>
    91         </xs:restriction>
    92     </xs:simpleType>
    93 
    94     <xs:simpleType name="TypeType">
    95         <xs:restriction base="xs:string">
    96             <xs:enumeration value="extensional"/>
    97             <xs:enumeration value="intensional"/>
    98         </xs:restriction>
    99     </xs:simpleType>
     81        <xs:simpleType name="TypeType">
     82                <xs:restriction base="xs:string">
     83                        <xs:enumeration value="extensional" />
     84                        <xs:enumeration value="intensional" />
     85                </xs:restriction>
     86        </xs:simpleType>
    10087
    10188</xs:schema>
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/resources/META-INF/persistence.xml

    r212 r226  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    5   version="2.0">
    6   <persistence-unit name="VirtualCollectionStore"
    7     transaction-type="RESOURCE_LOCAL">
    8     <provider>org.hibernate.ejb.HibernatePersistence</provider>
    9     <jta-data-source>java:comp/env/jdbc/VirtualCollectionStore</jta-data-source>
    10     <class>eu.clarin.cmdi.virtualcollectionregistry.model.User</class>
    11     <class>eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection</class>
    12     <class>eu.clarin.cmdi.virtualcollectionregistry.model.Creator</class>
    13     <class>eu.clarin.cmdi.virtualcollectionregistry.model.Resource</class>
    14     <class>eu.clarin.cmdi.virtualcollectionregistry.model.ResourceProxy</class>
    15     <class>eu.clarin.cmdi.virtualcollectionregistry.model.ResourceMetadata</class>
    16     <class>eu.clarin.cmdi.virtualcollectionregistry.model.Handle</class>
    17     <properties>
    18       <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
    19       <property name="hibernate.max_fetch_depth" value="3" />
    20       <property name="hibernate.hbm2ddl.auto" value="update" />
    21       <property name="hibernate.show_sql" value="false" />
    22       <property name="hibernate.format_sql" value="false"/>
    23     </properties>
    24   </persistence-unit>
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
     5        version="2.0">
     6        <persistence-unit name="VirtualCollectionStore"
     7                transaction-type="RESOURCE_LOCAL">
     8                <provider>org.hibernate.ejb.HibernatePersistence</provider>
     9                <jta-data-source>java:comp/env/jdbc/VirtualCollectionStore</jta-data-source>
     10                <class>eu.clarin.cmdi.virtualcollectionregistry.model.User</class>
     11                <class>eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection</class>
     12                <class>eu.clarin.cmdi.virtualcollectionregistry.model.Creator</class>
     13                <class>eu.clarin.cmdi.virtualcollectionregistry.model.Resource</class>
     14                <class>eu.clarin.cmdi.virtualcollectionregistry.model.Handle</class>
     15                <properties>
     16                        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
     17                        <property name="hibernate.max_fetch_depth" value="3" />
     18                        <property name="hibernate.hbm2ddl.auto" value="update" />
     19                        <property name="hibernate.show_sql" value="false" />
     20                        <property name="hibernate.format_sql" value="false" />
     21                </properties>
     22        </persistence-unit>
    2523</persistence>
Note: See TracChangeset for help on using the changeset viewer.