You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wink.apache.org by "Mike Rheinheimer (JIRA)" <ji...@apache.org> on 2009/09/17 18:22:57 UTC

[jira] Created: (WINK-193) JAX-RS 1.1 support: C004

JAX-RS 1.1 support:  C004
-------------------------

                 Key: WINK-193
                 URL: https://issues.apache.org/jira/browse/WINK-193
             Project: Wink
          Issue Type: Improvement
            Reporter: Mike Rheinheimer


Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated WINK-193:
----------------------------------

    Attachment: WINK-193.patch

Updated patch -- now using a sort function to pre-sort instead of first filtering the list on isWritable calls.  I'm assuming sorting, then iterating to find the first 'true' response from isWriteable is faster than filtering by isWriteable, then sorting.

I've left a TODO in the code to review this.

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer closed WINK-193.
---------------------------------


> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>          Components: Common
>    Affects Versions: 0.1
>            Reporter: Mike Rheinheimer
>             Fix For: 1.0
>
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Bryant Luk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758021#action_12758021 ] 

Bryant Luk commented on WINK-193:
---------------------------------

I think having the system providers be a lower priority is more natural.  It would also allow us to re-sort the list easier.

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Bryant Luk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758696#action_12758696 ] 

Bryant Luk commented on WINK-193:
---------------------------------

bq. I assume it should apply to writers, readers and context resolvers. Right?

Reading the spec literally, no, but I think it is better to apply this same type of sorting to all @Providers if possible (with ExceptionMappers already following this sorting).

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758334#action_12758334 ] 

Mike Rheinheimer commented on WINK-193:
---------------------------------------

Please do not commit patch until discussion is resolved.  WINK team needs to decide how 'priority' is treated, as an override or a tie-breaker.  See:

http://n2.nabble.com/DISCUSS-priority-sort-key-as-override-for-Providers-td3694465.html#a3694465

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Michael Elman (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Elman updated WINK-193:
-------------------------------

          Component/s: Common
    Affects Version/s: 0.1
        Fix Version/s: 0.2

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>          Components: Common
>    Affects Versions: 0.1
>            Reporter: Mike Rheinheimer
>             Fix For: 0.2
>
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated WINK-193:
----------------------------------

    Patch Info: [Patch Available]

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated WINK-193:
----------------------------------

    Attachment: WINK-193.patch

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Michael Elman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758237#action_12758237 ] 

Michael Elman commented on WINK-193:
------------------------------------

Sure, go ahead.
It's not like that I think we should not support 1.1, but rather that fixing known issues and making the second release has a higher priority.

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758707#action_12758707 ] 

Hudson commented on WINK-193:
-----------------------------

Integrated in Wink-Trunk-JDK1.5-test #5 (See [http://hudson.zones.apache.org/hudson/job/Wink-Trunk-JDK1.5-test/5/])
    Added support of declared generic type on providers.
See []


> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated WINK-193:
----------------------------------

    Attachment: WINK-193.patch

Disregard older version... made a slight change in a code comment.

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer resolved WINK-193.
-----------------------------------

    Resolution: Fixed

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>          Components: Common
>    Affects Versions: 0.1
>            Reporter: Mike Rheinheimer
>             Fix For: 0.2
>
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12757999#action_12757999 ] 

Mike Rheinheimer commented on WINK-193:
---------------------------------------

To be compliant with C004, we need to know whether a given provider writer is user-defined or a system provider.  For example, if a user specifies a writer that handles Object, but we have a system writer that handles String, and the type is String, the user-defined Object writer should still be chosen over the String writer.

Since we can no longer simply rely on the order of the providers in the ProvidersRegistry as a priority list, we need some other mechanism, so you'll see a slight change to the way priority is defined and managed.

Honestly, I'm not a big fan of this mechanism, so consider this patch a suggestion for now, and committer, please review it and post your feedback/opinion.  Thanks..

The two tests that primarily drove these changes were
1)  org.apache.wink.common.internal.registry.ProvidersRegistry11Test.testGenericTypeInheritanceSorting  (from patch)
2)  org.apache.wink.server.internal.providers.entity/MessageBodyWriterProviderCorrectParametersTest.testUserProviderOverBuiltIn



> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Michael Elman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758625#action_12758625 ] 

Michael Elman commented on WINK-193:
------------------------------------

Just to clarify. The spec states:
{quote}Add a secondary key to the sort order used when looking for compatible MessageBodyWriters such that writers whose declared generic type is closer in terms of inheritance are sorted earlier than those whose declared generic type is further.{quote}
I assume it should apply to writers, readers and context resolvers. Right?

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758701#action_12758701 ] 

Hudson commented on WINK-193:
-----------------------------

Integrated in Wink-Trunk-JDK1.5 #170 (See [http://hudson.zones.apache.org/hudson/job/Wink-Trunk-JDK1.5/170/])
    Added support of declared generic type on providers.
See []


> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Bryant Luk (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758231#action_12758231 ] 

Bryant Luk commented on WINK-193:
---------------------------------

Michael, if possible, I would like to fix as many of these issues in as early as possible.  While they don't introduce new functionality, I'd rather the code behave as close as possible to JAX-RS 1.1 since it would produce subtle differences from release to release.  I think if we know we're going to change the code eventually, might as well put the fix in immediately.

Of course, we can't claim support for 1.1 until after the TCK is finalized but I'd also like to be ready to go to be one of the first to claim JAX-RS 1.1 support.

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12760261#action_12760261 ] 

Mike Rheinheimer commented on WINK-193:
---------------------------------------

That all sounds fine with me Michael.  Thanks for looking into it.  Closing this jira..

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>          Components: Common
>    Affects Versions: 0.1
>            Reporter: Mike Rheinheimer
>             Fix For: 0.2
>
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Michael Elman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758128#action_12758128 ] 

Michael Elman commented on WINK-193:
------------------------------------

Mike, thanks for patches.
However, I'd like to suggest to postponing this issue (and the other JSR 311 1.1 issues) after the release of 0.2 (1.0).


> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Michael Elman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758700#action_12758700 ] 

Michael Elman commented on WINK-193:
------------------------------------

Well, I made the change.
I used parts from the suggested patch, especially the unit tests.
Some concerns regarding the implementation and changes that I did:
* The changes apply for context resolvers, message body writers and readers.
* The sorting order is:
*# By media type
*# By generic type 
*# By priority

Regarding system providers: they are added with priority 0.1, while the default priority is 0.5, so the last key will ensure that user providers are invoked before the system providers if keys one and two are equal.
I've commented one of the unit tests in ProvidersMessageBodyTest.testMessageBodyWriters since it assumes that String2Provider should override StringProvider. This is incorrect, since in the test there is no difference between user and system providers.

In addition, I've added feature that the later provider is registered, the higher priority it will get. I use 0.00000000001 as a "counter" that is added.
The assumption that none will use so small numbers to set the priority, while some may try to use providers order as a priority.


> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch, WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated WINK-193:
----------------------------------

    Comment: was deleted

(was: Disregard older version... made a slight change in a code comment.)

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WINK-193) JAX-RS 1.1 support: C004

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WINK-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated WINK-193:
----------------------------------

    Attachment:     (was: WINK-193.patch)

> JAX-RS 1.1 support:  C004
> -------------------------
>
>                 Key: WINK-193
>                 URL: https://issues.apache.org/jira/browse/WINK-193
>             Project: Wink
>          Issue Type: Improvement
>            Reporter: Mike Rheinheimer
>         Attachments: WINK-193.patch
>
>
> Need support for C004 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.