wstools not generating Java for enum pattern
vlewis May 15, 2006 1:51 PMI am using jbossws-1.0.0 in JBoss 4.0.2 CR2 with JDK 1.5.0_6.
I have a web service that uses a value type implementing the enum pattern:
public class MembershipStatus {
 public static final String _current = "current";
 public static final String _expired = "expired";
 public static final String _unknown = "unknown";
 public static final MembershipStatus CURRENT = new MembershipStatus(_current);
 public static final MembershipStatus EXPIRED = new MembershipStatus(_expired);
 public static final MembershipStatus UNKNOWN = new MembershipStatus(_unknown);
 private static Map<String, MembershipStatus> statuses;
 static {
 statuses = new HashMap<String, MembershipStatus>();
 statuses.put(_current, CURRENT);
 statuses.put(_expired, EXPIRED);
 statuses.put(_unknown, UNKNOWN);
 }
 public static MembershipStatus fromValue(String candiateValue) {
 MembershipStatus result = statuses.get(candiateValue);
 if (result == null) {
 throw new IllegalArgumentException(candiateValue);
 }
 return result;
 }
 private String value;
 protected MembershipStatus(String newValue) {
 value = newValue;
 }
 public String getValue() {
 return value;
 }
}
jbossws recognizes this pattern enough to generate the correct WSDL:
. . . <simpleType name='MembershipStatus'> <restriction base='string'> <enumeration value='current'/> <enumeration value='expired'/> <enumeration value='unknown'/> </restriction> </simpleType> . . .
but when I run wstools using this wstools-confg.xml
<configuration xmlns="http://www.jboss.org/jbossws-tools" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.org/jbossws-tools http://www.jboss.org/jbossws-tools/schema/jbossws-tool_1_0.xsd"> <wsdl-java file="Generated-src/META-INF/wsdl/FBCMembershipVerification.wsdl"> <mapping file="META-INF/jaxrpc-mapping.xml" /> </wsdl-java> </configuration>
It generates Java code for everything except the MembershipStatus type. It also generates other classes which the type as though it is expected to have been generated.
I tried supplying my own implementation of MembershipStatus but a call which returns the type fails because it cannot obtain deserializer factory for MembershipStatus.
Am I doing something wrong or is this a missing feature?
I know that generating for JDK5 enums is not yet supported from reading bug JBWS-446 but reading JBWS-231 lead me to believe this problem had been fixed.
 
     
     
    