RelationAttributes (Database Driven Enum) werden jetzt bereits im Loader von ccm-sci-bundle mit Werten gefüllt (Ticket #1733). Außerdem einige technische Änderungen an RelationAttribute.
git-svn-id: https://svn.libreccm.org/ccm/trunk@2251 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
416b3cb01d
commit
1a9c542474
|
|
@ -2,7 +2,7 @@
|
||||||
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
|
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
|
||||||
name="ccm-cms"
|
name="ccm-cms"
|
||||||
prettyName="Red Hat CCM Content Management System"
|
prettyName="Red Hat CCM Content Management System"
|
||||||
version="6.6.8"
|
version="6.6.9"
|
||||||
release="1"
|
release="1"
|
||||||
webapp="ROOT">
|
webapp="ROOT">
|
||||||
<ccm:dependencies>
|
<ccm:dependencies>
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@ model com.arsdigita.cms;
|
||||||
|
|
||||||
import com.arsdigita.kernel.ACSObject;
|
import com.arsdigita.kernel.ACSObject;
|
||||||
|
|
||||||
object type RelationAttribute {
|
object type RelationAttribute extends ACSObject {
|
||||||
|
|
||||||
BigDecimal[1..1] id = cms_relation_attribute.object_id INTEGER;
|
//BigDecimal[1..1] id = cms_relation_attribute.object_id INTEGER;
|
||||||
String[1..1] attribute = cms_relation_attribute.attribute VARCHAR(100);
|
String[1..1] attribute = cms_relation_attribute.attribute VARCHAR(100);
|
||||||
String[1..1] attr_key = cms_relation_attribute.attr_key VARCHAR(100);
|
String[1..1] attr_key = cms_relation_attribute.attr_key VARCHAR(100);
|
||||||
String[1..1] lang = cms_relation_attribute.lang VARCHAR(2);
|
String[1..1] lang = cms_relation_attribute.lang VARCHAR(2);
|
||||||
|
|
@ -31,6 +31,7 @@ object type RelationAttribute {
|
||||||
String[0..1] description = cms_relation_attribute.description VARCHAR(500);
|
String[0..1] description = cms_relation_attribute.description VARCHAR(500);
|
||||||
|
|
||||||
unique (attribute, attr_key, lang);
|
unique (attribute, attr_key, lang);
|
||||||
object key (id);
|
//object key (id);
|
||||||
|
reference key(cms_relation_attribute.object_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,4 +69,8 @@
|
||||||
<!-- Fill the personsstr column -->
|
<!-- Fill the personsstr column -->
|
||||||
<script class="com.arsdigita.cms.upgrade.PersonsStrColumn"/>
|
<script class="com.arsdigita.cms.upgrade.PersonsStrColumn"/>
|
||||||
</version>
|
</version>
|
||||||
|
<version from="6.6.8" to="6.6.9">
|
||||||
|
<!-- Make RelationAttribute SubClass of ACSObject -->
|
||||||
|
<script class="com.arsdigita.cms.upgrade.RelationAttributeACSObject"/>
|
||||||
|
</version>
|
||||||
</upgrade>
|
</upgrade>
|
||||||
|
|
|
||||||
|
|
@ -108,10 +108,9 @@ public class Initializer extends CompoundInitializer {
|
||||||
s_log.debug("CMS.Initializer.(Constructor) invoked");
|
s_log.debug("CMS.Initializer.(Constructor) invoked");
|
||||||
|
|
||||||
add(new PDLInitializer(new ManifestSource("ccm-cms.pdl.mf",
|
add(new PDLInitializer(new ManifestSource("ccm-cms.pdl.mf",
|
||||||
new NameFilter(DbHelper
|
new NameFilter(DbHelper
|
||||||
.getDatabaseSuffix(database),
|
.getDatabaseSuffix(database),
|
||||||
"pdl")))
|
"pdl"))));
|
||||||
);
|
|
||||||
|
|
||||||
add(new com.arsdigita.cms.contentsection.Initializer());
|
add(new com.arsdigita.cms.contentsection.Initializer());
|
||||||
add(new com.arsdigita.cms.publishToFile.Initializer());
|
add(new com.arsdigita.cms.publishToFile.Initializer());
|
||||||
|
|
@ -165,36 +164,36 @@ public class Initializer extends CompoundInitializer {
|
||||||
URLService.registerFinder(
|
URLService.registerFinder(
|
||||||
Link.BASE_DATA_OBJECT_TYPE,
|
Link.BASE_DATA_OBJECT_TYPE,
|
||||||
new URLFinder() {
|
new URLFinder() {
|
||||||
public String find(OID oid, String context)
|
public String find(OID oid, String context)
|
||||||
throws NoValidURLException {
|
throws NoValidURLException {
|
||||||
|
|
||||||
return find(oid);
|
return find(oid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String find(OID oid)
|
||||||
|
throws NoValidURLException {
|
||||||
|
|
||||||
|
Link link;
|
||||||
|
try {
|
||||||
|
link = (Link) DomainObjectFactory.newInstance(oid);
|
||||||
|
} catch (DataObjectNotFoundException ex) {
|
||||||
|
throw new NoValidURLException("Cannot find an object with oid: " + oid);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Link.EXTERNAL_LINK.equals(link.getTargetType())) {
|
||||||
|
return link.getTargetURI();
|
||||||
|
} else {
|
||||||
|
ContentItem target = link.getTargetItem();
|
||||||
|
|
||||||
|
try {
|
||||||
|
return URLService.locate(target.getOID());
|
||||||
|
} catch (URLFinderNotFoundException ex) {
|
||||||
|
throw new UncheckedWrapperException(ex);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String find(OID oid)
|
});
|
||||||
throws NoValidURLException {
|
|
||||||
|
|
||||||
Link link;
|
|
||||||
try {
|
|
||||||
link = (Link) DomainObjectFactory.newInstance(oid);
|
|
||||||
} catch (DataObjectNotFoundException ex) {
|
|
||||||
throw new NoValidURLException("Cannot find an object with oid: " + oid);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Link.EXTERNAL_LINK.equals(link.getTargetType())) {
|
|
||||||
return link.getTargetURI();
|
|
||||||
} else {
|
|
||||||
ContentItem target = link.getTargetItem();
|
|
||||||
|
|
||||||
try {
|
|
||||||
return URLService.locate(target.getOID());
|
|
||||||
} catch (URLFinderNotFoundException ex) {
|
|
||||||
throw new UncheckedWrapperException(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
ImageSizerFactory.initialize();
|
ImageSizerFactory.initialize();
|
||||||
registerInstantiators(e.getFactory());
|
registerInstantiators(e.getFactory());
|
||||||
|
|
@ -210,7 +209,7 @@ public class Initializer extends CompoundInitializer {
|
||||||
final String workspaceURL = CMS.WORKSPACE_PACKAGE_KEY;
|
final String workspaceURL = CMS.WORKSPACE_PACKAGE_KEY;
|
||||||
final String contentCenterMap = s_conf.getContentCenterMap();
|
final String contentCenterMap = s_conf.getContentCenterMap();
|
||||||
ContentCenterSetup workspaceSetup = new ContentCenterSetup(workspaceURL,
|
ContentCenterSetup workspaceSetup = new ContentCenterSetup(workspaceURL,
|
||||||
contentCenterMap);
|
contentCenterMap);
|
||||||
workspaceSetup.run();
|
workspaceSetup.run();
|
||||||
|
|
||||||
// register item adapters
|
// register item adapters
|
||||||
|
|
@ -315,24 +314,33 @@ public class Initializer extends CompoundInitializer {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
f.registerInstantiator(RelationAttribute.BASE_DATA_OBJECT_TYPE,
|
||||||
|
new ACSObjectInstantiator() {
|
||||||
|
@Override
|
||||||
|
public DomainObject doNewInstance(DataObject dataObject) {
|
||||||
|
return new RelationAttribute(dataObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerLuceneEngine() {
|
private void registerLuceneEngine() {
|
||||||
|
|
||||||
QueryEngineRegistry.registerEngine(IndexerType.LUCENE,
|
QueryEngineRegistry.registerEngine(IndexerType.LUCENE,
|
||||||
new FilterType[]{
|
new FilterType[]{
|
||||||
new CategoryFilterType(),
|
new CategoryFilterType(),
|
||||||
new ContentSectionFilterType(),
|
new ContentSectionFilterType(),
|
||||||
new CMSContentSectionFilterType(),
|
new CMSContentSectionFilterType(),
|
||||||
new ContentTypeFilterType(),
|
new ContentTypeFilterType(),
|
||||||
new CreationDateFilterType(),
|
new CreationDateFilterType(),
|
||||||
new CreationUserFilterType(),
|
new CreationUserFilterType(),
|
||||||
new LastModifiedDateFilterType(),
|
new LastModifiedDateFilterType(),
|
||||||
new LastModifiedUserFilterType(),
|
new LastModifiedUserFilterType(),
|
||||||
new ObjectTypeFilterType(),
|
new ObjectTypeFilterType(),
|
||||||
new PermissionFilterType(),
|
new PermissionFilterType(),
|
||||||
new VersionFilterType()
|
new VersionFilterType()
|
||||||
},
|
},
|
||||||
new LuceneQueryEngine());
|
new LuceneQueryEngine());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -340,19 +348,19 @@ public class Initializer extends CompoundInitializer {
|
||||||
|
|
||||||
QueryEngineRegistry.registerEngine(IndexerType.INTERMEDIA,
|
QueryEngineRegistry.registerEngine(IndexerType.INTERMEDIA,
|
||||||
new FilterType[]{
|
new FilterType[]{
|
||||||
new CategoryFilterType(),
|
new CategoryFilterType(),
|
||||||
new ContentSectionFilterType(),
|
new ContentSectionFilterType(),
|
||||||
new CMSContentSectionFilterType(),
|
new CMSContentSectionFilterType(),
|
||||||
new ContentTypeFilterType(),
|
new ContentTypeFilterType(),
|
||||||
new CreationDateFilterType(),
|
new CreationDateFilterType(),
|
||||||
new CreationUserFilterType(),
|
new CreationUserFilterType(),
|
||||||
new LastModifiedDateFilterType(),
|
new LastModifiedDateFilterType(),
|
||||||
new LastModifiedUserFilterType(),
|
new LastModifiedUserFilterType(),
|
||||||
new LaunchDateFilterType(),
|
new LaunchDateFilterType(),
|
||||||
new ObjectTypeFilterType(),
|
new ObjectTypeFilterType(),
|
||||||
new PermissionFilterType(),
|
new PermissionFilterType(),
|
||||||
new VersionFilterType()
|
new VersionFilterType()
|
||||||
},
|
},
|
||||||
new IntermediaQueryEngine());
|
new IntermediaQueryEngine());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
package com.arsdigita.cms;
|
package com.arsdigita.cms;
|
||||||
|
|
||||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||||
import com.arsdigita.domain.DomainObject;
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.persistence.DataObject;
|
import com.arsdigita.persistence.DataObject;
|
||||||
import com.arsdigita.persistence.OID;
|
import com.arsdigita.persistence.OID;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -24,7 +24,7 @@ import java.math.BigDecimal;
|
||||||
*
|
*
|
||||||
* @author quasi
|
* @author quasi
|
||||||
*/
|
*/
|
||||||
public class RelationAttribute extends DomainObject {
|
public class RelationAttribute extends ACSObject { //extends DomainObject {
|
||||||
|
|
||||||
public static final String ID = "id";
|
public static final String ID = "id";
|
||||||
public static final String ATTRIBUTE = "attribute";
|
public static final String ATTRIBUTE = "attribute";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,188 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Jens Pelzetter
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package com.arsdigita.cms;
|
||||||
|
|
||||||
|
import com.arsdigita.xml.XML;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.xml.sax.Attributes;
|
||||||
|
import org.xml.sax.helpers.DefaultHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a helper tool for loading data for the RelationAttributes (Database Driven Enums)
|
||||||
|
* into the database in a loader of a module. This helper class uses a XML format for loading
|
||||||
|
* the enum data, which looks like this:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <ddenums>
|
||||||
|
* <ddenum name="...">
|
||||||
|
* <entry key="..." lang="..." id="...">
|
||||||
|
* <value>...</value>
|
||||||
|
* <description>...</description>
|
||||||
|
* <entry>
|
||||||
|
* </ddenum>
|
||||||
|
* </ddenums>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* The root element is {@code <ddenums>} which can appear only once per file. The {@code <ddenums} can have multiple
|
||||||
|
* {@code <ddenum>} elements as child elements. The {@code <ddenum> element has one attribute, {@code name} which contains
|
||||||
|
* the name of the enumeration. Each {@code <ddenum>} may have multiple {@code<entry>} child elements. The
|
||||||
|
* {@code <entry>} element has three attributes.
|
||||||
|
*
|
||||||
|
* <dl>
|
||||||
|
* <dt>{@code key}</dt><dd>The key of the entry. This attribute is mandatory.</dd>
|
||||||
|
* <dt>{@code lang}</dt><dd>The language of the entry. This attribute is mandatory. The combination of {@code key}
|
||||||
|
* and {@code lang} should be unique.</dd>
|
||||||
|
* <dt>{@code id}</dt><dd>This attribute is optional and contains the database id of the entry if necessary. The
|
||||||
|
* value is maybe ignored by this import tool.</dd>
|
||||||
|
* </dl>
|
||||||
|
*
|
||||||
|
* Each entry has at least a {@code <value>} element as child. The {@code <value>} element contains the value of the
|
||||||
|
* enum entry. Optionally there can also be can descriptions element containing a description of the entry.
|
||||||
|
*
|
||||||
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class RelationAttributeImportTool {
|
||||||
|
|
||||||
|
private final static Logger LOGGER = Logger.getLogger(RelationAttributeImportTool.class);
|
||||||
|
|
||||||
|
public void loadData(final String fileName) {
|
||||||
|
|
||||||
|
XML.parseResource(fileName, new RelationAttributeXmlHandler());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Suppressing this warnings because they are false positives here.
|
||||||
|
@SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.AvoidStringBufferField"})
|
||||||
|
private class RelationAttributeXmlHandler extends DefaultHandler {
|
||||||
|
|
||||||
|
private String currentEnum;
|
||||||
|
private String currentKey;
|
||||||
|
private String currentLang;
|
||||||
|
private String currentId;
|
||||||
|
private String currentValue;
|
||||||
|
private String currentDesc;
|
||||||
|
private StringBuffer charBuffer;
|
||||||
|
|
||||||
|
public RelationAttributeXmlHandler() {
|
||||||
|
super();
|
||||||
|
//Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startElement(final String uri,
|
||||||
|
final String localName,
|
||||||
|
final String qName,
|
||||||
|
final Attributes attributes) {
|
||||||
|
if ("ddenum".equals(qName)) {
|
||||||
|
currentEnum = attributes.getValue("name");
|
||||||
|
} else if ("entry".equals(qName)) {
|
||||||
|
currentKey = attributes.getValue("key");
|
||||||
|
currentLang = attributes.getValue("lang");
|
||||||
|
currentId = attributes.getValue("id");
|
||||||
|
} else if ("value".equals(qName)) {
|
||||||
|
//Create new StringBuffer of creating a string from the content of the element
|
||||||
|
charBuffer = new StringBuffer();
|
||||||
|
} else if ("description".equals(qName)) {
|
||||||
|
//Create new StringBuffer of creating a string from the content of the element
|
||||||
|
charBuffer = new StringBuffer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endElement(final String uri,
|
||||||
|
final String localName,
|
||||||
|
final String qName) {
|
||||||
|
if ("ddenum".equals(qName)) {
|
||||||
|
currentEnum = "";
|
||||||
|
} else if ("entry".equals(qName)) {
|
||||||
|
createEntry();
|
||||||
|
currentKey = "";
|
||||||
|
currentLang = "";
|
||||||
|
currentId = "";
|
||||||
|
currentValue = "";
|
||||||
|
currentDesc = "";
|
||||||
|
} else if ("value".equals(qName)) {
|
||||||
|
//Copy the value of the StringBuffer charBuffer to currentValue
|
||||||
|
currentValue = charBuffer.toString().trim();
|
||||||
|
charBuffer = new StringBuffer();
|
||||||
|
} else if ("description".equals(qName)) {
|
||||||
|
//Copy the value of the StringBuffer charBuffer to currentValue
|
||||||
|
currentDesc = charBuffer.toString().trim();
|
||||||
|
charBuffer = new StringBuffer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void characters(final char[] chars, final int start, final int length) {
|
||||||
|
if (charBuffer != null) {
|
||||||
|
for(int i = start; i < start + length; i++) {
|
||||||
|
charBuffer.append(chars[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Supressing this warning since there is no better way yet.
|
||||||
|
@SuppressWarnings("PMD.NPathComplexity")
|
||||||
|
private void createEntry() {
|
||||||
|
if ((currentEnum == null) || currentEnum.isEmpty()) {
|
||||||
|
LOGGER.warn(String.format(
|
||||||
|
"Value for current enum is empty. Ignorning entry with key '%s' and lang '%s'.",
|
||||||
|
currentKey,
|
||||||
|
currentLang));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((currentKey == null) || currentKey.isEmpty()) {
|
||||||
|
LOGGER.warn("No key. Ignorning entry");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((currentLang == null) || currentLang.isEmpty()) {
|
||||||
|
LOGGER.warn(String.format("No lang for entry with key '%s'. Ignoring entry",
|
||||||
|
currentKey));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.warn("Creating RelationAttribute entry with this values:");
|
||||||
|
LOGGER.warn(String.format("\tcurrentEnum = '%s'", currentEnum));
|
||||||
|
LOGGER.warn(String.format("\tcurrentKey = '%s'", currentKey));
|
||||||
|
LOGGER.warn(String.format("\tcurrentLang = '%s'", currentLang));
|
||||||
|
LOGGER.warn(String.format("\tcurrentValue = '%s'", currentValue));
|
||||||
|
|
||||||
|
final RelationAttribute entry = new RelationAttribute();
|
||||||
|
if ((currentId != null) && !currentId.isEmpty()) {
|
||||||
|
entry.setID(new BigDecimal(currentId));
|
||||||
|
}
|
||||||
|
|
||||||
|
entry.setAttribute(currentEnum);
|
||||||
|
entry.setKey(currentKey);
|
||||||
|
entry.setLanguage(currentLang);
|
||||||
|
entry.setName(currentValue);
|
||||||
|
|
||||||
|
if ((currentDesc != null) && !currentValue.isEmpty()) {
|
||||||
|
entry.setDescription(currentDesc);
|
||||||
|
}
|
||||||
|
|
||||||
|
entry.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -16,6 +16,8 @@ import com.arsdigita.util.cmd.Program;
|
||||||
import org.apache.commons.cli.CommandLine;
|
import org.apache.commons.cli.CommandLine;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Adds a column {@code personsStr} to GenericOrganizationalUnit, including values. This column contains the names
|
||||||
|
* of all members of an organizational unit as one string. See {@link GenericOrganizationalUnit} for more details.
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
package com.arsdigita.cms.upgrade;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.RelationAttribute;
|
||||||
|
import com.arsdigita.kernel.KernelExcursion;
|
||||||
|
import com.arsdigita.runtime.RuntimeConfig;
|
||||||
|
import com.arsdigita.util.cmd.Program;
|
||||||
|
import com.arsdigita.util.jdbc.Connections;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.commons.cli.CommandLine;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class RelationAttributeACSObject extends Program {
|
||||||
|
|
||||||
|
public RelationAttributeACSObject() {
|
||||||
|
super("RelationAttributeACSObejct", "1.0.0", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final void main(final String[] args) {
|
||||||
|
new RelationAttributeACSObject().run(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doRun(final CommandLine cmdLine) {
|
||||||
|
new KernelExcursion() {
|
||||||
|
@Override
|
||||||
|
protected void excurse() {
|
||||||
|
|
||||||
|
final Connection connection = Connections.acquire(RuntimeConfig.getConfig().getJDBCURL());
|
||||||
|
try {
|
||||||
|
connection.setAutoCommit(false);
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.err.println("Failed to configure JDBC connection.");
|
||||||
|
printStackTrace(ex);
|
||||||
|
close(connection);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final List<RelationAttributeEntry> entries = new ArrayList<RelationAttributeEntry>();
|
||||||
|
try {
|
||||||
|
final Statement stmt = connection.createStatement();
|
||||||
|
|
||||||
|
final ResultSet result = stmt.executeQuery(
|
||||||
|
"SELECT attribute, attr_key, lang, name, description FROM cms_relation_attribute;");
|
||||||
|
|
||||||
|
while (result.next()) {
|
||||||
|
final RelationAttributeEntry entry = new RelationAttributeEntry();
|
||||||
|
entry.setAttribute(result.getString("attribute"));
|
||||||
|
entry.setKey(result.getString("attr_key"));
|
||||||
|
entry.setLanguage(result.getString("lang"));
|
||||||
|
entry.setName(result.getString("name"));
|
||||||
|
entry.setDescription(result.getString("description"));
|
||||||
|
entries.add(entry);
|
||||||
|
}
|
||||||
|
System.out.printf("Found %d RelationAttributes entries.\n", entries.size());
|
||||||
|
|
||||||
|
stmt.addBatch("DROP TABLE 'cms_relation_attribute';");
|
||||||
|
stmt.addBatch("CREATE TABLE cms_relation_attribute object_id integer NOT NULL,"
|
||||||
|
+ "attribute character varying(100) NOT NULL,"
|
||||||
|
+ "attr_key character varying(100) NOT NULL,"
|
||||||
|
+ "lang character varying(2) NOT NULL,"
|
||||||
|
+ "name character varying(100) NOT NULL,"
|
||||||
|
+ "description character varying(500)");
|
||||||
|
stmt.addBatch("ALTER TABLE public.cms_relation_attribute OWNER TO ccm;");
|
||||||
|
stmt.addBatch("ALTER TABLE ONLY cms_relation_attribute "
|
||||||
|
+ "ADD CONSTRAINT cms_rela_attrib_obj_id_f_23qc3 FOREIGN KEY (object_id) REFERENCES acs_objects(object_id);");
|
||||||
|
|
||||||
|
stmt.executeBatch();
|
||||||
|
|
||||||
|
close(connection);
|
||||||
|
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.err.printf("SQL Error");
|
||||||
|
rollback(connection);
|
||||||
|
close(connection);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (RelationAttributeEntry entry : entries) {
|
||||||
|
createRelationAttribute(entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createRelationAttribute(final RelationAttributeEntry entry) {
|
||||||
|
final RelationAttribute attribute = new RelationAttribute();
|
||||||
|
attribute.setAttribute(entry.getAttribute());
|
||||||
|
attribute.setKey(entry.getKey());
|
||||||
|
attribute.setLanguage(entry.getLanguage());
|
||||||
|
attribute.setName(entry.getName());
|
||||||
|
attribute.setDescription(entry.getDescription());
|
||||||
|
attribute.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
private void rollback(final Connection conn) {
|
||||||
|
try {
|
||||||
|
System.err.println("WARNING: Rollback.");
|
||||||
|
conn.rollback();
|
||||||
|
} catch (SQLException ex1) {
|
||||||
|
System.err.println("Rollback failed.");
|
||||||
|
ex1.printStackTrace(System.err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void close(final Connection conn) {
|
||||||
|
try {
|
||||||
|
conn.close();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.err.println("Failed to close JDBC connection.");
|
||||||
|
printStackTrace(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printStackTrace(final SQLException ex) {
|
||||||
|
ex.printStackTrace(System.err);
|
||||||
|
if (ex.getNextException() != null) {
|
||||||
|
printStackTrace(ex.getNextException());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RelationAttributeEntry {
|
||||||
|
|
||||||
|
private String attribute;
|
||||||
|
private String key;
|
||||||
|
private String language;
|
||||||
|
private String name;
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
public RelationAttributeEntry() {
|
||||||
|
//Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttribute() {
|
||||||
|
return attribute;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttribute(final String attribute) {
|
||||||
|
this.attribute = attribute;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(final String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLanguage() {
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLanguage(final String language) {
|
||||||
|
this.language = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(final String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ddenums>
|
||||||
|
<ddenum name="GenericContactTypes">
|
||||||
|
<entry key="commonContact" lang="de">
|
||||||
|
<value>Kontakt</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="commonContact" lang="en">
|
||||||
|
<value>Contact</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="en">
|
||||||
|
<value>Speaker</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="de">
|
||||||
|
<value>Sprecher</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericContactEntryKeys">
|
||||||
|
<entry key="phoneOffice" lang="en">
|
||||||
|
<value>Phone (office)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneOffice" lang="de">
|
||||||
|
<value>Telefon (Büro)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="en">
|
||||||
|
<value>Phone (home)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="de">
|
||||||
|
<value>Telefon (Privat)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="en">
|
||||||
|
<value>Phone (mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="de">
|
||||||
|
<value>Telefon (Mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="en">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="de">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="en">
|
||||||
|
<value>Email</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="de">
|
||||||
|
<value>E-Mail</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Room</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Raum</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="en">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="de">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="en">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="de">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="en">
|
||||||
|
<value>Visiting Hours</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="de">
|
||||||
|
<value>Sprechzeiten</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Chief executive officer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitMemberStatus">
|
||||||
|
<entry key="active" lang="en">
|
||||||
|
<value>Active</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="active" lang="de">
|
||||||
|
<value>Aktiv</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="en">
|
||||||
|
<value>Associated</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="de">
|
||||||
|
<value>Assoziiert</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="en">
|
||||||
|
<value>Former</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="de">
|
||||||
|
<value>Ehemalig</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciInstituteRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Managing director</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="en">
|
||||||
|
<value>Administration</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="de">
|
||||||
|
<value>Verwaltung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="en">
|
||||||
|
<value>Guest</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="de">
|
||||||
|
<value>Gast</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciDepartmentRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Department head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Abteilungsleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciProjectRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Project head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Projektleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
</ddenums>
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ddenums>
|
||||||
|
<ddenum name="GenericContactTypes">
|
||||||
|
<entry key="commonContact" lang="de">
|
||||||
|
<value>Kontakt</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="commonContact" lang="en">
|
||||||
|
<value>Contact</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="en">
|
||||||
|
<value>Speaker</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="de">
|
||||||
|
<value>Sprecher</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericContactEntryKeys">
|
||||||
|
<entry key="phoneOffice" lang="en">
|
||||||
|
<value>Phone (office)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneOffice" lang="de">
|
||||||
|
<value>Telefon (Büro)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="en">
|
||||||
|
<value>Phone (home)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="de">
|
||||||
|
<value>Telefon (Privat)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="en">
|
||||||
|
<value>Phone (mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="de">
|
||||||
|
<value>Telefon (Mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="en">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="de">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="en">
|
||||||
|
<value>Email</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="de">
|
||||||
|
<value>E-Mail</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Room</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Raum</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="en">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="de">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="en">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="de">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="en">
|
||||||
|
<value>Visiting Hours</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="de">
|
||||||
|
<value>Sprechzeiten</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Chief executive officer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitMemberStatus">
|
||||||
|
<entry key="active" lang="en">
|
||||||
|
<value>Active</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="active" lang="de">
|
||||||
|
<value>Aktiv</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="en">
|
||||||
|
<value>Associated</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="de">
|
||||||
|
<value>Assoziiert</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="en">
|
||||||
|
<value>Former</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="de">
|
||||||
|
<value>Ehemalig</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciInstituteRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Managing director</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="en">
|
||||||
|
<value>Administration</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="de">
|
||||||
|
<value>Verwaltung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="en">
|
||||||
|
<value>Guest</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="de">
|
||||||
|
<value>Gast</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciDepartmentRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Department head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Abteilungsleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciProjectRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Project head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Projektleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
</ddenums>
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ddenums>
|
||||||
|
<ddenum name="GenericContactTypes">
|
||||||
|
<entry key="commonContact" lang="de">
|
||||||
|
<value>Kontakt</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="commonContact" lang="en">
|
||||||
|
<value>Contact</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="en">
|
||||||
|
<value>Speaker</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="de">
|
||||||
|
<value>Sprecher</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericContactEntryKeys">
|
||||||
|
<entry key="phoneOffice" lang="en">
|
||||||
|
<value>Phone (office)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneOffice" lang="de">
|
||||||
|
<value>Telefon (Büro)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="en">
|
||||||
|
<value>Phone (home)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="de">
|
||||||
|
<value>Telefon (Privat)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="en">
|
||||||
|
<value>Phone (mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="de">
|
||||||
|
<value>Telefon (Mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="en">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="de">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="en">
|
||||||
|
<value>Email</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="de">
|
||||||
|
<value>E-Mail</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Room</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Raum</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="en">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="de">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="en">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="de">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="en">
|
||||||
|
<value>Visiting Hours</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="de">
|
||||||
|
<value>Sprechzeiten</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Chief executive officer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitMemberStatus">
|
||||||
|
<entry key="active" lang="en">
|
||||||
|
<value>Active</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="active" lang="de">
|
||||||
|
<value>Aktiv</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="en">
|
||||||
|
<value>Associated</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="de">
|
||||||
|
<value>Assoziiert</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="en">
|
||||||
|
<value>Former</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="de">
|
||||||
|
<value>Ehemalig</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciInstituteRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Managing director</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="en">
|
||||||
|
<value>Administration</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="de">
|
||||||
|
<value>Verwaltung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="en">
|
||||||
|
<value>Guest</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="de">
|
||||||
|
<value>Gast</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciDepartmentRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Department head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Abteilungsleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciProjectRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Project head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Projektleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
</ddenums>
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ddenums>
|
||||||
|
<ddenum name="GenericContactTypes">
|
||||||
|
<entry key="commonContact" lang="de">
|
||||||
|
<value>Kontakt</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="commonContact" lang="en">
|
||||||
|
<value>Contact</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="en">
|
||||||
|
<value>Speaker</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="de">
|
||||||
|
<value>Sprecher</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericContactEntryKeys">
|
||||||
|
<entry key="phoneOffice" lang="en">
|
||||||
|
<value>Phone (office)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneOffice" lang="de">
|
||||||
|
<value>Telefon (Büro)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="en">
|
||||||
|
<value>Phone (home)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="de">
|
||||||
|
<value>Telefon (Privat)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="en">
|
||||||
|
<value>Phone (mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="de">
|
||||||
|
<value>Telefon (Mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="en">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="de">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="en">
|
||||||
|
<value>Email</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="de">
|
||||||
|
<value>E-Mail</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Room</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Raum</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="en">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="de">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="en">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="de">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="en">
|
||||||
|
<value>Visiting Hours</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="de">
|
||||||
|
<value>Sprechzeiten</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Chief executive officer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitMemberStatus">
|
||||||
|
<entry key="active" lang="en">
|
||||||
|
<value>Active</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="active" lang="de">
|
||||||
|
<value>Aktiv</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="en">
|
||||||
|
<value>Associated</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="de">
|
||||||
|
<value>Assoziiert</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="en">
|
||||||
|
<value>Former</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="de">
|
||||||
|
<value>Ehemalig</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciInstituteRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Managing director</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="en">
|
||||||
|
<value>Administration</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="de">
|
||||||
|
<value>Verwaltung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="en">
|
||||||
|
<value>Guest</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="de">
|
||||||
|
<value>Gast</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciDepartmentRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Department head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Abteilungsleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciProjectRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Project head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Projektleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
</ddenums>
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ddenums>
|
||||||
|
<ddenum name="GenericContactTypes">
|
||||||
|
<entry key="commonContact" lang="de">
|
||||||
|
<value>Kontakt</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="commonContact" lang="en">
|
||||||
|
<value>Contact</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="en">
|
||||||
|
<value>Speaker</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="speaker" lang="de">
|
||||||
|
<value>Sprecher</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericContactEntryKeys">
|
||||||
|
<entry key="phoneOffice" lang="en">
|
||||||
|
<value>Phone (office)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneOffice" lang="de">
|
||||||
|
<value>Telefon (Büro)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="en">
|
||||||
|
<value>Phone (home)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phonePrivate" lang="de">
|
||||||
|
<value>Telefon (Privat)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="en">
|
||||||
|
<value>Phone (mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="phoneMobile" lang="de">
|
||||||
|
<value>Telefon (Mobil)</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="en">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fax" lang="de">
|
||||||
|
<value>Fax</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="en">
|
||||||
|
<value>Email</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="email" lang="de">
|
||||||
|
<value>E-Mail</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="en">
|
||||||
|
<value>Room</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="office" lang="de">
|
||||||
|
<value>Raum</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="en">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="homepage" lang="de">
|
||||||
|
<value>Homepage</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="en">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="im" lang="de">
|
||||||
|
<value>Instant Messanger</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="en">
|
||||||
|
<value>Visiting Hours</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="visitingHours" lang="de">
|
||||||
|
<value>Sprechzeiten</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Chief executive officer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="GenericOrganizationalUnitMemberStatus">
|
||||||
|
<entry key="active" lang="en">
|
||||||
|
<value>Active</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="active" lang="de">
|
||||||
|
<value>Aktiv</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="en">
|
||||||
|
<value>Associated</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="associated" lang="de">
|
||||||
|
<value>Assoziiert</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="en">
|
||||||
|
<value>Former</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="former" lang="de">
|
||||||
|
<value>Ehemalig</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciInstituteRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Managing director</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Geschäftsführer</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="en">
|
||||||
|
<value>Administration</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="administration" lang="de">
|
||||||
|
<value>Verwaltung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="en">
|
||||||
|
<value>Guest</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="guest" lang="de">
|
||||||
|
<value>Gast</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciDepartmentRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Department head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Abteilungsleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="en">
|
||||||
|
<value>Office</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="secretariat" lang="de">
|
||||||
|
<value>Sekretariat</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
<ddenum name="SciProjectRole">
|
||||||
|
<entry key="head" lang="en">
|
||||||
|
<value>Project head</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="head" lang="de">
|
||||||
|
<value>Projektleitung</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="en">
|
||||||
|
<value>Member</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="member" lang="de">
|
||||||
|
<value>Mitglied</value>
|
||||||
|
</entry>
|
||||||
|
</ddenum>
|
||||||
|
</ddenums>
|
||||||
|
|
@ -19,6 +19,8 @@
|
||||||
package com.arsdigita.bundle;
|
package com.arsdigita.bundle;
|
||||||
|
|
||||||
import com.arsdigita.categorization.Categorization;
|
import com.arsdigita.categorization.Categorization;
|
||||||
|
import com.arsdigita.cms.RelationAttribute;
|
||||||
|
import com.arsdigita.cms.RelationAttributeCollection;
|
||||||
import com.arsdigita.runtime.CompoundInitializer;
|
import com.arsdigita.runtime.CompoundInitializer;
|
||||||
import com.arsdigita.runtime.DomainInitEvent;
|
import com.arsdigita.runtime.DomainInitEvent;
|
||||||
import com.arsdigita.templating.PatternStylesheetResolver;
|
import com.arsdigita.templating.PatternStylesheetResolver;
|
||||||
|
|
@ -60,5 +62,6 @@ public class Initializer extends CompoundInitializer {
|
||||||
// "webapp",
|
// "webapp",
|
||||||
// new WebAppPatternGenerator()
|
// new WebAppPatternGenerator()
|
||||||
// );
|
// );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,13 +15,12 @@
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.arsdigita.bundle;
|
package com.arsdigita.bundle;
|
||||||
|
|
||||||
|
|
||||||
import com.arsdigita.categorization.Category;
|
import com.arsdigita.categorization.Category;
|
||||||
import com.arsdigita.categorization.RootCategoryCollection;
|
import com.arsdigita.categorization.RootCategoryCollection;
|
||||||
import com.arsdigita.cms.ContentSection;
|
import com.arsdigita.cms.ContentSection;
|
||||||
|
import com.arsdigita.cms.RelationAttributeImportTool;
|
||||||
import com.arsdigita.cms.SecurityManager;
|
import com.arsdigita.cms.SecurityManager;
|
||||||
import com.arsdigita.cms.ui.role.RoleFactory;
|
import com.arsdigita.cms.ui.role.RoleFactory;
|
||||||
import com.arsdigita.kernel.Role;
|
import com.arsdigita.kernel.Role;
|
||||||
|
|
@ -62,8 +61,6 @@ public class Loader extends PackageLoader {
|
||||||
|
|
||||||
/** Logger instance for debugging */
|
/** Logger instance for debugging */
|
||||||
private static final Logger s_log = Logger.getLogger(Loader.class);
|
private static final Logger s_log = Logger.getLogger(Loader.class);
|
||||||
|
|
||||||
|
|
||||||
// /////////////////////////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////////////////////////
|
||||||
// Parameter Section
|
// Parameter Section
|
||||||
// /////////////////////////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
@ -82,10 +79,8 @@ public class Loader extends PackageLoader {
|
||||||
* "com.arsdigita.navigation.Navigation:local:Local Navigation"
|
* "com.arsdigita.navigation.Navigation:local:Local Navigation"
|
||||||
*/
|
*/
|
||||||
private Parameter m_customApplicationInstances = new StringArrayParameter(
|
private Parameter m_customApplicationInstances = new StringArrayParameter(
|
||||||
"com.arsdigita.bundle.loader.custom_app_instances",
|
"com.arsdigita.bundle.loader.custom_app_instances",
|
||||||
Parameter.OPTIONAL, null
|
Parameter.OPTIONAL, null);
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Comma separated list of fully qualified filenames, each file containing
|
* Comma separated list of fully qualified filenames, each file containing
|
||||||
* a set of Terms domain catagories definitions. These form an initial set
|
* a set of Terms domain catagories definitions. These form an initial set
|
||||||
|
|
@ -94,12 +89,10 @@ public class Loader extends PackageLoader {
|
||||||
* Files are stored as part of the jar, so classloader can find them.
|
* Files are stored as part of the jar, so classloader can find them.
|
||||||
*/
|
*/
|
||||||
private Parameter m_categoryFiles = new StringArrayParameter(
|
private Parameter m_categoryFiles = new StringArrayParameter(
|
||||||
"com.arsdigita.bundle.loader.category_files",
|
"com.arsdigita.bundle.loader.category_files",
|
||||||
Parameter.REQUIRED,new String[]{
|
Parameter.REQUIRED, new String[]{
|
||||||
"bundle/categories/sci-nav-domain-1.00.xml",
|
"bundle/categories/sci-nav-domain-1.00.xml",
|
||||||
"bundle/categories/sci-nav-hierarchy-1.00.xml" }
|
"bundle/categories/sci-nav-hierarchy-1.00.xml"});
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of comma separated sets of domain mappings.
|
* List of comma separated sets of domain mappings.
|
||||||
* It's the developers / administrators responsibility to ensure all
|
* It's the developers / administrators responsibility to ensure all
|
||||||
|
|
@ -117,16 +110,21 @@ public class Loader extends PackageLoader {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private Parameter m_domainMappings = new StringArrayParameter(
|
private Parameter m_domainMappings = new StringArrayParameter(
|
||||||
"com.arsdigita.bundle.loader.domain_mappings",
|
"com.arsdigita.bundle.loader.domain_mappings",
|
||||||
Parameter.REQUIRED,new String[]{ "STD-NAV:/navigation/",
|
Parameter.REQUIRED, new String[]{"STD-NAV:/navigation/",
|
||||||
"STD-NAV:/main/",
|
"STD-NAV:/main/",
|
||||||
"STD-NAV:/portal/" }
|
"STD-NAV:/portal/"});
|
||||||
);
|
|
||||||
|
/**
|
||||||
|
* Database Drive Enum data to load.
|
||||||
|
*/
|
||||||
|
private Parameter m_ddenums = new StringArrayParameter("com.arsdigita.bundle.loader.ddenums",
|
||||||
|
Parameter.REQUIRED,
|
||||||
|
new String[]{"bundle/ddenums.xml"});
|
||||||
|
|
||||||
// /////////////////////////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////////////////////////
|
||||||
// Parameter Section END
|
// Parameter Section END
|
||||||
// /////////////////////////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor, just registers parameters.
|
* Constructor, just registers parameters.
|
||||||
*/
|
*/
|
||||||
|
|
@ -137,10 +135,10 @@ public class Loader extends PackageLoader {
|
||||||
register(m_customApplicationInstances);
|
register(m_customApplicationInstances);
|
||||||
register(m_categoryFiles);
|
register(m_categoryFiles);
|
||||||
register(m_domainMappings);
|
register(m_domainMappings);
|
||||||
|
register(m_ddenums);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void run(final ScriptContext ctx) {
|
public void run(final ScriptContext ctx) {
|
||||||
|
|
||||||
/* Create site specific custom applications instances of arbitrary
|
/* Create site specific custom applications instances of arbitrary
|
||||||
|
|
@ -149,25 +147,25 @@ public class Loader extends PackageLoader {
|
||||||
* navigation tree(s) or additional content sections.
|
* navigation tree(s) or additional content sections.
|
||||||
*/
|
*/
|
||||||
String[] customApplicationInstances = (String[]) get(m_customApplicationInstances);
|
String[] customApplicationInstances = (String[]) get(m_customApplicationInstances);
|
||||||
if ( customApplicationInstances != null) {
|
if (customApplicationInstances != null) {
|
||||||
|
|
||||||
for (int i = 0 ; i < customApplicationInstances.length ; i++) {
|
for (int i = 0; i < customApplicationInstances.length; i++) {
|
||||||
|
|
||||||
final String aCustomApplicationInstance = customApplicationInstances[i];
|
final String aCustomApplicationInstance = customApplicationInstances[i];
|
||||||
|
|
||||||
StringTokenizer tok = new StringTokenizer( aCustomApplicationInstance, ":" );
|
StringTokenizer tok = new StringTokenizer(aCustomApplicationInstance, ":");
|
||||||
String type = null; // full qualified class name
|
String type = null; // full qualified class name
|
||||||
String url = null; // url fragment (last part)
|
String url = null; // url fragment (last part)
|
||||||
String title = null; // title of new application instance
|
String title = null; // title of new application instance
|
||||||
String parent = null; // parent class name
|
String parent = null; // parent class name
|
||||||
for ( int j = 0; tok.hasMoreTokens(); j++ ) {
|
for (int j = 0; tok.hasMoreTokens(); j++) {
|
||||||
if ( 0 == j ) {
|
if (0 == j) {
|
||||||
type = tok.nextToken();
|
type = tok.nextToken();
|
||||||
} else if ( 1 == j ) {
|
} else if (1 == j) {
|
||||||
url = tok.nextToken();
|
url = tok.nextToken();
|
||||||
} else if ( 2 == j ) {
|
} else if (2 == j) {
|
||||||
title = tok.nextToken();
|
title = tok.nextToken();
|
||||||
} else if ( 3 == j ) {
|
} else if (3 == j) {
|
||||||
parent = tok.nextToken();
|
parent = tok.nextToken();
|
||||||
} else {
|
} else {
|
||||||
parent = null;
|
parent = null;
|
||||||
|
|
@ -191,7 +189,7 @@ public class Loader extends PackageLoader {
|
||||||
String[] files = (String[]) get(m_categoryFiles);
|
String[] files = (String[]) get(m_categoryFiles);
|
||||||
final Parser parser = new Parser();
|
final Parser parser = new Parser();
|
||||||
// for each filename in the array of files containing categories
|
// for each filename in the array of files containing categories
|
||||||
for (int i = 0 ; i < files.length ; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
final String file = files[i];
|
final String file = files[i];
|
||||||
if (s_log.isInfoEnabled()) {
|
if (s_log.isInfoEnabled()) {
|
||||||
s_log.info("Process " + file);
|
s_log.info("Process " + file);
|
||||||
|
|
@ -209,20 +207,20 @@ public class Loader extends PackageLoader {
|
||||||
* existent, i.e. previously importet in the previous step.
|
* existent, i.e. previously importet in the previous step.
|
||||||
*/
|
*/
|
||||||
String[] domainMappings = (String[]) get(m_domainMappings);
|
String[] domainMappings = (String[]) get(m_domainMappings);
|
||||||
for (int i = 0 ; i < domainMappings.length ; i++) {
|
for (int i = 0; i < domainMappings.length; i++) {
|
||||||
|
|
||||||
final String aDomainMapping = domainMappings[i];
|
final String aDomainMapping = domainMappings[i];
|
||||||
|
|
||||||
StringTokenizer tok = new StringTokenizer( aDomainMapping, ":" );
|
StringTokenizer tok = new StringTokenizer(aDomainMapping, ":");
|
||||||
String key = null;
|
String key = null;
|
||||||
String app = null;
|
String app = null;
|
||||||
String context = null;
|
String context = null;
|
||||||
for ( int j = 0; tok.hasMoreTokens(); j++ ) {
|
for (int j = 0; tok.hasMoreTokens(); j++) {
|
||||||
if ( 0 == j ) {
|
if (0 == j) {
|
||||||
key = tok.nextToken();
|
key = tok.nextToken();
|
||||||
} else if ( 1 == j ) {
|
} else if (1 == j) {
|
||||||
app = tok.nextToken();
|
app = tok.nextToken();
|
||||||
} else if ( 2 == j ) {
|
} else if (2 == j) {
|
||||||
context = tok.nextToken();
|
context = tok.nextToken();
|
||||||
} else {
|
} else {
|
||||||
context = null;
|
context = null;
|
||||||
|
|
@ -233,11 +231,14 @@ public class Loader extends PackageLoader {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// registerServicesTemplate("/services/"); wird nicht gebraucht
|
// registerServicesTemplate("/services/"); wird nicht gebraucht
|
||||||
|
|
||||||
} // end run method
|
final RelationAttributeImportTool ddenumTool = new RelationAttributeImportTool();
|
||||||
|
for(String ddenum : (String[]) get(m_ddenums)) {
|
||||||
|
ddenumTool.loadData(ddenum);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end run method
|
||||||
|
|
||||||
// public void registerServicesTemplate(String appURL) {
|
// public void registerServicesTemplate(String appURL) {
|
||||||
// Application app = Application.retrieveApplicationForPath(appURL);
|
// Application app = Application.retrieveApplicationForPath(appURL);
|
||||||
|
|
@ -255,8 +256,6 @@ public class Loader extends PackageLoader {
|
||||||
// Template.DEFAULT_DISPATCHER_CONTEXT,
|
// Template.DEFAULT_DISPATCHER_CONTEXT,
|
||||||
// Template.DEFAULT_USE_CONTEXT );
|
// Template.DEFAULT_USE_CONTEXT );
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines the Terms domain using domainKey as well as the application
|
* Determines the Terms domain using domainKey as well as the application
|
||||||
* instance using appURL and then creates a domain mapping using context
|
* instance using appURL and then creates a domain mapping using context
|
||||||
|
|
@ -317,4 +316,5 @@ public class Loader extends PackageLoader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue