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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs