Author: michiel Date: 2010-03-25 15:29:07 +0100 (Thu, 25 Mar 2010) New Revision: 41613
Added: speeltuin/mihxil/portal/trunk/src/main/config/components/blockssyncer.xml speeltuin/mihxil/portal/trunk/src/main/config/security/ speeltuin/mihxil/portal/trunk/src/main/config/security/classauthentication.xml speeltuin/mihxil/portal/trunk/src/main/java/org/mmbase/framework/ speeltuin/mihxil/portal/trunk/src/main/java/org/mmbase/framework/BlocksToDatabaseSyncer.java Modified: speeltuin/mihxil/portal/trunk/src/main/config/builders/core/blocks.xml Log: arranged that all blocks of component repostiory are mapped to objects and then can be used (depedning on fix for MMB-1944) Modified: speeltuin/mihxil/portal/trunk/src/main/config/builders/core/blocks.xml =================================================================== --- speeltuin/mihxil/portal/trunk/src/main/config/builders/core/blocks.xml 2010-03-25 14:28:13 UTC (rev 41612) +++ speeltuin/mihxil/portal/trunk/src/main/config/builders/core/blocks.xml 2010-03-25 14:29:07 UTC (rev 41613) @@ -28,6 +28,11 @@ <guiname xml:lang="en">Component</guiname> <guiname xml:lang="zh">模型</guiname> </gui> + <editor> + <positions> + <list>1</list> + </positions> + </editor> <datatype base="components" xmlns="http://www.mmbase.org/xmlns/datatypes" /> </field> <field name="name"> @@ -41,7 +46,7 @@ </gui> <editor> <positions> - <list>1</list> + <list>2</list> </positions> </editor> <datatype base="eline" xmlns="http://www.mmbase.org/xmlns/datatypes" > @@ -70,7 +75,9 @@ <guiname xml:lang="nl">Weergave</guiname> <guiname xml:lang="en">Display Type</guiname> </gui> - <datatype base="windowstate" xmlns="http://www.mmbase.org/xmlns/datatypes" /> + <datatype base="windowstate" xmlns="http://www.mmbase.org/xmlns/datatypes"> + <default value="NORMAL" /> + </datatype> </field> <field name="refreshpolicy"> <gui> Added: speeltuin/mihxil/portal/trunk/src/main/config/components/blockssyncer.xml =================================================================== --- speeltuin/mihxil/portal/trunk/src/main/config/components/blockssyncer.xml (rev 0) +++ speeltuin/mihxil/portal/trunk/src/main/config/components/blockssyncer.xml 2010-03-25 14:29:07 UTC (rev 41613) @@ -0,0 +1,15 @@ +<?xml version="1.0"?> +<component + name="blockssyncer" + version="1" + xmlns="http://www.mmbase.org/xmlns/component" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.mmbase.org/xmlns/component http://www.mmbase.org/xmlns/component.xsd"> + + <class name="org.mmbase.framework.BlocksToDatabaseSyncer" /> + + <dependency component="core" version="9" /> + + +</component> Added: speeltuin/mihxil/portal/trunk/src/main/config/security/classauthentication.xml =================================================================== --- speeltuin/mihxil/portal/trunk/src/main/config/security/classauthentication.xml (rev 0) +++ speeltuin/mihxil/portal/trunk/src/main/config/security/classauthentication.xml 2010-03-25 14:29:07 UTC (rev 41613) @@ -0,0 +1,8 @@ +<?xml version="1.0" ?> +<!DOCTYPE security PUBLIC "-//MMBase//DTD classsecurity config 1.0//EN" "http://www.mmbase.org/dtd/classsecurity_1_0.dtd"> +<security> + <authenticate class="org\.mmbase\.framework\.BlocksToDatabaseSyncer"> + <property name="rank" value="administrator" /> + </authenticate> + +</security> Added: speeltuin/mihxil/portal/trunk/src/main/java/org/mmbase/framework/BlocksToDatabaseSyncer.java =================================================================== --- speeltuin/mihxil/portal/trunk/src/main/java/org/mmbase/framework/BlocksToDatabaseSyncer.java (rev 0) +++ speeltuin/mihxil/portal/trunk/src/main/java/org/mmbase/framework/BlocksToDatabaseSyncer.java 2010-03-25 14:29:07 UTC (rev 41613) @@ -0,0 +1,72 @@ +/* + +This software is OSI Certified Open Source Software. +OSI Certified is a certification mark of the Open Source Initiative. + +The license (Mozilla version 1.0) can be read at the MMBase site. +See http://www.MMBase.org/license + +*/ +package org.mmbase.framework; + +import java.util.*; +import org.mmbase.bridge.*; +import org.mmbase.bridge.util.*; +import org.mmbase.core.event.*; + +import org.mmbase.util.logging.Logger; +import org.mmbase.util.logging.Logging; + +/** + + * @author Michiel Meeuwissen + * @version $Id: ComponentRepository.java 38472 2009-09-07 13:47:12Z michiel $ + * @since MMBase-1.9.4 + */ + +public class BlocksToDatabaseSyncer extends BasicComponent implements SystemEventListener { + private static final Logger LOG = Logging.getLoggerInstance(BlocksToDatabaseSyncer.class); + + + public BlocksToDatabaseSyncer(String name) { + super(name); + EventManager.getInstance().addEventListener(this); + } + + public void notify(SystemEvent event) { + if (event instanceof ComponentRepository.Ready) { + Cloud cloud = ContextProvider.getDefaultCloudContext().getCloud("mmbase", "class", null); + NodeManager blocks = cloud.getNodeManager("blocks"); + LOG.service("Syncing blocks builder with" + ComponentRepository.getInstance()); + for (Component component : ComponentRepository.getInstance().getComponents()) { + LOG.service("Syncing component " + component); + for (Block block : component.getBlocks()) { + LOG.debug("Syncing block " + block); + NodeQuery query = blocks.createQuery(); + Queries.addConstraint(query, Queries.createConstraint(query, "component", Queries.getOperator("="), component.getName())); + Queries.addConstraint(query, Queries.createConstraint(query, "name", Queries.getOperator("="), block.getName())); + LOG.debug("Executing " + query.toSql()); + NodeList instances = blocks.getList(query); + String description = block.getDescription().get(null); + if (instances.size() == 0) { + Node instance = blocks.createNode(); + instance.setStringValue("component", component.getName()); + instance.setStringValue("name", block.getName()); + instance.setStringValue("description", description); + instance.commit(); + LOG.info("Created new block node " + instance); + } else { + LOG.debug("Found objects" + instances); + Node instance = instances.get(0); + if (! instance.getStringValue("description").equals(description)) { + instance.setStringValue("description", description); + instance.commit(); + } + } + } + } + LOG.service("Ready"); + } + } +} + _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs