Subversion Repositories SmartDukaan

Rev

Rev 5281 | Rev 5374 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5281 Rev 5370
Line 4... Line 4...
4
import in.shop2020.metamodel.core.Entity;
4
import in.shop2020.metamodel.core.Entity;
5
import in.shop2020.metamodel.core.EntityState;
5
import in.shop2020.metamodel.core.EntityState;
6
import in.shop2020.metamodel.core.EnumDataObject;
6
import in.shop2020.metamodel.core.EnumDataObject;
7
import in.shop2020.metamodel.core.Feature;
7
import in.shop2020.metamodel.core.Feature;
8
import in.shop2020.metamodel.core.FreeformContent;
8
import in.shop2020.metamodel.core.FreeformContent;
-
 
9
import in.shop2020.metamodel.core.Media;
-
 
10
import in.shop2020.metamodel.core.Media.Type;
9
import in.shop2020.metamodel.core.PrimitiveDataObject;
11
import in.shop2020.metamodel.core.PrimitiveDataObject;
10
import in.shop2020.metamodel.core.Slide;
12
import in.shop2020.metamodel.core.Slide;
11
import in.shop2020.metamodel.definitions.BulletDefinition;
13
import in.shop2020.metamodel.definitions.BulletDefinition;
12
import in.shop2020.metamodel.definitions.Catalog;
14
import in.shop2020.metamodel.definitions.Catalog;
13
import in.shop2020.metamodel.definitions.Category;
15
import in.shop2020.metamodel.definitions.Category;
Line 24... Line 26...
24
import in.shop2020.model.v1.catalog.status;
26
import in.shop2020.model.v1.catalog.status;
25
import in.shop2020.thrift.clients.CatalogClient;
27
import in.shop2020.thrift.clients.CatalogClient;
26
import in.shop2020.utils.Logger;
28
import in.shop2020.utils.Logger;
27
 
29
 
28
import java.io.BufferedReader;
30
import java.io.BufferedReader;
-
 
31
import java.io.ByteArrayInputStream;
-
 
32
import java.io.ByteArrayOutputStream;
29
import java.io.DataInputStream;
33
import java.io.DataInputStream;
30
import java.io.File;
34
import java.io.File;
31
import java.io.FileInputStream;
35
import java.io.FileInputStream;
-
 
36
import java.io.FileOutputStream;
-
 
37
import java.io.InputStream;
32
import java.io.InputStreamReader;
38
import java.io.InputStreamReader;
-
 
39
import java.io.ObjectInputStream;
-
 
40
import java.io.ObjectOutputStream;
-
 
41
import java.io.OutputStream;
33
import java.util.ArrayList;
42
import java.util.ArrayList;
-
 
43
import java.util.Collection;
34
import java.util.Collections;
44
import java.util.Collections;
35
import java.util.HashMap;
45
import java.util.HashMap;
36
import java.util.List;
46
import java.util.List;
37
import java.util.Map;
47
import java.util.Map;
38
import java.util.Set;
-
 
39
import java.util.TreeMap;
48
import java.util.TreeMap;
40
 
49
 
41
import org.apache.commons.lang.ArrayUtils;
50
import org.apache.commons.io.IOUtils;
42
import org.apache.commons.lang.StringUtils;
51
import org.apache.commons.lang.StringUtils;
43
 
52
 
