diff --git a/api/pom.xml b/api/pom.xml deleted file mode 100644 index 486c7589b..000000000 --- a/api/pom.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - 4.0.0 - - org.apache.struts - struts2-parent - 2.1.1-SNAPSHOT - - org.apache.struts - struts2-api - jar - Struts 2 API - - - scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/api/ - scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/api/ - http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/api/ - - - - - javax.servlet - servlet-api - 2.4 - provided - - - junit - junit - 3.8.1 - test - - true - - - org.easymock - easymock - test - 2.0 - - - - - - j4 - - - - org.codehaus.mojo - retrotranslator-maven-plugin - - - retrotranslate - - translate-project - - - backport - true - - - - - - - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - false - - - - - diff --git a/api/src/main/java/org/apache/struts2/Action.java b/api/src/main/java/org/apache/struts2/Action.java deleted file mode 100644 index ae46570f2..000000000 --- a/api/src/main/java/org/apache/struts2/Action.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2; - -/** - * Default action interface. Provided purely for user convenience. Struts does not require actions to implement any - * interfaces. Actions need only implement a public, no argument method which returns {@code String}. If a user does - * not specify a method name, Struts defaults to {@code execute()}. - * - *

For example: - * - *

- *   static import ResultNames.*;
- *
- *   public class MyAction implements Action {
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *   }
- * 
- * - *

is equivalent to: - * - *

- *   static import ResultNames.*;
- *
- *   public class MyAction {
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *   }
- * 
- * - * @author crazybob@google.com (Bob Lee) - */ -public interface Action { - - /** - * Executes this action. - * - * @return result name which matches a result name from the action mapping in the configuration file. See {@link - * ResultNames} for common suggestions. - */ - String execute(); -} diff --git a/api/src/main/java/org/apache/struts2/MessageAware.java b/api/src/main/java/org/apache/struts2/MessageAware.java deleted file mode 100644 index 6dd380b53..000000000 --- a/api/src/main/java/org/apache/struts2/MessageAware.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2; - -/** - * Implemented by actions which may need to record errors or messages. - * - *
- *   static import ResultNames.*;
- *
- *   public class SetName implements MessageAware {
- *
- *     Messages messages;
- *     String name;
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *
- *     public void setName(String name) {
- *       if ("".equals(name))
- *         messages.forField("name").addError("name.required");
- *
- *       this.name = name;
- *     }
- *
- *     public void setMessages(Messages messages) {
- *       this.messages = messages;
- *     }
- *   }
- * 
- * - * @author crazybob@google.com (Bob Lee) - */ -public interface MessageAware { - - /** - * Sets messages. - * - * @param messages messages - */ - void setMessages(Messages messages); -} diff --git a/api/src/main/java/org/apache/struts2/Messages.java b/api/src/main/java/org/apache/struts2/Messages.java deleted file mode 100644 index bce30de5a..000000000 --- a/api/src/main/java/org/apache/struts2/Messages.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2; - -import java.util.List; -import java.util.Set; -import java.util.Map; - -/** - * Collection of messages. Supports nesting messages by field name. - * - *

Uses keys when adding instead of actual messages to decouple code from messages. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface Messages { - - // TODO: Use Object[] for args instead of String[]. - - /** - * Message severity. - */ - public enum Severity { - - /** - * Informational messages. - */ - INFO, - - /** - * Warning messages. - */ - WARN, - - /** - * Error messages. - */ - ERROR, - } - - /** - * Gets nested messages for the given field. - * - *

Supports dot notation to represent nesting. For example: - * - *

-     * messages.forField("foo").forField("bar") == messages.forField("foo.bar")
-     * 
- * - * @param fieldName name of the field - * @return nested {@code Messages} for given field name - */ - Messages forField(String fieldName); - - /** - * Gets map of field name to messages for that field. - * - * @return map of field name to {@code Messages} - */ - Map forFields(); - - /** - * Adds informational message. - * - * @param key message key - * @see Severity.INFO - */ - void addInformation(String key); - - /** - * Adds informational message. - * - * @param key message key - * @param arguments message arguments - * @see Severity.INFO - */ - void addInformation(String key, String... arguments); - - /** - * Adds warning message. - * - * @param key message key - * @see Severity.WARN - */ - void addWarning(String key); - - /** - * Adds warning message. - * - * @param key message key - * @param arguments message arguments - * @see Severity.WARN - */ - void addWarning(String key, String... arguments); - - /** - * Adds error message. - * - * @param key message key - * @see Severity.ERROR - */ - void addError(String key); - - /** - * Adds error message. - * - * @param key message key - * @param arguments message arguments - * @see Severity.ERROR - */ - void addError(String key, String... arguments); - - /** - * Adds message. - * - * @param severity message severity - * @param key message key - */ - void add(Severity severity, String key); - - /** - * Adds request-scoped message. - * - * @param severity message severity - * @param key message key - * @param arguments message arguments - */ - void add(Severity severity, String key, String... arguments); - - /** - * Gets set of severities for which this {@code Messages} instance has messages. Not recursive. - * - * @return unmodifiable set of {@link Severity} sorted from least to most severe - */ - Set getSeverities(); - - /** - * Gets message strings for the given severity. Not recursive. - * - * @param severity message severity - * @return unmodifiable list of messages - */ - List forSeverity(Severity severity); - - /** - * Gets error message strings for this {@code Messages} instance. Not recursive. - * - * @return unmodifiable list of messages - */ - List getErrors(); - - /** - * Gets error message strings for this {@code Messages} instance. Not recursive. - * - * @return unmodifiable list of messages - */ - List getWarnings(); - - /** - * Gets informational message strings for this {@code Messages} instance. Not recursive. - * - * @return unmodifiable list of messages - */ - List getInformation(); - - /** - * Returns true if this or a nested {@code Messages} instance has error messages. - * - * @see Severity.ERROR - */ - boolean hasErrors(); - - /** - * Returns true if this or a nested {@code Messages} instance has warning messages. - * - * @see Severity.WARN - */ - boolean hasWarnings(); - - /** - * Returns true if this or a nested {@code Messages} instance has informational messages. - * - * @see Severity.INFO - */ - boolean hasInformation(); - - /** - * Returns true if this and all nested {@code Messages} instances have no messages. - */ - boolean isEmpty(); - - /** - * Returns true if this and all nested {@code Messages} instances have no messages for the given severity. - * - * @param severity message severity - */ - boolean isEmpty(Severity severity); -} \ No newline at end of file diff --git a/api/src/main/java/org/apache/struts2/ResultNames.java b/api/src/main/java/org/apache/struts2/ResultNames.java deleted file mode 100644 index fd5955ce0..000000000 --- a/api/src/main/java/org/apache/struts2/ResultNames.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2; - -/** - * Commonly used result names returned by action methods. - * - * @author crazybob@google.com (Bob Lee) - */ -public final class ResultNames { - - private ResultNames() {} - - /** - * The action executed successfully. - */ - public static final String SUCCESS = "success"; - - /** - * The action requires more input, i.e. a validation error occurred. - */ - public static final String INPUT = "input"; - - /** - * The action requires the user to log in before executing. - */ - public static final String LOGIN = "login"; - - /** - * The action execution failed irrecoverably. - */ - public static final String ERROR = "error"; - - /** - * The action executed successfully, but do not execute a result. - */ - public static final String NONE = "none"; -} diff --git a/api/src/main/java/org/apache/struts2/Validatable.java b/api/src/main/java/org/apache/struts2/Validatable.java deleted file mode 100644 index 1d59dddee..000000000 --- a/api/src/main/java/org/apache/struts2/Validatable.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2; - -import org.apache.struts2.MessageAware; - -/** - * Implemented by actions which wish to execute some validation logic before their action method. Useful for - * cross-field validations. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface Validatable extends MessageAware { - - /** - * Validates input. Executes before action method. - */ - public void validate(); -} diff --git a/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java b/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java deleted file mode 100644 index df705fbe6..000000000 --- a/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.servlet; - -import java.util.Map; - -/** - * Implemented by actions which need direct access to the request parameters. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface ParameterAware { - - /** - * Sets parameters. - * - * @param parameters map of parameter name to parameter values - */ - void setParameters(Map parameters); -} diff --git a/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java b/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java deleted file mode 100644 index cf1a44c6b..000000000 --- a/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.servlet; - -import javax.servlet.http.HttpServletRequest; - -/** - * Implemented by actions which need direct access to the servlet request. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface ServletRequestAware { - - /** - * Sets the servlet request. - * - * @param request servlet request. - */ - void setServletRequest(HttpServletRequest request); -} diff --git a/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java b/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java deleted file mode 100644 index c36726fa2..000000000 --- a/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.servlet; - -import javax.servlet.http.HttpServletResponse; - -/** - * Implemented by actions which need direct access to the servlet response. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface ServletResponseAware { - - /** - * Sets the servlet response. - * - * @param response servlet response - */ - void setServletResponse(HttpServletResponse response); -} diff --git a/api/src/main/java/org/apache/struts2/spi/ActionContext.java b/api/src/main/java/org/apache/struts2/spi/ActionContext.java deleted file mode 100644 index 5546fa444..000000000 --- a/api/src/main/java/org/apache/struts2/spi/ActionContext.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.spi; - -import java.lang.reflect.Method; - -/** - * Context of an action execution. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface ActionContext { - - /** - * Gets action instance. - */ - Object getAction(); - - /** - * Gets action method. - */ - Method getMethod(); - - /** - * Gets action name. - */ - String getActionName(); - - /** - * Gets the path for the action's namespace. - */ - String getNamespacePath(); - - /** - * Gets the {@link Result} instance for the action. - * - * @return {@link Result} instance or {@code null} if we don't have a result yet. - */ - Result getResult(); - - /** - * Adds a result interceptor for the action. Enables executing code before and after a result, executing an - * alternate result, etc. - */ - void addResultInterceptor(Result interceptor); - - /** - * Gets context of action which chained to us. - * - * @return context of previous action or {@code null} if this is the first action in the chain - */ - ActionContext getPrevious(); - - /** - * Gets context of action which this action chained to. - * - * @return context of next action or {@code null} if we haven't chained to another action yet or this is the last - * action in the chain. - */ - ActionContext getNext(); -} diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/api/src/main/java/org/apache/struts2/spi/Interceptor.java deleted file mode 100644 index 33cd84751..000000000 --- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.spi; - -/** - * Intercepts an action request. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface Interceptor { - - /** - * Intercepts an action request. - * - * @param requestContext current request context - */ - String intercept(RequestContext requestContext) throws Exception; -} diff --git a/api/src/main/java/org/apache/struts2/spi/RequestContext.java b/api/src/main/java/org/apache/struts2/spi/RequestContext.java deleted file mode 100644 index c08b08a6f..000000000 --- a/api/src/main/java/org/apache/struts2/spi/RequestContext.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.spi; - -import org.apache.struts2.Messages; - -import javax.servlet.ServletContext; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -/** - * Request context. A single request may span multiple actions with action chaining. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface RequestContext { - - /** - * Gets context of the currently executing action. - * - * @return current action context - */ - ActionContext getActionContext(); - - /** - * Convenience method. Equivalent to {@code getActionContext().getAction()}. - * - * @return currently executing action - */ - Object getAction(); - - /** - * Gets map of request parameters. - */ - Map getParameterMap(); - - /** - * Gets map of request attributes. - */ - Map getAttributeMap(); - - /** - * Gets map of session attributes. - */ - Map getSessionMap(); - - /** - * Gets map of application (servlet context) attributes. - */ - Map getApplicationMap(); - - /** - * Finds cookies with the given name, - */ - List findCookiesForName(String name); - - /** - * Gets locale. - */ - Locale getLocale(); - - /** - * Sets locale. Stores the locale in the session for future requests. - */ - void setLocale(Locale locale); - - /** - * Gets messages. - */ - Messages getMessages(); - - /** - * Gets the servlet request. - */ - HttpServletRequest getServletRequest(); - - /** - * Gets the servlet response. - */ - HttpServletResponse getServletResponse(); - - /** - * Gets the servlet context. - */ - ServletContext getServletContext(); - - /** - * Gets the value stack. - */ - ValueStack getValueStack(); - - /** - * Invokes the next interceptor or the action method if no more interceptors remain. - * - * @return result name - * @throws IllegalStateException if already invoked or called from the action - */ - String proceed() throws Exception; -} diff --git a/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java b/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java deleted file mode 100644 index 342599b9e..000000000 --- a/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.spi; - -import org.apache.struts2.spi.RequestContext; - -/** - * Implemented by actions that need access to the current {@link org.apache.struts2.spi.RequestContext}. Use - * judiciously. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface RequestContextAware { - - /** - * Sets {@link org.apache.struts2.spi.RequestContext}. - * - * @param requestContext - */ - void setRequestContext(RequestContext requestContext); -} diff --git a/api/src/main/java/org/apache/struts2/spi/Result.java b/api/src/main/java/org/apache/struts2/spi/Result.java deleted file mode 100644 index 07913ccd3..000000000 --- a/api/src/main/java/org/apache/struts2/spi/Result.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.spi; - -import org.apache.struts2.spi.RequestContext; - -/** - * The result of an action request. Struts creates a new {@code Result} instance for each request. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface Result { - - /** - * Executes result. - * - * @param requestContext - */ - void execute(RequestContext requestContext) throws Exception; -} diff --git a/api/src/main/java/org/apache/struts2/spi/ValueStack.java b/api/src/main/java/org/apache/struts2/spi/ValueStack.java deleted file mode 100644 index bd6192206..000000000 --- a/api/src/main/java/org/apache/struts2/spi/ValueStack.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $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. - */ -package org.apache.struts2.spi; - -/** - * A central fixture of the Struts framework, the {@code ValueStack} is a stack which contains the actions - * which have executed in addition to other objects. Users can get and set values on the stack using expressions. The - * {@code ValueStack} will search down the stack starting with the most recent objects until it finds an object to - * which the expression can apply. - * - * @author crazybob@google.com (Bob Lee) - */ -public interface ValueStack extends Iterable { - - /** - * Gets the top, most recent object from the stack without changing the stack. - * - * @return the top object - */ - Object peek(); - - /** - * Removes the top, most recent object from the stack. - * - * @return the top object - */ - Object pop(); - - /** - * Pushes an object onto the stack. - * - * @param o - */ - void push(Object o); - - /** - * Creates a shallow copy of this stack. - * - * @return a new stack which contains the same objects as this one - */ - ValueStack clone(); - - /** - * Queries the stack. Starts with the top, most recent object. If the expression can apply to the object, this - * method returns the result of evaluating the expression. If the expression does not apply, this method moves - * down the stack to the next object and repeats. Returns {@code null} if the expression doesn't apply to any - * objects. - * - * @param expression - * @return the evaluation of the expression against the first applicable object in the stack - */ - Object get(String expression); - - /** - * Queries the stack and converts the result to the specified type. Starts with the top, most recent object. If - * the expression can apply to the object, this method returns the result of evaluating the expression converted - * to the specified type. If the expression does not apply, this method moves down the stack to the next object - * and repeats. Returns {@code null} if the expression doesn't apply to any objects. - * - * @param expression - * @param asType the type to convert the result to - * @return the evaluation of the expression against the first applicable object in the stack converted to the - * specified type - */ - T get(String expression, Class asType); - - /** - * Queries the stack and converts the result to a {@code String}. Starts with the top, most recent object. If the - * expression can apply to the object, this method returns the result of evaluating the expression converted to a - * {@code String}. If the expression does not apply, this method moves down the stack to the next object and - * repeats. Returns {@code null} if the expression doesn't apply to any objects. - * - * @param expression - * @return the evaluation of the expression against the first applicable object in the stack converted to a {@code - * String} - */ - String getString(String expression); - - /** - * Sets a value on an object from the stack. This method starts at the top, most recent object. If the expression - * applies to that object, this methods sets the given value on that object using the expression and converting - * the type as necessary. If the expression does not apply, this method moves to the next object and repeats. - * - * @param expression - * @param value - */ - void set(String expression, Object value); - - /** - * Returns the number of object on the stack. - * - * @return size of stack - */ - int size(); -} diff --git a/api/src/main/resources/LICENSE.txt b/api/src/main/resources/LICENSE.txt deleted file mode 100644 index dd5b3a58a..000000000 --- a/api/src/main/resources/LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/api/src/main/resources/NOTICE.txt b/api/src/main/resources/NOTICE.txt deleted file mode 100644 index cd13ec449..000000000 --- a/api/src/main/resources/NOTICE.txt +++ /dev/null @@ -1,5 +0,0 @@ -Apache Struts -Copyright 2000-2007 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). \ No newline at end of file diff --git a/backport/ASM-LICENSE.txt b/backport/ASM-LICENSE.txt deleted file mode 100755 index d0cd82def..000000000 --- a/backport/ASM-LICENSE.txt +++ /dev/null @@ -1,28 +0,0 @@ - - ASM: a very small and fast Java bytecode manipulation framework - Copyright (c) 2000-2005 INRIA, France Telecom - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holders nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backport/LICENSE.txt b/backport/LICENSE.txt deleted file mode 100644 index f024848a7..000000000 --- a/backport/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ - Copyright (c) 2005 - 2007 Taras Puchko - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holders nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backport/RETROTRANSLATOR-LICENSE.txt b/backport/RETROTRANSLATOR-LICENSE.txt deleted file mode 100755 index c2a85598d..000000000 --- a/backport/RETROTRANSLATOR-LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ - Retrotranslator: a Java bytecode transformer that translates Java classes - compiled with JDK 5.0 into classes that can be run on JVM 1.4. - - Copyright (c) 2005, 2006 Taras Puchko - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holders nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backport/S2-FOR-J4-README.txt b/backport/S2-FOR-J4-README.txt deleted file mode 100755 index 5e87b680f..000000000 --- a/backport/S2-FOR-J4-README.txt +++ /dev/null @@ -1,22 +0,0 @@ -STRUTS 2 FOR JAVA 4 - -Struts 2 is targeted for Java 5, but a "backported" version to Java 4 is being made available, -using the RetroTranslator tool. - -To use Struts 2 with Java 4 (preferably Java 1.4.2), place the enclosed Struts, XWork, -RetroTranslator, and backport-util-concurrent JARs on your classpath. For complete details on -using RetroTranslator JARs, see the RetroTranslator site. - -* http://retrotranslator.sourceforge.net/ - -NOTE: The Struts 2 and XWork 2 JARs are complete replacements for the corresponding standard -Java 5 JARs. Do not use both sets of JARs in the same environment! - -If you discover any issues using the Struts 2 for Java 4 JAR, please report them to the Struts -Dev list or JIRA ticket ww-1391. - -* http://struts.apache.org/mail.html - -* https://issues.apache.org/struts/browse/WW-1391 - -Cheers! diff --git a/backport/STRUTS-LICENSE.txt b/backport/STRUTS-LICENSE.txt deleted file mode 100755 index dd5b3a58a..000000000 --- a/backport/STRUTS-LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/backport/XWORK-LICENSE.txt b/backport/XWORK-LICENSE.txt deleted file mode 100755 index 22ca3d2c5..000000000 --- a/backport/XWORK-LICENSE.txt +++ /dev/null @@ -1,50 +0,0 @@ -/* ==================================================================== - * The OpenSymphony Software License, Version 1.1 - * - * (this license is derived and fully compatible with the Apache Software - * License - see http://www.apache.org/LICENSE.txt) - * - * Copyright (c) 2001-2004 The OpenSymphony Group. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * OpenSymphony Group (http://www.opensymphony.com/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "OpenSymphony" and "The OpenSymphony Group" - * must not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact license@opensymphony.com . - * - * 5. Products derived from this software may not be called "OpenSymphony" - * or "XWork", nor may "OpenSymphony" or "XWork" appear in their - * name, without prior written permission of the OpenSymphony Group. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ \ No newline at end of file diff --git a/backport/backport-util-concurrent-3.0.jar b/backport/backport-util-concurrent-3.0.jar deleted file mode 100755 index 99f9b9c6a..000000000 Binary files a/backport/backport-util-concurrent-3.0.jar and /dev/null differ diff --git a/backport/readme.html b/backport/readme.html deleted file mode 100644 index c1d8b35d1..000000000 --- a/backport/readme.html +++ /dev/null @@ -1,994 +0,0 @@ - - - - Retrotranslator - - - - - - - - - -

Retrotranslator

SourceForge.net Logo -   - The best Java IDE -
-

Contents

-
    -
  1. What is Retrotranslator?
  2. -
  3. What Java 5 features are supported?
  4. -
  5. How to use Retrotranslator from a command line?
  6. -
  7. How to produce a JAR file compatible with J2SE 1.4?
  8. -
  9. How to use Retrotranslator from Apache Ant or Maven?
  10. -
  11. How to use Retrotranslator from IntelliJ IDEA?
  12. -
  13. How to use Just-in-Time Retrotranslator?
  14. -
  15. What API is supported on J2SE 1.4?
  16. -
  17. How to write an extension?
  18. -
  19. What are the limitations?
  20. -
  21. Alternative tools
  22. -
  23. Contact
  24. -
  25. License
  26. -
-

What is Retrotranslator?

- -

- Retrotranslator is a tool that makes Java applications compatible with various versions of the Java platform. - It supports all Java 5 language features and a significant part of Java 5 API on J2SE 1.4. In other Java - environments only the Java 5 language features that does not require new API are supported. - Retrotranslator is based on the ASM bytecode manipulation framework and the - backport of concurrency utilities. -

-

What Java 5 features are supported?

-
    -
  • Generics
  • -
  • Annotations
  • -
  • Reflection on generics and annotations
  • -
  • Typesafe enums
  • -
  • Autoboxing/unboxing
  • -
  • Enhanced for loop
  • -
  • Varargs
  • -
  • Covariant return types
  • -
  • Formatted output
  • -
  • Static import
  • -
  • Concurrency utilities
  • -
  • Collections framework enhancements
  • -
