http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/ProjectsAction.java ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/ProjectsAction.java b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/ProjectsAction.java new file mode 100644 index 0000000..996d089 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/ProjectsAction.java @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package ${package}.actions.data; + +import com.opensymphony.xwork2.ActionSupport; +import org.apache.struts2.convention.annotation.Result; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.ArrayList; +import java.util.List; + +/** + * <code>List Apache projects.</code> + */ +@Result(type = "json") +public class ProjectsAction extends ActionSupport { + + private static final long serialVersionUID = 9037336532369476225L; + private static final Logger log = LogManager.getLogger(ProjectsAction.class); + + private List<String> projectNames; + + public String execute() throws Exception { + + projectNames = new ArrayList<String>(); + projectNames.add("Apache Struts"); + projectNames.add("Apache Log4j"); + projectNames.add("Apache Tomcat"); + projectNames.add("Apache Maven"); + projectNames.add("Apache Ant"); + projectNames.add("Apache Log4Net"); + projectNames.add("Apache Log4Cxx"); + projectNames.add("Apache Chainsaw"); + projectNames.add("Apache Incubator"); + projectNames.add("Apache Hadoop"); + projectNames.add("Apache OpenOffice"); + projectNames.add("Apache Mahout"); + projectNames.add("Apache Tapestry"); + projectNames.add("Apache Jena"); + projectNames.add("Apache Solr"); + projectNames.add("Apache Cayenne"); + projectNames.add("Apache OpenEJB"); + projectNames.add("Apache Deltaspike"); + projectNames.add("Apache Cordova"); + + log.debug("Return {} Apache projects", projectNames.size()); + + return SUCCESS; + } + + public List<String> getProjectNames() { + return projectNames; + } +}
http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/package-info.java ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/package-info.java b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/package-info.java new file mode 100644 index 0000000..3e4af32 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/java/actions/data/package-info.java @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +@ParentPackage("data") +@Namespace("/data") +package ${package}.actions.data; + +import org.apache.struts2.convention.annotation.Namespace; +import org.apache.struts2.convention.annotation.ParentPackage; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/jshint.conf.js ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/jshint.conf.js b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/jshint.conf.js new file mode 100644 index 0000000..91d3bb3 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/jshint.conf.js @@ -0,0 +1,13 @@ +{ + "maxparams": 3, + "indent": true, + "camelcase": true, + "eqeqeq": true, + "forin": true, + "immed": true, + "latedef": false, + "noarg": true, + "noempty": true, + "nonew": true, + "globals": {} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/log4j2.xml ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/log4j2.xml new file mode 100644 index 0000000..6d27d12 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/log4j2.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration> + <Appenders> + <Console name="STDOUT" target="SYSTEM_OUT"> + <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </Console> + </Appenders> + <Loggers> + <Logger name="com.opensymphony.xwork2" level="info"/> + <Logger name="org.apache.struts2" level="info"/> + <Logger name="\${groupId}" level="debug"/> + <Root level="warn"> + <AppenderRef ref="STDOUT"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package.properties ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package.properties b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package.properties new file mode 100644 index 0000000..b8ee61f --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package.properties @@ -0,0 +1 @@ +hello.message = Struts is up and running... http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package_es.properties ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package_es.properties b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package_es.properties new file mode 100644 index 0000000..9f3bc40 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/package_es.properties @@ -0,0 +1 @@ +hello.message = \u00A1Struts est\u00E1 bien\!... http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/struts.xml ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/struts.xml b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/struts.xml new file mode 100644 index 0000000..d11f2d8 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/resources/struts.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE struts PUBLIC + "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" + "http://struts.apache.org/dtds/struts-2.5.dtd"> +<struts> + + <constant name="struts.enable.DynamicMethodInvocation" value="false"/> + <constant name="struts.devMode" value="true"/> + + <constant name="struts.convention.default.parent.package" value="angularstruts"/> + <package name="angularstruts" extends="json-default"> + <default-action-ref name="index" /> + </package> + <package name="data" extends="angularstruts" namespace="/data"></package> + +</struts> http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/content/index.jsp ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/content/index.jsp b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/content/index.jsp new file mode 100644 index 0000000..3f6c374 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/content/index.jsp @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ taglib prefix="s" uri="/struts-tags" %> +<html lang="en" ng-app="app"> +<head> + <meta charset="utf-8"> + <title>My AngularJS Struts2 App</title> + + <base href="<s:url forceAddSchemeHostAndPort="true" includeContext="true" value="/" namespace="/" />"> +</head> +<body> + +<h2><s:property value="message"/></h2> + +<div> + <a href="/home">Home</a> - <a href="/projects">Projects</a> +</div> + +<div ng-controller="AppController as app"> + <div ng-view></div> +</div> + +<s:if test="useMinifiedResources"> + <script src="<s:url value="js/external.js" />"></script> + <script src="<s:url value="js/application.js" />"></script> +</s:if> +<s:else> + <script src="<s:url value="js/lib/angular/angular.min.js" />"></script> + <script src="<s:url value="js/lib/angular/angular-route.min.js" />"></script> + <script src="<s:url value="js/app.js" />"></script> + <script src="<s:url value="js/config.js" />"></script> + <script src="<s:url value="js/services/DataService.js" />"></script> + <script src="<s:url value="js/controllers/AppController.js" />"></script> + <script src="<s:url value="js/controllers/HomeController.js" />"></script> + <script src="<s:url value="js/controllers/ApacheProjectsController.js" />"></script> +</s:else> +</body> +</html> http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..8d08c0b --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app id="struts_angularjs" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> + <display-name>Struts Blank AngularJS App</display-name> + + <filter> + <filter-name>struts2</filter-name> + <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> + </filter> + + <filter-mapping> + <filter-name>struts2</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + </welcome-file-list> +</web-app> http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/index.jsp ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/index.jsp b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/index.jsp new file mode 100644 index 0000000..a81b87f --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/index.jsp @@ -0,0 +1 @@ +<% response.sendRedirect("index"); %> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/app.js ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/app.js b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/app.js new file mode 100644 index 0000000..6d2da17 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/app.js @@ -0,0 +1,26 @@ +/* + * $Id$ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +(function() { + 'use strict'; + + angular + .module('app', ['ngRoute']); +})(); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/config.js ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/config.js b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/config.js new file mode 100644 index 0000000..9b93aab --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/config.js @@ -0,0 +1,40 @@ +/* + * $Id$ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +(function() { + 'use strict'; + + angular + .module('app') + .config(['$routeProvider', '$locationProvider', + function($routeProvider, $locationProvider) { + + $locationProvider.html5Mode(true).hashPrefix('!'); + + $routeProvider.when('/projects', { + templateUrl: 'partials/projects.html', + controller: 'ApacheProjectsController as vm' + }).when('/home', { + templateUrl: 'partials/home.html', + controller: 'HomeController as vm' + }).otherwise({ redirectTo: '/home' }); + } + ]); +})(); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/ApacheProjectsController.js ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/ApacheProjectsController.js b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/ApacheProjectsController.js new file mode 100644 index 0000000..1fb0ca9 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/ApacheProjectsController.js @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +(function() { + 'use strict'; + + angular + .module('app') + .controller('ApacheProjectsController', ApacheProjectsController); + + function ApacheProjectsController($log, DataService) { + var vm = this; + + init(); + + function init() { + return DataService.getProjects().then(function(data) { + vm.projects = data.projectNames; + return vm.projects; + }, function() { + $log.error('Could not receive project names.'); + }); + } + } +})(); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/AppController.js ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/AppController.js b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/AppController.js new file mode 100644 index 0000000..d6de31a --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/AppController.js @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +(function() { + 'use strict'; + + angular + .module('app') + .controller('AppController', AppController); + + function AppController() { + + } +})(); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-archetypes/blob/3662396a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/HomeController.js ---------------------------------------------------------------------- diff --git a/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/HomeController.js b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/HomeController.js new file mode 100644 index 0000000..44c7cf9 --- /dev/null +++ b/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/controllers/HomeController.js @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +(function() { + 'use strict'; + + angular + .module('app') + .controller('HomeController', HomeController); + + function HomeController() { + var vm = this; + vm.name = "Sunshine"; + } +})(); \ No newline at end of file