Ok - was not my original code and would be happy to avoid it - I'll give it a 
look.

Thanks for the suggestion 

Sent from my iPhone

On Mar 4, 2011, at 1:30, Daniel Kulp <[email protected]> wrote:

> On Thursday 03 March 2011 12:59:08 AM Jason Pell wrote:
>> The classes from jaxb facets are copied into a copy of the source for
>> jaxb-API and jaxb-ri. The javax into the API and the com into the ri. The
>> SchemaGenerator class has been enhanced by the jaxb-facets dev and
>> replaces the existing one. It's a matter of building the jaxb-API copying
>> the new jar into the Ri and rebuilding that. Then the jaxb api an ri are
>> deployed to nexus with a custom version (so as not to clash)
>> 
>> It's nasty as hell but with this done the schema is generated with the
>> additional checks and Cxf schema validation works flawlessly with them.
> 
> I guess my question is:
> 
> Why do you need to stick your new annotations into the 
> javax.xml.bind.annotation package?  
> 
> Once you do that, it would REQUIRE a new version of JAXB which would take all 
> kinds of time and votes and all kinds of junk.    A vendor implementation of 
> JAXB is free to add new annotations, just not in that package.   For example, 
> the eclipselink Moxy folks have added a bunch of annotations to JAXB, but 
> they 
> are in their own package. 
> 
> Thus, my suggestion would be to move those new annotations to 
> com.sun.xml.bind.annotations
> or similar and then you would just need the jaxb-impl replacement.      No 
> endorsing or anything outside of the normal.  
> 
> Dan
> 
> 
>> 
>> 
>> Sent from my iPhone
>> 
>> On Mar 3, 2011, at 15:40, "Jason Chaffee" <[email protected]> wrote:
>>> Good stuff, Jason.
>>> 
>>> When I am not mobile I would to ask a couple of questions on how it plugs
>>> into jaxb
>>> 
>>> Sent from my iPhone
>>> 
>>> On Mar 2, 2011, at 8:09 PM, "Jason Pell" <[email protected]> wrote:
>>>> Ok and now I have updated my maven build so I don't need the endorsed
>>>> directory at all.
>>>> 
>>>> The only outstanding issue is that if you try and open projects in
>>>> eclipse that use these enhanced annotations eclipse will report
>>>> errors.  To fix this you will need to have the jars in your
>>>> jre/lib/endorsed on your developer machine
>>>> 
>>>> You build machine and operational env do not need them.
>>>> 
>>>> For what its worth this is how I did it.  I put this in the parent
>>>> pom.xml file.
>>>> 
>>>> <build>
>>>> 
>>>>      <pluginManagement>
>>>> 
>>>>          <plugins>
>>>> 
>>>>           <plugin>
>>>> 
>>>>              <groupId>org.apache.maven.plugins</groupId>
>>>>              <artifactId>maven-dependency-plugin</artifactId>
>>>>              <version>2.1</version>
>>>>              <configuration>
>>>> 
>>>>                  <outputDirectory>${project.build.directory}/endorsed</
>>>>                  outputDirectory>
>>>> 
>>>>              </configuration>
>>>>              <executions>
>>>> 
>>>>                <execution>
>>>> 
>>>>                  <id>copy-endorsed</id>
>>>>                  <phase>generate-sources</phase>
>>>>                  <goals>
>>>> 
>>>>                    <goal>copy</goal>
>>>> 
>>>>                  </goals>
>>>>                  <configuration>
>>>> 
>>>>                    <artifactItems>
>>>> 
>>>>                      <artifactItem>
>>>> 
>>>>                          <groupId>javax.xml.bind</groupId>
>>>>                          <artifactId>jaxb-api</artifactId>
>>>>                          <version>2.2.1-custom</version>
>>>>                          <overWrite>true</overWrite>
>>>>                          <destFileName>jaxb-api.jar</destFileName>
>>>> 
>>>>                      </artifactItem>
>>>> 
>>>>                      <artifactItem>
>>>> 
>>>>                          <groupId>javax.xml.ws</groupId>
>>>> 
>>>>                            <artifactId>jaxws-api</artifactId>
>>>>                            <version>2.2.1</version>
>>>> 
>>>>                          <overWrite>true</overWrite>
>>>>                          <destFileName>jaxws-api.jar</destFileName>
>>>> 
>>>>                      </artifactItem>
>>>> 
>>>>                    </artifactItems>
>>>> 
>>>>                  </configuration>
>>>> 
>>>>                </execution>
>>>> 
>>>>              </executions>
>>>> 
>>>>            </plugin>
>>>> 
>>>>          </plugins>
>>>> 
>>>>      </pluginManagement>
>>>> 
>>>>      <plugins>
>>>> 
>>>>            <plugin>
>>>> 
>>>>                 <groupId>org.apache.maven.plugins</groupId>
>>>>                 <artifactId>maven-compiler-plugin</artifactId>
>>>>                 <configuration>
>>>> 
>>>>                   <compilerArguments>
>>>> 
>>>>                     <endorseddirs>${project.build.directory}/endorsed</
>>>>                     endorseddirs>
>>>> 
>>>>                   </compilerArguments>
>>>> 
>>>>                 </configuration>
>>>> 
>>>>           </plugin>
>>>> 
>>>>          <plugin>
>>>> 
>>>>              <groupId>org.apache.maven.plugins</groupId>
>>>>              <artifactId>maven-surefire-plugin</artifactId>
>>>>              <configuration>
>>>> 
>>>>                <systemPropertyVariables>
>>>> 
>>>> <java.endorsed.dirs>${project.build.directory}/endorsed</java.endorsed.d
>>>> irs>
>>>> 
>>>>                </systemPropertyVariables>
>>>> 
>>>>              </configuration>
>>>> 
>>>>            </plugin>
>>>> 
>>>>      </plugins>
>>>> 
>>>>  </build>
>>>> 
>>>> And this in the particular projects where I needed to use the jaxb or
>>>> jaxws annotations that are not in 2.1
>>>> 
>>>> <build>
>>>> 
>>>>      <plugins>
>>>> 
>>>>          <plugin>
>>>> 
>>>>              <artifactId>maven-dependency-plugin</artifactId>
>>>> 
>>>>          </plugin>
>>>> 
>>>>      </plugins>
>>>> 
>>>>  </build>
>>>> 
>>>> I am done now :-)
>>>> 
>>>> Cheers
>>>> Jason
>>>> 
>>>> On Thu, Mar 3, 2011 at 1:24 PM, Jason Pell <[email protected]> wrote:
>>>>> Yep confirmed it - it just requires the endorsed jars for building,
>>>>> not for runtime.  My operational
>>>>> environments have had their endorsed dirs blown away and still running
>>>>> nicely.  My build server
>>>>> still requires the jars.
>>>>> 
>>>>> On Thu, Mar 3, 2011 at 12:51 PM, Jason Pell <[email protected]> wrote:
>>>>>> Hi,
>>>>>> 
>>>>>> I decided I was curious enough to see if it would work without having
>>>>>> to change the endorsed directory.
>>>>>> 
>>>>>> I deleted the jars out of the endorsed directory and started up my
>>>>>> application again and executed a web service which uses both jaxws
>>>>>> 2.2.1 and jaxb 2.2 + facets stuff and it started up perfectly fine
>>>>>> WITHOUT an endorsed directory.  What it looks like for me is that when
>>>>>> you compile the code you will probably need these jars in the endorsed
>>>>>> directory.  But as long as at runtime you have them in the classpath
>>>>>> it works fine.
>>>>>> 
>>>>>> Does that sound correct to others? Thats certainly my experience.
>>>>>> 
>>>>>> Thanks
>>>>>> Jason
>>>>>> 
>>>>>> On Thu, Mar 3, 2011 at 12:11 PM, Jason Pell <[email protected]> wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I did not try too hard to avoid putting it into the endorsed
>>>>>>> directory.
>>>>>>> 
>>>>>>> However it occurs to me that if you are using JDK 6, you already have
>>>>>>> that problem using JAXB 2.2 anyway as JDK 6 uses JAXB 2.1.  If there
>>>>>>> is a way to use JAXB 2.2 in CXF without putting jars into the
>>>>>>> endorsed directory then the same can apply to the jaxb-facets
>>>>>>> enhanced jaxb-api.
>>>>>>> 
>>>>>>> One way would be to define the endorsed dirs system property instead
>>>>>>> and point it to a directory within your application.  I have not even
>>>>>>> looked at this as we can modify the JRE and it was easier to do that.
>>>>>>> 
>>>>>>> Cheers
>>>>>>> Jason
>>>>>>> 
>>>>>>> On Thu, Mar 3, 2011 at 11:13 AM, Jason Chaffee <[email protected]> 
> wrote:
>>>>>>>> This is exactly what we wanting, except it doesn't seem to support
>>>>>>>> key restrictions...but it does support other constraints.  However,
>>>>>>>> I cannot add any jars to the endorsed directory do to some
>>>>>>>> operational constraints so it won't help me much, but it is still
>>>>>>>> nice to know.
>>>>>>>> 
>>>>>>>> Jason
>>>>>>>> 
>>>>>>>> 
>>>>>>>> -----Original Message-----
>>>>>>>> From: [email protected] on behalf of Jason Pell
>>>>>>>> Sent: Wed 3/2/2011 2:53 PM
>>>>>>>> To: [email protected]
>>>>>>>> Cc: Hannes Holtzhausen; Jason Chaffee; Daniel Kulp
>>>>>>>> Subject: Re: JAXB: Any way to incorporate restrictions into
>>>>>>>> annotations?
>>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> I am using jaxb-facets with CXF and it works very nicely.
>>>>>>>> 
>>>>>>>> http://www.infosys.tuwien.ac.at/staff/hummer/tools/jaxb-facets.html
>>>>>>>> http://java.net/projects/jaxb/lists/dev/archive/2011-02/message/0
>>>>>>>> 
>>>>>>>> I did have to hack jaxb-api and jaxb-impl and put the hacked
>>>>>>>> jaxb-api into jre/lib/endorsed and override the
>>>>>>>> impl in CXF, but it works so well I was surprised.  I have since
>>>>>>>> added Date and Datetime validation and at some
>>>>>>>> point will need to add Decimal as well.
>>>>>>>> 
>>>>>>>> If you want to get hold of my updated jaxb-api and jaxb-impl let me
>>>>>>>> know.  I can provide my enhancements to the original code from
>>>>>>>> [email protected]
>>>>>>>> 
>>>>>>>> Its a real hack but it does exactly what I need and I have done it
>>>>>>>> in such a way that if at some point its built into jaxb I can back
>>>>>>>> out my changes
>>>>>>>> and make use of the core release again.
>>>>>>>> 
>>>>>>>> Cheers
>>>>>>>> Jason
>>>>>>>> 
>>>>>>>> On Wed, Mar 2, 2011 at 4:09 PM, Hannes Holtzhausen
>>>>>>>> 
>>>>>>>> <[email protected]> wrote:
>>>>>>>>> Have a look at XMLBeans If you are looking for an XML binding
>>>>>>>>> technology that supports the
>>>>>>>>> full XSD spec but still provides a Java bean style API for
>>>>>>>>> accessing and generating the XML.
>>>>>>>>> 
>>>>>>>>> This is also not a 100% code first approach, you need to start with
>>>>>>>>> an XSD to generate XMLBeans.
>>>>>>>>> But you can do a code first web service once you have generated the
>>>>>>>>> XMLBeans.
>>>>>>>>> 
>>>>>>>>> http://cxf.apache.org/docs/xmlbeans.html
>>>>>>>>> http://xmlbeans.apache.org/
>>>>>>>>> 
>>>>>>>>> Cheers
>>>>>>>>> Hannes
> 
> -- 
> Daniel Kulp
> [email protected]
> http://dankulp.com/blog
> Talend - http://www.talend.com

Reply via email to