You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@syncope.apache.org by morteza adi <mo...@gmail.com> on 2013/12/22 06:18:30 UTC

ConversionException in connInstance.getConfiguration()

Hi,

i'm trying to create and start table connid from code. here is what i did:
(i'm using syncope 1.0.0)

ConnInstanceTO connInstanceTO = new ConnInstanceTO();
connInstanceTO.setBundleName("org.connid.bundles.db.table");

connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_CREATE);
connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_UPDATE);
connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_DELETE);
connInstanceTO.addCapability(ConnectorCapability.SEARCH);
connInstanceTO.addCapability(ConnectorCapability.SYNC);


Set<ConnConfProperty> confs = new HashSet<ConnConfProperty>();

... filing ConnConfProperty's for table and adding to the confs variable.

connInstanceTO.setConfiguration(filterProperties(confs));
connInstanceTO.setConnectorName(boundle.getConnectorName());
connInstanceTO.setVersion(boundle.getVersion());

ConnInstance connInstance =
connInstanceDataBinder.getConnInstance(connInstanceTO);
connInstance = connInstanceDAO.save(connInstance);

// conninstance successfully inserets into DB

// later in the code
// if i try
Set<ConnConfProperty> configuration = connInstance.getConfiguration();
// or create and save resourceTO
// throws exception!

com.thoughtworks.xstream.converters.ConversionException: name argument
cannot be null : name argument cannot be null
---- Debugging information ----
message             : name argument cannot be null
cause-exception     : java.lang.IllegalArgumentException
cause-message       : name argument cannot be null
class               : java.util.HashSet
required-type       : ch.qos.logback.classic.Logger
path                : /set/org.apache.syncope.types.ConnConfProperty/logger
line number         : 3
-------------------------------

any idea ?

Best Regards,
Adi

Fwd: ConversionException in connInstance.getConfiguration()

Posted by morteza adi <mo...@gmail.com>.
I changed the xstream library with my custom XmlSerializer and everything
worked just fine.
i still don't know what was wrong with xstream??!!

Anyway thank you.

Merry Christmas

---------- Forwarded message ----------
From: morteza adi <mo...@gmail.com>
Date: Tue, Dec 24, 2013 at 9:14 AM
Subject: Re: ConversionException in connInstance.getConfiguration()
To: user@syncope.apache.org


Hi,
here is my Set<ConnConfProperty>;

[
{
"schema":{
 "name":"jdbcDriver",
"displayName":"JDBC Driver",
"helpMessage":"Specify the JDBC Driver class name. Oracle is
oracle.jdbc.driver.OracleDriver. MySQL is org.gjt.mm.mysql.Driver. Could be
empty if datasource is provided.",
 "type":"java.lang.String",
"required":false,
"order":14,
 "confidential":false
},
"values":[
 "oracle.jdbc.driver.OracleDriver"
],
"overridable":false
 },
{
"schema":{
"name":"password",
 "displayName":"User Password",
"helpMessage":"Enter a user account password that has permission to access
accounts table.",
 "type":"org.identityconnectors.common.security.GuardedString",
"required":false,
 "order":5,
"confidential":true
},
 "values":[
"1111111"
],
 "overridable":false
},
{
"schema":{
 "name":"jdbcUrlTemplate",
"displayName":"JDBC Connection URL",
 "helpMessage":"Specify the JDBC Driver Connection URL. Oracle template is
jdbc:oracle:thin:@[host]:[port(1521)]:[DB]. MySQL template is
jdbc:mysql://[host]:[port(3306)]/[db], for more info, read the JDBC driver
documentation. Could be empty if datasource is provided.",
 "type":"java.lang.String",
"required":false,
"order":15,
 "confidential":false
},
"values":[
 "jdbc:oracle:thin:@[host]:[port(1521)]:[DB]"
],
"overridable":false
 },
{
"schema":{
"name":"passwordColumn",
 "displayName":"Password Column",
"helpMessage":"Enter the name of the column in the table that will hold the
password values. If empty, no validation on resource and passwords are
activated.",
 "type":"java.lang.String",
"required":false,
"order":9,
 "confidential":false
},
"values":[
 "AUSRPSWD"
],
"overridable":false
 },
{
"schema":{
"name":"table",
 "displayName":"Table",
"helpMessage":"Enter the name of the table in the database that contains
the accounts.",
 "type":"java.lang.String",
"required":true,
"order":7,
 "confidential":false
},
"values":[
 "XXXXXX"
],
"overridable":false
 },
{
"schema":{
"name":"keyColumn",
 "displayName":"Key Column",
"helpMessage":"This mandatory column value will be used as the unique
identifier for rows in the table.",
 "type":"java.lang.String",
"required":true,
"order":8,
 "confidential":false
},
"values":[
 "YYYYYY"
],
"overridable":false
 },
{
"schema":{
"name":"statusColumn",
 "displayName":"Status Column",
"helpMessage":"Enter the name of the column in the table that will hold the
status values. If empty enabled and disabled operation wont be performed.",
 "type":"java.lang.String",
"required":false,
"order":10,
 "confidential":false
},
"values":[
 "SSSSSSS"
],
"overridable":false
 },
{
"schema":{
"name":"database",
 "displayName":"Database",
"helpMessage":"Enter the name of the database on the database server that
contains the table.",
 "type":"java.lang.String",
"required":false,
"order":6,
 "confidential":false
},
"values":[
 "ORASSSS"
],
"overridable":false
 },
{
"schema":{
"name":"user",
 "displayName":"User",
"helpMessage":"Enter the name of the mandatory Database user with
permission to account table.",
 "type":"java.lang.String",
"required":false,
"order":4,
 "confidential":false
},
"values":[
 "NNNNNN"
],
"overridable":false
 },
{
"schema":{
"name":"host",
 "displayName":"Host",
"helpMessage":"Enter the name of the host where the database is running.",
 "type":"java.lang.String",
"required":false,
"order":2,
 "confidential":false
},
"values":[
 "192.168.XX.XXX"
],
"overridable":false
 },
{
"schema":{
"name":"retrievePassword",
 "displayName":"Retrieve password",
"helpMessage":"Specify if password must be retrieved by default. Default is
\"false\".",
 "type":"boolean",
"required":false,
"order":27,
 "confidential":false
},
"values":[
 true
],
"overridable":false
}
]

However; after serialization my XmlConfiguration In DB shows my logback.xml
file !!??
I traced the code seems the method  public static String serialize(final
Object object) in XmlSerializer
does not do its job.
result = URLEncoder.encode(xstream.toXML(object), "UTF-8");
object --> my Set<ConnConfProperty>;
returns my logback.xml file ??!! really how does it possible ??!!


On Mon, Dec 23, 2013 at 11:48 AM, Fabio Martelli
<fa...@gmail.com>wrote:

> Il 22/12/2013 06:18, morteza adi ha scritto:
>
>  Hi,
>>
>> i'm trying to create and start table connid from code. here is what i did:
>> (i'm using syncope 1.0.0)
>>
>> ConnInstanceTO connInstanceTO = new ConnInstanceTO();
>> connInstanceTO.setBundleName("org.connid.bundles.db.table");
>>
>> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_CREATE);
>> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_UPDATE);
>> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_DELETE);
>> connInstanceTO.addCapability(ConnectorCapability.SEARCH);
>> connInstanceTO.addCapability(ConnectorCapability.SYNC);
>>
>>
>> Set<ConnConfProperty> confs = new HashSet<ConnConfProperty>();
>>
>> ... filing ConnConfProperty's for table and adding to the confs variable.
>>
>> connInstanceTO.setConfiguration(filterProperties(confs));
>> connInstanceTO.setConnectorName(boundle.getConnectorName());
>> connInstanceTO.setVersion(boundle.getVersion());
>>
>> ConnInstance connInstance = connInstanceDataBinder.getConnInstance(
>> connInstanceTO);
>> connInstance = connInstanceDAO.save(connInstance);
>>
>> // conninstance successfully inserets into DB
>>
>> // later in the code
>> // if i try
>> Set<ConnConfProperty> configuration = connInstance.getConfiguration();
>> // or create and save resourceTO
>> // throws exception!
>>
>> com.thoughtworks.xstream.converters.ConversionException: name argument
>> cannot be null : name argument cannot be null
>> ---- Debugging information ----
>> message             : name argument cannot be null
>> cause-exception     : java.lang.IllegalArgumentException
>> cause-message       : name argument cannot be null
>> class               : java.util.HashSet
>> required-type       : ch.qos.logback.classic.Logger
>> path                : /set/org.apache.syncope.types.
>> ConnConfProperty/logger
>> line number         : 3
>> -------------------------------
>>
>> any idea ?
>>
>> Best Regards,
>> Adi
>>
>
> Hi Adi, too little information.
> Evidently the problem is your conn instance configuration.
>
> If you can, provide ConnInstance configuration value stored in the DB.
>
> Regards,
> F.
>
> --
> Fabio Martelli
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Apache Syncope PMC
> http://people.apache.org/~fmartelli/
>
>