-

How to use Retrotranslator from a command line?

-
    -
  1. Download - and unzip the binary distribution file Retrotranslator-n.n.n-bin.zip, - where n.n.n is the latest Retrotranslator release number. -
  2. -
  3. - Compile your classes with Java 5 or later and put them into some directory, e.g. myclasses. -
  4. -
  5. - Go to the unzipped directory and execute:
    - java -jar retrotranslator-transformer-n.n.n.jar -srcdir myclasses -
  6. -
  7. - If you use Java 5 API put retrotranslator-runtime-n.n.n.jar and - backport-util-concurrent-n.n.jar into the classpath of your application. -
  8. -
  9. - Run or debug the application as usual on J2SE 1.4.x. -
  10. -
-

The command line syntax:
- java -jar retrotranslator-transformer-n.n.n.jar <options> -
or
- java -cp retrotranslator-transformer-n.n.n.jar - net.sf.retrotranslator.transformer.Retrotranslator <options>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionDefault
-srcdir <path>The directory with the files to process (may be specified several times).-
-srcjar <file>The JAR archive file with the files to process (may be specified several times).-
-destdir <path>The directory to place processed files.The source directory.
-destjar <file>The JAR archive file to place processed files.The source JAR file.
-srcmask <mask>The wildcard pattern specifying the files to transform rather than copy - (classes or UTF-8 text files), e.g. *.class;?*.tld. - *.class
-target <version>The version of the JVM where classes should be able to run. The supported targets are - 1.1, 1.2, 1.3, 1.4, and 1.5. While API support is available only for the 1.4 target, - user-defined backport classes may be used for other targets as well. - 1.4
-classpath <path>The dependencies of the translated classes, including the target JVM and Retrotranslator itself. - The following files should be specified among others if the target is Sun JRE 1.4: rt.jar, - jce.jar, jsse.jar, retrotranslator-runtime-n.n.n.jar, - and backport-util-concurrent-n.n.jar. - This option may be omitted if the current Java environment matches the target one. - The current classpath.
-verifyAsks the translator to examine translated bytecode for references to classes, methods, or fields - that cannot be found in the classpath. - false
-support <features>Enables advanced features. The names specified should be separated with semicolons, e.g. - ThreadLocal.remove;BigDecimal.setScale. - -
-advancedEnables all advanced features at once, but it's recommended to enable only required features - in order to avoid compatibility issues. - false
-smartMakes all backport classes inheritable provided that the classpath - correctly reflects the target environment. - For example, the backport of the Writer.append(String) method may be used - to translate the following expression: new FileWriter("file.tmp").append("Hello"). - false
-backport <names>The backport names separated with semicolons, e.g. - com.myco.all;java.util:com.myco.ju;javax.net.SocketFactory:com.myco.jsse.Factory. - The corresponding backport classes must be present in the classpath. - -
-embed <package>The package name for a partial copy of retrotranslator-runtime-n.n.n.jar and - backport-util-concurrent-n.n.jar to be put along with translated classes. - This makes an application independent of other versions of Retrotranslator present in the classpath. - -
-lazyAsks the translator to transform and verify only the classes compiled with a target greater than the - current one. - false
-stripsignAsks the translator to strip signature (generics) information.false
-verboseAsks the translator for verbose output.false
-retainapiAsks the translator to modify classes for JVM compatibility but keep use of API - unless the backport option is specified. - Any references introduced by a compiler remain unchanged, like the use of - java.lang.StringBuilder for string concatenation or - the implicit valueOf method calls for autoboxing. - false
-retainflagsAsks the translator to keep Java 5 specific access modifiers.false
-uptodatecheckAsks the translator to skip processing of files if the destination files are newer.false
-