44
/*
53
/*
45
 * @author rajveer 
54
 * @author rajveer 
46
 * 
55
 * 
Line 64... Line 73...
64
		// destinationDbPath = args[1];
73
		// destinationDbPath = args[1];
65
		// dryRun = args[2];
74
		// dryRun = args[2];
66
		// }
75
		// }
67
		//
76
		//
68
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath,destinationDbPath);
77
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath,destinationDbPath);
69
		contentmigrator.migrateNetwork();
78
		contentmigrator.migrateHeadSet();
70
		//contentmigrator.renameTitles();
79
		//contentmigrator.renameTitles();
71
		// contentmigrator.migrateWarrantyType();
80
		// contentmigrator.migrateWarrantyType();
72
		// CreationUtils.storeComparisonStats(null);n
81
		// CreationUtils.storeComparisonStats(null);n
73
		// contentmigrator.migrateMedia();
82
		// contentmigrator.migrateMedia();
74
		// contentmigrator.populateHelpdocEntityIds();
83
		// contentmigrator.populateHelpdocEntityIds();
Line 192... Line 201...
192
			}
201
			}
193
 
202
 
194
			CreationUtils.updateEntity(entity);
203
			CreationUtils.updateEntity(entity);
195
		}
204
		}
196
	}
205
	}
-
 
206
	private void migrateHeadSet() throws Exception {
-
 
207
		
-
 
208
		//Starting entity id for new Category with 10000
-
 
209
		long newCounter = 77777000;
-
 
210
		Collection<Entity> entities = CreationUtils.getEntities(10015);
-
 
211
		
-
 
212
		//entities = (List<Entity>)this.clone(entities);
-
 
213
		for (Entity entity : entities) {
-
 
214
			long entityId = entity.getID();
-
 
215
			try {
-
 
216
				List<Slide> entitySlides = entity.getSlides();
-
 
217
				if (entity == null || entitySlides == null) {
-
 
218
					continue;
-
 
219
				}
-
 
220
				Slide summarySlide = null;
-
 
221
				FreeformContent ffc = null;
-
 
222
				 
-
 
223
				List<Slide> newEntitySlides = new ArrayList<Slide>(); 
-
 
224
				Slide connectivitySlide = new Slide(130129);
-
 
225
				Slide looknfeelSlide = new Slide(130128);
-
 
226
				for (Slide slide : entitySlides) {
-
 
227
					slide=(Slide)this.clone(slide);
-
 
228
					if (slide.getSlideDefinitionID() == 130068) {
-
 
229
						List<Feature> connectivityFeatures = new ArrayList<Feature>();
-
 
230
						List<Feature> looknfeelFeatures = new ArrayList<Feature>();
-
 
231
						List<Feature> features = slide.getFeatures();
-
 
232
						for (Feature f : features) {
-
 
233
							if (f.getFeatureDefinitionID() == 120105) {
-
 
234
								connectivityFeatures.add(f);
-
 
235
							}
-
 
236
							if (f.getFeatureDefinitionID() == 120106) {
-
 
237
								looknfeelFeatures.add(f);
-
 
238
							}
-
 
239
						}
-
 
240
						ffc = slide.getFreeformContent();
-
 
241
						if(ffc != null){
-
 
242
							Map<String, Media> mediaMap = ffc.getMedias();
-
 
243
							if(mediaMap!=null){
-
 
244
								for(Media media : mediaMap.values()){
-
 
245
									if(media.getType().equals(Type.IMAGE) || media.getType().equals(Type.DOCUMENT)){
-
 
246
										copyMedia(String.valueOf(newCounter), String.valueOf(entityId),media);
-
 
247
									}
-
 
248
								}
-
 
249
							}
-
 
250
						}
-
 
251
						connectivitySlide.setFeatures(connectivityFeatures);
-
 
252
						looknfeelSlide.setFeatures(looknfeelFeatures);
-
 
253
						looknfeelSlide.setFreeformContent(ffc);
-
 
254
					} 
-
 
255
					//Summary slide
-
 
256
					if(slide.getSlideDefinitionID() == 130054) {
-
 
257
						summarySlide = slide; 
-
 
258
						FreeformContent ffc1 = slide.getFreeformContent();
-
 
259
						if(ffc1 != null){
-
 
260
							Map<String, Media> mediaMap = ffc1.getMedias();
-
 
261
							if(mediaMap==null){
-
 
262
								continue;
-
 
263
							}
-
 
264
							for(Media media : mediaMap.values()){
-
 
265
								if(media.getType().equals(Type.IMAGE) || media.getType().equals(Type.DOCUMENT)){
-
 
266
									copyMedia(String.valueOf(newCounter), String.valueOf(entityId),media);
-
 
267
								}
-
 
268
							}
-
 
269
						}
-
 
270
					}
-
 
271
					
-
 
272
				}
-
 
273
				
-
 
274
				Entity newEntity = new Entity(newCounter, 10099);
-
 
275
				newEntity.setBrand(entity.getBrand());
-
 
276
				newEntity.setModelName(entity.getModelName());
-
 
277
				newEntity.setModelNumber(entity.getModelNumber());
-
 
278
				//entitySlides.remove(featureSlide);
-
 
279
				newEntitySlides.add(connectivitySlide);
-
 
280
				newEntitySlides.add(looknfeelSlide);
-
 
281
				newEntitySlides.add(summarySlide);
-
 
282
				newEntity.setSlides(newEntitySlides);
-
 
283
				EntityState es = new EntityState(newCounter, 10099, "admin");
-
 
284
				es.setBrand(entity.getBrand());
-
 
285
				es.setModelName(entity.getModelName());
-
 
286
				es.setModelNumber(entity.getModelNumber());
-
 
287
				CreationUtils.createEntity(newEntity, es);
-
 
288
				System.out.println("New entity : " + newCounter + " created using : " + entityId);
-
 
289
				System.out.println(CreationUtils.getEntity(newCounter));
-
 
290
				newCounter++;
-
 
291
			}catch(Exception e){
-
 
292
				System.out.println("Could not migrate " + entityId);
-
 
293
			}
-
 
294
		}
-
 
295
		
-
 
296
	}
197
 
297
 
198
	private long getEnumValueForNetwork(String value, Long entityLong) {
298
	private long getEnumValueForNetwork(String value, Long entityLong) {
199
		value = value.toLowerCase().replaceAll(" ", "");
299
		value = value.toLowerCase().replaceAll(" ", "");
200
		Map<String, Long> map = new HashMap<String, Long>();
300
		Map<String, Long> map = new HashMap<String, Long>();
201
		map.put("quadband(gsm850/900/1800/1900)", 110382L);
301
		map.put("quadband(gsm850/900/1800/1900)", 110382L);
Line 1569... Line 1669...
1569
		map.put("iOS 5", 110366L);
1669
		map.put("iOS 5", 110366L);
1570
 
1670
 
1571
		return map;
1671
		return map;
1572
 
1672
 
1573
	}
1673
	}
-
 
1674
	
-
 
1675
	private Object clone(Object object) throws Exception{
-
 
1676
		// Serializing and deserializing to clone the slide
-
 
1677
		// serialize
-
 
1678
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
 
1679
		ObjectOutputStream out = new ObjectOutputStream(bos);
-
 
1680
		out.writeObject(object);
-
 
1681
 
-
 
1682
		// De-serialization
-
 
1683
		ByteArrayInputStream bis = new ByteArrayInputStream(
-
 
1684
				bos.toByteArray());
-
 
1685
		ObjectInputStream in = new ObjectInputStream(bis);
-
 
1686
		return in.readObject();
-
 
1687
		
-
 
1688
	}
-
 
1689
	
-
 
1690
	/**
-
 
1691
	 * 
-
 
1692
	 * @throws Exception
-
 
1693
	 */