Re: ConversionException in connInstance.getConfiguration()

Posted by morteza adi <mo...@gmail.com>.
Hi,
here is my Set<ConnConfProperty>;

[
{
"schema":{
"name":"jdbcDriver",
"displayName":"JDBC Driver",
"helpMessage":"Specify the JDBC Driver class name. Oracle is
oracle.jdbc.driver.OracleDriver. MySQL is org.gjt.mm.mysql.Driver. Could be
empty if datasource is provided.",
"type":"java.lang.String",
"required":false,
"order":14,
"confidential":false
},
"values":[
"oracle.jdbc.driver.OracleDriver"
],
"overridable":false
},
{
"schema":{
"name":"password",
"displayName":"User Password",
"helpMessage":"Enter a user account password that has permission to access
accounts table.",
"type":"org.identityconnectors.common.security.GuardedString",
"required":false,
"order":5,
"confidential":true
},
"values":[
"1111111"
],
"overridable":false
},
{
"schema":{
"name":"jdbcUrlTemplate",
"displayName":"JDBC Connection URL",
"helpMessage":"Specify the JDBC Driver Connection URL. Oracle template is
jdbc:oracle:thin:@[host]:[port(1521)]:[DB]. MySQL template is
jdbc:mysql://[host]:[port(3306)]/[db], for more info, read the JDBC driver
documentation. Could be empty if datasource is provided.",
"type":"java.lang.String",
"required":false,
"order":15,
"confidential":false
},
"values":[
"jdbc:oracle:thin:@[host]:[port(1521)]:[DB]"
],
"overridable":false
},
{
"schema":{
"name":"passwordColumn",
"displayName":"Password Column",
"helpMessage":"Enter the name of the column in the table that will hold the
password values. If empty, no validation on resource and passwords are
activated.",
"type":"java.lang.String",
"required":false,
"order":9,
"confidential":false
},
"values":[
"AUSRPSWD"
],
"overridable":false
},
{
"schema":{
"name":"table",
"displayName":"Table",
"helpMessage":"Enter the name of the table in the database that contains
the accounts.",
"type":"java.lang.String",
"required":true,
"order":7,
"confidential":false
},
"values":[
"XXXXXX"
],
"overridable":false
},
{
"schema":{
"name":"keyColumn",
"displayName":"Key Column",
"helpMessage":"This mandatory column value will be used as the unique
identifier for rows in the table.",
"type":"java.lang.String",
"required":true,
"order":8,
"confidential":false
},
"values":[
"YYYYYY"
],
"overridable":false
},
{
"schema":{
"name":"statusColumn",
"displayName":"Status Column",
"helpMessage":"Enter the name of the column in the table that will hold the
status values. If empty enabled and disabled operation wont be performed.",
"type":"java.lang.String",
"required":false,
"order":10,
"confidential":false
},
"values":[
"SSSSSSS"
],
"overridable":false
},
{
"schema":{
"name":"database",
"displayName":"Database",
"helpMessage":"Enter the name of the database on the database server that
contains the table.",
"type":"java.lang.String",
"required":false,
"order":6,
"confidential":false
},
"values":[
"ORASSSS"
],
"overridable":false
},
{
"schema":{
"name":"user",
"displayName":"User",
"helpMessage":"Enter the name of the mandatory Database user with
permission to account table.",
"type":"java.lang.String",
"required":false,
"order":4,
"confidential":false
},
"values":[
"NNNNNN"
],
"overridable":false
},
{
"schema":{
"name":"host",
"displayName":"Host",
"helpMessage":"Enter the name of the host where the database is running.",
"type":"java.lang.String",
"required":false,
"order":2,
"confidential":false
},
"values":[
"192.168.XX.XXX"
],
"overridable":false
},
{
"schema":{
"name":"retrievePassword",
"displayName":"Retrieve password",
"helpMessage":"Specify if password must be retrieved by default. Default is
\"false\".",
"type":"boolean",
"required":false,
"order":27,
"confidential":false
},
"values":[
true
],
"overridable":false
}
]

However; after serialization my XmlConfiguration In DB shows my logback.xml
file !!??
I traced the code seems the method  public static String serialize(final
Object object) in XmlSerializer
does not do its job.
result = URLEncoder.encode(xstream.toXML(object), "UTF-8");
object --> my Set<ConnConfProperty>;
returns my logback.xml file ??!! really how does it possible ??!!


On Mon, Dec 23, 2013 at 11:48 AM, Fabio Martelli
<fa...@gmail.com>wrote:

> Il 22/12/2013 06:18, morteza adi ha scritto:
>
>  Hi,
>>
>> i'm trying to create and start table connid from code. here is what i did:
>> (i'm using syncope 1.0.0)
>>
>> ConnInstanceTO connInstanceTO = new ConnInstanceTO();
>> connInstanceTO.setBundleName("org.connid.bundles.db.table");
>>
>> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_CREATE);
>> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_UPDATE);
>> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_DELETE);
>> connInstanceTO.addCapability(ConnectorCapability.SEARCH);
>> connInstanceTO.addCapability(ConnectorCapability.SYNC);
>>
>>
>> Set<ConnConfProperty> confs = new HashSet<ConnConfProperty>();
>>
>> ... filing ConnConfProperty's for table and adding to the confs variable.
>>
>> connInstanceTO.setConfiguration(filterProperties(confs));
>> connInstanceTO.setConnectorName(boundle.getConnectorName());
>> connInstanceTO.setVersion(boundle.getVersion());
>>
>> ConnInstance connInstance = connInstanceDataBinder.getConnInstance(
>> connInstanceTO);
>> connInstance = connInstanceDAO.save(connInstance);
>>
>> // conninstance successfully inserets into DB
>>
>> // later in the code
>> // if i try
>> Set<ConnConfProperty> configuration = connInstance.getConfiguration();
>> // or create and save resourceTO
>> // throws exception!
>>
>> com.thoughtworks.xstream.converters.ConversionException: name argument
>> cannot be null : name argument cannot be null
>> ---- Debugging information ----
>> message             : name argument cannot be null
>> cause-exception     : java.lang.IllegalArgumentException
>> cause-message       : name argument cannot be null
>> class               : java.util.HashSet
>> required-type       : ch.qos.logback.classic.Logger
>> path                : /set/org.apache.syncope.types.
>> ConnConfProperty/logger
>> line number         : 3
>> -------------------------------
>>
>> any idea ?
>>
>> Best Regards,
>> Adi
>>
>
> Hi Adi, too little information.
> Evidently the problem is your conn instance configuration.
>
> If you can, provide ConnInstance configuration value stored in the DB.
>
> Regards,
> F.
>
> --
> Fabio Martelli
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Apache Syncope PMC
> http://people.apache.org/~fmartelli/
>
>

Re: ConversionException in connInstance.getConfiguration()

Posted by Fabio Martelli <fa...@gmail.com>.
Il 22/12/2013 06:18, morteza adi ha scritto:
> Hi,
>
> i'm trying to create and start table connid from code. here is what i did:
> (i'm using syncope 1.0.0)
>
> ConnInstanceTO connInstanceTO = new ConnInstanceTO();
> connInstanceTO.setBundleName("org.connid.bundles.db.table");
>
> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_CREATE);
> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_UPDATE);
> connInstanceTO.addCapability(ConnectorCapability.ONE_PHASE_DELETE);
> connInstanceTO.addCapability(ConnectorCapability.SEARCH);
> connInstanceTO.addCapability(ConnectorCapability.SYNC);
>
>
> Set<ConnConfProperty> confs = new HashSet<ConnConfProperty>();
>
> ... filing ConnConfProperty's for table and adding to the confs variable.
>
> connInstanceTO.setConfiguration(filterProperties(confs));
> connInstanceTO.setConnectorName(boundle.getConnectorName());
> connInstanceTO.setVersion(boundle.getVersion());
>
> ConnInstance connInstance = 
> connInstanceDataBinder.getConnInstance(connInstanceTO);
> connInstance = connInstanceDAO.save(connInstance);
>
> // conninstance successfully inserets into DB
>
> // later in the code
> // if i try
> Set<ConnConfProperty> configuration = connInstance.getConfiguration();
> // or create and save resourceTO
> // throws exception!
>
> com.thoughtworks.xstream.converters.ConversionException: name argument 
> cannot be null : name argument cannot be null
> ---- Debugging information ----
> message             : name argument cannot be null
> cause-exception     : java.lang.IllegalArgumentException
> cause-message       : name argument cannot be null
> class               : java.util.HashSet
> required-type       : ch.qos.logback.classic.Logger
> path                : 
> /set/org.apache.syncope.types.ConnConfProperty/logger
> line number         : 3
> -------------------------------
>
> any idea ?
>
> Best Regards,
> Adi

Hi Adi, too little information.
Evidently the problem is your conn instance configuration.

If you can, provide ConnInstance configuration value stored in the DB.

Regards,
F.

-- 
Fabio Martelli

Tirasa - Open Source Excellence
http://www.tirasa.net/

Apache Syncope PMC
http://people.apache.org/~fmartelli/