How to produce a JAR file compatible with J2SE 1.4?

- -

- If you have myapplication5.jar file built with Java 5 you can use the following command to produce - myapplication4.jar. It will be compatible with Java 1.4 and independent of Retrotranslator because - backport classes are added to the translated application with a different package name: -

- -

- java -jar retrotranslator-transformer-n.n.n.jar - -srcjar myapplication5.jar -destjar myapplication4.jar -embed com.mycompany.internal
-

- -

- Also it is recommended to specify the classpath and - verify options. In case of verification failure try the - smart and advanced options. -

-

How to use Retrotranslator from Apache Ant or Maven?

- -

The distribution contains an Apache Ant task - net.sf.retrotranslator.transformer.RetrotranslatorTask. Every command line - option can be set using the corresponding attribute. In addition the source files can be specified with nested - fileset, jarfileset, and dirset elements and the - classpath can be set with nested classpath - elements or the classpathref attribute. - The source directories specified with srcdir, dirset, - and the dir attribute of fileset should contain the root package of the classes. - In case of warnings the build fails unless the value of - the failonwarning attribute is set to false. For example: -

-
-    <path id="classpath">
-        <fileset dir="lib" includes="**/*.jar"/>
-    </path>
-    <taskdef name="retrotranslator" classpathref="classpath"
-             classname="net.sf.retrotranslator.transformer.RetrotranslatorTask" />
-    <retrotranslator destdir="build/classes14" verify="true" failonwarning="false">
-        <fileset dir="build/classes15" includes="**/*.class">
-        <jarfileset dir="build/lib15" includes="**/*.jar">
-        <classpath location="${java14_home}/jre/lib/rt.jar"/>
-        <classpath refid="classpath"/>
-    </retrotranslator>
-
-

