Migration failure v3 to v4

Hello,
I just tried to migrate from v3 to v4 but got the following error message via email:

“Backendless finished processing data and files from your 3.x application. There were failures during the migration process. Please contact Backendless Support for assistance. To do this, make send your application ID of the application you attempted to migrate to 4.0 to support@backendless.com.”

Attached is the logfile of the import. Please note that it failed on more than one place. How can I send you the application id of my app without making it public here?

migration_import.txt (15.53kB)

Hi exodeveloper

There was two problems:

  1. Email Settings is not migrated correct ( http://take.ms/ZE4WS ), you have to configure your Email Settings manually

We found the reason why your email settings did not migrate correct, we have fixed it and we will deploy the fix asap (it’s for the next migrations)

  1. the second problem is with your Business Logic, BackendlessCollection is not supported in Backendless 4.x you need to fix you logic manually
    there is a new docs for 4.x https://backendless.com/docs/bl-java/doc.html

Regards, Vlad

Regarding number 2: in my business logic Java code, several Backend java classes are no longer supported and others have changed (e.g the constructors for QueryOptions). Is there some kind of API reference documentation of the current Backendless java classes used for business logic, like
for example http://docs.oracle.com/javase/8/docs/api/ for Java SE?

By the way, here is an example of where e.g. QueryOptions() and .find() fails since the APi has changed…

    public Collection<Map> rated(Double ratio) {
        QueryOptions queryOptions = new QueryOptions(pageSize, 0, "ratingTotal DESC");
        BackendlessDataQuery dataQuery = new BackendlessDataQuery(queryOptions);
        if ((ratio != null) && (ratio > 0)) {
            dataQuery.setWhereClause("ratio = " + String.valueOf(ratio));
        }
        Collection<Map> levels = Backendless.Data.of("Level").find(dataQuery);
        return levels;
    }