[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