- For Maven there is a - Retrotranslator plugin - from the Mojo Project. -

-

How to use Retrotranslator from IntelliJ IDEA?

- -

- There is a plugin to automatically translate and verify - classes compiled by IntelliJ IDEA, so you can develop in Java 5 but - run and debug on JRE 1.4. -

-

How to use Just-in-Time Retrotranslator?

-

- In order to run a Java 5 application on J2SE 1.4 start it with JIT Retrotranslator: -

-
    -
  • - java -cp retrotranslator-transformer-n.n.n.jar - net.sf.retrotranslator.transformer.JITRetrotranslator - <options> -jar <jarfile> [<args...>] -
  • -
  • - java -cp retrotranslator-transformer-n.n.n.jar:<classpath> - net.sf.retrotranslator.transformer.JITRetrotranslator - <options> <class> [<args...>] -
  • -
-

- The options can include support, - advanced, smart, and - backport. When running on J2SE 5.0 JIT Retrotranslator simply calls - the application, but on J2SE 1.4 it also translates classes compiled for Java 5 or later. However this capability - depends on the current JVM and the application itself, so under certain conditions JIT Retrotranslator may be unable - to translate either a JAR file or classes from the classpath or both. -

- -

What API is supported on J2SE 1.4?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PackageClassMethods and fieldsCompatibility notes
java.ioCloseable2 - * (all methods) 
Flushable2* 
PrintStream - * (11 new methods and constructors) -  
PrintWriter - * (11 new methods and constructors) - - The PrintWriter.format and PrintWriter.printf methods always flush the output buffer. -
Reader* (1 new method) 
Writer* (3 new methods) 
java.langAppendable2* -  
Boolean* (2 new methods) 
Byte* (1 new method) 
Character* (44 new methods)New members of Character.UnicodeBlock are not supported. - All supplementary code points are considered as unassigned. -
Class* (21 new methods) - Enable features "Class.getMethod" and "Class.getDeclaredMethod" for more - uniform support of generics and covariant return types on different platforms3. -
Deprecated* 
DoublevalueOf(double) 
Enum* 
FloatvalueOf(float) 
IllegalArgumentException* (2 new constructors) 
IllegalStateException* (2 new constructors) 
IntegervalueOf(int),
signum(int)
 
