I know this isn't a JAXB forum so I apologize in advance for taking this
thread a bit off-topic.

I am using this XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb";
            xmlns:lsc="http://lsc-project.org/XSD/lsc-core-2.0.xsd";
            xmlns="
http://montpeliertr.com/HierarchicalJndiSrcServiceSettings-0.1";
            elementFormDefault="qualified"
            jaxb:version="2.0">

    <xsd:import namespace="http://lsc-project.org/XSD/lsc-core-2.0.xsd";
                schemaLocation="
https://lsc-project.org/svn/lsc/branches/v2.0/src/main/resources/schemas/lsc-core-2.0.xsd";
             />

    <xsd:import namespace="http://lsc-project.org/XSD/lsc-core-2.0.xsd"; />

       <xsd:element name="HierarchicalJndiSrcServiceSettings">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="baseDn" type="xsd:string" />
                <xsd:element name="getAllFilter" type="xsd:string" />
                <xsd:element name="getOneFilter" type="xsd:string" />
                <xsd:element name="cleanFilter" type="xsd:string" />
                <xsd:element name="pivotAttributes" type="lsc:valuesType"
minOccurs="1" />
                <xsd:element name="fetchedAttributes" type="lsc:valuesType"
minOccurs="1" />
            </xsd:sequence>
        </xsd:complexType>
       </xsd:element>

</xsd:schema>


It is converting to a .java file without error, but the lsc:valuesType
elements are not being mapped to org.lsc.configuration.ValuesType in the
.java file (the import org.lsc.configuration.ValuesType;  directive is not
in the file).   I can add it manually, but that feels like cheating.

Is there a hint I need to provide xjc to let it know which Java packages to
import?

Hugh



On Tue, May 8, 2012 at 1:54 AM, Sébastien Bahloul <
[email protected]> wrote:

