[Yanel-commits] rev 23901 - public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Fri Apr 20 00:16:28 CEST 2007


Author: michi
Date: 2007-04-20 00:16:27 +0200 (Fri, 20 Apr 2007)
New Revision: 23901

Modified:
   public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java
Log:
add demo realm started

Modified: public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java
===================================================================
--- public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java	2007-04-19 22:15:42 UTC (rev 23900)
+++ public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java	2007-04-19 22:16:27 UTC (rev 23901)
@@ -120,6 +120,8 @@
             return getFromScratchView(request, viewId);
         } else if (addType != null && addType.equals("from-existing-website")) {
             return getFromExistingWebsiteView(request, viewId);
+        } else if (addType != null && addType.equals("demo")) {
+            return getDemoView(request, viewId);
         } else {
             return getExceptionView("No such type: " + addType);
         }
@@ -164,6 +166,31 @@
     }
 
     /**
+     * Get demo view
+     */
+    public View getDemoView(HttpServletRequest request, String viewId) throws Exception {
+        Document document = getDemoInputDocument();
+
+        View view = new View();
+        Transformer transformer = null;
+
+        if (viewId != null && viewId.equals("xml")) {
+            view.setMimeType("application/xml");
+            transformer = TransformerFactory.newInstance().newTransformer();
+        } else {
+            view.setMimeType("application/xhtml+xml");
+            File xsltFile = org.wyona.commons.io.FileUtil.file(getRTD().getConfigFile().getParentFile().getAbsolutePath(), getConfiguration().getProperty("xslt"));
+            transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
+            //transformer.setParameter();
+        }
+
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        transformer.transform(new DOMSource(document), new StreamResult(byteArrayOutputStream));
+        view.setInputStream(new java.io.ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
+        return view;
+    }
+
+    /**
      * Get from scratch view
      */
     public View getFromScratchView(HttpServletRequest request, String viewId) throws Exception {
@@ -222,6 +249,89 @@
     /**
      *
      */
+    private Document getDemoInputDocument() {
+        Document doc = getDocument();
+        Element rootElement = doc.getDocumentElement();
+        Element fromScratchElement = (Element) rootElement.appendChild(doc.createElementNS(NAMESPACE, "from-scratch"));
+
+        Element parameterElement = null;
+        Parameter para = null;
+        boolean valid = true;
+        boolean validate = false;
+        if (request.getParameter("submit-from-scratch") != null) validate = true;
+
+        // Parameter "realmid"
+        para = getParameterFromResourceConfig("realmid");
+        RealmIdInputParameter realmidip = new RealmIdInputParameter(para.name, para.sampleValue, para.required, para.hidden, request.getParameter("realmid"), validate);
+        parameterElement = (Element) fromScratchElement.appendChild(realmidip.createElementNS(NAMESPACE, doc));
+        valid = valid && realmidip.isValid();
+
+        // Parameter "realmname"
+        para = getParameterFromResourceConfig("realmname");
+        RealmNameInputParameter realmnameip = new RealmNameInputParameter(para.name, para.sampleValue, para.required, para.hidden, request.getParameter("realmname"), validate);
+        parameterElement = (Element) fromScratchElement.appendChild(realmnameip.createElementNS(NAMESPACE, doc));
+        valid = valid && realmnameip.isValid();
+
+        // Parameter "fslocation"
+        para = getParameterFromResourceConfig("fslocation");
+        parameterElement = (Element) fromScratchElement.appendChild(doc.createElementNS(NAMESPACE, "parameter"));
+        parameterElement.setAttributeNS(NAMESPACE, "name", para.name);
+        parameterElement.setAttributeNS(NAMESPACE, "sample-value", para.sampleValue);
+        parameterElement.setAttributeNS(NAMESPACE, "required", "" + para.required);
+        parameterElement.setAttributeNS(NAMESPACE, "hidden", "" + para.hidden);
+        String fsLocationValue = null;
+        if (para.setValue != null) {
+            if (para.setValue.length() == 0) {
+                fsLocationValue = getYanel().getRealmConfiguration().getRealm("from-scratch-realm-template").getRootDir().getParent();
+            } else {
+                fsLocationValue = para.setValue;
+            }
+            parameterElement.setAttributeNS(NAMESPACE, "configuration-value", fsLocationValue);
+            valid = valid && validateFSLocation(fsLocationValue);
+            if (!validateFSLocation(fsLocationValue)) {
+                parameterElement.setAttributeNS(NAMESPACE, "exception", "Something is completely wrong ...!");
+            }
+        } else {
+            if (request.getParameter("submit-from-scratch") != null) {
+                fsLocationValue = request.getParameter("fslocation");
+                if (fsLocationValue != null) {
+                    valid = valid && validateFSLocation(fsLocationValue);
+                    if (validateFSLocation(fsLocationValue)) {
+                        parameterElement.setAttributeNS(NAMESPACE, "value", fsLocationValue);
+                    } else {
+                        parameterElement.setAttributeNS(NAMESPACE, "exception", "Something is absolutely wrong ...!");
+                    }
+                } else {
+                    parameterElement.setAttributeNS(NAMESPACE, "exception", "NullPointer");
+                    valid = valid && false;
+                }
+            }
+        }
+
+        if (request.getParameter("submit-from-scratch") != null) {
+            if (valid) {
+                fromScratchElement.appendChild(doc.createElementNS(NAMESPACE, "valid"));
+            } else {
+                fromScratchElement.appendChild(doc.createElementNS(NAMESPACE, "not-valid"));
+            }
+        }
+
+        if (valid && request.getParameter("confirm") != null && request.getParameter("confirm").equals("true")) {
+            try {
+                getYanel().getRealmConfiguration().copyRealm("from-scratch-realm-template", realmidip.getValue(), realmnameip.getValue(), "/" + realmidip.getValue() + "/", new File(fsLocationValue));
+                fromScratchElement.appendChild(doc.createElementNS(NAMESPACE, "realm-created"));
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                fromScratchElement.appendChild(doc.createElementNS(NAMESPACE, "exception"));
+            }
+        }
+
+        return doc;
+    }
+
+    /**
+     *
+     */
     private Document getFromScratchInputDocument() {
         Document doc = getDocument();
         Element rootElement = doc.getDocumentElement();




More information about the Yanel-commits mailing list