Iterable2* 
LongvalueOf(long),
signum(long)
 
Package* (4 new methods) 
Readable2* 
Short* (2 new methods) 
StackTraceElement* (1 new constructor) 
String* (10 new methods and constructors)
- isEmpty()4 -
 
StringBuffer* (11 new methods and constructors) - Enable feature "StringBuffer.trimToSize" to use an empty implementation of - the StringBuffer.trimToSize() method3. -
StringBuilder*StringBuilder is replaced with StringBuffer.
SuppressWarnings* 
SystemnanoTime()1,
clearProperty(String)
- The System.nanoTime() method precision - - may vary on different platforms. -
Thread* (8 new methods) - The Thread.getId() method does not reflect the order in which threads are created.
- The Thread.getStackTrace() and Thread.getAllStackTraces() - methods return non-empty stack trace only for the current thread.
- Enable feature "Thread.getState" to support the Thread.getState() method, but it may - be able - to detect only NEW, RUNNABLE and TERMINATED states.3
- Enable features "Thread.setUncaughtExceptionHandler" and - "Thread.setDefaultUncaughtExceptionHandler" to support exception handlers for threads - created by translated code (in contrast to J2SE 5.0 the default UncaughtExceptionHandler - takes precedence over ThreadGroup)3. -
Thread.State* 
Thread.UncaughtExceptionHandler2* 
ThreadLocal* (1 new method)Enable feature "ThreadLocal.remove" to use alternative ThreadLocal - and InheritableThreadLocal implementations with method - remove()3. -
TypeNotPresentException* 
java.lang.annotation* (all classes)* 
java.lang.instrument** - Bytecode instrumentation is not implemented. -
java.lang.managementManagementFactory - getPlatformMBeanServer() - The ManagementFactory.getPlatformMBeanServer() method simply returns - the first registered MBeanServer or creates it when no one exists. - An implementation of JMX 1.2 must be present in a classpath. -
java.lang.refSoftReference* - Enable feature "SoftReference.NullReferenceQueue" to - support null for the second parameter of - SoftReference(Object,ReferenceQueue) - on all platforms3. -
WeakReference* - Enable feature "WeakReference.NullReferenceQueue" to - support null for the second parameter of - WeakReference(Object,ReferenceQueue) - on all platforms3. -
java.lang.reflectAccessibleObject* (4 new methods) 
AnnotatedElement2* 
Constructor* (11 new methods) 
Field* (8 new methods) 
GenericArrayType* 
GenericDeclaration2* 
GenericSignatureFormatError* 
MalformedParameterizedTypeException* 
Method* (14 new methods) 
ParameterizedType* 
Type2* 
TypeVariable* 
WildcardType* 
java.mathBigDecimal - ZERO, ONE, TEN,
- BigDecimal(int),
- BigDecimal(long),
- BigDecimal(char[]),
- BigDecimal(char[], int, int),
- divideAndRemainder(BigDecimal),
- divideToIntegralValue(BigDecimal),
- pow(int),
- remainder(BigDecimal),
- toPlainString(),
- valueOf(double),
- valueOf(long)
- Enable feature "BigDecimal.setScale" to support negative scales in method - BigDecimal.setScale(int, int)3. -
BigIntegerTEN 
java.netHttpURLConnection* (6 new methods) - Enable features "HttpURLConnection.setChunkedStreamingMode", - "HttpURLConnection.setFixedLengthStreamingMode" - to use the corresponding methods, but on Java 1.4 they will simply return. - Consider using alternative or writing own protocol handlers. -
Proxy* 
ProxySelector* 
URL* (2 new methods)The Proxy is ignored by the - URL.openConnection(Proxy) method. -
URLConnection* (4 new methods) - Enable features "URLConnection.getConnectTimeout", "URLConnection.setConnectTimeout", - "URLConnection.getReadTimeout", "URLConnection.setReadTimeout" - to use the corresponding methods, but on Java 1.4 they will simply return. - Consider using alternative or writing own protocol handlers. -
java.nioCharBuffer* (4 new methods) 
Charset* (1 new method)The Charset.defaultCharset() method returns UTF-8 - if the default charset is unavailable (occurs on JDK 1.4.0). -
java.rmi.serverRemoteObjectInvocationHandler* 
java.textDecimalFormat* (2 new methods) - Enable feature "DecimalFormat.setParseBigDecimal" to support the - DecimalFormat.setParseBigDecimal(boolean) method, but - parsing and formatting precision will still be limited by the java.lang.Double - or java.lang.Long precision3. -
java.utilAbstractQueue1* 
ArrayDeque1,4* 
Arrays* (21 new methods)
- copyOf(...)4 (10 methods)
- copyOfRange(...)4 (10 methods) -
 