> Hi Hugh,
>
> You are completely right, it's managed by the generated classes:
>
>
> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/java/com/foo/bar/generated/FooBarServiceSettings.java
>
> Regards,
>
> --
> Sebastien BAHLOUL
> IAM / Security specialist
> Ldap Synchronization Connector : http://lsc-project.org
> Blog : http://sbahloul.wordpress.com/
>
>
>
> 2012/5/7 Hugh Kelley <[email protected]>
>
>> One more conceptual question (again, revealing my unfamiliarity with
>> JAXB):
>>
>> In lsc.xml you are using the foobar XML namespace for your
>> plugin-specific elements (
>> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/resources/etc/lsc.xml
>> ).
>>
>>    <foobar:fooBarServiceSettings>
>>
>> Where are you telling the parser to use that namespace when it validates
>> the configuration?   I don't see any namespace specification happening here
>> (
>> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/java/com/foo/bar/FooBarLscService.java
>> ):
>>
>>   serviceSettings = (FooBarServiceSettings) 
>> task.getPluginDestinationService().getAny().get(0);
>>
>>
>> Hugh
>>
>>
>> On Thu, May 3, 2012 at 8:33 AM, Sébastien Bahloul <
>> [email protected]> wrote:
>>
>>> I've just added it to the following page :
>>> http://lsc-project.org/wiki/documentation/2.0/development/addingplugin
>>>
>>>
>>>    - Copy the XSD to your etc subdirectory (required to check the XML
>>>     structure)
>>>    - Run it with flag -DLSC.PLUGINS.PACKAGEPATH=com.foo.bar.generated
>>>    (so that JAXB parser could find the extended classes)
>>>
>>> --
>>> Sebastien BAHLOUL
>>> IAM / Security specialist
>>> Ldap Synchronization Connector : http://lsc-project.org
>>> Blog : http://sbahloul.wordpress.com/
>>>
>>>
>>>
>>> 2012/5/3 Sébastien Bahloul <[email protected]>
>>>
>>>> Hi Hugh,
>>>>
>>>> I need to add:
>>>>
>>>> Use -DLSC.PLUGINS.PACKAGEPATH=com.montpeliertr.lscplugins.generated
>>>>
>>>> where com.montpelietr.lscplugins.generated should contain the xjc
>>>> generated classes and especially the ObjectFactory class.
>>>>
>>>> Regards,
>>>>
>>>> --
>>>> Sebastien BAHLOUL
>>>> IAM / Security specialist
>>>> Ldap Synchronization Connector : http://lsc-project.org
>>>> Blog : http://sbahloul.wordpress.com/
>>>>
>>>>
>>>>
>>>> 2012/5/3 Sébastien Bahloul <[email protected]>
>>>>
>>>>> Hi Hugh,
>>>>>
>>>>> This is a runtime setting : you need to define it when you launch your
>>>>> JRE java command line or instead the VM Arguments zone inside the 
>>>>> Arguments
>>>>> tab of your Debug configuration. This is quite complex but strictly
>>>>> required  by the XML parser to support on-the-fly extension.
>>>>>
>>>>> Regards,
>>>>> --
>>>>> Sebastien BAHLOUL
>>>>> IAM / Security specialist
>>>>> Ldap Synchronization Connector : http://lsc-project.org
>>>>> Blog : http://sbahloul.wordpress.com/
>>>>>
>>>>>
>>>>>
>>>>> 2012/5/3 Hugh Kelley <[email protected]>
>>>>>
>>>>>>  I've stepped through the code a bit and I'm making some progress.
>>>>>> This particular block of code is being skipped.
>>>>>>
>>>>>>                 if(System.getProperty("LSC.PLUGINS.PACKAGEPATH") !=
>>>>>> null) {
>>>>>>                     String[] pathElements =
>>>>>> System.getProperty("LSC.PLUGINS.PACKAGEPATH").split(System.getProperty("path.separator"));
>>>>>>                     for(String pathElement: pathElements) {
>>>>>>
>>>>>> urls.addAll(ClasspathHelper.forPackage(pathElement));
>>>>>>                     }
>>>>>>                 }
>>>>>>
>>>>>> I'm guessing that has something to do with this:
>>>>>>
>>>>>>
>>>>>> org.lsc.exception.LscConfigurationException:
>>>>>> java.lang.UnsupportedOperationException: Unknown plugin implementation:
>>>>>> com.montpeliertr.lscplugins.SortedLdapSourceService
>>>>>>
>>>>>> How do I set LSC.PLUGINS.PACKAGEPATH ?   I didn't see a reference to
>>>>>> it in the
>>>>>> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/resources/etc/lsc.xmlexample.
>>>>>>
>>>>>> Hugh
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, May 1, 2012 at 7:18 AM, Hugh Kelley <[email protected]>wrote:
>>>>>>
>>>>>>> Many thanks for your continued help with this.
>>>>>>>
>>>>>>> I am trying to implement the steps you gave me but am clearly going
>>>>>>> astray somewhere.  I have the following three files (attached).  The 
>>>>>>> plugin
>>>>>>> class is by no means final, but I wanted to make sure I had the
>>>>>>> configuration "wiring" correct, then finish the logic.
>>>>>>>
>>>>>>> I have put my plugin code in a jar and it appears to be added to the
>>>>>>> classpath.
>>>>>>>
>>>>>>> Adding C:\_Active\LSC\lsc-2.0rc2\bin\..\lib\mina-core-2.0.0-RC1.jar
>>>>>>> to classpath
>>>>>>> *Adding
>>>>>>> C:\_Active\LSC\lsc-2.0rc2\bin\..\lib\montpeliertr-sortedldap.jar to
>>>>>>> classpath*
>>>>>>> Adding C:\_Active\LSC\lsc-2.0rc2\bin\..\lib\ocutil-2.5.2.jar to
>>>>>>> classpath
>>>>>>>
>>>>>>> but when the configuration engine goes to load the plugin, it can
>>>>>>> not/will not:
>>>>>>>
>>>>>>> [Loaded javax.naming.directory.Attribute from
>>>>>>> C:\_SDKs\Java\jdk1.6.0_30\jre\lib\rt.jar]
>>>>>>> May 01 07:13:27 - ERROR -
>>>>>>> org.lsc.exception.LscConfigurationException:
>>>>>>> java.lang.UnsupportedOperationException: Unknown plugin implementation:
>>>>>>> com.montpeliertr.lscplugins.SortedLdapSourceService
>>>>>>> [Loaded ch.qos.logback.classic.spi.ThrowableProxy from
>>>>>>> file:/C:/_Active/LSC/lsc-2.0rc2/lib/logback-classic-0.9.21.jar]
>>>>>>>
>>>>>>> I would just step through the execution myself, but I still can't
>>>>>>> get past the slf4j-api runtime issue I mentioned on the other thread.
>>>>>>>
>>>>>>> Any suggestions are appreciated,
>>>>>>>
>>>>>>> Hugh
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Apr 27, 2012 at 11:28 AM, Sébastien Bahloul <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Hugh,
>>>>>>>>
>>>>>>>> To configure and use a new service, please consider the
>>>>>>>> FooBarLscService sample as decribed below. This fake service has been
>>>>>>>> designed as an extension of a SimpleJdbcDestinationService to describe 
>>>>>>>> an
>>>>>>>> embeddable LSC :
>>>>>>>>
>>>>>>>> 1. First define the configuration extension format:
>>>>>>>>
>>>>>>>> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/resources/etc/foobar-lsc-1.0.xsd
>>>>>>>>
>>>>>>>> 2. Generate the corresponding source  :
>>>>>>>>
>>>>>>>> $JAVA_HOME/bin/xjc -p com.foo.bar.generated
>>>>>>>> src/main/resources/etc/foobar-lsc-1.0.xsd
>>>>>>>>
>>>>>>>> 3. Use it inside the  service itself:
>>>>>>>> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/java/com/foo/bar/FooBarLscService.java
>>>>>>>>  (see
>>>>>>>> the constructor)
>>>>>>>>
>>>>>>>> 4. Configure it :
>>>>>>>> https://lsc-project.org/svn/lsc-samples/lsc-embeddable-sample/trunk/src/main/resources/etc/lsc.xml
>>>>>>>>  (look
>>>>>>>> at the pluginDestinationService node)
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> --
>>>>>>>> Sebastien BAHLOUL
>>>>>>>> IAM / Security specialist
>>>>>>>> Ldap Synchronization Connector : http://lsc-project.org
>>>>>>>> Blog : http://sbahloul.wordpress.com/
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________________________
>>>>>> Ldap Synchronization Connector (LSC) - http://lsc-project.org
>>>>>>
>>>>>> lsc-users mailing list
>>>>>> [email protected]
>>>>>> http://lists.lsc-project.org/listinfo/lsc-users
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users

Reply via email to