Skip to content

Commit

Permalink
bz-1000009: Jcr2vfs migration tool does not migrate 'globals'
Browse files Browse the repository at this point in the history
  • Loading branch information
jervisliu committed Oct 21, 2013
1 parent b62fe2a commit 98c4705
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 1 deletion.
Expand Up @@ -30,6 +30,7 @@
import org.drools.workbench.jcr2vfsmigration.Jcr2VfsMigrationApp;
import org.drools.workbench.jcr2vfsmigration.migrater.asset.AttachementAssetMigrater;
import org.drools.workbench.jcr2vfsmigration.migrater.asset.FactModelsMigrater;
import org.drools.workbench.jcr2vfsmigration.migrater.asset.GlobalMigrater;
import org.drools.workbench.jcr2vfsmigration.migrater.asset.GuidedDecisionTableMigrater;
import org.drools.workbench.jcr2vfsmigration.migrater.asset.GuidedEditorMigrater;
import org.drools.workbench.jcr2vfsmigration.migrater.asset.GuidedScoreCardMigrater;
Expand Down Expand Up @@ -72,7 +73,9 @@ public class AssetMigrater {
protected GuidedScoreCardMigrater guidedScoreCardMigrater;
@Inject
protected TestScenarioMigrater testScenarioMigrater;

@Inject
protected GlobalMigrater globalMigrater;

@Inject
protected MigrationPathManager migrationPathManager;
@Inject
Expand Down Expand Up @@ -161,6 +164,12 @@ public void migrateAll() {
startRowIndex += pageSize;
}
}

//Migrate global
List<String> globals = GlobalParser.parseGlobals(header);
if(globals.size() > 0) {
globalMigrater.migrate(jcrModule, globals);
}
}

System.out.println(" Asset migration ended");
Expand Down
@@ -0,0 +1,43 @@
package org.drools.workbench.jcr2vfsmigration.migrater;

import java.util.ArrayList;
import java.util.List;


/**
* Utility methods to parse a global Config
*/
public final class GlobalParser {

private static final String KEYWORD = "global ";

private GlobalParser() {
}

public static List<String> parseGlobals( final String content ) {
List<String> globals = new ArrayList<String>();

if ( content == null || content.trim().equals( "" ) ) {
return globals;
} else {
final String[] lines = content.split( "\\n" );

for ( int i = 0; i < lines.length; i++ ) {
String line = lines[ i ].trim();
if ( !( line.equals( "" ) || line.startsWith( "#" ) ) ) {
if ( line.startsWith( KEYWORD ) ) {
line = line.substring( KEYWORD.length() ).trim();
if ( line.endsWith( ";" ) ) {
line = line.substring( 0, line.length() - 1 );
}
globals.add( line );
}
}
}

return globals;
}

}

}
@@ -0,0 +1,80 @@
package org.drools.workbench.jcr2vfsmigration.migrater.asset;

import java.util.List;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.inject.Named;

import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.rpc.Module;
import org.drools.guvnor.server.RepositoryAssetService;
import org.drools.repository.AssetItem;
import org.drools.workbench.jcr2vfsmigration.migrater.GlobalParser;
import org.drools.workbench.jcr2vfsmigration.migrater.PackageHeaderInfo;
import org.drools.workbench.jcr2vfsmigration.migrater.PackageImportHelper;
import org.drools.workbench.jcr2vfsmigration.migrater.util.DRLMigrationUtils;
import org.drools.workbench.jcr2vfsmigration.migrater.util.MigrationPathManager;
import org.uberfire.io.IOService;
import org.uberfire.java.nio.base.options.CommentedOption;
import org.uberfire.java.nio.file.Files;
import org.uberfire.java.nio.file.StandardCopyOption;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.uberfire.backend.server.util.Paths;
import org.uberfire.backend.vfs.Path;

@ApplicationScoped
public class GlobalMigrater extends BaseAssetMigrater {

protected static final Logger logger = LoggerFactory.getLogger( GlobalMigrater.class );

@Inject
protected RepositoryAssetService jcrRepositoryAssetService;

@Inject
private Paths paths;

@Inject
@Named("ioStrategy")
private IOService ioService;

@Inject
protected MigrationPathManager migrationPathManager;

@Inject
private PackageHeaderInfo packageHeaderInfo;

@Inject
PackageImportHelper packageImportHelper;

public Path migrate( Module jcrModule,
List<String> globals) {
if(globals.size() == 0) {
return null;
}

Path path = migrationPathManager.generatePathForGlobal( jcrModule );
final org.uberfire.java.nio.file.Path nioPath = paths.convert( path );

if ( !Files.exists( nioPath ) ) {
ioService.createFile( nioPath );
}

StringBuffer content = new StringBuffer();
for(String global : globals) {
content.append(global);
content.append("\n");
}
String contentWithPackage = packageImportHelper.assertPackageImportDRL(content.toString(), null);
ioService.write( nioPath,
contentWithPackage,
new CommentedOption( jcrModule.getLastContributor(),
null,
jcrModule.getCheckinComment(),
jcrModule.getLastModified() ) );

return path;
}

}
Expand Up @@ -68,6 +68,19 @@ public Path generatePathForAsset( Module jcrModule,

return path;
}

public Path generatePathForGlobal(Module jcrModule) {
final org.uberfire.java.nio.file.Path modulePath = fs.getPath("/"
+ escapePathEntry(jcrModule.getName()));

org.uberfire.java.nio.file.Path assetPath = modulePath.resolve("src/main/resources/" + "globals.gdrl");

final Path path = PathFactory.newPath(paths.convert(assetPath
.getFileSystem()), assetPath.getFileName().toString(),
assetPath.toUri().toString());

return path;
}

public Path generatePathForAsset(Module jcrModule, Asset jcrAsset) {
return generatePathForAsset( jcrModule, jcrAsset, false );
Expand Down

0 comments on commit 98c4705

Please sign in to comment.