Collections1* (13 new methods)
- newSetFromMap(Map)4 -
 
Deque1,2,4* 
EnumMap* 
EnumSet* 
Formatter* 
LinkedList* (5 new methods) 
PriorityQueue1* 
Properties* 
Queue1,2* 
Timer* (3 new methods and constructors) - Enable feature "Timer.All" to use alternative Timer - and TimerTask implementations in order to be able to call Timer(String), - Timer(String, boolean), and Timer.purge()3. -
UUID* 
java.util.concurrent,
java.util.concurrent.atomic,
java.util.concurrent.locks
almost all classes1almost all methodsThe LockSupport class may be unusable due to insufficient performance. - The Condition.awaitNanos(long) method has - - little accuracy guarantees. -
java.util.regexMatcher - quoteReplacement(String),
toMatchResult()
 
MatchResult2* 
Patternquote(String) 
javax.net.sslHttpsURLConnection * (2 new methods) 
-

- 1 Supported via the - Backport of JSR 166.
- 2 In most cases this type is replaced with its base type.
- 3 Supported only when the corresponding feature is enabled via the - support or - advanced options.
- 4 Introduced in Java 6.
-

-

How to write an extension?

- -

- In order to support API unavailable on the target platform Retrotranslator should be able to replace all references - to new clases, constructors, methods, and fields with references to backports compatible with the platform. - The location of the backports must be specified with the classpath option. The - default - backports for the 1.4 target have been packaged into the retrotranslator-runtime-n.n.n.jar and - backport-util-concurrent-n.n.jar files, and to complement or override them additional backport - names may be specified via the backport option. The backport names may have five - different forms, the first one declares a universal backport package and the others allow to reuse existing backports. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
Backport name formExample
<universal backport package name>net.sf.retrotranslator.runtime
- com.mycompany.backport
<original package name>:<backport package name>java.util.concurrent:edu.emory.mathcs.backport.java.util.concurrent
- com.sun.org.apache.xerces.internal:org.apache.xerces
<original class name>:<backport class name>java.lang.StringBuilder:java.lang.StringBuffer
- java.util.LinkedHashMap:org.apache.commons.collections.map.LinkedMap
<original method name>:<backport method name>java.lang.System.nanoTime:edu.emory.mathcs.backport.java.util.concurrent.helpers.Utils.nanoTime
<original field name>:<backport field name>java.util.Collections.EMPTY_MAP:edu.emory.mathcs.backport.java.util.Collections.EMPTY_MAP
-

