Did anyone managed to use @Convert annotation with DataNucleus? Do you have a working example or a documentation link?

I tried to implement it this way

```
...
@Convert(converter = MyAttributeConverter.class)
private String[] aField;
...

```

`MyAttributeConverter` implements `javax.persistence.jpa21.AttributeConverter<String[], String>`.

When I run the DataNucleus Enhancer I get this error

```
WARN [main] (Log4JLogger.java:96) - Class "XXX" has an annotation "javax.persistence.jpa21.Convert" specified with property "converter" yet this is invalid. Please check the specification for that annotation class. Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
ERROR [main] (Log4JLogger.java:125) - DataNucleus Enhancer completed with an error. Please review the enhancer log for full details. Some classes may have been enhanced but some caused errors Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details org.datanucleus.exceptions.NucleusUserException: Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
    at org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:536)
    ...

```

According to DataNucleus documentation seems fine: <http://www.datanucleus.org/products/accessplatform/jpa/annotations.html#Convert>, though googling I found an issue report in which things are a little bit different: <http://www.datanucleus.org/servlet/jira/browse/NUCJPA-164>.

I'm using DataNucleus 3.1.3.
['https://Stackoverflow.com/questions/14582431', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1210071/']
Turn on [logging](http://docs.aws.amazon.com/AmazonS3/latest/dev/LogFormat.html) for the S3 bucket, then (optionally) send the client directly to the bucket.

The log format includes "Bytes Sent" as well as "Object Size" and a number of other goodies including the remote IP, referring page, and request URI with query string. 

Logs are not real-time of course, but you'll find a new log dropped into your bucket every few minutes. Retrieve it, parse it, store the interesting content if you want to, and then delete it if you don't want to pay monthly storage costs on the logs.
Keep the request URLs the same, pointing to your EC2 instance. But instead of proxying the content from S3 to the client through your EC2 instance, have your EC2 instance redirect the user to the S3 URL.

Use an expiring signed URL for the redirect. Your EC2 instance can create the appropriate URL on each request, expiring in a few minutes. That way there's time for the client to fetch the S3 resource but bookmarking it won't work because it will have expired when they try it later. So they always have to go to your EC2 instance to get the resource, allowing you to control and log access, but you don't have to proxy the content itself.