From f5619266b1acabf1cc375487818c3d6a6e0614dc Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 1 Mar 2012 21:07:55 +0000 Subject: [PATCH] Remove unused stuff git-svn-id: https://svn.argeo.org/slc/trunk@5126 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- pom.xml | 157 +---- .../argeo.slc.activemq.selector/.classpath | 9 - sandbox/argeo.slc.activemq.selector/.project | 23 - .../.settings/org.eclipse.jdt.core.prefs | 12 - .../.settings/org.maven.ide.eclipse.prefs | 9 - .../META-INF/MANIFEST.MF | 12 - .../META-INF/spring/activemq.xml | 27 - .../META-INF/spring/jms.xml | 20 - .../META-INF/MANIFEST.MF | 5 - .../log4j.properties | 27 - sandbox/argeo.slc.activemq.selector/pom.xml | 135 ---- .../selector/DummyMessageListener.java | 24 - .../selector/AbstractActiveMqTest.java | 54 -- .../argeo/slc/activemq/selector/OsgiTest.java | 36 - .../slc/activemq/selector/SelectorTest.java | 69 -- .../src/test/resources/log4j.properties | 23 - sandbox/argeo.slc.executionflow/.classpath | 8 - sandbox/argeo.slc.executionflow/.project | 29 - sandbox/argeo.slc.executionflow/.springBeans | 14 - sandbox/argeo.slc.executionflow/pom.xml | 57 -- .../src/main/resources/META-INF/MANIFEST.MF | 20 - .../src/slc/conf/BasicExecutionFlow.groovy | 12 - .../src/slc/conf/basic.xml | 85 --- .../src/slc/conf/common.xml | 19 - .../src/slc/conf/main.xml | 75 --- .../src/slc/conf/slc.properties | 16 - .../src/slc/conf/test.xml | 105 --- .../src/slc/conf/testCases/basic-001.xml | 35 - .../src/slc/conf/testCases/basic-002.xml | 25 - sandbox/argeo.slc.jemmytest/.classpath | 9 - sandbox/argeo.slc.jemmytest/.project | 23 - .../.settings/org.eclipse.jdt.core.prefs | 12 - .../.settings/org.maven.ide.eclipse.prefs | 9 - ...ringframework.ide.eclipse.beans.core.prefs | 3 - .../execdir/logging.properties | 13 - .../execdir/slc-detached.properties | 2 - .../META-INF/MANIFEST.MF | 5 - .../log4j.properties | 25 - .../META-INF/MANIFEST.MF | 24 - .../META-INF/spring/mxClientLauncher.xml | 25 - .../META-INF/MANIFEST.MF | 23 - .../META-INF/spring/fromAnt.xml | 82 --- .../META-INF/spring/imports.xml | 10 - .../META-INF/spring/osgi.xml | 16 - .../META-INF/spring/tests.xml | 62 -- sandbox/argeo.slc.jemmytest/pom.xml | 179 ----- .../jemmytest/steps/ComplexPanelValues.java | 27 - .../slc/jemmytest/steps/MainFrameLabel.java | 29 - .../slc/jemmytest/steps/TestDialogLabel.java | 27 - .../slc/jemmytest/steps/TestDialogOpen.java | 33 - .../slc/jemmytest/uiparts/ComplexPanel.java | 51 -- .../slc/jemmytest/uiparts/MainFrame.java | 51 -- .../slc/jemmytest/uiparts/TestDialog.java | 26 - .../META-INF/spring/slc-detached-osgi.xml | 14 - .../META-INF/spring/slc-detached.xml | 52 -- .../src/main/slc/conf/applicationContext.xml | 62 -- .../src/main/slc/conf/runtime/default.xml | 6 - .../src/main/slc/conf/slc.properties | 6 - .../src/main/slc/root/jemmyTest/build.xml | 112 ---- .../src/main/slc/root/slcRoot.properties | 0 .../org/argeo/slc/jemmytest/DetachedTest.java | 18 - sandbox/argeo.slc.springtest/.classpath | 10 - sandbox/argeo.slc.springtest/.project | 23 - .../.settings/org.eclipse.jdt.core.prefs | 12 - .../.settings/org.maven.ide.eclipse.prefs | 9 - sandbox/argeo.slc.springtest/pom.xml | 46 -- .../java/argeo/slc/springtest/MyBean.java | 23 - .../slc/springtest/applicationContext.xml | 10 - .../java/argeo/slc/springtest/MyBeanTest.java | 27 - .../src/test/resources/log4j.properties | 24 - sandbox/argeo.slc.testui/.classpath | 9 - sandbox/argeo.slc.testui/.project | 23 - .../.settings/org.eclipse.jdt.core.prefs | 12 - .../.settings/org.maven.ide.eclipse.prefs | 9 - sandbox/argeo.slc.testui/pom.xml | 64 -- .../org/argeo/slc/testui/SwingTestUi.java | 118 ---- .../argeo/slc/jemmytest/SwingTestJemmy.java | 39 -- .../src/test/resources/log4j.properties | 15 - server/org.argeo.slc.ria/.classpath | 6 - server/org.argeo.slc.ria/.project | 11 - server/org.argeo.slc.ria/assembly/ria-jcr.xml | 17 - .../assembly/ria-slc-web.xml | 17 - server/org.argeo.slc.ria/assembly/ria-slc.xml | 17 - server/org.argeo.slc.ria/config.json | 243 ------- server/org.argeo.slc.ria/doc/Architecture.gif | Bin 34826 -> 0 bytes .../doc/Argeo-RIA-DeveloperDoc.odt | Bin 65422 -> 0 bytes server/org.argeo.slc.ria/doc/config.json | 203 ------ .../jetty/jetty-test-local.xml.template | 34 - .../doc/config/jetty/jetty-test.xml | 34 - .../doc/config/jetty/webdefault.xml | 402 ----------- .../config/tomcat/org.argeo.slc.webapp.xml | 23 - server/org.argeo.slc.ria/pom.xml | 180 ----- server/org.argeo.slc.ria/src/WEB-INF/web.xml | 25 - .../src/argeo-ria-lib/jcr/Manifest.json | 34 - .../jcr/class/org/argeo/jcr/ria/JcrBrowser.js | 99 --- .../org/argeo/jcr/ria/model/AbstractItem.js | 50 -- .../org/argeo/jcr/ria/model/DataModel.js | 74 --- .../jcr/class/org/argeo/jcr/ria/model/Node.js | 154 ----- .../class/org/argeo/jcr/ria/model/Property.js | 38 -- .../argeo/jcr/ria/provider/INodeProvider.js | 6 - .../argeo/jcr/ria/provider/XmlNodeProvider.js | 73 -- .../jcr/ria/views/ContextNodeInputView.js | 114 ---- .../org/argeo/jcr/ria/views/JcrTreeFolder.js | 46 -- .../class/org/argeo/jcr/ria/views/ListView.js | 137 ---- .../org/argeo/jcr/ria/views/PlainXmlViewer.js | 152 ----- .../org/argeo/jcr/ria/views/QueriesView.js | 234 ------- .../class/org/argeo/jcr/ria/views/TreeView.js | 250 ------- .../org/argeo/jcr/ria/document-open.png | Bin 615 -> 0 bytes .../org/argeo/jcr/ria/edit-delete.png | Bin 847 -> 0 bytes .../jcr/resource/org/argeo/jcr/ria/folder.png | Bin 756 -> 0 bytes .../resource/org/argeo/jcr/ria/folder_16.png | Bin 569 -> 0 bytes .../resource/org/argeo/jcr/ria/go-down.png | Bin 553 -> 0 bytes .../org/argeo/jcr/ria/system-search.png | Bin 1246 -> 0 bytes .../org/argeo/jcr/ria/view-refresh.png | Bin 888 -> 0 bytes .../resource/org/argeo/jcr/ria/zoom-in.png | Bin 829 -> 0 bytes .../resource/org/argeo/jcr/ria/zoom-out.png | Bin 828 -> 0 bytes .../src/argeo-ria-lib/slc-web/Manifest.json | 34 - .../org/argeo/slc/web/LauncherPerspective.js | 76 --- .../org/argeo/slc/web/MonitorPerspective.js | 56 -- .../class/org/argeo/slc/web/Perspective.js | 60 -- .../class/org/argeo/slc/web/TestList.js | 536 --------------- .../class/org/argeo/slc/web/XmlRenderer.js | 69 -- .../class/org/argeo/slc/web/__init__.js | 3 - .../src/argeo-ria-lib/slc/Manifest.json | 34 - .../slc/class/org/argeo/slc/ria/Applet.js | 295 --------- .../slc/class/org/argeo/slc/ria/BatchView.js | 428 ------------ .../org/argeo/slc/ria/FlowsSelectorView.js | 623 ------------------ .../class/org/argeo/slc/ria/LauncherApplet.js | 480 -------------- .../slc/class/org/argeo/slc/ria/SlcApi.js | 409 ------------ .../org/argeo/slc/ria/SlcExecLoggerApplet.js | 349 ---------- .../org/argeo/slc/ria/SlcExecutionMessage.js | 131 ---- .../org/argeo/slc/ria/SpecsEditorView.js | 167 ----- .../org/argeo/slc/ria/StatusCellRenderer.js | 63 -- .../slc/class/org/argeo/slc/ria/__init__.js | 5 - .../argeo/slc/ria/execution/BatchEntrySpec.js | 115 ---- .../slc/ria/execution/CellEditorFactory.js | 185 ------ .../class/org/argeo/slc/ria/execution/Flow.js | 116 ---- .../org/argeo/slc/ria/execution/Message.js | 148 ----- .../org/argeo/slc/ria/execution/Module.js | 150 ----- .../class/org/argeo/slc/ria/execution/Spec.js | 80 --- .../org/argeo/slc/ria/execution/Value.js | 123 ---- .../org/argeo/slc/ria/monitor/DistListView.js | 167 ----- .../org/argeo/slc/ria/monitor/UploadView.js | 105 --- .../resource/org/argeo/slc/ria/archive.png | Bin 985 -> 0 bytes .../resource/org/argeo/slc/ria/computer.png | Bin 1146 -> 0 bytes .../org/argeo/slc/ria/computer_bookmarked.png | Bin 3876 -> 0 bytes .../resource/org/argeo/slc/ria/dialog-ok.png | Bin 582 -> 0 bytes .../argeo/slc/ria/document-open-recent.png | Bin 973 -> 0 bytes .../org/argeo/slc/ria/document-open.png | Bin 548 -> 0 bytes .../org/argeo/slc/ria/document-print.png | Bin 670 -> 0 bytes .../org/argeo/slc/ria/document-save-as.png | Bin 844 -> 0 bytes .../resource/org/argeo/slc/ria/drophere.gif | Bin 3097 -> 0 bytes .../resource/org/argeo/slc/ria/edit-copy.png | Bin 511 -> 0 bytes .../org/argeo/slc/ria/edit-delete.png | Bin 847 -> 0 bytes .../slc/resource/org/argeo/slc/ria/flag.png | Bin 745 -> 0 bytes .../resource/org/argeo/slc/ria/folder-new.png | Bin 598 -> 0 bytes .../slc/resource/org/argeo/slc/ria/folder.png | Bin 397 -> 0 bytes .../resource/org/argeo/slc/ria/go-down.png | Bin 553 -> 0 bytes .../resource/org/argeo/slc/ria/list-add.png | Bin 626 -> 0 bytes .../argeo/slc/ria/media-playback-start-32.png | Bin 2036 -> 0 bytes .../argeo/slc/ria/media-playback-start.png | Bin 889 -> 0 bytes .../resource/org/argeo/slc/ria/mime-pdf.png | Bin 747 -> 0 bytes .../org/argeo/slc/ria/mime-text-plain.png | Bin 615 -> 0 bytes .../resource/org/argeo/slc/ria/mime-xls.png | Bin 623 -> 0 bytes .../resource/org/argeo/slc/ria/mime-xml.png | Bin 1109 -> 0 bytes .../org/argeo/slc/ria/mime-xsl-22.png | Bin 1534 -> 0 bytes .../resource/org/argeo/slc/ria/mime-xsl.png | Bin 794 -> 0 bytes .../org/argeo/slc/ria/office-chart.png | Bin 877 -> 0 bytes .../org/argeo/slc/ria/office-document.png | Bin 881 -> 0 bytes .../org/argeo/slc/ria/system-shutdown.png | Bin 785 -> 0 bytes .../slc/resource/org/argeo/slc/ria/system.png | Bin 3776 -> 0 bytes .../slc/resource/org/argeo/slc/ria/test.png | Bin 2478 -> 0 bytes .../org/argeo/slc/ria/user-trash-full.png | Bin 1115 -> 0 bytes .../org/argeo/slc/ria/utilities-terminal.png | Bin 548 -> 0 bytes .../org/argeo/slc/ria/view-refresh.png | Bin 934 -> 0 bytes .../org/argeo/slc/ria/window-close.png | Bin 821 -> 0 bytes .../org/argeo/slc/ria/zoom-fit-best.png | Bin 566 -> 0 bytes server/org.argeo.slc.ria/src/index.jsp | 5 - server/pom.xml | 29 - 179 files changed, 1 insertion(+), 10364 deletions(-) delete mode 100644 sandbox/argeo.slc.activemq.selector/.classpath delete mode 100644 sandbox/argeo.slc.activemq.selector/.project delete mode 100644 sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs delete mode 100644 sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs delete mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF delete mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml delete mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml delete mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF delete mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties delete mode 100644 sandbox/argeo.slc.activemq.selector/pom.xml delete mode 100644 sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java delete mode 100644 sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java delete mode 100644 sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java delete mode 100644 sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java delete mode 100644 sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties delete mode 100644 sandbox/argeo.slc.executionflow/.classpath delete mode 100644 sandbox/argeo.slc.executionflow/.project delete mode 100644 sandbox/argeo.slc.executionflow/.springBeans delete mode 100644 sandbox/argeo.slc.executionflow/pom.xml delete mode 100644 sandbox/argeo.slc.executionflow/src/main/resources/META-INF/MANIFEST.MF delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/BasicExecutionFlow.groovy delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/basic.xml delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/common.xml delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/main.xml delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/slc.properties delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/test.xml delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-001.xml delete mode 100644 sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-002.xml delete mode 100644 sandbox/argeo.slc.jemmytest/.classpath delete mode 100644 sandbox/argeo.slc.jemmytest/.project delete mode 100644 sandbox/argeo.slc.jemmytest/.settings/org.eclipse.jdt.core.prefs delete mode 100644 sandbox/argeo.slc.jemmytest/.settings/org.maven.ide.eclipse.prefs delete mode 100644 sandbox/argeo.slc.jemmytest/.settings/org.springframework.ide.eclipse.beans.core.prefs delete mode 100644 sandbox/argeo.slc.jemmytest/execdir/logging.properties delete mode 100644 sandbox/argeo.slc.jemmytest/execdir/slc-detached.properties delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/META-INF/MANIFEST.MF delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/log4j.properties delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/MANIFEST.MF delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/spring/mxClientLauncher.xml delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/MANIFEST.MF delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/fromAnt.xml delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/imports.xml delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/osgi.xml delete mode 100644 sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/tests.xml delete mode 100644 sandbox/argeo.slc.jemmytest/pom.xml delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/ComplexPanelValues.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/MainFrameLabel.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogLabel.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogOpen.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/ComplexPanel.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/MainFrame.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/TestDialog.java delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached-osgi.xml delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached.xml delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/slc/conf/applicationContext.xml delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/slc/conf/runtime/default.xml delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/slc/conf/slc.properties delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/slc/root/jemmyTest/build.xml delete mode 100644 sandbox/argeo.slc.jemmytest/src/main/slc/root/slcRoot.properties delete mode 100644 sandbox/argeo.slc.jemmytest/src/test/java/org/argeo/slc/jemmytest/DetachedTest.java delete mode 100644 sandbox/argeo.slc.springtest/.classpath delete mode 100644 sandbox/argeo.slc.springtest/.project delete mode 100644 sandbox/argeo.slc.springtest/.settings/org.eclipse.jdt.core.prefs delete mode 100644 sandbox/argeo.slc.springtest/.settings/org.maven.ide.eclipse.prefs delete mode 100644 sandbox/argeo.slc.springtest/pom.xml delete mode 100644 sandbox/argeo.slc.springtest/src/main/java/argeo/slc/springtest/MyBean.java delete mode 100644 sandbox/argeo.slc.springtest/src/main/resources/argeo/slc/springtest/applicationContext.xml delete mode 100644 sandbox/argeo.slc.springtest/src/test/java/argeo/slc/springtest/MyBeanTest.java delete mode 100644 sandbox/argeo.slc.springtest/src/test/resources/log4j.properties delete mode 100644 sandbox/argeo.slc.testui/.classpath delete mode 100644 sandbox/argeo.slc.testui/.project delete mode 100644 sandbox/argeo.slc.testui/.settings/org.eclipse.jdt.core.prefs delete mode 100644 sandbox/argeo.slc.testui/.settings/org.maven.ide.eclipse.prefs delete mode 100644 sandbox/argeo.slc.testui/pom.xml delete mode 100644 sandbox/argeo.slc.testui/src/main/java/org/argeo/slc/testui/SwingTestUi.java delete mode 100644 sandbox/argeo.slc.testui/src/test/java/org/argeo/slc/jemmytest/SwingTestJemmy.java delete mode 100644 sandbox/argeo.slc.testui/src/test/resources/log4j.properties delete mode 100644 server/org.argeo.slc.ria/.classpath delete mode 100644 server/org.argeo.slc.ria/.project delete mode 100644 server/org.argeo.slc.ria/assembly/ria-jcr.xml delete mode 100644 server/org.argeo.slc.ria/assembly/ria-slc-web.xml delete mode 100644 server/org.argeo.slc.ria/assembly/ria-slc.xml delete mode 100644 server/org.argeo.slc.ria/config.json delete mode 100644 server/org.argeo.slc.ria/doc/Architecture.gif delete mode 100644 server/org.argeo.slc.ria/doc/Argeo-RIA-DeveloperDoc.odt delete mode 100644 server/org.argeo.slc.ria/doc/config.json delete mode 100644 server/org.argeo.slc.ria/doc/config/jetty/jetty-test-local.xml.template delete mode 100644 server/org.argeo.slc.ria/doc/config/jetty/jetty-test.xml delete mode 100644 server/org.argeo.slc.ria/doc/config/jetty/webdefault.xml delete mode 100644 server/org.argeo.slc.ria/doc/config/tomcat/org.argeo.slc.webapp.xml delete mode 100644 server/org.argeo.slc.ria/pom.xml delete mode 100644 server/org.argeo.slc.ria/src/WEB-INF/web.xml delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/Manifest.json delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/JcrBrowser.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/AbstractItem.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/DataModel.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Node.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Property.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/INodeProvider.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/ContextNodeInputView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/ListView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/PlainXmlViewer.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/QueriesView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/TreeView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/document-open.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/edit-delete.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/folder.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/folder_16.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/go-down.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/system-search.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/view-refresh.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/zoom-in.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/zoom-out.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/Manifest.json delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/LauncherPerspective.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/MonitorPerspective.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/Perspective.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/TestList.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/XmlRenderer.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/__init__.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/Manifest.json delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/Applet.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/BatchView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/FlowsSelectorView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/LauncherApplet.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcApi.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecutionMessage.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SpecsEditorView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/StatusCellRenderer.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/__init__.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/CellEditorFactory.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Flow.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Message.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Module.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Spec.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Value.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/DistListView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/UploadView.js delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/archive.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/computer.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/computer_bookmarked.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/dialog-ok.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/document-open-recent.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/document-open.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/document-print.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/document-save-as.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/drophere.gif delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/edit-copy.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/edit-delete.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/flag.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/folder-new.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/folder.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/go-down.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/list-add.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/media-playback-start-32.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/media-playback-start.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/mime-pdf.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/mime-text-plain.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/mime-xls.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/mime-xml.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/mime-xsl-22.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/mime-xsl.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/office-chart.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/office-document.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/system-shutdown.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/system.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/test.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/user-trash-full.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/utilities-terminal.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/view-refresh.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/window-close.png delete mode 100644 server/org.argeo.slc.ria/src/argeo-ria-lib/slc/resource/org/argeo/slc/ria/zoom-fit-best.png delete mode 100644 server/org.argeo.slc.ria/src/index.jsp delete mode 100644 server/pom.xml diff --git a/pom.xml b/pom.xml index 53432c442..7a8c369b7 100644 --- a/pom.xml +++ b/pom.xml @@ -15,16 +15,14 @@ 0.13 file:///srv/projects/www/slc/site http://projects.argeo.org/slc/site - + ${developmentCycle.slc}.1-SNAPSHOT runtime modules - eclipse demo dep - dist @@ -107,19 +105,6 @@ limitations under the License. - - - - - - - - - - - - - org.argeo.dep versions-all @@ -127,148 +112,8 @@ limitations under the License. pom import - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - argeo diff --git a/sandbox/argeo.slc.activemq.selector/.classpath b/sandbox/argeo.slc.activemq.selector/.classpath deleted file mode 100644 index f87384d72..000000000 --- a/sandbox/argeo.slc.activemq.selector/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/sandbox/argeo.slc.activemq.selector/.project b/sandbox/argeo.slc.activemq.selector/.project deleted file mode 100644 index 6fd296ac5..000000000 --- a/sandbox/argeo.slc.activemq.selector/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - argeo.slc.activemq.selector - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.maven.ide.eclipse.maven2Builder - - - - - - org.maven.ide.eclipse.maven2Nature - org.eclipse.jdt.core.javanature - - diff --git a/sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs b/sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 586d6e7a9..000000000 --- a/sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Sun Apr 26 07:20:59 CEST 2009 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs b/sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs deleted file mode 100644 index 6e2e6ad75..000000000 --- a/sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Sun Apr 26 07:24:25 CEST 2009 -activeProfiles= -eclipse.preferences.version=1 -fullBuildGoals=process-test-resources -includeModules=false -resolveWorkspaceProjects=true -resourceFilterGoals=process-resources resources\:testResources -skipCompilerPlugin=true -version=1 diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF deleted file mode 100644 index 3453049bd..000000000 --- a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,12 +0,0 @@ -Bundle-SymbolicName: argeo.slc.activemq.selector.jms -Bundle-Version: 0.1.1 -Import-Package: javax.jms, - javax.management.j2ee.statistics, - org.apache.commons.logging -Require-Bundle: - org.springframework.core, - org.springframework.context, - org.springframework.beans, - org.springframework.jms, - org.argeo.dep.osgi.activemq, - argeo.slc.activemq.selector diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml deleted file mode 100644 index 65290a9e4..000000000 --- a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - tcp://localhost:61616 - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml deleted file mode 100644 index 70d47cb05..000000000 --- a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF deleted file mode 100644 index 0336af968..000000000 --- a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Bundle-Name: Log4j Configuration -Bundle-SymbolicName: argeo.slc.activemq.selector.log4j -Bundle-Version: 0.11.3.qualifier -Fragment-Host: com.springsource.org.apache.log4j - diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties deleted file mode 100644 index a2b833001..000000000 --- a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties +++ /dev/null @@ -1,27 +0,0 @@ -log4j.rootLogger=WARN, console - -## Levels -log4j.logger.argeo=DEBUG -log4j.logger.org.argeo=DEBUG -log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE -log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG -log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG - -log4j.logger.org.springframework=WARN -log4j.logger.org.springframework.jms=DEBUG - -log4j.logger.org.apache.activemq=DEBUG -log4j.logger.org.apache.activemq.transport=WARN -log4j.logger.org.apache.activemq.broker.TransportConnection=WARN - -log4j.logger.org.apache.catalina=INFO -log4j.logger.org.apache.coyote=INFO -log4j.logger.org.apache.tomcat=INFO - -## Appenders -# console is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# console uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n diff --git a/sandbox/argeo.slc.activemq.selector/pom.xml b/sandbox/argeo.slc.activemq.selector/pom.xml deleted file mode 100644 index 4ea5476e6..000000000 --- a/sandbox/argeo.slc.activemq.selector/pom.xml +++ /dev/null @@ -1,135 +0,0 @@ - - 4.0.0 - - org.argeo.slc.runtime - argeo-slc-runtime - 0.11.3-SNAPSHOT - ../../runtime/ - - org.argeo.slc.sandbox - argeo.slc.activemq.selector - SLC ActiveMQ Selector Tests - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.maven.plugins - maven-source-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.apache.maven.plugins - maven-jar-plugin - - - org.apache.felix - maven-bundle-plugin - - - - org.argeo.slc.maven - maven-argeo-osgi-plugin - - - ${basedir}/bundles;in=*;ex=**/.svn/**,${basedir}/target;in=*.jar;ex=*-sources.jar - - org.springframework.osgi.extender, - argeo.slc.activemq.selector.jms - - - - - - - - - - - org.springframework - org.springframework.jms - - - org.springframework - org.springframework.transaction - - - org.springframework.osgi - org.springframework.osgi.extender - - - - - javax.jms - com.springsource.javax.jms - - - - - org.argeo.dep.osgi - org.argeo.dep.osgi.activemq - - - org.apache.geronimo.specs - com.springsource.javax.management.j2ee - - - javax.activation - com.springsource.javax.activation - - - javax.servlet - com.springsource.javax.servlet - - - javax.ejb - com.springsource.javax.ejb - - - javax.xml.rpc - com.springsource.javax.xml.rpc - - - javax.xml.soap - com.springsource.javax.xml.soap - - - - javax.xml.stream - - com.springsource.javax.xml.stream - - - - org.apache.xalan - - com.springsource.org.apache.xalan - - - - - - - org.apache.log4j - com.springsource.org.apache.log4j - - - - org.junit - com.springsource.junit - test - - - org.argeo.slc.runtime - org.argeo.slc.osgiboot - test - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java b/sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java deleted file mode 100644 index 08b6a2f5c..000000000 --- a/sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java +++ /dev/null @@ -1,24 +0,0 @@ -package argeo.slc.activemq.selector; - -import javax.jms.Message; -import javax.jms.MessageListener; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.InitializingBean; - -public class DummyMessageListener implements MessageListener, InitializingBean { - private final static Log log = LogFactory - .getLog(DummyMessageListener.class); - - public void onMessage(Message message) { - - log.info("DummyMessageListener received message " + message); - } - - public void afterPropertiesSet() throws Exception { - log.info("DummyMessageListener configured."); - - } - -} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java deleted file mode 100644 index b4db82bb3..000000000 --- a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package argeo.slc.activemq.selector; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.TextMessage; - -import junit.framework.TestCase; - -import org.apache.activemq.ActiveMQConnectionFactory; -import org.apache.activemq.broker.BrokerService; - -public abstract class AbstractActiveMqTest extends TestCase { - // private final static Log log = LogFactory.getLog(SelectorTest.class); - - protected BrokerService broker; - protected String connectorStr = "vm://localhost"; - - protected String propName = "myFilter"; - protected String propValue = "myValue"; - protected String txt = "myText"; - - protected Session session; - protected Queue queue; - protected MessageProducer producer; - - protected void createSession() throws Exception { - ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( - connectorStr); - Connection connection = connectionFactory.createConnection(); - connection.start(); - session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - - queue = session.createQueue("testQueue"); - producer = session.createProducer(queue); - } - - protected TextMessage createMessage() throws Exception { - TextMessage msg = session.createTextMessage(); - msg.setStringProperty(propName, propValue); - msg.setText(txt); - return msg; - } - - protected void assertMsg(TextMessage receivedMsg) throws Exception { - assertNotNull(receivedMsg); - assertEquals(propValue, receivedMsg.getStringProperty(propName)); - assertEquals(txt, receivedMsg.getText()); - } - -} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java deleted file mode 100644 index a09cef859..000000000 --- a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package argeo.slc.activemq.selector; - - -public class OsgiTest extends AbstractActiveMqTest { - public void testSend() throws Exception { - producer.send(createMessage()); - } - - protected void setUp() throws Exception { - connectorStr = "tcp://localhost:61616"; - createSession(); - } - - protected void tearDown() throws Exception { - session.close(); - } - - /* - * public static void main(String[] args) { try { ConnectionFactory - * connectionFactory = new ActiveMQConnectionFactory( - * "tcp://localhost:61616"); Connection connection = - * connectionFactory.createConnection(); connection.start(); Session session - * = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - * - * Queue queue = session.createQueue("testQueue"); MessageProducer producer - * = session.createProducer(queue); - * - * // TextMessage msg = session.createTextMessage(); // - * msg.setStringProperty(propName, propValue); // msg.setText(txt); - * - * } catch (JMSException e) { e.printStackTrace(); } - * - * } - */ - -} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java deleted file mode 100644 index 0712a1145..000000000 --- a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package argeo.slc.activemq.selector; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.TextMessage; - -import junit.framework.TestCase; - -import org.apache.activemq.ActiveMQConnectionFactory; -import org.apache.activemq.broker.BrokerService; - -public class SelectorTest extends AbstractActiveMqTest { - // private final static Log log = LogFactory.getLog(SelectorTest.class); - - protected BrokerService broker; - protected String connectorStr = "vm://localhost"; - - protected String propName = "myFilter"; - protected String propValue = "myValue"; - protected String txt = "myText"; - - protected Session session; - protected Queue queue; - protected MessageProducer producer; - - public void testNoFilter() throws Exception { - producer.send(createMessage()); - TextMessage receivedMsg = (TextMessage) session.createConsumer(queue) - .receive(2000); - assertMsg(receivedMsg); - } - - public void testFilterOk() throws Exception { - producer.send(createMessage()); - MessageConsumer consumer = session.createConsumer(queue, propName - + "='" + propValue + "'"); - TextMessage receivedMsg = (TextMessage) consumer.receive(2000); - assertMsg(receivedMsg); - } - - public void testFilterNok() throws Exception { - producer.send(createMessage()); - MessageConsumer consumer = session.createConsumer(queue, propName - + "='notMyValue'"); - TextMessage receivedMsg = (TextMessage) consumer.receive(1000); - assertNull("Message reception should time out", receivedMsg); - } - - protected void setUp() throws Exception { - broker = new BrokerService(); - broker.setPersistent(false); - broker.setUseJmx(false); - broker.addConnector(connectorStr); - broker.start(); - - createSession(); - } - - protected void tearDown() throws Exception { - if (broker != null) { - broker.stop(); - } - } - -} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties b/sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties deleted file mode 100644 index b80f5f804..000000000 --- a/sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties +++ /dev/null @@ -1,23 +0,0 @@ -log4j.rootLogger=WARN, console - -## Levels -log4j.logger.org.argeo=DEBUG -log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE -log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG -log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG - -log4j.logger.org.springframework=WARN - -log4j.logger.org.apache.activemq=DEBUG - -log4j.logger.org.apache.catalina=INFO -log4j.logger.org.apache.coyote=INFO -log4j.logger.org.apache.tomcat=INFO - -## Appenders -# console is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# console uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n diff --git a/sandbox/argeo.slc.executionflow/.classpath b/sandbox/argeo.slc.executionflow/.classpath deleted file mode 100644 index 2bc0b0bd8..000000000 --- a/sandbox/argeo.slc.executionflow/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/sandbox/argeo.slc.executionflow/.project b/sandbox/argeo.slc.executionflow/.project deleted file mode 100644 index 63e0d7408..000000000 --- a/sandbox/argeo.slc.executionflow/.project +++ /dev/null @@ -1,29 +0,0 @@ - - - argeo.slc.executionflow - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.maven.ide.eclipse.maven2Builder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - - org.springframework.ide.eclipse.core.springnature - org.maven.ide.eclipse.maven2Nature - org.eclipse.jdt.core.javanature - - diff --git a/sandbox/argeo.slc.executionflow/.springBeans b/sandbox/argeo.slc.executionflow/.springBeans deleted file mode 100644 index 72eabe66e..000000000 --- a/sandbox/argeo.slc.executionflow/.springBeans +++ /dev/null @@ -1,14 +0,0 @@ - - - 1 - - - - - - - src/slc/conf/main.xml - - - - diff --git a/sandbox/argeo.slc.executionflow/pom.xml b/sandbox/argeo.slc.executionflow/pom.xml deleted file mode 100644 index 4cdb6dd89..000000000 --- a/sandbox/argeo.slc.executionflow/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ - - 4.0.0 - - org.argeo.slc - argeo-slc - 0.11.3-SNAPSHOT - ../../org.argeo.slc - - org.argeo.slc.sandbox - org.argeo.slc.sandbox.executionflow - SLC Sandbox Execution Flow - jar - - - - - maven-jar-plugin - - - org.apache.felix - maven-bundle-plugin - - - - - org.argeo.slc.* - - - - - - - - - - - org.argeo.slc.runtime - org.argeo.slc.support.simple - - - org.argeo.slc - org.argeo.slc.detached.launcher - ${version.slc} - - - - org.eclipse.osgi - org.eclipse.osgi - - - - org.springframework.osgi - org.springframework.osgi.extender - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/main/resources/META-INF/MANIFEST.MF b/sandbox/argeo.slc.executionflow/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index d0c3f3df7..000000000 --- a/sandbox/argeo.slc.executionflow/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,20 +0,0 @@ -Manifest-Version: 1.0 -Private-Package: conf;version="0.11.3-SNAPSHOT",conf.testCases;version - ="0.11.3-SNAPSHOT" -Tool: Bnd-0.0.255 -Bundle-Name: SLC Sandbox Execution Flow -Created-By: 1.6.0_0 (Sun Microsystems Inc.) -Require-Bundle: org.argeo.slc.execution,org.argeo.slc.specs,org.argeo. - slc.support.simple,org.springframework.aop,com.springsource.net.sf.cg - lib,com.springsource.org.aopalliance -Bundle-Vendor: Argeo -Bundle-Version: 0.11.3.SNAPSHOT -Spring-Context: conf/main.xml -Bundle-ManifestVersion: 2 -Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt -Import-Package: org.apache.commons.logging;version="1.1",org.springfra - mework.beans.factory.config -Bundle-SymbolicName: org.argeo.slc.sandbox.executionflow -Bundle-DocURL: http://www.argeo.org -Originally-Created-By: 1.6.0_0 (Sun Microsystems Inc.) - diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/BasicExecutionFlow.groovy b/sandbox/argeo.slc.executionflow/src/slc/conf/BasicExecutionFlow.groovy deleted file mode 100644 index da3926ef8..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/BasicExecutionFlow.groovy +++ /dev/null @@ -1,12 +0,0 @@ -import org.argeo.slc.test.*; - -public class BasicExecutionFlow implements org.argeo.slc.executionflow.ExecutionFlow { - - ExecutableTestRun firstSubTest = null; - ExecutableTestRun secondSubTest = null; - - void execute(){ - firstSubTest?.execute(); - secondSubTest?.execute(); - } -} diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/basic.xml b/sandbox/argeo.slc.executionflow/src/slc/conf/basic.xml deleted file mode 100644 index aa5146779..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/basic.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/common.xml b/sandbox/argeo.slc.executionflow/src/slc/conf/common.xml deleted file mode 100644 index 4ed1362f7..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/common.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/main.xml b/sandbox/argeo.slc.executionflow/src/slc/conf/main.xml deleted file mode 100644 index cd577729f..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/main.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/slc.properties b/sandbox/argeo.slc.executionflow/src/slc/conf/slc.properties deleted file mode 100644 index b18dce171..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/slc.properties +++ /dev/null @@ -1,16 +0,0 @@ -log4j.rootLogger=WARN, console - -## Levels -log4j.logger.org.argeo=DEBUG -log4j.logger.org.argeo.slc.executionflow.ExecutionParameterPostProcessor=TRACE -log4j.logger.org.argeo.slc.executionflow.ExecutionContext=TRACE - -## Appenders -# console is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# console uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n - -testCase=002 \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/test.xml b/sandbox/argeo.slc.executionflow/src/slc/conf/test.xml deleted file mode 100644 index 6cc40e80e..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/test.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-001.xml b/sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-001.xml deleted file mode 100644 index a5426649e..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-001.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-002.xml b/sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-002.xml deleted file mode 100644 index c2946fdfb..000000000 --- a/sandbox/argeo.slc.executionflow/src/slc/conf/testCases/basic-002.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/.classpath b/sandbox/argeo.slc.jemmytest/.classpath deleted file mode 100644 index 9d89d21e0..000000000 --- a/sandbox/argeo.slc.jemmytest/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/sandbox/argeo.slc.jemmytest/.project b/sandbox/argeo.slc.jemmytest/.project deleted file mode 100644 index 991ee0faf..000000000 --- a/sandbox/argeo.slc.jemmytest/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - argeo.slc.jemmytest - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.maven.ide.eclipse.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.maven.ide.eclipse.maven2Nature - - diff --git a/sandbox/argeo.slc.jemmytest/.settings/org.eclipse.jdt.core.prefs b/sandbox/argeo.slc.jemmytest/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index d234cfbb5..000000000 --- a/sandbox/argeo.slc.jemmytest/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Sat Oct 18 13:51:44 CEST 2008 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.3 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=ignore -org.eclipse.jdt.core.compiler.problem.enumIdentifier=ignore -org.eclipse.jdt.core.compiler.source=1.3 diff --git a/sandbox/argeo.slc.jemmytest/.settings/org.maven.ide.eclipse.prefs b/sandbox/argeo.slc.jemmytest/.settings/org.maven.ide.eclipse.prefs deleted file mode 100644 index 063c585c0..000000000 --- a/sandbox/argeo.slc.jemmytest/.settings/org.maven.ide.eclipse.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Sat Sep 13 10:49:32 CEST 2008 -activeProfiles= -eclipse.preferences.version=1 -filterResources=false -includeModules=false -resolveWorkspaceProjects=true -resourceFilterGoals=process-resources resources\:testResources -useMavenFolders=false -version=1 diff --git a/sandbox/argeo.slc.jemmytest/.settings/org.springframework.ide.eclipse.beans.core.prefs b/sandbox/argeo.slc.jemmytest/.settings/org.springframework.ide.eclipse.beans.core.prefs deleted file mode 100644 index 40a491fd3..000000000 --- a/sandbox/argeo.slc.jemmytest/.settings/org.springframework.ide.eclipse.beans.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Tue Mar 31 12:06:27 CEST 2009 -eclipse.preferences.version=1 -org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false diff --git a/sandbox/argeo.slc.jemmytest/execdir/logging.properties b/sandbox/argeo.slc.jemmytest/execdir/logging.properties deleted file mode 100644 index 50afbf217..000000000 --- a/sandbox/argeo.slc.jemmytest/execdir/logging.properties +++ /dev/null @@ -1,13 +0,0 @@ -# specify the handlers to create in the root logger -# (all loggers are children of the root logger) -# the following creates two handlers -handlers=java.util.logging.ConsoleHandler - -# set the default logging level for the root logger -.level=INFO - -# set the default logging level for new ConsoleHandler instances -java.util.logging.ConsoleHandler.level=INFO - -# set the default formatter for new ConsoleHandler instances -java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter diff --git a/sandbox/argeo.slc.jemmytest/execdir/slc-detached.properties b/sandbox/argeo.slc.jemmytest/execdir/slc-detached.properties deleted file mode 100644 index 321161a8d..000000000 --- a/sandbox/argeo.slc.jemmytest/execdir/slc-detached.properties +++ /dev/null @@ -1,2 +0,0 @@ -slc.osgi.start=org.springframework.osgi.extender,org.argeo.slc.detached,org.argeo.slc.sandbox.jemmytest -slc.osgi.scanClasspath=true \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/META-INF/MANIFEST.MF b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/META-INF/MANIFEST.MF deleted file mode 100644 index 0c3c5d261..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Bundle-Name: Log4j Configuration -Bundle-SymbolicName: org.argeo.slc.jemmytest.log4j -Bundle-Version: 1.0.0 -Fragment-Host: com.springsource.org.apache.log4j - diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/log4j.properties b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/log4j.properties deleted file mode 100644 index 3ee850471..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.log4j/log4j.properties +++ /dev/null @@ -1,25 +0,0 @@ -log4j.rootLogger=WARN, console - -## Levels -log4j.logger.org.argeo=DEBUG -log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE -log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG -log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG - -log4j.logger.org.springframework=WARN - -log4j.logger.org.apache.activemq=WARN -log4j.logger.org.apache.activemq.transport=WARN -log4j.logger.org.apache.activemq.selector=WARN - -log4j.logger.org.apache.catalina=INFO -log4j.logger.org.apache.coyote=INFO -log4j.logger.org.apache.tomcat=INFO - -## Appenders -# console is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# console uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/MANIFEST.MF b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/MANIFEST.MF deleted file mode 100644 index 5af2943cd..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/MANIFEST.MF +++ /dev/null @@ -1,24 +0,0 @@ -Bundle-Name: Mx Launch -Bundle-SymbolicName: org.argeo.slc.jemmytest.mxlaunch -Bundle-Version: 1.0.0 -Bundle-Name: Sparta Mx Client Launcher -Import-Package: org.argeo.slc.detached, - javax.swing, - javax.swing.border, - javax.swing.colorchooser, - javax.swing.event, - javax.swing.filechooser, - javax.swing.plaf, - javax.swing.plaf.basic, - javax.swing.plaf.metal, - javax.swing.plaf.multi, - javax.swing.plaf.synth, - javax.swing.table, - javax.swing.text, - javax.swing.text.html, - javax.swing.text.html.parser, - javax.swing.text.rtf, - javax.swing.tree, - javax.swing.undo -Bundle-ClassPath: lib/mxjboot.jar - diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/spring/mxClientLauncher.xml b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/spring/mxClientLauncher.xml deleted file mode 100644 index 5fecd46b4..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.mxlaunch/META-INF/spring/mxClientLauncher.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - http://FS_URL/murex.download.guiclient.download - - - - - - /MXJ_CLASS_NAME:murex.gui.xml.XmlGuiClientBoot - - /MXJ_SITE_NAME:site1 - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/MANIFEST.MF b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/MANIFEST.MF deleted file mode 100644 index f97e5dd0c..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,23 +0,0 @@ -Bundle-SymbolicName: org.argeo.slc.sandbox.jemmytest.tests -Fragment-Host: org.argeo.slc.sandbox.jemmytest -Bundle-Version: 0.11.3.SNAPSHOT -Bundle-Name: SLC Sandbox JemmyTest Tests -Require-Bundle: org.argeo.slc.detached, - org.argeo.slc.lib.detached, - org.argeo.slc.support.osgi, - org.argeo.slc.specs, - org.argeo.slc.support.simple -Import-Package: org.springframework.oxm, - org.springframework.oxm.castor, - org.springframework.xml.xsd, - net.sf.cglib.core, - net.sf.cglib.proxy, - net.sf.cglib.reflect, - org.aopalliance.aop, - org.apache.commons.logging, - org.springframework.aop, - org.springframework.aop.framework, - org.springframework.aop.scope, - org.springframework.beans.factory.config, - org.springframework.core.io - diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/fromAnt.xml b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/fromAnt.xml deleted file mode 100644 index 408d0ee70..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/fromAnt.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - org.argeo.slc.sandbox.jemmytest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/imports.xml b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/imports.xml deleted file mode 100644 index 9ac7e5350..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/imports.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/osgi.xml b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/osgi.xml deleted file mode 100644 index 8beb99ba5..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/osgi.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/tests.xml b/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/tests.xml deleted file mode 100644 index a2bc41ab2..000000000 --- a/sandbox/argeo.slc.jemmytest/modules/org.argeo.slc.jemmytest.tests/META-INF/spring/tests.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/pom.xml b/sandbox/argeo.slc.jemmytest/pom.xml deleted file mode 100644 index 92aed903e..000000000 --- a/sandbox/argeo.slc.jemmytest/pom.xml +++ /dev/null @@ -1,179 +0,0 @@ - - 4.0.0 - - org.argeo.slc - argeo-slc - 0.11.3-SNAPSHOT - ../../org.argeo.slc - - org.argeo.slc.sandbox - org.argeo.slc.sandbox.jemmytest - SLC Sandbox JemmyTest - jar - - - org.springframework.osgi.extender, - org.argeo.slc.detached, - org.argeo.slc.sandbox.jemmytest, - org.argeo.slc.support.equinox - - - - - - maven-jar-plugin - - - org.apache.felix - maven-bundle-plugin - - - - - org.argeo.slc.jemmytest.* - - - *,org.springframework.beans.factory.config - - - org.argeo.slc.detached - - *;create-asynchronously:=false - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.4 - 1.4 - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - package - - jar - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - maven-dependency-plugin - - - - unpack - - initialize - - target/equinox - - - org.argeo.slc.runtime - org.argeo.slc.osgiboot - ${version.slc} - tar.gz - osgiboot - - - - - - - - - maven-antrun-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - org.argeo.slc.runtime - org.argeo.slc.lib.detached - ${version.slc} - - - org.argeo.slc.runtime - org.argeo.slc.launcher - ${version.slc} - - - org.argeo.dep.jemmy - org.argeo.dep.jemmy.nb61 - - - - org.argeo.slc - org.argeo.slc.detached.launcher - ${version.slc} - - - - org.springframework.osgi - org.springframework.osgi.extender - - - org.argeo.slc.runtime - org.argeo.slc.support.equinox - ${version.slc} - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/ComplexPanelValues.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/ComplexPanelValues.java deleted file mode 100644 index 8fb261c13..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/ComplexPanelValues.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.argeo.slc.jemmytest.steps; - -import org.argeo.slc.detached.DetachedAnswer; -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiStep; -import org.argeo.slc.jemmytest.uiparts.ComplexPanel; - -public class ComplexPanelValues extends UiStep { - private ComplexPanel complexPanel; - - protected DetachedAnswer executeUiStep(DetachedContext context, - DetachedRequest request) { - complexPanel.computeTime(); - String time = complexPanel.getTime(); - - DetachedAnswer answer = new DetachedAnswer(request, - "ComplexPanelValues executed"); - answer.getProperties().setProperty("jemmyTest.complexPanel.time", time); - return answer; - } - - public void setComplexPanel(ComplexPanel complexPanel) { - this.complexPanel = complexPanel; - } - -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/MainFrameLabel.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/MainFrameLabel.java deleted file mode 100644 index 607b73d1f..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/MainFrameLabel.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.argeo.slc.jemmytest.steps; - -import org.argeo.slc.detached.DetachedAnswer; -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiStep; -import org.argeo.slc.jemmytest.uiparts.MainFrame; - -public class MainFrameLabel extends UiStep { - private MainFrame mainFrame; - - protected DetachedAnswer executeUiStep(DetachedContext context, - DetachedRequest request) { - mainFrame.init(context, request); - - mainFrame.changeLabel(); - String textAfterPush = mainFrame.getLabelText(); - - DetachedAnswer answer = new DetachedAnswer(request, - "DummyStep passed!! textAfterPush=" + textAfterPush); - answer.getProperties().setProperty("jemmyTest.label", textAfterPush); - return answer; - } - - public void setMainFrame(MainFrame mainFrame) { - this.mainFrame = mainFrame; - } - -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogLabel.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogLabel.java deleted file mode 100644 index 31ccb2d96..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogLabel.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.argeo.slc.jemmytest.steps; - -import org.argeo.slc.detached.DetachedAnswer; -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiStep; -import org.argeo.slc.jemmytest.uiparts.TestDialog; - -public class TestDialogLabel extends UiStep { - private TestDialog testDialog; - - protected DetachedAnswer executeUiStep(DetachedContext context, - DetachedRequest request) { - String labelText = testDialog.getLabelText(); - testDialog.close(); - - DetachedAnswer answer = new DetachedAnswer(request, - "TestDialogLabel executed"); - answer.getProperties().setProperty("jemmyTest.labelDialog", labelText); - return answer; - } - - public void setTestDialog(TestDialog testDialog) { - this.testDialog = testDialog; - } - -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogOpen.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogOpen.java deleted file mode 100644 index bbff9cf79..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/steps/TestDialogOpen.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.argeo.slc.jemmytest.steps; - -import org.argeo.slc.detached.DetachedAnswer; -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiStep; -import org.argeo.slc.jemmytest.uiparts.MainFrame; -import org.argeo.slc.jemmytest.uiparts.TestDialog; - -public class TestDialogOpen extends UiStep { - private MainFrame mainFrame; - private TestDialog testDialog; - - protected DetachedAnswer executeUiStep(DetachedContext context, - DetachedRequest request) { - - mainFrame.openDialog(); - testDialog.init(context, request); - - DetachedAnswer answer = new DetachedAnswer(request, - "TestDialogOpen executed"); - return answer; - } - - public void setTestDialog(TestDialog testDialog) { - this.testDialog = testDialog; - } - - public void setMainFrame(MainFrame mainFrame) { - this.mainFrame = mainFrame; - } - -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/ComplexPanel.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/ComplexPanel.java deleted file mode 100644 index c0f45b81d..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/ComplexPanel.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.argeo.slc.jemmytest.uiparts; - -import java.awt.Component; -import java.awt.Container; - -import javax.swing.JTextField; - -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiPart; -import org.netbeans.jemmy.ComponentChooser; -import org.netbeans.jemmy.operators.ContainerOperator; -import org.netbeans.jemmy.operators.JButtonOperator; -import org.netbeans.jemmy.operators.JTextFieldOperator; - -public class ComplexPanel extends UiPart { - private JButtonOperator buttonTime = null; - private JTextFieldOperator textTime = null; - - protected void initUi(DetachedContext context, DetachedRequest request) { - ContainerOperator complexPanel = new ContainerOperator( - (Container) context.getDynamicRef(MainFrame.PROP_CONTENT_PANE)); - buttonTime = new JButtonOperator(complexPanel, "Now!"); - textTime = new JTextFieldOperator(complexPanel, new ComponentChooser() { - - public boolean checkComponent(Component comp) { - if (comp instanceof JTextField) { - try { - Long.parseLong(((JTextField) comp).getText()); - return true; - } catch (Exception e) { - return false; - } - } else - return false; - } - - public String getDescription() { - return "Find based on text format: has to be a long"; - } - }); - } - - public void computeTime() { - buttonTime.push(); - } - - public String getTime() { - return textTime.getText(); - } -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/MainFrame.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/MainFrame.java deleted file mode 100644 index f0586304d..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/MainFrame.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.argeo.slc.jemmytest.uiparts; - -import java.awt.Container; - -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiPart; -import org.netbeans.jemmy.operators.ContainerOperator; -import org.netbeans.jemmy.operators.JButtonOperator; -import org.netbeans.jemmy.operators.JFrameOperator; -import org.netbeans.jemmy.operators.JLabelOperator; - -public class MainFrame extends UiPart { - private JFrameOperator frame = null; - private JButtonOperator button = null; - private JButtonOperator buttonStart = null; - private JLabelOperator label = null; - - private ComplexPanel complexPanel; - public final static String PROP_CONTENT_PANE = "jemmytest.ui.contentPane"; - - protected void initUi(DetachedContext context, DetachedRequest request) { - frame = new JFrameOperator("Mx"); - button = new JButtonOperator(frame, "Button"); - buttonStart = new JButtonOperator(frame, "Start"); - String labelStr = request.getProperties() - .getProperty("jemmyTest.label"); - label = new JLabelOperator(frame, labelStr); - - context.setDynamicRef(MainFrame.PROP_CONTENT_PANE, frame - .getContentPane()); - complexPanel.init(context, request); - } - - public void changeLabel() { - button.push(); - } - - public void openDialog() { - buttonStart.push(); - } - - public String getLabelText() { - return label.getText(); - } - - public void setComplexPanel(ComplexPanel complexPanel) { - this.complexPanel = complexPanel; - } - -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/TestDialog.java b/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/TestDialog.java deleted file mode 100644 index 883d779c3..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/java/org/argeo/slc/jemmytest/uiparts/TestDialog.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.argeo.slc.jemmytest.uiparts; - -import org.argeo.slc.detached.DetachedContext; -import org.argeo.slc.detached.DetachedRequest; -import org.argeo.slc.detached.ui.UiPart; -import org.netbeans.jemmy.operators.JDialogOperator; -import org.netbeans.jemmy.operators.JLabelOperator; - -public class TestDialog extends UiPart { - private JDialogOperator dialog = null; - private JLabelOperator label = null; - - protected void initUi(DetachedContext context, DetachedRequest request) { - dialog = new JDialogOperator("TestDialog"); - label = new JLabelOperator(dialog, "Dialog Open"); - } - - public String getLabelText() { - return label.getText(); - } - - public void close() { - dialog.close(); - } - -} diff --git a/sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached-osgi.xml b/sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached-osgi.xml deleted file mode 100644 index cffe1c3d7..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached-osgi.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached.xml b/sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached.xml deleted file mode 100644 index 0cc80c53e..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/resources/META-INF/spring/slc-detached.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - SYSTEM_PROPERTIES_MODE_OVERRIDE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/src/main/slc/conf/applicationContext.xml b/sandbox/argeo.slc.jemmytest/src/main/slc/conf/applicationContext.xml deleted file mode 100644 index ee8de76f6..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/slc/conf/applicationContext.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/src/main/slc/conf/runtime/default.xml b/sandbox/argeo.slc.jemmytest/src/main/slc/conf/runtime/default.xml deleted file mode 100644 index 793a1b42f..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/slc/conf/runtime/default.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.jemmytest/src/main/slc/conf/slc.properties b/sandbox/argeo.slc.jemmytest/src/main/slc/conf/slc.properties deleted file mode 100644 index d73d5fad1..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/slc/conf/slc.properties +++ /dev/null @@ -1,6 +0,0 @@ - -## Loggigng -# Slc -log4j.logger.org.argeo.slc=DEBUG -# Spring -log4j.logger.org.springframework=WARN diff --git a/sandbox/argeo.slc.jemmytest/src/main/slc/root/jemmyTest/build.xml b/sandbox/argeo.slc.jemmytest/src/main/slc/root/jemmyTest/build.xml deleted file mode 100644 index 031d56e99..000000000 --- a/sandbox/argeo.slc.jemmytest/src/main/slc/root/jemmyTest/build.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sandbox/argeo.slc.jemmytest/src/main/slc/root/slcRoot.properties b/sandbox/argeo.slc.jemmytest/src/main/slc/root/slcRoot.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/sandbox/argeo.slc.jemmytest/src/test/java/org/argeo/slc/jemmytest/DetachedTest.java b/sandbox/argeo.slc.jemmytest/src/test/java/org/argeo/slc/jemmytest/DetachedTest.java deleted file mode 100644 index 880d0d93c..000000000 --- a/sandbox/argeo.slc.jemmytest/src/test/java/org/argeo/slc/jemmytest/DetachedTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.argeo.slc.jemmytest; - -import junit.framework.TestCase; - -public class DetachedTest extends TestCase { - public void testSendRequest() throws Exception { -/* FileDriver client = new FileDriver(); - File baseDir = new File("local/detached"); - baseDir.mkdirs(); - client.setBaseDir(baseDir); - - DetachedRequest request = new DetachedRequest(); - request.setUuid(UUID.randomUUID().toString()); - request.setRef("jemmyTest"); - - client.sendRequest(request);*/ - } -} diff --git a/sandbox/argeo.slc.springtest/.classpath b/sandbox/argeo.slc.springtest/.classpath deleted file mode 100644 index 98ab4292b..000000000 --- a/sandbox/argeo.slc.springtest/.classpath +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/sandbox/argeo.slc.springtest/.project b/sandbox/argeo.slc.springtest/.project deleted file mode 100644 index 95bcbe5a1..000000000 --- a/sandbox/argeo.slc.springtest/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - argeo.slc.springtest - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.maven.ide.eclipse.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.maven.ide.eclipse.maven2Nature - - diff --git a/sandbox/argeo.slc.springtest/.settings/org.eclipse.jdt.core.prefs b/sandbox/argeo.slc.springtest/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 6ece4a1d5..000000000 --- a/sandbox/argeo.slc.springtest/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Tue Apr 22 13:16:43 CEST 2008 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/sandbox/argeo.slc.springtest/.settings/org.maven.ide.eclipse.prefs b/sandbox/argeo.slc.springtest/.settings/org.maven.ide.eclipse.prefs deleted file mode 100644 index c05c58851..000000000 --- a/sandbox/argeo.slc.springtest/.settings/org.maven.ide.eclipse.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Tue Apr 22 13:19:21 CEST 2008 -activeProfiles= -eclipse.preferences.version=1 -filterResources=false -includeModules=false -resolveWorkspaceProjects=true -resourceFilterGoals=process-resources resources\:testResources -useMavenFolders=false -version=1 diff --git a/sandbox/argeo.slc.springtest/pom.xml b/sandbox/argeo.slc.springtest/pom.xml deleted file mode 100644 index 2719a807d..000000000 --- a/sandbox/argeo.slc.springtest/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - 4.0.0 - org.argeo.slc.test - argeo-slc-springtest - Test Spring - 0.0.1-SNAPSHOT - Dummy project to test Spring - - - log4j - log4j - 1.2.14 - - - commons-logging - commons-logging - 1.1.1 - - - org.apache.commons - commons-io - 1.3.2 - - - org.springframework - spring-context - 2.5.2 - - - junit - junit - 3.8.2 - - - - - central - http://www.argeo.org/maven/proxy - - true - daily - warn - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.springtest/src/main/java/argeo/slc/springtest/MyBean.java b/sandbox/argeo.slc.springtest/src/main/java/argeo/slc/springtest/MyBean.java deleted file mode 100644 index cb1dcdbf3..000000000 --- a/sandbox/argeo.slc.springtest/src/main/java/argeo/slc/springtest/MyBean.java +++ /dev/null @@ -1,23 +0,0 @@ -package argeo.slc.springtest; - -public class MyBean { - private String name; - private Long value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Long getValue() { - return value; - } - - public void setValue(Long value) { - this.value = value; - } - -} diff --git a/sandbox/argeo.slc.springtest/src/main/resources/argeo/slc/springtest/applicationContext.xml b/sandbox/argeo.slc.springtest/src/main/resources/argeo/slc/springtest/applicationContext.xml deleted file mode 100644 index 300ac329e..000000000 --- a/sandbox/argeo.slc.springtest/src/main/resources/argeo/slc/springtest/applicationContext.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.springtest/src/test/java/argeo/slc/springtest/MyBeanTest.java b/sandbox/argeo.slc.springtest/src/test/java/argeo/slc/springtest/MyBeanTest.java deleted file mode 100644 index ab8629ef1..000000000 --- a/sandbox/argeo.slc.springtest/src/test/java/argeo/slc/springtest/MyBeanTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package argeo.slc.springtest; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import junit.framework.TestCase; - -public class MyBeanTest extends TestCase { - private Log log = LogFactory.getLog(getClass()); - - public void testMyBeanSimple() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "argeo/slc/springtest/applicationContext.xml"); - - MyBean myBean = (MyBean)context.getBean("testBean"); - - log.info("Retrieved bean from spring"); - log.debug("Debug some stuff"); - - assertEquals("Gwen", myBean.getName()); - assertEquals(new Long(10), myBean.getValue()); - } - -} diff --git a/sandbox/argeo.slc.springtest/src/test/resources/log4j.properties b/sandbox/argeo.slc.springtest/src/test/resources/log4j.properties deleted file mode 100644 index a96f0589f..000000000 --- a/sandbox/argeo.slc.springtest/src/test/resources/log4j.properties +++ /dev/null @@ -1,24 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=INFO, console - -## Levels -# Slc -log4j.logger.org.argeo.slc=DEBUG -log4j.logger.argeo.slc=DEBUG -# Spring -log4j.logger.org.springframework=INFO -# Hibernate -log4j.logger.org.hibernate=DEBUG -#log4j.logger.org.hibernate.SQL=TRACE -#log4j.logger.org.hibernate.tool.hbm2ddl=TRACE -#log4j.logger.org.hibernate.type=TRACE - - -## Appenders -# A1 is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n - diff --git a/sandbox/argeo.slc.testui/.classpath b/sandbox/argeo.slc.testui/.classpath deleted file mode 100644 index 48383b076..000000000 --- a/sandbox/argeo.slc.testui/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/sandbox/argeo.slc.testui/.project b/sandbox/argeo.slc.testui/.project deleted file mode 100644 index 5d57a05b0..000000000 --- a/sandbox/argeo.slc.testui/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - argeo.slc.testui - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.maven.ide.eclipse.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.maven.ide.eclipse.maven2Nature - - diff --git a/sandbox/argeo.slc.testui/.settings/org.eclipse.jdt.core.prefs b/sandbox/argeo.slc.testui/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index c592d264b..000000000 --- a/sandbox/argeo.slc.testui/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Sun Oct 12 08:45:27 CEST 2008 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.4 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning -org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning -org.eclipse.jdt.core.compiler.source=1.4 diff --git a/sandbox/argeo.slc.testui/.settings/org.maven.ide.eclipse.prefs b/sandbox/argeo.slc.testui/.settings/org.maven.ide.eclipse.prefs deleted file mode 100644 index 922182cd7..000000000 --- a/sandbox/argeo.slc.testui/.settings/org.maven.ide.eclipse.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Sun Sep 21 14:46:02 CEST 2008 -activeProfiles= -eclipse.preferences.version=1 -filterResources=false -includeModules=false -resolveWorkspaceProjects=true -resourceFilterGoals=process-resources resources\:testResources -useMavenFolders=false -version=1 diff --git a/sandbox/argeo.slc.testui/pom.xml b/sandbox/argeo.slc.testui/pom.xml deleted file mode 100644 index 78225d7a2..000000000 --- a/sandbox/argeo.slc.testui/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ - - 4.0.0 - org.argeo.slc.sandbox - org.argeo.slc.sandbox.testui - SLC Test UI - 0.1.1-SNAPSHOT - jar - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.4 - 1.4 - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - package - - jar - - - - - - - - - - org.argeo.dep.jemmy - org.argeo.dep.jemmy.nb61 - 0.2.2 - test - - - junit - junit - 3.8.2 - test - - - - - false - argeo-restricted - Argeo FOSS Repository - file:///var/argeo/maven2/argeo - - - true - argeo-snapshots-restricted - Argeo FOSS Snapshots Repository - file:///var/argeo/maven2/argeo-snapshots - - - \ No newline at end of file diff --git a/sandbox/argeo.slc.testui/src/main/java/org/argeo/slc/testui/SwingTestUi.java b/sandbox/argeo.slc.testui/src/main/java/org/argeo/slc/testui/SwingTestUi.java deleted file mode 100644 index 0c1d96d7c..000000000 --- a/sandbox/argeo.slc.testui/src/main/java/org/argeo/slc/testui/SwingTestUi.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.argeo.slc.testui; - -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JDialog; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JTextField; - -public class SwingTestUi { - private static void createAndShowGUI(boolean exitOnClose) { - // Create and set up the window. - final JFrame frame = new JFrame("HelloWorldSwing"); - if (exitOnClose) - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - frame.getContentPane().setLayout(new GridLayout(4, 1)); - frame.setTitle("Mx"); - - // "Hello World" label. - final JLabel label = new JLabel("Hello World"); - frame.getContentPane().add(label); - - { - // Add menu - JMenuBar menubar = new JMenuBar(); - JMenu menuSession = new JMenu("Session"); - menubar.add(menuSession); - JMenuItem start = new JMenuItem("Start"); - menuSession.add(start); - start.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - JDialog dialog = new JDialog(frame, "New Session"); - JLabel label = new JLabel("Mx Session"); - dialog.getContentPane().add(label); - dialog.pack(); - dialog.setVisible(true); - } - }); - frame.setJMenuBar(menubar); - } - - // Change label button - { - final JButton button = new JButton("Button"); - frame.getContentPane().add(button); - button.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (label.getText().equals("Hello World")) - label.setText("Pressed!!"); - else - label.setText("Hello World"); - } - }); - } - - // Start dialog button - { - final JButton buttonStart = new JButton("Start"); - frame.getContentPane().add(buttonStart); - buttonStart.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - JDialog dialog = new JDialog(frame, "TestDialog"); - JLabel label = new JLabel("Dialog open"); - dialog.getContentPane().add(label); - dialog.pack(); - dialog.setVisible(true); - } - }); - } - - // Complex Panel - { - JPanel complexPanel = new JPanel(); - complexPanel.setLayout(new GridLayout(1, 2)); - final JTextField textTime = new JTextField(Long.toString(System - .currentTimeMillis())); - complexPanel.add(textTime); - JButton buttonTime = new JButton("Now!"); - buttonTime.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - textTime.setText(Long.toString(System.currentTimeMillis())); - } - }); - complexPanel.add(buttonTime); - frame.getContentPane().add(complexPanel); - } - - // Display the window. - frame.pack(); - frame.setVisible(true); - } - - public static void main(String[] args) { - boolean noExitOnClose = false; - for (int i = 0; i < args.length; i++) { - if (args[i].equals("noExitOnClose")) { - noExitOnClose = true; - } - } - - final boolean exitOnClose = !noExitOnClose; - javax.swing.SwingUtilities.invokeLater(new Runnable() { - public void run() { - createAndShowGUI(exitOnClose); - } - }); - } - -} diff --git a/sandbox/argeo.slc.testui/src/test/java/org/argeo/slc/jemmytest/SwingTestJemmy.java b/sandbox/argeo.slc.testui/src/test/java/org/argeo/slc/jemmytest/SwingTestJemmy.java deleted file mode 100644 index d05b5f5ad..000000000 --- a/sandbox/argeo.slc.testui/src/test/java/org/argeo/slc/jemmytest/SwingTestJemmy.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.argeo.slc.jemmytest; - -import junit.framework.TestCase; - -import org.argeo.slc.testui.SwingTestUi; -import org.netbeans.jemmy.ClassReference; -import org.netbeans.jemmy.operators.JButtonOperator; -import org.netbeans.jemmy.operators.JFrameOperator; -import org.netbeans.jemmy.operators.JLabelOperator; - -public class SwingTestJemmy extends TestCase { -// private final static Log log = LogFactory.getLog(SwingTestJemmy.class); - - public void testSimple() throws Exception { - // Start application - ClassReference classReference = new ClassReference(SwingTestUi.class - .getName()); - String[] args = { "noExitOnClose" }; - classReference.startApplication(args); - - // Find components - JFrameOperator jFrameOperator = new JFrameOperator("HelloWorldSwing"); - JButtonOperator jButtonOperator = new JButtonOperator(jFrameOperator, - "Button"); - JLabelOperator jLabelOperator = new JLabelOperator(jFrameOperator, - "Hello World"); - - // Execute actions - jButtonOperator.push(); - - // Performs checks - String textAfterPush = jLabelOperator.getText(); - assertEquals("Pressed!!", textAfterPush); - - // Clean up - jFrameOperator.close(); - } - -} diff --git a/sandbox/argeo.slc.testui/src/test/resources/log4j.properties b/sandbox/argeo.slc.testui/src/test/resources/log4j.properties deleted file mode 100644 index 48539ac94..000000000 --- a/sandbox/argeo.slc.testui/src/test/resources/log4j.properties +++ /dev/null @@ -1,15 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=WARN, console - -## Levels -# Slc -log4j.logger.org.argeo.slc=DEBUG - -## Appenders -# A1 is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c %n - diff --git a/server/org.argeo.slc.ria/.classpath b/server/org.argeo.slc.ria/.classpath deleted file mode 100644 index d0bec0f76..000000000 --- a/server/org.argeo.slc.ria/.classpath +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/server/org.argeo.slc.ria/.project b/server/org.argeo.slc.ria/.project deleted file mode 100644 index b2565a441..000000000 --- a/server/org.argeo.slc.ria/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - org.argeo.slc.ria - - - - - - - - diff --git a/server/org.argeo.slc.ria/assembly/ria-jcr.xml b/server/org.argeo.slc.ria/assembly/ria-jcr.xml deleted file mode 100644 index 6ff624f41..000000000 --- a/server/org.argeo.slc.ria/assembly/ria-jcr.xml +++ /dev/null @@ -1,17 +0,0 @@ - - ria-jcr - false - - zip - - - - src/argeo-ria-lib/jcr - - - */** - - - - \ No newline at end of file diff --git a/server/org.argeo.slc.ria/assembly/ria-slc-web.xml b/server/org.argeo.slc.ria/assembly/ria-slc-web.xml deleted file mode 100644 index ceaf8c887..000000000 --- a/server/org.argeo.slc.ria/assembly/ria-slc-web.xml +++ /dev/null @@ -1,17 +0,0 @@ - - ria-slc-web - false - - zip - - - - src/argeo-ria-lib/slc-web - - - */** - - - - \ No newline at end of file diff --git a/server/org.argeo.slc.ria/assembly/ria-slc.xml b/server/org.argeo.slc.ria/assembly/ria-slc.xml deleted file mode 100644 index ef93915a6..000000000 --- a/server/org.argeo.slc.ria/assembly/ria-slc.xml +++ /dev/null @@ -1,17 +0,0 @@ - - ria-slc - false - - zip - - - - src/argeo-ria-lib/slc - - - */** - - - - \ No newline at end of file diff --git a/server/org.argeo.slc.ria/config.json b/server/org.argeo.slc.ria/config.json deleted file mode 100644 index 9f238f5e0..000000000 --- a/server/org.argeo.slc.ria/config.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "name" : "ria", - - "include" : - [ - { - "path" : "${QOOXDOO_PATH}/component/apiviewer/api.json", - "as" : "apiconf" - }, - { - "path" : "${QOOXDOO_PATH}/component/testrunner/testrunner.json", - "as" : "testrunner" - } - ], - - "let" : - { - "APPLICATION" : "org.argeo.ria", - "QOOXDOO_PATH" : "src/qooxdoo-sdk", - "QXTHEME" : "org.argeo.ria.theme.RiaTheme", - "API_EXCLUDE" : ["qx.legacy.*"], - "LOCALES" : [ "en" ], - "ROOT" : "src/argeo-ria-src", - "BUILD_PATH" : "target/classes/argeo-ria", - "RIA_LIB_PATH" : "src/argeo-ria-lib", - "RIA_LIB_URI" : "../argeo-ria-lib", - "CACHE" : "cache" , - "CUSTOM_PACKAGE" : "org.argeo.slc.web" - }, - - "jobs" : - { - "common" : - { - "library" : - [ - { - "manifest" : "${QOOXDOO_PATH}/framework/Manifest.json", - "uri" : "../qooxdoo-sdk/framework" - }, - { - "manifest" : "${RIA_LIB_PATH}/slc/Manifest.json", - "uri" : "${RIA_LIB_URI}/slc" - }, - { - "manifest" : "${RIA_LIB_PATH}/slc-web/Manifest.json", - "uri" : "${RIA_LIB_URI}/slc-web" - }, - { - "manifest" : "${RIA_LIB_PATH}/jcr/Manifest.json", - "uri" : "${RIA_LIB_URI}/jcr" - }, - { - "manifest" : "${ROOT}/Manifest.json", - "uri" : "." - } - ], - - "include" : - [ - "${APPLICATION}.Application", - "${CUSTOM_PACKAGE}.*", - "${QXTHEME}" - ], - - "cache" : - { - "compile" : "${CACHE}" - }, - - "settings" : - { - "qx.version" : "${QXVERSION}", - "qx.theme" : "${QXTHEME}", - "qx.application" : "${APPLICATION}.Application", - "ria.branding.splashScreen" : "org.argeo.security.ria/ArgeoLogo.png", - "ria.branding.applicationTitle" : "Slc RIA", - "ria.auth.enableAuth" : "false", - "ria.auth.credentialsURI" : "/org.argeo.security.webapp/getCredentials.ria", - "ria.auth.loginURI" : "/org.argeo.security.webapp/login.ria", - "ria.auth.logoutURI" : "/org.argeo.security.webapp/logout.ria", - "ria.StartupPerspective":"org.argeo.slc.web.LauncherPerspective" - } - }, - - // -- source jobs -------------------------------------------------- - - "source-script" : - { - "extend" : ["common"], - - "compile-options" : - { - "paths" : - { - "file" : "${ROOT}/script/${APPLICATION}.js", - "root" : "${ROOT}", - "resource" : "resource", - "gzip" : false - }, - "code" : - { - "locales" : "${LOCALES}" - } - }, - - "compile" : { "type" : "source" } - }, - - - "slc-source" : - { - "run" : - [ - "source-script" - ] - }, - - // -- build jobs -------------------------------------------------- - - "build-script" : - { - "extend" : ["common"], - - "variants" : - { - "qx.debug" : ["off"] - }, - - "compile-options" : - { - "paths" : - { - "file" : "${BUILD_PATH}/script/${APPLICATION}.js", - "gzip" : false - }, - "uris" : - { - "script" : "script", - "resource" : "resource" - }, - "code" : - { - "format" : true, - "locales" : "${LOCALES}", - "optimize" : ["variables", "basecalls", "privates", "strings"] - } - }, - "compile" : { "type" : "build" } - }, - - - "build-resources": - { - "extend" : ["common"], - - "copy-resources" : - { - "target" : "${BUILD_PATH}", - "resource-filter" : true - } - }, - - "my-build-files" : - { - "extend" : ["common"], - - "copy-files" : - { - "files" : - [ - "index.html" - ], - "source" : "${ROOT}", - "target" : "${BUILD_PATH}" - } - }, - - "slc-build" : - { - "run" : - [ - "build-script", - "my-build-files", - "build-resources" - ] - }, - - "slc-api" : - { - "extend" : ["apiconf::build"], - - "let" : - { - "APIVIEWER_ROOT" : "${QOOXDOO_PATH}/component/apiviewer", - "BUILD_PATH" : "./target/site/argeo-ria-api/", - "API_INCLUDE" : ["${APPLICATION}.*", "${CUSTOM_PACKAGE}.*"] - }, - - "library" : - [ - { - "manifest" : "${ROOT}/Manifest.json", - "uri" : ".." - }, - { - "manifest" : "${RIA_LIB_PATH}/slc-web/Manifest.json", - "uri" : "${RIA_LIB_URI}/slc-web" - }, - { - "manifest" : "${RIA_LIB_PATH}/jcr/Manifest.json", - "uri" : "${RIA_LIB_URI}/jcr" - }, - { - "manifest" : "${RIA_LIB_PATH}/slc/Manifest.json", - "uri" : "${RIA_LIB_URI}/slc" - } - ] - }, - - "slc-test" : - { - "extend" : ["testrunner::build"], - - "let" : - { - "TESTRUNNER_ROOT" : "${QOOXDOO_PATH}/component/testrunner", - "TEST_INCLUDE" : "${APPLICATION}.test.*", - "BUILD_PATH" : "./target/site/argeo-ria-test/" - }, - - "library" : - [ - { - "manifest" : "${ROOT}/Manifest.json", - "uri" : ".." - } - ] - } - - - } -} diff --git a/server/org.argeo.slc.ria/doc/Architecture.gif b/server/org.argeo.slc.ria/doc/Architecture.gif deleted file mode 100644 index 50fa8eb5a2ecc12da162795fb8bbc16957ceef89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34826 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 Bp27eC diff --git a/server/org.argeo.slc.ria/doc/Argeo-RIA-DeveloperDoc.odt b/server/org.argeo.slc.ria/doc/Argeo-RIA-DeveloperDoc.odt deleted file mode 100644 index 224d3f431cf733f2f814ccdb83223cf08b0f95ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65422 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 ijV*to|G$Lo`M*fD-OSymf)A~P9XSekL diff --git a/server/org.argeo.slc.ria/doc/config.json b/server/org.argeo.slc.ria/doc/config.json deleted file mode 100644 index a58ce3280..000000000 --- a/server/org.argeo.slc.ria/doc/config.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "name" : "ria", - - "include" : - [ - { - "path" : "src/main/webapp/qooxdoo-0.8-sdk/component/apiviewer/api.json", - "as" : "apiconf" - }, - { - "path" : "src/main/webapp/qooxdoo-0.8-sdk/component/testrunner/testrunner.json", - "as" : "testrunner" - } - ], - - "let" : - { - "APPLICATION" : "org.argeo.ria", - "QOOXDOO_PATH" : "src/main/webapp/qooxdoo-0.8-sdk/framework", - "QOOXDOO_URI" : "../qooxdoo-0.8-sdk/framework", - "QXTHEME" : "qx.theme.Modern", - "QXICONTHEME" : ["Tango"], - "API_EXCLUDE" : ["qx.legacy.*"], - "LOCALES" : [ "en" ], - "ROOT" : "src/main/webapp/argeo-ria-src", - "BUILD_PATH" : "src/main/webapp/argeo-ria", - "RIA_LIB_PATH" : "src/main/webapp/argeo-ria-lib", - "RIA_LIB_URI" : "../argeo-ria-lib", - "CACHE" : "cache" , - "CUSTOM_PERSPECTIVE" : "org.argeo.ria.sample.Perspective" - }, - - "jobs" : - { - "common" : - { - "library" : - [ - { - "manifest" : "${QOOXDOO_PATH}/Manifest.json", - "uri" : "${QOOXDOO_URI}" - }, - { - "manifest" : "${RIA_LIB_PATH}/sample/Manifest.json", - "uri" : "${RIA_LIB_URI}/sample" - }, - { - "manifest" : "${ROOT}/Manifest.json", - "uri" : ".." - } - ], - - "include" : - [ - "${APPLICATION}.Application", - "${CUSTOM_PERSPECTIVE}", - "${QXTHEME}" - ], - - "cache" : - { - "compile" : "${CACHE}" - }, - - "settings" : - { - "qx.version" : "${QXVERSION}", - "qx.theme" : "${QXTHEME}", - "qx.application" : "${APPLICATION}.Application", - "ria.Perspective": "${CUSTOM_PERSPECTIVE}" - } - }, - - // -- source jobs -------------------------------------------------- - - "source-script" : - { - "extend" : ["common"], - - "compile-source" : - { - "file" : "${ROOT}/script/${APPLICATION}.js", - "locales" : "${LOCALES}", - "root" : "${ROOT}" - } - }, - - - "slc-source" : - { - "run" : - [ - "source-script" - ] - }, - - // -- build jobs -------------------------------------------------- - - "build-script" : - { - "extend" : ["common"], - - "variants" : - { - "qx.debug" : ["off"] - }, - - "compile-dist" : - { - "target" : "${BUILD_PATH}", - "file" : "${BUILD_PATH}/script/${APPLICATION}.js", - "uri" : "script/${APPLICATION}.js", - "root" : "${BUILD_PATH}", - "format" : "on", - "locales" : "${LOCALES}", - "optimize" : ["basecalls", "variables", "privates", "strings"] - } - }, - - - "build-resources": - { - "extend" : ["common"], - - "copy-resources" : - { - "target" : "${BUILD_PATH}", - "resource-filter" : true - } - }, - - "my-build-files" : - { - "extend" : ["common"], - - "copy-files" : - { - "files" : - [ - "index.html" - ], - "source" : "${ROOT}", - "target" : "${BUILD_PATH}" - } - }, - - "slc-build" : - { - "run" : - [ - "build-resources", - "build-script", - "my-build-files" - ] - }, - - "slc-api" : - { - "extend" : ["apiconf::build"], - - "let" : - { - "APIVIEWER_ROOT" : "${QOOXDOO_PATH}/../component/apiviewer", - "BUILD_PATH" : "./target/site/argeo-ria-api/", - "API_INCLUDE" : ["${APPLICATION}.*", "${CUSTOM_PERSPECTIVE}"] - }, - - "library" : - [ - { - "manifest" : "${ROOT}/Manifest.json", - "uri" : ".." - }, - { - "manifest" : "${RIA_LIB_PATH}/sample/Manifest.json", - "uri" : "${RIA_LIB_URI}/sample" - } - ] - }, - - "slc-test" : - { - "extend" : ["testrunner::build"], - - "let" : - { - "TESTRUNNER_ROOT" : "${QOOXDOO_PATH}/../component/testrunner", - "TEST_INCLUDE" : "${APPLICATION}.test.*", - "BUILD_PATH" : "./target/site/argeo-ria-test/" - }, - - "library" : - [ - { - "manifest" : "${ROOT}/Manifest.json", - "uri" : ".." - } - ] - } - - - } -} diff --git a/server/org.argeo.slc.ria/doc/config/jetty/jetty-test-local.xml.template b/server/org.argeo.slc.ria/doc/config/jetty/jetty-test-local.xml.template deleted file mode 100644 index d8f927528..000000000 --- a/server/org.argeo.slc.ria/doc/config/jetty/jetty-test-local.xml.template +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - org.mortbay.jetty.webapp.WebInfConfiguration - org.mortbay.jetty.plus.webapp.EnvConfiguration - org.mortbay.jetty.plus.webapp.Configuration - org.mortbay.jetty.webapp.JettyWebXmlConfiguration - org.mortbay.jetty.webapp.TagLibConfiguration - - - - - - - - - - jdbc/mainDs - - - - - - sa - - - - - \ No newline at end of file diff --git a/server/org.argeo.slc.ria/doc/config/jetty/jetty-test.xml b/server/org.argeo.slc.ria/doc/config/jetty/jetty-test.xml deleted file mode 100644 index fda6c1692..000000000 --- a/server/org.argeo.slc.ria/doc/config/jetty/jetty-test.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - org.mortbay.jetty.webapp.WebInfConfiguration - org.mortbay.jetty.plus.webapp.EnvConfiguration - org.mortbay.jetty.plus.webapp.Configuration - org.mortbay.jetty.webapp.JettyWebXmlConfiguration - org.mortbay.jetty.webapp.TagLibConfiguration - - - - - - - - - - jdbc/mainDs - - - - - - sa - - - - - \ No newline at end of file diff --git a/server/org.argeo.slc.ria/doc/config/jetty/webdefault.xml b/server/org.argeo.slc.ria/doc/config/jetty/webdefault.xml deleted file mode 100644 index e5b7ececa..000000000 --- a/server/org.argeo.slc.ria/doc/config/jetty/webdefault.xml +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Default web.xml file. - This file is applied to a Web application before it's own WEB_INF/web.xml file - - - - - - - - - - org.mortbay.jetty.webapp.NoTLDJarPattern - start.jar|ant-.*\.jar|dojo-.*\.jar|jetty-.*\.jar|jsp-api-.*\.jar|junit-.*\.jar|servlet-api-.*\.jar|dnsns\.jar|rt\.jar|jsse\.jar|tools\.jar|sunpkcs11\.jar|sunjce_provider\.jar|xerces.*\.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default - org.mortbay.jetty.servlet.DefaultServlet - - acceptRanges - true - - - dirAllowed - true - - - redirectWelcome - false - - - maxCacheSize - 256000000 - - - maxCachedFileSize - 10000000 - - - maxCachedFiles - 1000 - - - cacheType - both - - - gzip - true - - - useFileMappedBuffer - false - - - 0 - - - default / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - jsp - org.apache.jasper.servlet.JspServlet - - logVerbosityLevel - DEBUG - - - fork - false - - - xpoweredBy - false - - - 0 - - - - jsp - *.jsp - *.jspf - *.jspx - *.xsp - *.JSP - *.JSPF - *.JSPX - *.XSP - - - - - - - - - - - - - - - - - - - - - - - - - - - - 30 - - - - - - - - - - - - - index.html - index.htm - index.jsp - - - - - arISO-8859-6 - beISO-8859-5 - bgISO-8859-5 - caISO-8859-1 - csISO-8859-2 - daISO-8859-1 - deISO-8859-1 - elISO-8859-7 - enISO-8859-1 - esISO-8859-1 - etISO-8859-1 - fiISO-8859-1 - frISO-8859-1 - hrISO-8859-2 - huISO-8859-2 - isISO-8859-1 - itISO-8859-1 - iwISO-8859-8 - jaShift_JIS - koEUC-KR - ltISO-8859-2 - lvISO-8859-2 - mkISO-8859-5 - nlISO-8859-1 - noISO-8859-1 - plISO-8859-2 - ptISO-8859-1 - roISO-8859-2 - ruISO-8859-5 - shISO-8859-5 - skISO-8859-2 - slISO-8859-2 - sqISO-8859-2 - srISO-8859-5 - svISO-8859-1 - trISO-8859-9 - ukISO-8859-5 - zhGB2312 - zh_TWBig5 - - - - - Disable TRACE - / - TRACE - - - - - - diff --git a/server/org.argeo.slc.ria/doc/config/tomcat/org.argeo.slc.webapp.xml b/server/org.argeo.slc.ria/doc/config/tomcat/org.argeo.slc.webapp.xml deleted file mode 100644 index 7ec1a09a0..000000000 --- a/server/org.argeo.slc.ria/doc/config/tomcat/org.argeo.slc.webapp.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - WEB-INF/web.xml - - - - - - diff --git a/server/org.argeo.slc.ria/pom.xml b/server/org.argeo.slc.ria/pom.xml deleted file mode 100644 index 232244bab..000000000 --- a/server/org.argeo.slc.ria/pom.xml +++ /dev/null @@ -1,180 +0,0 @@ - - 4.0.0 - - org.argeo.slc - server - 0.13.1-SNAPSHOT - .. - - org.argeo.slc.server - org.argeo.slc.ria - jar - SLC RIA - - - - src - - index.jsp - WEB-INF/* - - - - - - org.argeo.maven.plugins - maven-argeo-qooxdoo-plugin - ${version.maven-argeo-qooxdoo} - - 1.1.0 - - - - env - initialize - - env - - - - env-site - pre-site - - env - - - - slc-source - test - - generate - - - slc-source - - - - slc-build - test - - generate - - - slc-build - - - - - - maven-jar-plugin - - - org.apache.felix - maven-bundle-plugin - - - - - javax.servlet, - javax.servlet.http, - javax.servlet.jsp, - javax.servlet.jsp.jstl.core, - javax.servlet.jsp.jstl.fmt, - javax.servlet.jsp.jstl.tlv, - javax.servlet.resources - - org.argeo.slc.ria - - - - - bundle-manifest - process-classes - - manifest - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - unpack-argeo-ria-sdk - initialize - - unpack - - - - - org.argeo.ria - org.argeo.ria.core - ${version.argeo-ria} - ria - zip - src/argeo-ria-src - - - true - true - - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - assembly-ria-slc - package - - single - - - - assembly/ria-slc.xml - - - - - assembly-ria-slc-web - package - - single - - - - assembly/ria-slc-web.xml - - - - - assembly-ria-jcr - package - - single - - - - assembly/ria-jcr.xml - - - - - - - - - - - org.argeo.ria - org.argeo.ria.core - ${version.argeo-ria} - - - - \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/WEB-INF/web.xml b/server/org.argeo.slc.ria/src/WEB-INF/web.xml deleted file mode 100644 index eb9f2a54a..000000000 --- a/server/org.argeo.slc.ria/src/WEB-INF/web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - SLC Web UI - diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/Manifest.json b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/Manifest.json deleted file mode 100644 index 90ae5d1d4..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/Manifest.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "info" : - { - "name" : "org.argeo.jcr.ria", - - "summary" : "Jcr Ria library", - "description" : "Utilities for JCR RIA", - - "homepage" : "http://www.argeo.org/", - - "license" : "LGPL", - "authors" : - [ - { - "name" : "Charles du Jeu", - "email" : "charles.dujeu@gmail.com" - } - ], - - "version" : "trunk", - "qooxdoo-versions": ["1.1"] - }, - - "provides" : - { - "namespace" : "org.argeo.jcr.ria", - "encoding" : "utf-8", - "class" : "class", - "resource" : "resource", - "translation" : "translation", - "type" : "library" - } -} - diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/JcrBrowser.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/JcrBrowser.js deleted file mode 100644 index 241163014..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/JcrBrowser.js +++ /dev/null @@ -1,99 +0,0 @@ -/** - * IPerspective Implementation : Horizontal split pane defining two panes, "list" and "applet". - */ - -/* ************************************************************************ - -#asset(org/argeo/jcr/ria/*) - -************************************************************************ */ -qx.Class.define("org.argeo.jcr.ria.JcrBrowser", -{ - extend : qx.core.Object, - implement : [org.argeo.ria.components.IPerspective], - - construct : function(){ - this.base(arguments); - org.argeo.ria.util.Element.DEFAULT_NAMESPACE_MAP = - { - slc:"http://argeo.org/projects/slc/schemas", - fn:"http://www.w3.org/2005/xpath-functions", - fn_old:"http://www.w3.org/2004/10/xpath-functions", - xs:"http://www.w3.org/2001/XMLSchema" , - jcr:"http://www.jcp.org/jcr/1.0" , - mix:"http://www.jcp.org/jcr/mix/1.0", - sv:"http://www.jcp.org/jcr/sv/1.0" , - rep:"internal" , - nt:"http://www.jcp.org/jcr/nt/1.0" - }; - }, - - statics : { - LABEL : "JCR Browser (Tech Preview)", - ICON : "org/argeo/slc/ria/utilities-terminal.png"/*, - ACCESS : "!ROLE_ANONYMOUS"*/ - }, - - members : { - _splitPane : null, - - initViewPanes : function(viewsManager){ - - this._tBar = new org.argeo.ria.components.ViewPane("toolbar", ""); - this._tBar.header.setVisibility("excluded"); - viewsManager.getViewPanesContainer().add(this._tBar); - - this._splitPane = new qx.ui.splitpane.Pane("horizontal"); - this.leftPane = new org.argeo.ria.components.TabbedViewPane("treeview", "Tree View"); - this._splitPane.add(this.leftPane, 1); - var mainPane = new org.argeo.ria.components.TabbedViewPane("editor", "Editor View", true); - this._splitPane.add(mainPane, 2); - viewsManager.registerViewPane(this._tBar); - viewsManager.registerViewPane(mainPane); - viewsManager.registerViewPane(this.leftPane); - viewsManager.getViewPanesContainer().add(this._splitPane, {flex:1000}); - - new qx.util.DeferredCall(function(){ - this._tBar.setHeight(32); - }, this).schedule(); - - - }, - - initViews : function(viewsManager){ - var nodeProvider = new org.argeo.jcr.ria.provider.XmlNodeProvider(); - nodeProvider.initProvider({ - xmlSrc : "/org.argeo.slc.webapp/getJcrItem.jcr?", - dynamic : true, - pathParameter:"path" - }); - var rootNode = new org.argeo.jcr.ria.model.Node("Root", nodeProvider, true); - rootNode.setPath('/slc'); - var dataModel = new org.argeo.jcr.ria.model.DataModel(rootNode); - - var inputView = viewsManager.initIViewClass(org.argeo.jcr.ria.views.ContextNodeInputView, "toolbar", dataModel); - inputView.load(); - - var listView = viewsManager.initIViewClass(org.argeo.jcr.ria.views.ListView, "editor", dataModel); - listView.load(); - - var treeView = viewsManager.initIViewClass(org.argeo.jcr.ria.views.TreeView, "treeview", dataModel); - treeView.load(); - - var queriesView = viewsManager.initIViewClass(org.argeo.jcr.ria.views.QueriesView, "treeview", dataModel); - queriesView.load(); - - var pages = this.leftPane.getSelectables(); - this.leftPane.setSelection([pages[0]]); - - dataModel.requireContextChange(); - }, - - remove : function(viewsManager){ - viewsManager.getViewPanesContainer().remove(this._splitPane); - viewsManager.getViewPanesContainer().remove(this._tBar); - } - - } - -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/AbstractItem.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/AbstractItem.js deleted file mode 100644 index 21de4a499..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/AbstractItem.js +++ /dev/null @@ -1,50 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.model.AbstractItem", -{ - type : "abstract", - extend : qx.core.Object, - - properties : { - path : { - check : "String" - }, - name : { - check : "String" - }, - newItem : { - check : "Boolean", - event : "changeNew" - }, - modified : { - check : "Boolean", - event : "changeModified" - }, - node : { - check : "Boolean", - init : true - }, - parent : { - check : "org.argeo.jcr.ria.model.AbstractItem", - nullable : true, - init : null - }, - root : { - check : "org.argeo.jcr.ria.model.AbstractItem" - } - }, - - members : { - itemIsRoot : function(){ - return (this.getRoot() == this); - }, - fromDomElement : function(domElement){ - // TO BE IMPLEMENTED BY SUBCLASSES - }, - toXmlString : function(){ - // TO BE IMPLEMENTED BY SUBCLASSES - }, - remove : function(){ - // TO BE IMPLEMENTED BY SUBCLASSES - } - } - -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/DataModel.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/DataModel.js deleted file mode 100644 index a8f75c0eb..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/DataModel.js +++ /dev/null @@ -1,74 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.model.DataModel", { - extend : qx.core.Object, - - events : { - "changeContextNode" : "qx.event.type.Data" - }, - - properties : { - rootNode : { - check : "org.argeo.jcr.ria.model.Node", - event : "changeRootNode" - }, - contextNode : { - check : "org.argeo.jcr.ria.model.Node" - }, - selection : { - check : "Array", - event : "changeSelection", - init : [] - }, - selectionSource : { - check : "Object", - init : null, - nullable : true - } - }, - - construct : function(rootNode){ - this.base(arguments); - this.setRootNode(rootNode); - }, - - members : { - requireContextChange : function(path){ - var targetNode; - var rootNode = this.getRootNode(); - this.setSelection([]); - if(!path){ - targetNode = rootNode; - }else{ - // Create a fake node - if(path[path.length-1] == '/'){ - path = path.substring(0, path.length-1); - } - var base = path.substring(path.lastIndexOf("/")+1); - targetNode = new org.argeo.jcr.ria.model.Node(base, rootNode.getNodeProvider()); - rootNode.addChild(targetNode); - targetNode.setPath(path); - } - var observer = function(event){ - var state = event.getData(); - if(state == "loading"){ - targetNode.loadingNode = new org.argeo.jcr.ria.model.Node("loading"); - targetNode.addChild(targetNode.loadingNode); - }else if(state == "loaded"){ - if(targetNode.loadingNode) { - targetNode.loadingNode.remove(); - targetNode.loadingNode = null; - } - targetNode.removeListener("changeLoadState", observer, this); - } - this.setContextNode(targetNode); - this.fireDataEvent("changeContextNode", targetNode); - }; - targetNode.addListener("changeLoadState", observer, this); - targetNode.load(1); - }, - setSelectionWithSource : function(selection, source){ - this.setSelectionSource(source); - this.setSelection(selection); - } - } - -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Node.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Node.js deleted file mode 100644 index 81edc5218..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Node.js +++ /dev/null @@ -1,154 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.model.Node", { - extend : org.argeo.jcr.ria.model.AbstractItem, - - events : { - "clear" : "qx.event.type.Event", - "childNodeAdded" : "qx.event.type.Data", - "childNodeRemoved" : "qx.event.type.Data", - "childrenChanged" : "qx.event.type.Data", - - "propertyAdded" : "qx.event.type.Data", - "propertyRemoved" : "qx.event.type.Data", - "propertiesChanged" : "qx.event.type.Data" - }, - properties : { - loadState : { - check : "String", - init : "empty", // Can be "empty" => "loading" => "loaded" - event : "changeLoadState" - }, - nodeProvider : { - check : "org.argeo.jcr.ria.provider.INodeProvider", - nullable : true - } - }, - - construct : function(nodeName, nodeProvider, isRoot){ - this.base(arguments); - this._children = {}; - this._properties = {}; - this.setName(nodeName); - if(nodeProvider){ - this.setNodeProvider(nodeProvider); - } - if(isRoot){ - this.setPath(""); - this.setRoot(this); - } - }, - - members : { - _children : null, - _properties : null, - - load : function(depth, filter){ - if(!depth) depth = 1; - if(!filter) filter = ''; - this.getNodeProvider().loadNode(this, depth, filter); - }, - - remove : function(){ - if(this.itemIsRoot()) return; - this.getParent().removeChild(this.getName()); - }, - - fromDomElement : function(domElement){ - if(domElement.nodeType != 1) return; - for(var i=0;i"; - return string; - }, - - getChild : function(childName){ - return this._children[childName]; - }, - getProperty : function(propertyName){ - return this._properties[propertyName]; - }, - addChild : function(childNode){ - this._children[childNode.getName()] = childNode; - - childNode.setParent(this); - childNode.setRoot(this.getRoot()); - childNode.setPath(this.getPath() + "/" + childNode.getName()); - - this.fireDataEvent("childNodeAdded", childNode); - this.fireDataEvent("childNodeChanged"); - }, - removeChild : function(childName){ - delete(this._children[childName]); - this.fireDataEvent("childNodeRemoved", childName); - this.fireDataEvent("childNodeChanged"); - }, - addProperty : function(property){ - this._properties[property.getName()] = property; - - property.setParent(this); - property.setRoot(this.getRoot()); - property.setPath(this.getPath() + "/" + property.getName()); - - this.fireDataEvent("propertyAdded", property); - this.fireDataEvent("propertiesChanged"); - }, - removeProperty : function(propertyName){ - delete(this._properties[propertyName]); - this.fireDataEvent("propertyRemoved", propertyName); - this.fireDataEvent("propertiesChanged"); - }, - getChildren : function(){ - return qx.lang.Object.getValues(this._children); - }, - getProperties : function(){ - return qx.lang.Object.getValues(this._properties); - }, - getChildrenCount : function(){ - return qx.lang.Object.getLength(this._children); - }, - getPropertiesCount : function(){ - return qx.lang.Object.getLength(this._properties); - } - } -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Property.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Property.js deleted file mode 100644 index 988673d61..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/Property.js +++ /dev/null @@ -1,38 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.model.Property", { - extend : org.argeo.jcr.ria.model.AbstractItem, - - properties : { - node : { - refine : true, - init : false - }, - value : { - event : "changeValue" - }, - local : { - check : "Boolean", - init : false - } - }, - - construct : function(propertyName){ - this.base(arguments); - this.setName(propertyName); - }, - - members : { - remove : function(){ - this.getParent().removeProperty(this.getName()); - }, - - fromDomElement : function(domElement){ - if(domElement.nodeType != 2) return; - this.setValue(domElement.nodeValue); - }, - toXmlString : function(){ - if(this.isLocal()) return ""; - return this.getName()+"="+'"'+this.getValue()+'"'; - } - - } -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/INodeProvider.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/INodeProvider.js deleted file mode 100644 index 867ad611a..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/INodeProvider.js +++ /dev/null @@ -1,6 +0,0 @@ -qx.Interface.define("org.argeo.jcr.ria.provider.INodeProvider", { - members : { - initProvider : function(properties){}, - loadNode : function(path, depth, filter){} - } -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js deleted file mode 100644 index 19990d04f..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js +++ /dev/null @@ -1,73 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.provider.XmlNodeProvider", { - extend : qx.core.Object, - implement : [org.argeo.jcr.ria.provider.INodeProvider], - - properties : { - settings :{ - check : "Object" - }, - xmlDoc : { - - }, - xmlDocLoaded : { - check : "Boolean", - init : false, - event : "changeXmlDocLoaded" - } - }, - - members : { - _xmlDoc : null, - initProvider : function(properties){ - this.setSettings(properties); - }, - /** - * - * @param node org.argeo.jcr.ria.model.Node - * @param nodeCallback Function - * @param childCallback Function - */ - loadNode : function(node, depth, filter){ - if(node.getLoadState() == "loaded") return; - - if(this.getXmlDocLoaded()){ - // Parse document and load - node.setName(this._xmlDoc.documentElement.nodeName); - var properties = this.getSettings(); - node.fromDomElement(this._xmlDoc.documentElement); - node.setLoadState("loaded"); - if(properties.dynamic){ - this.setXmlDocLoaded(false); - } - }else{ - this.addListenerOnce("changeXmlDocLoaded", function(){ - this.loadNode(node, depth, filter); - }, this); - node.setLoadState("loading"); - this.loadXmlDoc(node, depth, filter); - } - }, - - loadXmlDoc : function(node, depth, filter){ - var properties = this.getSettings(); - if(!properties.xmlSrc && !properties.xmlString) return; - if(properties.xmlSrc){ - var request = new org.argeo.ria.remote.Request(properties.xmlSrc, 'GET', 'application/xml'); - if(properties.dynamic && properties.pathParameter){ - request.setParameter(properties.pathParameter, (node.getPath()|| "/")); - if(depth && depth != -1){ - request.setParameter("depth", depth); - } - } - request.addListener("completed", function(response){ - this._xmlDoc = response.getContent(); - this.setXmlDocLoaded(true); - }, this); - request.send(); - }else{ - this._xmlDoc = qx.xml.Document.fromString(properties.xmlString); - this.setXmlDocLoaded(true); - } - } - } -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/ContextNodeInputView.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/ContextNodeInputView.js deleted file mode 100644 index bc373b087..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/ContextNodeInputView.js +++ /dev/null @@ -1,114 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.views.ContextNodeInputView", { - extend : qx.ui.container.Composite, - implement : [org.argeo.ria.components.IView], - - properties : { - /** - * The commands definition Map that will be automatically added and wired to the menubar and toolbar. - * See {@link org.argeo.ria.event.CommandsManager#definitions} for the keys to use for defining commands. - */ - commands : { - init : {} - }, - viewSelection : { - nullable:false, - check:"org.argeo.ria.components.ViewSelection" - }, - instanceId : { - init:"inputViewer", - event : "changeInstanceId" - }, - instanceLabel : { - init:"Xml Editor", - event : "changeInstanceLabel" - }, - dataModel : { - - } - }, - - construct : function(){ - this.base(arguments); - }, - - members : { - /** - * The implementation should contain the GUI initialisation. - * This is the role of the manager to actually add the graphical component to the pane, - * so it's not necessary to do it here. - * @param viewPane {org.argeo.ria.components.ViewPane} The pane manager - * @param data {Mixed} Any object or data passed by the initiator of the view - * @return {Boolean} - */ - init : function(viewPane, dataModel){ - this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); - this.set({ - layout : new qx.ui.layout.HBox(), - dataModel : dataModel, - paddingTop: 5, - paddingLeft: 5, - decorator : 'toolbar' - }); - - this.contextInput = new qx.ui.form.TextField(); - this.contextInput.setWidth(100); - this.contextInput.setTextAlign("right"); - this.add(this.contextInput); - - var sep = new qx.ui.basic.Label(":"); - sep.set({paddingTop:3, paddingLeft:2,paddingRight:2}); - this.add(sep); - - this.selectionInput = new qx.ui.form.TextField(); - this.selectionInput.setWidth(300); - this.selectionInput.setReadOnly(true); - this.add(this.selectionInput); - - this._attachInputsToDM(); - }, - /** - * The implementation should contain the real data loading (i.o. query...) - * @return {Boolean} - */ - load : function(){ - }, - - _attachInputsToDM : function(){ - var dm = this.getDataModel(); - this.contextInput.addListener("keypress", function(event){ - if(event.getKeyIdentifier() != "Enter") return; - var path = this.contextInput.getValue(); - dm.requireContextChange(path); - }, this); - dm.addListener("changeContextNode", function(event){ - var ctxtNode = event.getData(); - this.contextInput.setValue(ctxtNode.getPath()); - }, this); - dm.addListener("changeSelection", function(event){ - var sel = event.getData(); - if(!sel.length){ - this.selectionInput.setValue("/"); - }else{ - this.selectionInput.setValue(sel[0].getPath().substring(this.contextInput.getValue().length)); - } - },this); - }, - - /** - * Whether this component is already contained in a scroller (return false) or not (return true). - * @return {Boolean} - */ - addScroll : function(){ - return false; - }, - /** - * Called at destruction time - * Perform all the clean operations (stopping polling queries, etc.) - */ - close : function(){ - - } - } - - -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js deleted file mode 100644 index 3d3a1d98a..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js +++ /dev/null @@ -1,46 +0,0 @@ -qx.Class.define("org.argeo.jcr.ria.views.JcrTreeFolder", { - extend : org.argeo.ria.components.DynamicTreeFolder, - properties : { - jcrNode : { - - } - }, - construct : function(jcrNode){ - this.base(arguments, jcrNode.getName(), org.argeo.jcr.ria.views.JcrTreeFolder.loader); - this.setJcrNode(jcrNode); - }, - - statics : { - loader : function(treeFolder){ - if(treeFolder.getState() == "loaded") return; - var jcrNode = treeFolder.getJcrNode(); - jcrNode.addListener("changeLoadState", function(event){ - if(event.getData() == "loaded"){ - org.argeo.jcr.ria.views.JcrTreeFolder.jcrNodeToTreeFolder(jcrNode, treeFolder); - }else if(event.getData() == "empty"){ - treeFolder.removeAll(); - treeFolder.setOpen(false); - } - }); - if(jcrNode.getLoadState()=="loaded"){ - org.argeo.jcr.ria.views.JcrTreeFolder.jcrNodeToTreeFolder(jcrNode, treeFolder); - }else if(jcrNode.getLoadState() == "empty"){ - jcrNode.load(); - } - }, - - jcrNodeToTreeFolder : function(loadedNode, parentTreeFolder){ - var children = loadedNode.getChildren(); - for(var i=0;i]*)>", "gi"); - var TAG_END_PATTERN = new RegExp("", "gi"); - var TAG_CLOSE_PATTERN = new RegExp("(/?>)", "gi"); - var TAG_ATTRIBUTE = new RegExp("\\s([0-9a-zA-Z:_]+)\\=\"([^\"]*)\"", "gi"); - // Not implemented yet - var TAG_COMMENT = new RegExp("()", "gi"); - var TAG_CDATA_START = new RegExp("(\\)", "gi"); - - xmlString = xmlString.replace(TAG_START_PATTERN, 'xml_div_begin<xml_tagname_begin$1xml_tagname_end$2>'); - xmlString = xmlString.replace(TAG_END_PATTERN, '</xml_tagname_begin$1xml_tagname_end>xml_div_end'); - xmlString = xmlString.replace(TAG_CLOSE_PATTERN, '>'); - - xmlString = xmlString.replace(TAG_ATTRIBUTE, ' xml_attname_begin$1xml_attname_end="xml_attvalue_begin$2xml_attvalue_end"'); - - //xmlString = qx.xml.String.escape(xmlString); - xmlString = xmlString.replace(new RegExp("(xml_div_begin)", "g"), '
'); - xmlString = xmlString.replace(new RegExp("(xml_div_end)", "g"), '
'); - xmlString = xmlString.replace(new RegExp("(xml_tagname_begin)", "g"), ''); - xmlString = xmlString.replace(new RegExp("(xml_tagname_end)", "g"), ''); - xmlString = xmlString.replace(new RegExp("(xml_attname_begin)", "g"), ''); - xmlString = xmlString.replace(new RegExp("(xml_attname_end)", "g"), ''); - xmlString = xmlString.replace(new RegExp("(xml_attvalue_begin)", "g"), ''); - xmlString = xmlString.replace(new RegExp("(xml_attvalue_end)", "g"), ''); - xmlString = '
' + xmlString + '
'; - this.htmlPane.setHtml(xmlString); - var call = new qx.util.DeferredCall(function(){ - var htmlDom = this.htmlPane.getContentElement().getDomElement(); - var spans = qx.bom.Selector.query("span", htmlDom); - for(var i=0;i 1){ - var initLength = parts.length; - for(var i=0;iVneHxw-JSDXJ%f9p=&J5|->UAW zL{-@ff|+yU@$0*tX8D41&WI5JhNCpw*jT-FX5Z!}z}ngxgTWwMUS4){0tedFrLbg| zuAM&&0?s-R5Iu6qh$h~9RFx=-J_4s_JTr5w^_0XB)+&GasAP&_j4Usr|P}O7=tl}EX(lTBO-`Qu2e3UQI#OEwC6f-PSrV&wH9N{4&n?V zf&$*T?LAfH>b;dKt$OgJRk4fbjvr(^PKXCFS(c%yhzLOtP_Nbb9*=mtnnrlN^ZeoE zrvbpJV+*%yjoKo>mk~e(YONjB9gqNo`#F1(b~;KP026^Ub6X_#pMU)~IO}@(Bld@B zccD?od7me!f>-@x%}){QwsL`PFJ5nVS|q8*tLB8=FdSrGbAjmRa6O7s)C!R4002ovPDHLkV1kNT B5k~+3 diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/edit-delete.png b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/edit-delete.png deleted file mode 100644 index 9ff19b4d6d9f5e47ce0914518e1be643fae4f5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmV-V1F-ywP); z_IREhxZTiJRJ58YvCjn&o1 z;=+QIPtzS%gW*mB;W^G34+M~@(dd(a==1G>VW0?yk0u&xEtalN6BGA@>FM}!jpp`L zNy%LRNT;Y`8N(pr_wOWuJ%?isDistIRh9b3jXdA89thlz+U=6Au<+JoQBhxXdD$Sk zT=+IKGn)i_(de5n%ewNEO7m!XdV4BzP7r!GgTcOt-5%GdR9&o0b}|%;d3K%7mjD1l z2nZo~mzQ^S)npPE8OA$C(|v=0JW(42=(h^Rq@88Sm)hFMa8AzkMD4drw3L-S%GYYI zV0k$!AP9~);E*Iqk^{x6j0`<0D??td_f`GcTE|~c830}|%!Lz1V{dvarpp9W1OP|K zo+y{QZHtS2oq{k-2;mO_6h$ckr~u>uQ0D^Lvp}5$D6GIoAK(Gt|Mh+V2ogfbp$+~u ZegYL^TNA1k;nn~E002ovPDHLkV1iJtdSUHq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10&z)1K~y-6wUx1J6hRcmzxQ@8cPA!hV~`-2MoUv@m4CpLVwEal zVL-4~J4*wiU@JDJ34t^gc7gPwplu3KLqx$CFMGRpd$Tj|S?unyd-2T4;RkP+ncex# zn>X+6lB(i=$S)6wKv!;W%-3s7gD<9%%Dd+`_eKR%+2f`AuO2ThTv+WU779T74FD4C zem>ZG{pk9gQNUbr-}BB-)ayZP5k#p5k&&QnGzg6ZVGqIdRAX^@dCMCGTn&Y)TI=AP zKvW^3P*o^$&$)KFbE)xu^~sL&eI_OVL|`I-K)as~*S4SD*gOVys<7hVL?BWE=Wt@? znVG2tLj)@T5rLV(L||e#l_db1{TLI0Zmn&9oSU7T^O&1OSc~XWWt7iQ`58b2sAzZp zApExe;Mzq$Kczl=IZfPbG{?z4A~feYySM)3CDwL)=HaVGkk5?7NL&H;jEj74Ot8mD zjIDx`B#nIUSY7;+JSKE{X#|wAqTMm=ldvMl(onV1FErtMh`J`MfTJW0rF3zs*+M4@ z>+;k)VPl1&9h-Iq94991r4ETH6~~E(ugY3M(zC4!SOnjX;uOXez_R-ooEh*mYmVX+ zR%E{dHpYGV6(#WfT4j+8zySpn!>p3CX#(O-3S-<}1+1xk`{QTZoSh9OMmzYi9dU3N z_SBj;K)QIF(xiKn+>mD}WS00-y^Z1`y_U2q03`l!pD9^3524ms=4w0pI}G mys!EP$WZXO8t>!q7ySn4GGSm5Y`jeX0000=G`P)OQ51rWSfo%a zM6k29v9r<6#zOr9egFkQY(y&qf{lh?8d-w4NnEpk-o7{Q9*g~#2x}I+aA)q!ojDxN znK4QHPb8z_%KcYsXID<$@!VWK$}EL<2CcHTVZy_sc1 zg#R4=uWA6M?y-Ahb)L9cmSalFfIG8J9*_Eyz&+68F&)lEB0?qkQOuy2TQ!vz4HUF}9?CrXiN z*4It;jIK$`lEL8F(s>yH><-r7+u>E*)?g`ukY#4WusfTZ+FCbA=3nCRxA7_ok4Llq zhd_AI67sXM7yyJ+u!Kk?Q}0WUCySR_4{i=-c0!?u&)_5~6u^MWek4-f`@^||(wZt0 zulJ@`Uc%9R&Ok*94pQl4YWwbZ&RdDsPT_iYe<~Vz^)tr60i=_Ov)iN11;$tvo)te+ zA!#p!&Dr3p?HgM@&3t_3pZvawTq=|SAPSKOkRu{0C1524b^x{-*I)}s@yzp841g>a r7D5uyZwF; diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/system-search.png b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/system-search.png deleted file mode 100644 index 783d0e2eaffc928fe17d0f1f4d43fa4fbf697964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1246 zcmV<41R?v0P)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11Y1c&K~y-6wbNf{TU8tf@b9_j=1&unc3T>nxYn)Nnx(R~w%fYm zv_cii*j5n)bwyfX?|liVAVXg-RT!fTCxS9%ecXfI$#8>~!sx8a9BS{@cC|?)w`r2L z>1}fVoO^t*g>2YtARhQ}4!?)b`SJUmLpbO7KbH7!$%_{+o^EMr`7js^9S>)j|osKFT4L-LxWMzt|qxgF3GhQ&UsF zEG#UXjK|~ZGr^K1IeU6~)aUm_>MqN(L+6kPv)dg-<_ ze(&%H?{o&!>GTx%jV3mY(qDhX4_ojfF=-V>RMUd z6{uCG{#Z$QJRVR=d#l2MK;WdwICM)`cRQ(5H(6OX*}87o1(VqY+vbIIuJoXw87ab1 zC>nf~bB_A@`cqYV>~guDvpK*)SfOZ?9F!0MhHb+j1m%KesuRDj+$9_yP5@?clQ9N| z!x5|sXEK>opBfYy2(hGFqccD+1zTglJa;2vc>QU^ zn@J=R$#bV(aFy5c$C$~S1VjKAL~y}HKzstYV^h=XJSg?O`SQVE+V_=jO=AXFDUMQVBkvuW4{_ zaAYU=u`hk$!iBfm+uOfuYikqlFDzq5$?CZceJ#Ap5aPMpILs1k^N-;e>4Y%9P z@7%fbbuyWJUzTOQBMbnNB!xnu(6y$frX!(Hi1__}tgWpfl}aIzNL*i9T1xiy^_|mo z9ocLagb*l-a(i}m_ElMy^&R1g3)}$O0mKZ$n9Jw$iP6!~je&syXDk+*?CR<|X4^K3 z#UdDENG6ki&CJXkmSs6#6()oT0La!H$aWe4_jo*HXlUrm-rnA`mSqvf7&J{op-|8! zCMKe?ET_dMAc}vUAO%39(Wql=Y%CTG2EzcvTrQWrbm`KAt5>gTV`F0@xm->;bLPya zf*_DcB!UA64tQ5rS1$uNDQ=-+1u6m%yR-U(G`_1#MU|V5zcXvno`};ow zU`|d>4&JGEb#1oaZVgc5`g(L-ujREUy3lu`K*Oo0^?bcI5iC@eD4?4miD&gf`!oHJ+6*}I3% z3~3A2(_a6-*7_EkaLzF|)*iVbQc4OK0+k|BB2Y{~ByNai?&J-`iZ6<0*66 zWnUs`s7gFB844@GzAxil_ZxTK0)UOj1EmJz`A;wG38W3S)CT-p$_k#86lLcd3@{9a zq`_e@4#qfQYEpmmapX~N|LB>@)%hL44f~_S!uV+HqOBTKs0w2DogUpJMX?9S2QCUiK?4lwCw&4 z0NYP??<&ZdSDWo~uTwN8YC3F^!2$d=pymL=!0;sVdNTtAxRw$Fz}+)DZeKcDQSou$ zXOCSL!8kw(W*Y?CYc!qlt}KgKZ|zqa=91pm@bGMTabCGd39?*PWZETg6J8qPv6koe zeDj<#1?M1ydH!T@3bCQ=3fU^m5f z02u&e01^NJ00W=_PyxgNOaq8=&NVXkI}<{v3D;sK1&}mT2Vn4jM1KG?8CWL-6Ncvi O0000OXQ*V(!qPYhe4M*igxrQj5le5HDYtnEX$d5T4MRmx3Nvr{dxCpPlqO$ znqT8}eERNlLTR$w z6rN>Rqe)lx^#INv0xIf>%x-CIW97@O)oaHx^Eyo@lgpdy%L@ijgSM0M+`iV_8w!Qiyk2koziXVFoSf-&U%BCr{LE}* z@?pJ*lvOae`meUQIHDsQ4kI3qF9ZSsw=B!WLjVAbj*bp@baXtkSS&otve@3?TdB_n$Y58 diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/zoom-out.png b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/resource/org/argeo/jcr/ria/zoom-out.png deleted file mode 100644 index 318e609e94875777906477a99f81d9e4f5c9f280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmV-C1H=4@P)fG8jvOcG00mh!2W1jmC(y3|eaGbLOAiU%B1xMgZMM6Y#PulRzMFDw8)qV|U}GS!i(p91Ln= zH>b0;PcftA%*E#=3gUD+hXBM50VGLcs;YvsLCovcFMFX_uo$z_zYF^2PS(&3N??N_ zZ~$XWKb8OhD5bk?^ac*vIso#I;dT8ZGW-C*Q zQUmD*r_DEV`K(VM6wzoDi9}*891i;xMKO*60AOlrYNDs7=aI|h5_z6SHk)P3%gYOO zb#+66AXF!lNt8+@EfflQ6-CJ$1MEwdFMddcszbz)3j%*s@@qG81SsDtmu=Ill_{erMzA*8X6kJR4OG9#ux}8r1DY$fLN*g z!2|#-07iX%y)`&EI8rPY-z_dKZk%|7zdVqNQ30@%dj9}r^;+coZsd9Z0000 labels) - */ - collectionList : { - init : {}, - check : "Map" - }, - /** - * The current collection id selected. - */ - collectionId:{ - init : 'My Collection', - check : "String" - }, - currentOpenInstanceId : { - check : "String", - nullable:true - }, - /** - * The applet commands. - */ - commands : { - init : { - "loadtestlist" : { - label : "Load Collection", - icon : "org/argeo/slc/ria/view-refresh.png", - shortcut : "Control+l", - enabled : true, - menu : "Collection", - toolbar : "collection", - callback : function(e){ - this.loadList(); - }, - command : null - }, - "polllistloading" : { - label : "Auto load", - icon : "org/argeo/slc/ria/document-open-recent.png", - shortcut : "Control+l", - enabled : true, - toggle : true, - menu : "Collection", - toolbar : "collection", - callback : function(event){ - this.pollListLoading(event.getTarget().getUserData("slc.command.toggleState")); - }, - command : null - }, - /* - "copyfullcollection" : { - label : "Copy to...", - icon : "org/argeo/slc/ria/edit-copy.png", - shortcut : null, - enabled : false, - menu : "Collection", - toolbar : "collection", - callback : function(e){ - // Call service to copy - }, - submenu : {}, - submenuCallback : function(commandId){ - this.copySelectionToCollection(commandId, "current_collection"); - }, - init : function(){ - // Call at command creation - org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){ - if(event.getDataType() == "collection" || event.getDataType() == "test_cases"){ - var testList = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("list").getContent(); - testList.collectionListToMenu(this); - } - }, this); - }, - command : null - }, - */ - "opentest" : { - label : "Open", - icon : "org/argeo/slc/ria/media-playback-start.png", - shortcut : "Control+o", - enabled : false, - menu : "Selection", - toolbar : "selection", - callback : function(e){ - var viewsManager = org.argeo.ria.components.ViewsManager.getInstance(); - var classObj = org.argeo.slc.ria.Applet; - var xmlNodes = viewsManager.getViewPaneSelection("list").getNodes(); - var iView = viewsManager.initIViewClass(classObj, "applet", xmlNodes[0]); - this.setCurrentOpenInstanceId(iView.getInstanceId()); - iView.load(xmlNodes[0]); - }, - selectionChange : function(viewId, xmlNodes){ - if(viewId != "list") return; - this.setEnabled(false); - if(xmlNodes == null || !xmlNodes.length) return; - this.setEnabled(true); - }, - command : null - }, - "download" : { - label : "Download as...", - icon : "org/argeo/slc/ria/go-down.png", - shortcut : null, - enabled : false, - menu : "Selection", - toolbar : "selection", - callback : function(e){ }, - command : null, - submenu : [ - {'label':"Xsl", 'icon':'org/argeo/slc/ria/mime-xsl.png', 'commandId':'xsl'}, - {'label':"Xml", 'icon':'org/argeo/slc/ria/mime-xml.png', 'commandId':'xml'}, - {'label':"Excel", 'icon':'org/argeo/slc/ria/mime-xls.png', 'commandId':'xls'}, - {'label':"Pdf", 'icon':'org/argeo/slc/ria/mime-pdf.png', 'commandId':'pdf'} - ], - submenuCallback : function(commandId){ - var uuid = this.extractTestUuid(); - var urls = { - xsl : "resultView.xslt", - xml : "resultView.xml", - xls : "resultView.xls", - pdf : "resultView.pdf" - }; - var url = org.argeo.slc.ria.SlcApi.DEFAULT_CONTEXT + "/"+urls[commandId]+"?uuid="+uuid; - if(commandId == "xls" || commandId == "pdf"){ - org.argeo.ria.Application.INSTANCE.javascriptDownloadLocation(url); - }else{ - var win = window.open(url); - } - }, - selectionChange : function(viewId, xmlNodes){ - if(viewId!="list")return; - //this.clearMenus(); - this.setEnabled(false); - if(xmlNodes == null || !xmlNodes.length) return; - this.setEnabled(true); - } - }, - "attachments" : { - label : "Attachments", - icon : "org/argeo/slc/ria/document-save-as.png", - shortcut : null, - enabled : false, - menu : "Selection", - toolbar : "selection", - callback : function(e){ }, - command : null, - submenu : [], - submenuCallback : function(commandId){ - var split = commandId.split("__commandseparator__"); - var uuid = split[0]; - var contentType = split[1]; - var name = split[2]; - var url = org.argeo.slc.ria.SlcApi.buildGetAttachmentUrl(uuid, contentType, name); - var win = window.open(url); - }, - selectionChange : function(viewId, xmlNodes){ - if(viewId!="list")return; - this.clearMenus(); - this.setEnabled(false); - if(xmlNodes == null || !xmlNodes.length || xmlNodes.length != 1) return; - // Check slc:simple-attachment tags - var attachs = org.argeo.ria.util.Element.selectNodes(xmlNodes[0], "slc:attachments/slc:simple-attachment"); - if(attachs && attachs.length){ - var submenus = []; - for(var i=0;i test " + testUuid + "?"); - modal.addListener("ok", function(){ - var request = org.argeo.slc.ria.SlcApi.getRemoveResultService(this.getCollectionId(), this.extractTestUuid()); - request.addListener("completed", function(response){ - if(this.getCurrentOpenInstanceId() == "test:"+testUuid){ - var appletView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("applet"); - if(appletView.contentExists(this.getCurrentOpenInstanceId())){ - appletView.closeCurrent(); - } - this.setCurrentOpenInstanceId(null); - } - this.loadCollections(); - this.loadList(); - this.info("Test was successfully deleted"); - }, this); - request.send(); - }, this); - modal.attachAndShow(); - }, - selectionChange : function(viewId, xmlNodes){ - if(viewId != "list") return; - this.setEnabled(false); - if(xmlNodes == null || !xmlNodes.length) return; - this.setEnabled(true); - }, - command : null - } - } - } - }, - - members : { - init : function(viewPane, data){ - this.setView(viewPane); - this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); - }, - load : function(){ - this.table.set({ - statusBarVisible: false, - showCellFocusIndicator:false, - columnVisibilityButtonVisible:false, - contextMenu : org.argeo.ria.event.CommandsManager.getInstance().createMenuFromIds(["opentest", "download", "copytocollection", "deletetest"]), - decorator : new qx.ui.decoration.Background("#fff") - }); - var viewPane = this.getView(); - this.table.addListener("dblclick", function(e){ - var pref = this.getRiaPreferenceValue("slc.web.TestList.DefaultAction"); - if(pref == "Open"){ - org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest"); - }else{ - var uuid = this.extractTestUuid(); - var url = "../resultView.xslt?uuid="+uuid; - alert('Should download : '+url); - } - }, this); - var columnModel = this.table.getTableColumnModel(); - columnModel.getBehavior().setWidth(0, "60%"); - var renderer = new org.argeo.slc.web.XmlRenderer(); - columnModel.setDataCellRenderer(0, renderer); - columnModel.setDataCellRenderer(1, renderer); - - this.table.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){ - var viewSelection = this.getViewSelection(); - viewSelection.clear(); - var selectionModel = this.table.getSelectionManager().getSelectionModel(); - if(!selectionModel.getSelectedCount()){ - return; - } - var ranges = this.table.getSelectionManager().getSelectionModel().getSelectedRanges(); - var xmlNode = this.table.getTableModel().getRowData(ranges[0].minIndex); - viewSelection.addNode(xmlNode); - //viewPane.setViewSelection(viewSelection); - }, this); - - var select = new qx.ui.form.SelectBox(); - this.getView().addHeaderComponent(select); - this.getView().setViewTitle(""); - this.add(this.table, {flex:1}); - - select.addListener("changeSelection", this.collectionSelectorListener, this); - - org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){ - if(event.getDataType()!="collection") return; - select.removeListener("changeSelection", this.collectionSelectorListener, this); - var collectionList = event.getContent(); - select.removeAll(); - for(key in collectionList){ - var item = new qx.ui.form.ListItem(collectionList[key], "org/argeo/slc/ria/folder.png", key); - select.add(item); - if(key == this.getCollectionId()){ - select.setSelection([item]); - } - } - if(qx.lang.Object.getLength(collectionList)){ - var selection = select.getSelection(); - var value = selection[0].getModel(); - this.setCollectionId(value); - } - select.addListener("changeSelection", this.collectionSelectorListener, this); - }, this); - - }, - - /** - * Use SlcApi to load the available collections. - */ - loadCollections : function(){ - var request = org.argeo.slc.ria.SlcApi.getListCollectionsService(); - var NSMap = {slc:"http://argeo.org/projects/slc/schemas"}; - request.addListener("completed", function(response){ - var xml = response.getContent(); - var collections = {}; - var nodes = org.argeo.ria.util.Element.selectNodes(xml, "//slc:ref", NSMap); - for(var i=0;i the selected test" - + (sel.length > 1 ? "s" : "") - + " from the Batch?"); - modal.addListener("ok", execution, this); - modal.attachAndShow(); - }else{ - execution = qx.lang.Function.bind(execution, this); - execution(); - } - }, - selectionChange : function(viewId, selection) { - if (viewId != "batch:list") - return; - this.setEnabled(false); - if ((selection && selection.length > 0)) - this.setEnabled(true); - }, - command : null - }, - "clearbatch" : { - label : "Clear batch", - icon : "org/argeo/slc/ria/user-trash-full.png", - shortcut : null, - enabled : true, - menu : "Launcher", - toolbar : "batch", - callback : function(e) { - if(!this.list.hasChildren()) return; - this.list.selectAll(); - this.getCommands()["removefrombatch"].command.execute(); - }, - selectionChange : function(viewId, selection) { - }, - command : null - } - } - }, - view : { - init : null - }, - viewSelection : { - nullable:false, - check:"org.argeo.ria.components.ViewSelection" - }, - instanceId : {init:""}, - instanceLabel : {init:""}, - /** - * A boolean registering whether the SpecEditor must autoOpen or not - * when a spec is added to the Batch. - */ - autoOpen : { - init : true, - check : "Boolean" - }, - batchAgentId : { - init : null, - nullable : true, - check : "String", - event : "changeBatchAgentId" - }, - forceClearPreference : { - init : false, - check : "Boolean" - } - }, - - construct : function(){ - this.base(arguments); - this.setLayout(new qx.ui.layout.Dock()); - }, - - members : { - /** - * The implementation should contain the GUI initialisation. - * This is the role of the manager to actually add the graphical component to the pane, - * so it's not necessary to do it here. - * @param viewPane {org.argeo.ria.components.ViewPane} The pane manager - * @param data {Mixed} Any object or data passed by the initiator of the view - * @return {Boolean} - */ - init : function(viewPane, data){ - this.setView(viewPane); - this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); - this._emptyAgentString = "Empty Batch (Drop scripts here)"; - this._crtAgentString = "Batch Execution on Agent "; - - }, - /** - * The implementation should contain the real data loading (i.o. query...) - * @return {Boolean} - */ - load : function(){ - this._createLayout(); - this.getView().setViewTitle(this._emptyAgentString); - //this.getView().setViewTitle(""); - }, - - /** - * Creates the main applet layout. - */ - _createLayout : function() { - this.listPane = new qx.ui.container.Composite(new qx.ui.layout.Dock()); - this.addListener("changeBatchAgentId", function(event) { - var value = event.getData(); - if (value == null) { - this.getView().setViewTitle(this._emptyAgentString); - } else { - var selectorView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("selector").getContent(); - if(selectorView){ - var agentsMap = selectorView.getAgentsMap(); - this.getView().setViewTitle(this._crtAgentString + "'" + agentsMap[value] + "'"); - } - } - }, this); - - var indicator = new qx.ui.core.Widget(); - indicator.setDecorator(new qx.ui.decoration.Single().set({ - top : [1, "solid", "#33508D"] - })); - indicator.setHeight(0); - indicator.setOpacity(0.5); - indicator.setZIndex(100); - indicator.setLayoutProperties({ - left : -1000, - top : -1000 - }); - org.argeo.ria.Application.INSTANCE.getRoot().add(indicator); - - this.list = new qx.ui.form.List(); - this.list.setDecorator(null); - this.list.setSelectionMode("multi"); - this.list.setDroppable(true); - this.list.setDraggable(true); - this.list.setContextMenu(org.argeo.ria.event.CommandsManager - .getInstance().createMenuFromIds(["removefrombatch"])); - - this.list.addListener("dragstart", function(e) { - e.addType(["items"]); - e.addAction(["move"]); - }, this); - this.list.addListener("dragend", function(e) { - indicator.setDomPosition(-1000, -1000); - }); - this.list.addListener("dragover", function(e) { - var orig = e.getOriginalTarget(); - var origCoords = orig.getContainerLocation(); - indicator.setWidth(orig.getBounds().width); - indicator.setDomPosition(origCoords.left, - origCoords.bottom); - }); - this.list.addListener("drag", function(e) { - var orig = e.getOriginalTarget(); - var origCoords = orig.getContainerLocation(); - indicator.setWidth(orig.getBounds().width); - indicator.setDomPosition(origCoords.left, - origCoords.bottom); - }); - - this.list.addListener("drop", function(e) { - var target = e.getRelatedTarget(); - var afterItem = e.getOriginalTarget(); - indicator.setDomPosition(-1000, -1000); - if (afterItem.classname != "qx.ui.form.ListItem") - afterItem = null; - if (!target) { - target = this.list.getSortedSelection()[0]; - this.addFlowToBatch(target, afterItem); - } else { - org.argeo.ria.event.CommandsManager.getInstance().executeCommand("addtobatch"); - } - }, this); - this.listPane.add(this.list, { - edge : "center" - }); - - this.list.addListener("changeSelection", function(e) { - var viewSelection = this.getViewSelection(); - viewSelection.setViewId("batch:list"); - viewSelection.clear(); - var listSel = this.list.getSortedSelection(); - for (var i = 0; i < listSel.length; i++) { - viewSelection.addNode(listSel[i]); - } - }, this); - - this.dropDecorator = new qx.ui.decoration.Background(); - this.dropDecorator.set({ - backgroundImage : "org/argeo/slc/ria/drophere.gif", - backgroundRepeat : "no-repeat" - }); - - - listChangeListener = function() { - var command = org.argeo.ria.event.CommandsManager.getInstance() - .getCommandById("submitform"); - command.setEnabled(this.list.hasChildren()); - var command2 = org.argeo.ria.event.CommandsManager.getInstance() - .getCommandById("clearbatch"); - command2.setEnabled(this.list.hasChildren()); - this.list.setDecorator((this.list.hasChildren()?null:this.dropDecorator)); - }; - this.list.addListener("addItem", listChangeListener, this); - this.list.addListener("removeItem", listChangeListener, this); - - this.list.setDecorator(this.dropDecorator); - - this.add(this.listPane); - }, - - - /** - * Adds a given ExecutionFlow to the batch - * - * @param target - * {mixed} The dropped target, can be a TreeFile (add) or a - * ListItem (reorder). - * @param after - * {qx.ui.form.ListItem} Optional list item : if set, the - * flow will be added as a new list item positionned after - * this one. - * @param skipAutoOpen - * {boolean} Whether the formular should open or not. - */ - addFlowToBatch : function(target, after, skipAutoOpen) { - if (target && target.classname == "qx.ui.form.ListItem") { - if (!after) - return; - if (after == "first") - this.list.addAt(target, 0); - else - this.list.addAfter(target, after); - return; - } - - // Folder case - if (qx.Class.isSubClassOf(qx.Class.getByName(target.classname), - qx.ui.tree.TreeFolder)) { - var allChildren = target.getItems(true); - for (var i = 0; i < allChildren.length; i++) { - if (allChildren[i].getUserData("executionFlow")) { - try{ - this.addFlowToBatch(allChildren[i], null, true); - }catch(e){ - return; - } - } - } - return; - } - - // Check agent Uuid against current batch agent Id. - var agentUuid = target.getUserData("agentUuid"); - if (!this.getBatchAgentId()) { - this.setBatchAgentId(agentUuid); - } else if (this.getBatchAgentId() != agentUuid) { - this.error("Batch can contain tests only of the same agent!"); - throw new Error("Batch can contain tests only of the same agent!"); - } - - var executionModule = target.getUserData("executionModule"); - var executionFlow = target.getUserData("executionFlow"); - var batchEntry = new org.argeo.slc.ria.execution.BatchEntrySpec( - executionModule, executionFlow); - - this.appendBatchEntrySpec(batchEntry, target.getIcon(), after); - }, - - appendBatchEntrySpec: function(batchEntrySpec, icon, after){ - - var item = new qx.ui.form.ListItem(batchEntrySpec.getLabel(), icon || "org/argeo/slc/ria/system.png"); - item.setUserData("batchEntrySpec", batchEntrySpec); - item.setPaddingTop(1); - item.setPaddingBottom(2); - if (after) { - if (after == "first") - this.list.addAt(item, 0); - else - this.list.addAfter(item, after); - } else { - this.list.add(item); - } - this.list.setSelection([item]); - - }, - - /** - * Called at execution - * - * @param agentUuid - * {String} The id of the target agent - */ - executeBatchOnAgent : function(agentUuid, clearBatch) { - var selection = this.list.getChildren(); - if (!selection.length) - return; - // Get Host - var agentsMap = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("selector").getContent().getAgentsMap(); - var host = agentsMap[agentUuid]; - var slcExecMessage = new org.argeo.slc.ria.execution.Message(); - slcExecMessage.setHost(host); - var execUuid = slcExecMessage.getUuid(); - for (var i = 0; i < selection.length; i++) { - var batchEntrySpec = selection[i].getUserData("batchEntrySpec"); - slcExecMessage.addBatchEntrySpec(batchEntrySpec); - } - try{ - var xmlMessage = slcExecMessage.toXml(); - var req = org.argeo.slc.ria.SlcApi.getNewSlcExecutionService( - agentUuid, xmlMessage); - req.addListener("completed", function(response){ - var loggerView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("main").getContent(); - loggerView.reloadLogger(); - if(this.getRiaPreferenceValue("slc.batch.autoOpenLog")){ - loggerView.openDetail([0,host,execUuid,0]); - } - }, this); - req.send(); - if(clearBatch){ - req.addListener("completed", function(e){ - this.list.removeAll(); - this.setBatchAgentId(null); - }, this); - } - }catch(e){ - this.error(e); - } - }, - - clearBatchForAgentId : function(agentId){ - if(this.getBatchAgentId() == agentId){ - this.list.removeAll(); - this.setBatchAgentId(null); - } - }, - - /** - * Whether this component is already contained in a scroller (return false) or not (return true). - * @return {Boolean} - */ - addScroll : function(){return false;}, - /** - * Called at destruction time - * Perform all the clean operations (stopping polling queries, etc.) - */ - close : function(){return true;} - } - - -}); \ No newline at end of file diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/FlowsSelectorView.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/FlowsSelectorView.js deleted file mode 100644 index 755fc1d0e..000000000 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/FlowsSelectorView.js +++ /dev/null @@ -1,623 +0,0 @@ -/** - * The selector view - * - */ -qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", { - extend : qx.ui.container.Composite, - implement : [org.argeo.ria.components.IView], - include : [org.argeo.ria.session.MPrefHolder], - - construct : function() { - this.base(arguments); - this.setLayout(new qx.ui.layout.Dock()); - }, - - properties : { - /** - * The viewPane inside which this applet is added. - */ - view : { - init : null - }, - viewSelection : { - nullable : false, - check : "org.argeo.ria.components.ViewSelection" - }, - instanceId : { - init : "" - }, - instanceLabel : { - init : "" - }, - executeAfterAdd : { - init : false, - check : "Boolean" - }, - /** - * Commands definition, see - * {@link org.argeo.ria.event.CommandsManager#definitions} - */ - commands : { - init : { - "addtobatch" : { - label : "Add to batch", - icon : "org/argeo/slc/ria/list-add.png", - shortcut : null, - enabled : true, - menu : null, - toolbar : null, - callback : function(e) { - if (this.tree.isSelectionEmpty()) { - return; - } - var batchView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("batch").getContent(); - if(!batchView) return; - selection = this.tree.getSelection(); - if (selection.length > 1) { - for (var i = 0; i < selection.length; i++) { - try{ - batchView.addFlowToBatch(selection[i], null, true); - }catch(e){ - return; - } - } - return; - } else { - try{ - batchView.addFlowToBatch(selection[0], null); - }catch(e){ - return; - } - } - if(this.getExecuteAfterAdd() && batchView.getCommands()){ - batchView.setForceClearPreference(true); - batchView.getCommands()["submitform"].command.execute(); - } - this.setExecuteAfterAdd(false); - }, - selectionChange : function(viewId, selection) { - if (viewId != "form:tree") - return; - if (!selection || selection.length != 1) - return; - var item = selection[0]; - this.setEnabled(false); - switch (item.classname) { - case "qx.ui.tree.TreeFile" : - this.setEnabled(true); - break; - case "org.argeo.ria.components.PersistentTreeFolder" : - if (item.getTree() && item.getTree().getRoot() == item) - break; - this.setEnabled(true); - break; - case "org.argeo.ria.components.DynamicTreeFolder" : - if (item.getTree() && item.getTree().getRoot() == item) - break; - if (item.getState() == "loaded") - this.setEnabled(true); - break; - } - }, - command : null - }, - "preferredHost" : { - label : "Toggle 'Preferred Host'", - icon : "ria/bookmark.png", - shortcut : null, - enabled : true, - menu : null, - toolbar : null, - callback : function(e) { - if (this.tree.isSelectionEmpty()) { - return; - } - var selection = this.tree.getSelection(); - if(selection.length != 1) return; - var agentNode = selection[0]; - if(!agentNode.getUserData("agentHost")) return; - this.togglePreferredHost(agentNode); - }, - selectionChange : function(viewId, selection) { - if (viewId != "form:tree") - return; - if (!selection || selection.length != 1) - return; - var item = selection[0]; - this.setEnabled(false); - if(item.getUserData("agentHost")){ - this.setEnabled(true); - } - }, - command : null - }, - "reloadfull" : { - label : "Reload Agents", - icon : "org/argeo/slc/ria/view-refresh.png", - shortcut : "control+h", - enabled : true, - menu : "Launcher", - toolbar : "list", - callback : function(e) { - this.rootNode.setState("loading"); - this.rootNode.load(); - }, - command : null - }, - "reloadtree" : { - label : "Reload Node", - icon : "org/argeo/slc/ria/view-refresh.png", - shortcut : null, - enabled : false, - menu : null, - toolbar : null, - callback : function(e) { - if (this.tree.isSelectionEmpty()) { return; } - var selected = this.tree.getSelection()[0]; - if (selected.classname == "org.argeo.ria.components.DynamicTreeFolder") { - if (selected.getUserData("moduleData")) { - // It's a "module" node, first trigger the - // reloadBundle.service - selected.setUserData("dataModel", {}); - selected.setEnabled(false); - selected.setOpen(false); - var moduleData = selected - .getUserData("moduleData"); - var bundleService = org.argeo.slc.ria.SlcApi - .getReloadBundleService( - moduleData.name, - moduleData.version); - bundleService.addListener("completed", - function(response) { - selected.setEnabled(true); - selected.setOpen(true); - selected.reload(); - }, this); - // bundleService.send(); - // Do not send, not implemented yet, false timer - // instead. - qx.event.Timer.once(function(response) { - selected.setEnabled(true); - selected.setOpen(true); - selected.reload(); - }, this, 2000); - } else { - selected.reload(); - } - } - }, - selectionChange : function(viewId, selection) { - if (viewId != "form:tree") - return; - if (!selection) - return; - if (selection.length > 1) { - this.setEnabled(false); - return; - } - var item = selection[0]; - if (!qx.Class.isSubClassOf(qx.Class - .getByName(item.classname), - qx.ui.tree.AbstractTreeItem)) - return; - this.setEnabled(false); - if (qx.Class.isSubClassOf(qx.Class - .getByName(item.classname), - org.argeo.ria.components.DynamicTreeFolder)) { - this.setEnabled(true); - } - }, - command : null - } - } - } - }, - - statics : { - - riaPreferences : { - "flowSelector.preferred.hosts" : { - label : "Preferred Hosts (Execution View)", - type : "string" - } - }, - - /** - * Static loader for the "agent" level (first level) - * - * @param folder - * {org.argeo.ria.components.PersistentTreeFolder} The root Tree Folder. - */ - agentLoader : function(folder) { - - var preferredHosts = org.argeo.ria.session.MPrefHolder.loadRiaPreferenceValue("flowSelector.preferred.hosts"); - if(preferredHosts && preferredHosts!=""){ - preferredHosts = preferredHosts.split(","); - } - var req = org.argeo.slc.ria.SlcApi.getListAgentsService("agents"); - var agents = {}; - if(folder.getUserData("agentsMap")){ - // Diff loading, just add new nodes. - agents = folder.getUserData("agentsMap"); - var newAgents = {}; - } - req.addListener("completed", function(response) { - var xmlDoc = response.getContent(); - var nodes = org.argeo.ria.util.Element.selectNodes(xmlDoc, - "/slc:object-list/slc:slc-agent-descriptor"); - var modulesLoader = org.argeo.slc.ria.FlowsSelectorView.modulesLoader; - - for (var i = 0; i < nodes.length; i++) { - var uuid = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], "@uuid"); - var host = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], "slc:host"); - if(agents[uuid]){ - newAgents[uuid] = host; - continue; - } - agents[uuid] = host; - if(newAgents) newAgents[uuid] = host; - var agentFolder = new org.argeo.ria.components.DynamicTreeFolder( - host, modulesLoader, "Loading Modules...", folder.getDragData()); - org.argeo.slc.ria.FlowsSelectorView.attachToolTip(agentFolder, uuid); - agentFolder.setPersistentTreeID(folder.getPersistentTreeID()+"_"+uuid); - agentFolder.setUserData("agentHost", host); // Used by bookmark system - agentFolder.setUserData("agentUuid", uuid); - if(preferredHosts && preferredHosts instanceof Array && qx.lang.Array.contains(preferredHosts, host)){ - folder.addAtBegin(agentFolder); - agentFolder.setIcon("org/argeo/slc/ria/computer_bookmarked.png"); - }else{ - folder.add(agentFolder); - agentFolder.setIcon("org/argeo/slc/ria/computer.png"); - } - } - if(newAgents){ - // Make sure some agents should not be removed - for(var agentKey in agents){ - if(!newAgents[agentKey]){ - var node = org.argeo.slc.ria.FlowsSelectorView.findAgentNodeById(folder, agentKey); - if(node) folder.remove(node); - delete agents[agentKey]; - var batchView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("batch").getContent(); - if(batchView) batchView.clearBatchForAgentId(agentKey); - } - } - } - folder.setUserData("agentsMap", agents); - folder.setLoaded(true); - folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection()); - }); - req.addListener("failed", function(response) { - folder.setLoaded(true); - }); - req.send(); - - }, - - /** - * Loader for the "modules" level : takes any tree folder, currently the - * root folder. - * - * @param folder - * {org.argeo.ria.components.PersistentTreeFolder} The root folder - */ - modulesLoader : function(folder) { - var agentId = folder.getUserData("agentUuid"); - var req = org.argeo.slc.ria.SlcApi.getListModulesService(agentId); - req.addListener("completed", function(response) { - var descriptors = org.argeo.ria.util.Element.selectNodes( - response.getContent(), - "slc:object-list/" + org.argeo.slc.ria.execution.Module.XPATH_ROOT); - var mods = {}; - for (var i = 0; i < descriptors.length; i++) { - var tmpModule = new org.argeo.slc.ria.execution.Module(); - try{ - tmpModule.setXmlNode(descriptors[i]); - }catch(e){ - qx.log.Logger.error(e); - } - var name = tmpModule.getName(); - var version = tmpModule.getVersion(); - if (!mods[name]) - mods[name] = []; - mods[name].push(tmpModule); - } - var flowLoader = org.argeo.slc.ria.FlowsSelectorView.flowLoader; - for (var key in mods) { - for (var i = 0; i < mods[key].length; i++) { - var module = mods[key][i]; - var versionFolder = new org.argeo.ria.components.DynamicTreeFolder( - module.getLabel(), flowLoader, - "Loading Flows", folder.getDragData()); - versionFolder.setUserData("moduleData", { - name : key, - version : module.getVersion() - }); - versionFolder.setIcon("org/argeo/slc/ria/archive.png"); - versionFolder.setUserData("agentUuid", agentId); - var sep = (module.getDescription()!=""?" - ":""); - org.argeo.slc.ria.FlowsSelectorView.attachToolTip(versionFolder, key + ' (' + module.getVersion() + ')'+sep+module.getDescription()); - // Warning, we must add it AFTER setting the user data, - // because of the persistent loading mechanism. - folder.add(versionFolder); - } - } - folder.setLoaded(true); - folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection()); - }); - req.addListener("failed", function(response) { - folder.setLoaded(true); - }); - req.send(); - }, - - /** - * Loader for the "flow" level : takes a folder containing "moduleData" - * and create its children. - * - * @param folder - * {org.argeo.ria.components.PersistentTreeFolder} A Tree folder containing in the - * key "moduleData" of its user data a map containing the - * keys {name,version} - */ - flowLoader : function(folder) { - var moduleData = folder.getUserData("moduleData"); - var agentUuid = folder.getUserData("agentUuid"); - - var req = org.argeo.slc.ria.SlcApi - .getLoadExecutionDescriptorService(agentUuid, - moduleData.name, moduleData.version); - req.addListener("completed", function(response) { - var executionModule = new org.argeo.slc.ria.execution.Module(); - try { - executionModule.setXmlNode(response.getContent()); - } catch (e) { - this.error(e); - } - var execFlows = executionModule.getExecutionFlows(); - for (var key in execFlows) { - var path = execFlows[key].getPath(); - var name = execFlows[key].getName(); - var nodeLabel = key; - var sep = "\/"; - if(name && name.indexOf(sep)>-1 && !path){ - // Use given name to build the path. - // split dirname and basename - var parts = name.split(sep); - var basename = parts.pop(); - var dirname = parts.join("/"); - path = dirname; - nodeLabel = basename; - } - var file = new qx.ui.tree.TreeFile(nodeLabel); - if(execFlows[key].getDescription() != ""){ - org.argeo.slc.ria.FlowsSelectorView.attachToolTip(file, execFlows[key].getDescription()); - } - file.setIcon("org/argeo/slc/ria/system.png"); - file.setUserData("executionModule", executionModule); - file.setUserData("executionFlow", execFlows[key]); - file.setUserData("agentUuid", agentUuid); - org.argeo.slc.ria.FlowsSelectorView.attachNodeByPath(folder, path, file, { - agentUuid : folder.getUserData("agentUuid") - }); - folder.appendDragData(file); - } - folder.setLoaded(true); - folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection()); - }); - req.addListener("failed", function(response) { - folder.setLoaded(true); - }); - req.send(); - }, - - attachToolTip : function(nodeItem, description){ - var tt = new qx.ui.tooltip.ToolTip(description); - tt.setShowTimeout(0); - nodeItem.setToolTip(tt); - }, - - /** - * Parse a string path and search if there is a root node. - * - * @param rootNode - * {org.argeo.ria.components.DynamicTreeFolder} The parent - * node (containing data model) - * @param path - * {String} The path of the node to attach. - * @param childNode - * {qx.ui.tree.TreeFile} The leaf node - * @param userData - * {Map} User data to attach at all levels. - */ - attachNodeByPath : function(rootNode, path, childNode, userData) { - if (!path || path == "" || path == "/") { - rootNode.add(childNode); - return; - } - var model = rootNode.getUserData("dataModel"); - if (!model) { - model = {}; - rootNode.setUserData("dataModel", model); - } - var parts = path.split("/"); - var keys = qx.lang.Object.getKeys(model); - var crtPath = ""; - var crtFolder = rootNode; - for (var i = 0; i < parts.length; i++) { - if (parts[i] == "") - continue; - crtPath += "/" + parts[i]; - if (!model[crtPath]) { - var virtualFolder = new org.argeo.ria.components.PersistentTreeFolder(parts[i]); - if (userData && qx.lang.Object.getLength(userData)) { - for (var key in userData) { - virtualFolder.setUserData(key, userData[key]); - } - } - rootNode.appendDragData(virtualFolder); - model[crtPath] = virtualFolder; - crtFolder.add(virtualFolder); - crtFolder = virtualFolder; - } else { - crtFolder = model[crtPath]; - } - } - crtFolder.add(childNode); - }, - - findAgentNodeById : function(node, agentId){ - var nodeAgents = node.getItems(); - for(var i=0;i 1){ - // Add chooser - this.partChooser = new qx.ui.form.SelectBox(); - for(var key in this.parts){ - this.partChooser.add(new qx.ui.form.ListItem(this.parts[key].label, null, key)); - } - this._addFormEntry(commonForm, new qx.ui.basic.Label(this.CHOOSE_FORM_PART_LABEL), this.partChooser); - this.partChooser.addListener("changeValue", function(ev){ - this._showSelectedPart(ev.getData()); - }, this); - } - this._showSelectedPart(qx.lang.Object.getKeys(this.parts)[0]); - }, - - /** - * Show a form part given its id. - * @param partId {String} The part id - */ - _showSelectedPart : function(partId){ - if(!this.parts) return; - if(!this.partsContainer){ - this.partsContainer = new qx.ui.container.Composite(new qx.ui.layout.Canvas()); - this.formPane.add(this.partsContainer); - } - for(var i in this.parts){ - var formObject = this.parts[i]; - if(!formObject.added){ - this.partsContainer.add(formObject.pane, {top:0, left:0}); - formObject.added = true; - } - formObject.pane.hide(); - } - if(this.parts[partId]){ - this.parts[partId].pane.show(); - } - }, - - /** - * Init a form part : creates a pane, a set of fields, etc. - * @param formId {String} A unique ID - * @param label {String} A label - * @return {Map} The form part. - */ - _initFormPart : function(formId, label){ - if(!this.parts) this.parts = {}; - var formObject = {}; - formObject.hiddenFields = {}; - formObject.freeFields = []; - formObject.fields = {}; - formObject.id = formId; - formObject.label = label; - this.parts[formId] = formObject; - formObject.pane = new qx.ui.container.Composite(new qx.ui.layout.VBox(5)); - return formObject; - }, - - /** - * To be overriden by this class children. - */ - _createFormVariableParts : function(){ - var standard = this._initFormPart("standard", "Canonical"); - this._createStandardForm(standard); - var simple = this._initFormPart("simple", "SLC Sample"); - this._createSimpleForm(simple); - }, - - /** - * Creates a form for SLC demo - * @param formObject {Map} The form part - */ - _createSimpleForm : function(formObject){ - - this._addFormInputText(formObject, "ant.file", "File", "Category1/SubCategory2/build.xml"); - var moreButton = new qx.ui.basic.Image("org.argeo.slc.ria/list-add.png"); - moreButton.setToolTip(new qx.ui.tooltip.ToolTip("Add a parameter")); - moreButton.setCursor("pointer"); - moreButton.addListener("click", function(){ - this._addFormInputText(formObject); - }, this); - this._addFormHeader(formObject, "Add optionnal parameters", moreButton); - this._addFormInputText(formObject); - this._addFormInputText(formObject); - - }, - - /** - * Create a canonical form. - * @param formObject {Map} The form part - */ - _createStandardForm : function(formObject){ - - this._addFormHeader(formObject, "Set Execution Parameters"); - this._addFormInputText(formObject, "status", "Status", "STARTED"); - this._addFormInputText(formObject, "host", "Host", "localhost"); - this._addFormInputText(formObject, "user", "User", "user"); - - var moreButton = new qx.ui.basic.Image("org.argeo.slc.ria/list-add.png"); - moreButton.setToolTip(new qx.ui.tooltip.ToolTip("Add a parameter")); - moreButton.setCursor("pointer"); - moreButton.addListener("click", function(){ - this._addFormInputText(formObject); - }, this); - this._addFormHeader(formObject, "Add optionnal parameters", moreButton); - this._addFormInputText(formObject); - this._addFormInputText(formObject); - }, - - /** - * Add an hidden field to the form - * @param formObject {Map} The form part - * @param fieldName {String} Name - * @param fieldValue {String} Value - */ - _addFormHiddenField : function(formObject, fieldName, fieldValue){ - formObject.hiddenFields[fieldName] = fieldValue; - }, - - /** - * Creates a simple label/input form entry. - * @param formObject {Map} The form part - * @param fieldName {String} Name - * @param fieldLabel {String} Label of the field - * @param defaultValue {String} The default value - * @param choiceValues {Map} An map of values - */ - _addFormInputText : function(formObject, fieldName, fieldLabel, defaultValue, choiceValues){ - var labelElement; - if(choiceValues){ - var fieldElement = new qx.ui.form.SelectBox(); - for(var key in choiceValues){ - fieldElement.add(new qx.ui.form.ListItem(choiceValues[key], null, key)); - } - }else{ - var fieldElement = new qx.ui.form.TextField(); - } - if(defaultValue){ - fieldElement.setValue(defaultValue); - } - if(fieldName && fieldLabel){ - labelElement = new qx.ui.basic.Label(fieldLabel); - formObject.fields[fieldName] = fieldElement; - }else{ - labelElement = new qx.ui.form.TextField(); - formObject.freeFields.push({ - labelEl:labelElement, - valueEl:fieldElement - }); - } - this._addFormEntry(formObject, labelElement, fieldElement); - }, - - /** - * Add an header - * @param formObject {Map} The form part - * @param content {Mixed} Content to add. - * @param additionnalButton {Mixed} Any widget to add on the east. - */ - _addFormHeader : function(formObject, content, additionnalButton){ - var header = new qx.ui.basic.Label(''+content+''); - header.setRich(true); - if(!additionnalButton){ - header.setPaddingTop(10); - formObject.pane.add(header); - }else{ - var pane = new qx.ui.container.Composite(new qx.ui.layout.Dock()); - pane.setPaddingTop(10); - pane.setPaddingRight(10); - pane.add(header, {edge:'center'}); - pane.add(additionnalButton, {edge:'east'}); - formObject.pane.add(pane); - } - }, - - /** - * Adds a label/input like entry in the form. - * @param formObject {Map} The form part - * @param labelElement {Object} Either a label or an input - * @param fieldElement {Object} Any form input. - */ - _addFormEntry : function(formObject, labelElement, fieldElement){ - var entryPane = new qx.ui.container.Composite(new qx.ui.layout.HBox(5)); - labelElement.setWidth(100); - labelElement.setTextAlign("right"); - entryPane.add(labelElement); - entryPane.add(new qx.ui.basic.Label(':')); - fieldElement.setWidth(150); - entryPane.add(fieldElement); - formObject.pane.add(entryPane); - }, - - /* - _refreshTopicsSubscriptions : function(changeTopicsEvent){ - var oldTopics = changeTopicsEvent.getOldData() || {}; - var newTopics = changeTopicsEvent.getData(); - var removed = []; - var added = []; - for(var key in oldTopics){ - if(!newTopics[key]) { - //this._removeAmqListener(key); - } - } - for(var key in newTopics){ - if(!oldTopics[key]) { - //this._addAmqListener(key); - } - } - }, - */ - - /** - * Refresh the selector when the topics are updated. - * @param changeTopicsEvent {qx.event.type.DataEvent} The reload event. - */ - _feedSelector : function(changeTopicsEvent){ - var topics = changeTopicsEvent.getData(); - this.agentSelector.removeAll(); - var emptyItem = new qx.ui.form.ListItem("", null, ""); - this.agentSelector.add(emptyItem); - this.agentSelector.setSelected(emptyItem); - for(var key in topics){ - var listItem = new qx.ui.form.ListItem(topics[key], null, key); - this.agentSelector.add(listItem); - } - }, - - /* - _addAmqListener: function(uuid){ - this._amqClient.addListener("slcExec", "topic://agent."+uuid+".newExecution", function(response){ - var message = org.argeo.ria.util.Element.selectSingleNode(response, "slc:slc-execution"); - var slcExec = new org.argeo.slc.ria.SlcExecutionMessage(message.getAttribute("uuid")); - slcExec.fromXml(message); - this.logModel.addRows([ - [new Date().toString(), slcExec.getHost()+' ('+slcExec.getUuid()+')', slcExec.getStatus()] - ]); - }, this); - }, - - _removeAmqListener : function(uuid){ - this._amqClient.removeListener("slcExec", "topic://agent."+uuid+".newExecution"); - }, - */ - - /** - * Make an SlcExecutionMessage from the currently displayed form. - * @param crtPartId {String} The form part currently displayed - * @param slcExec {org.argeo.slc.ria.SlcExecutionMessage} The message to fill. - * @param fields {Map} The fields of the form - * @param hiddenFields {Map} The hidden ones - * @param freeFields {Array} The free fields. - */ - _prepareSlcExecutionMessage : function(crtPartId, slcExec, fields, hiddenFields, freeFields){ - if(crtPartId == "standard"){ - slcExec.setStatus(fields.status.getValue()); - slcExec.setHost(fields.host.getValue()); - slcExec.setUser(fields.user.getValue()); - }else{ - slcExec.addAttribute("ant.file", fields["ant.file"].getValue()); - } - for(var i=0;i 0){ - tableLines.push([date, type, thread, parser.getSingleNodeText(logLines[0], ".")]); - if(logLines.length>1){ - for(var j=1;j'); - builder.add(''+this.getStatus()+''); - builder.add(''+this.getType()+''); - builder.add(''+this.getHost()+''); - builder.add(''+this.getUser()+''); - var attr = this.getAttributes(); - if(qx.lang.Object.getLength(attr)){ - builder.add(''); - for(var key in attr){ - builder.add(''+attr[key]+''); - } - builder.add(''); - } - builder.add(''); - return builder.get(); - }, - - /** - * Parse an XML answer and fill the object with it. - * @param slcExecXml {String} An slcExecMessage mapped in XML. - */ - fromXml : function(slcExecXml){ - var NSMap = {slc:"http://argeo.org/projects/slc/schemas"}; - this.setStatus(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:status", NSMap)); - this.setType(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:type", NSMap)); - this.setHost(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:host", NSMap)); - this.setUser(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:user", NSMap)); - var attributes = org.argeo.ria.util.Element.selectNodes(slcExecXml, "slc:attribute", NSMap); - for(var i=0;i