-
 
1694
	private void copyMedia(String newEntityId, String oldEntityId, Media media) throws Exception {
-
 
1695
		String mediaDirPath = Utils.CONTENT_DB_PATH + "media" + File.separator + newEntityId;
-
 
1696
		File mediaDir = new File(mediaDirPath);
-
 
1697
		if(!mediaDir.exists()) {
-
 
1698
			mediaDir.mkdir();
-
 
1699
		} 
-
 
1700
 
-
 
1701
		String mediaFilePath = mediaDirPath + File.separator + media.getFileName();
-
 
1702
		String oldMediaFilePath = media.getLocation();
-
 
1703
 
-
 
1704
		File mediaFile = new File(mediaFilePath);
-
 
1705
		mediaFile.createNewFile();
-
 
1706
 
-
 
1707
		File oldMediaFile = new File(oldMediaFilePath);
-
 
1708
 
-
 
1709
		InputStream in = new FileInputStream(oldMediaFile);
-
 
1710
		
-
 
1711
		// appending output stream
-
 
1712
		// @rajveer : replacing the existing file 
-
 
1713
		OutputStream out = new FileOutputStream(mediaFile); 
-
 
1714
		
-
 
1715
		try {
-
 
1716
			IOUtils.copy(in, out);
-
 
1717
		}
-
 
1718
		finally {
-
 
1719
			IOUtils.closeQuietly(in);
-
 
1720
			IOUtils.closeQuietly(out);
-
 
1721
		}
-
 
1722
		media.setLocation(mediaFilePath);
-
 
1723
	}
1574
 
1724
 
1575
}
1725
}
-
 
1726