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

michi at wyona.com michi at wyona.com
Thu Apr 12 10:48:03 CEST 2007


Author: michi
Date: 2007-04-12 10:48:02 +0200 (Thu, 12 Apr 2007)
New Revision: 23681

Modified:
   public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java
Log:
from existing website 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-12 08:47:13 UTC (rev 23680)
+++ public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java	2007-04-12 08:48:02 UTC (rev 23681)
@@ -177,7 +177,25 @@
      * Get from existing website view
      */
     public View getFromExistingWebsiteView(HttpServletRequest request, String viewId) throws Exception {
-        return null;
+        Document document = getFromExistingWebsiteInputDocument();
+
+        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;
     }
 
     /**
@@ -296,6 +314,144 @@
     }
 
     /**
+     *
+     */
+    private Document getFromExistingWebsiteInputDocument() {
+        Document doc = getDocument();
+        Element rootElement = doc.getDocumentElement();
+        Element fromExistingWebsiteElement = (Element) rootElement.appendChild(doc.createElementNS(NAMESPACE, "from-existing-website"));
+
+        Element parameterElement = null;
+        Parameter para = null;
+        boolean valid = true;
+
+        // Parameter "realmid"
+        para = getParameterFromResourceConfig("realmid");
+        parameterElement = (Element) fromExistingWebsiteElement.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 realmIdValue = null;
+        if (request.getParameter("submit-from-scratch") != null) {
+            realmIdValue = request.getParameter("realmid");
+            if (realmIdValue != null) {
+                valid = valid && validateRealmId(realmIdValue);
+                if (validateRealmId(realmIdValue)) {
+                    parameterElement.setAttributeNS(NAMESPACE, "value", realmIdValue);
+                } else {
+                    parameterElement.setAttributeNS(NAMESPACE, "exception", "Something is wrong ...!");
+                }
+            } else {
+                parameterElement.setAttributeNS(NAMESPACE, "exception", "NullPointer");
+                valid = valid && false;
+            }
+        }
+
+        // Parameter "realmname"
+        para = getParameterFromResourceConfig("realmname");
+        parameterElement = (Element) fromExistingWebsiteElement.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 realmNameValue = null;
+        if (request.getParameter("submit-from-scratch") != null) {
+            realmNameValue = request.getParameter("realmname");
+            if (realmNameValue != null) {
+                valid = valid && validateRealmName(realmNameValue);
+                if (validateRealmName(realmNameValue)) {
+                    parameterElement.setAttributeNS(NAMESPACE, "value", realmNameValue);
+                } else {
+                    parameterElement.setAttributeNS(NAMESPACE, "exception", "Something is really wrong ...!");
+                }
+            } else {
+                parameterElement.setAttributeNS(NAMESPACE, "exception", "NullPointer");
+                valid = valid && false;
+            }
+        }
+
+        // Parameter "fslocation"
+        para = getParameterFromResourceConfig("fslocation");
+        parameterElement = (Element) fromExistingWebsiteElement.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;
+                }
+            }
+        }
+
+        // Parameter "url"
+        para = getParameterFromResourceConfig("url");
+        parameterElement = (Element) fromExistingWebsiteElement.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 urlValue = null;
+        if (request.getParameter("submit-from-scratch") != null) {
+            urlValue = request.getParameter("url");
+            if (urlValue != null) {
+                valid = valid && validateURL(urlValue);
+                if (validateURL(urlValue)) {
+                    parameterElement.setAttributeNS(NAMESPACE, "value", urlValue);
+                } else {
+                    parameterElement.setAttributeNS(NAMESPACE, "exception", "Something is totally wrong ...!");
+                }
+            } else {
+                parameterElement.setAttributeNS(NAMESPACE, "exception", "NullPointer");
+                valid = valid && false;
+            }
+        }
+
+        if (request.getParameter("submit-from-scratch") != null) {
+            if (valid) {
+                fromExistingWebsiteElement.appendChild(doc.createElementNS(NAMESPACE, "valid"));
+            } else {
+                fromExistingWebsiteElement.appendChild(doc.createElementNS(NAMESPACE, "not-valid"));
+            }
+        }
+
+        if (valid && request.getParameter("confirm") != null && request.getParameter("confirm").equals("true")) {
+            fromExistingWebsiteElement.appendChild(doc.createElementNS(NAMESPACE, "realm-created"));
+            try {
+                getYanel().getRealmConfiguration().copyRealm("from-scratch-realm-template", realmIdValue, realmNameValue, "/" + realmIdValue + "/", new File(fsLocationValue));
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                fromExistingWebsiteElement.appendChild(doc.createElementNS(NAMESPACE, "exception"));
+            }
+        }
+
+        return doc;
+    }
+
+    /**
      * Get parameter from custom configuration
      */
     private Parameter getParameterFromResourceConfig(String name) {
@@ -367,4 +523,13 @@
         if (!new File(value).isDirectory()) return false;
         return true;
     }
+
+    /**
+     *
+     */
+    private boolean validateURL(String value) {
+        if (value.length() < 1) return false;
+        // TODO: Check if value is URL ...
+        return true;
+    }
 }




More information about the Yanel-commits mailing list