- The names of backport classes in a universal backport package consist of the backport package name, - the name of the original class, and an optional trailing underscore. For example, - - net.sf.retrotranslator.runtime.java.util.EnumSet_ is a complete backport of - java.util.EnumSet. - But when classes exist on the target platform then the backports of their new fields, constructors and methods are - grouped into classes with a leading underscore in their names. Look at the - - net.sf.retrotranslator.runtime.java.math._BigDecimal class: -

-
    -
  • For a static field there is a public static field with the same name and type.
  • -
  • For a static method there is a public static method with the same signature.
  • -
  • For an instance method there is a public static method with the same signature - but with an additional first parameter representing the instance. -
  • -
  • For a constructor there is a public static convertConstructorArguments method that - accepts constructor's arguments an returns an argument for a Java 1.4 constuctor. -
  • -
-

- The - net.sf.retrotranslator.runtime.java.io._PrintStream and - - net.sf.retrotranslator.runtime.java.lang._SecurityException classes use another type of - constructor backports. There is a public static - createInstanceBuilder method that accepts constructor's arguments an returns an object with public - argument1...argumentN methods and an optional public void initialize method. - All the argumentX methods provide arguments for a Java 1.4 constuctor and should not have any - parameters. The initialize method has a single parameter for the created instance and may be used for - postprocessing. If this approach does not work there is another flexible but not always supported one used by - - net.sf.retrotranslator.runtime.java.lang._StackTraceElement. - If backported methods require access to non-public methods or fields of the instance, they can do it with reflection - when the security manager allows such access. The backports of public instance fields are not supported, but private - instance fields can be emulated using a weak identity map, see - - net.sf.retrotranslator.runtime.java.lang._Thread for an example. - -

- -

What are the limitations?

-
    -
  • Retrotranslator does not emulate the Java 5 memory model.
  • -
  • Only the classes, methods, and fields listed above should work - and the other features, like formatted input, are not supported. -
  • -
  • Java 5 reflection methods should be able to load compiled classes as resources, - so for dynamically generated classes they may return incomplete information. -
  • -
  • The backported implementation of Java 5 API may be incompatible - with the original API implementation when running on J2SE 5.0. -
  • -
  • Reflection-based tools may be unable to discover Java 5 API when running on J2SE 1.4.
  • -
  • The constants inlined by a compiler and access modifiers are ignored during the verification.
  • -
-

Alternative tools

- -

Contact

- -

License

-
-    Copyright (c) 2005 - 2007 Taras Puchko
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-    1. Redistributions of source code must retain the above copyright
-       notice, this list of conditions and the following disclaimer.
-    2. Redistributions in binary form must reproduce the above copyright
-       notice, this list of conditions and the following disclaimer in the
-       documentation and/or other materials provided with the distribution.
-    3. Neither the name of the copyright holders nor the names of its
-       contributors may be used to endorse or promote products derived from
-       this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-    THE POSSIBILITY OF SUCH DAMAGE.
-
- - diff --git a/backport/retrotranslator-runtime-1.2.3.jar b/backport/retrotranslator-runtime-1.2.3.jar deleted file mode 100644 index 48a277859..000000000 Binary files a/backport/retrotranslator-runtime-1.2.3.jar and /dev/null differ diff --git a/backport/retrotranslator-transformer-1.2.3.jar b/backport/retrotranslator-transformer-1.2.3.jar deleted file mode 100644 index cd291f581..000000000 Binary files a/backport/retrotranslator-transformer-1.2.3.jar and /dev/null differ diff --git a/backport/translate.bat b/backport/translate.bat deleted file mode 100644 index 60e1caf42..000000000 --- a/backport/translate.bat +++ /dev/null @@ -1,3 +0,0 @@ -java -jar retrotranslator-transformer-1.2.3.jar -advanced -srcjar ../lib/struts2-core-2.1.1-SNAPSHOT.jar -destjar struts2-core-backport-2.1.1-SNAPSHOT.jar -java -jar retrotranslator-transformer-1.2.3.jar -advanced -srcjar ../lib/struts2-api-2.1.1-SNAPSHOT.jar -destjar struts2-api-backport-2.1.1-SNAPSHOT.jar -java -jar retrotranslator-transformer-1.2.3.jar -advanced -srcjar ../lib/xwork-2.1.1-SNAPSHOT.jar -destjar xwork-backport-2.1.1-SNAPSHOT.jar diff --git a/core/pom.xml b/core/pom.xml index 51edf3f26..ac4fe5ba4 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -150,29 +150,6 @@ - - j4 - - - - org.codehaus.mojo - retrotranslator-maven-plugin - - - retrotranslate - - translate-project - - - backport - true - - - - - - - alljars diff --git a/plugins/pom.xml b/plugins/pom.xml index 374caa015..d9f6463e1 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -87,32 +87,6 @@ - - - j4 - - - - org.codehaus.mojo - retrotranslator-maven-plugin - - - retrotranslate - - translate-project - - - backport - true - - - - - - - - - diff --git a/pom.xml b/pom.xml index 47c4f1f68..1e3385412 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,6 @@ core - api @@ -141,15 +140,33 @@ - 1.4-backport - - 1.4 - - - - + j4 + + + + org.codehaus.mojo + retrotranslator-maven-plugin + 1.0-alpha-3 + + + package + + translate-project + + + false + true + true + true + false + ${project.build.directory}/classes-retro + + + + + + - alljars